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
| 固定リンク | 0
「PICマイコン」カテゴリの記事
- ZK-80で足し算(2020.07.23)
- TK-80互換機 ZK-80のキット(2020.07.21)
- PICのお勉強(37) C言語編 12F683でA/D変換(2015.06.02)
- UVレジンでLEDイルミネーション (2)(2015.05.15)
- PICのお勉強(35) C言語編 PWMでサーボモータを動かす(2014.10.05)
コメント