« PICのお勉強(3) LED10個の点滅 | トップページ | PICのお勉強(5) ビットシフトでLEDの順送り点灯 »

2011年12月29日 (木)

PICのお勉強(4) スイッチでLEDの点滅

RA0のスイッチでRA2,RA3のLEDを点灯・消灯させてみました。
ソースは,lesson4.asm
メインプログラムは次のようになっています。

;======================================
MAIN
 BTFSC PORTA,0 ;RA0のスイッチをチェック。0なら次行をスキップ
 GOTO $-1 ;上の行へ戻る
 BCF PORTA,2 ;RA2のLEDを消灯
 BSF PORTA,3 ;RA3のLEDを点灯
 BTFSS PORTA,0 ;RA0のスイッチをチェック。1なら次行をスキップ
 GOTO $-1 ;上の行へ戻る
 CALL TIMELOOP1 ;約20msの時間稼ぎサブルーチンへ

 BTFSC PORTA,0
 GOTO $-1
 BSF PORTA,2 ;RA2のLEDを点灯
 BCF PORTA,3 ;RA3のLEDを消灯
 BTFSS PORTA,0
 GOTO $-1
 CALL TIMELOOP1
 GOTO MAIN
;======================================

 BTFSC(BitTest F,Skip if Clear)でRA0のスイッチをチェックします。スイッチが押される(0)と次行をスキップして,RA2とRA3のLEDを消灯・点灯します。スイッチが押されてない(1)なら,GOTO $-1で戻り,スイッチのチェックを繰り返します。
次に,BTFSS(BitTest F,Skip if Set)で再びRA0のスイッチのチェックし,スイッチがオフ(1)になるのを待ちます。その後、チャタリング対策の20msのタイムインターバルを取って処理を続けます。



【今日覚えた命令】 BTFSS,BTFSC

| |

« PICのお勉強(3) LED10個の点滅 | トップページ | PICのお勉強(5) ビットシフトでLEDの順送り点灯 »

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

コメント

コメントを書く



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


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



トラックバック


この記事へのトラックバック一覧です: PICのお勉強(4) スイッチでLEDの点滅:

« PICのお勉強(3) LED10個の点滅 | トップページ | PICのお勉強(5) ビットシフトでLEDの順送り点灯 »