« コッククロフト・ウォルトンの回路 | トップページ | PICのお勉強(9) 二進数カウンタ »

2012年1月 4日 (水)

PICのお勉強(8) ナイトライダー風LEDフラッシャ

 前回のプログラムを少しいじって,残像を残しながら点灯LEDがぐるぐる回るナイトライダー風のフラッシャを作ってみました。
ソースはこれ→lesson8.asm

やってることはしょーもないことなんですが,紹介しておきます。
;======================================================
MAIN
 CALL  LED_PTN   ;LED点灯パターンのサブルーチンへ
 MOVWF PORTB    ;LED点灯パターンをPORTBへ送る
 CALL TIMELOOP1
 INCF COUNT,F   ;COUNTに1を足してCOUNTに格納

 CALL   LED_PTN
 MOVWF PORTB
 CALL TIMELOOP2
 INCF COUNT,F

 CALL LED_PTN
 MOVWF PORTB
 CALL TIMELOOP3
 INCF COUNT,F

 MOVLW D'33'     ;LED点灯パターンの総数33個→Wレジスタに代入
 SUBWF COUNT,W  ;COUNT値-Wレジスタ値の引き算。
 BTFSC STATUS,C ;STATUSレジスタのCビットが0なら次行をスキップ
 CLRF COUNT   ;COUNTを0に戻す
 GOTO MAIN
;=========================================================
 要するに,待ち時間を変えながら(長・中・短)3つで1セットのLEDの点灯パターンを読みに行ってるだけです。
これを11セット実行して,始めにもどります。まあなんとなく残像っぽく見えるでしょう?
 ところでナイトライダーなんて,40~50代のオヤジしか知らないんじゃないの? 僕はオヤジだから,懐かしく思い出しましたけどね(笑)

【今日覚えた命令】 なし

| |

« コッククロフト・ウォルトンの回路 | トップページ | PICのお勉強(9) 二進数カウンタ »

PICマイコン」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: PICのお勉強(8) ナイトライダー風LEDフラッシャ:

« コッククロフト・ウォルトンの回路 | トップページ | PICのお勉強(9) 二進数カウンタ »