PICのお勉強(5) ビットシフトでLEDの順送り点灯
RLF(Rotate Left through Carry)という命令を使ってみました。RRF(Rotate Right through Carry)という命令もあるようです。
ソースはこれ→lesson5.asm
ポイントを書いておくと,
;===============================================
MOVLW B'00000001' ;最初の点灯パターン
MOVWF PORTB
BCF STATUS,0 ;STATUSの0ビット目(carryビット)を0にセット
MAIN
RLF PORTB,F ;PORTBの内容を1ビット左にシフトする
CALL TIMELOOP1
GOTO MAIN
;===============================================
最初にPORTBのLEDを00000001というデータで点灯させておいて,RLF PORTB,Fでビットデータを左へひとつシフトさせます。ビット0が空になりますが,そこはあらかじめSTATUSの0ビット目(carryビット)に入れておいた0が入ります。
あとはこれを繰り返せば点灯するLEDがRB0からRB7へ順に移動するわけです。お,これはうまくやればナイトライダーができそうですな。
【今日覚えた命令】 RLF
| 固定リンク | 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)
コメント