PICのお勉強 (1) LEDの点灯
LEDを点灯させることに成功しました。初学者はこの程度のことでもうれしいですな。ソースはこれ(Lesson1.asm)。
自分のための備忘録として,メモを残しておきます。
;==================================================
LIST P=PIC16F84A
INCLUDE P16F84A.INC
__CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF
;==================================================
最初のコレは,おまじないみたいなもんですね。使うPICマイコンの宣言とか,MPLABの「ヘッダファイルの読み込み」とか「configレジスタの設定」とかなんだそうです。まあ気にしないことにします。
;========================================================
BSF STATUS,RP0 ;BANK1に切り替えて、
MOVLW B'00011' ;RA0,RA1は入力、RA2~RA4は出力にする。
MOVWF TRISA ;上の設定をTRISAに格納して、
BCF STATUS,RP0 ;BANK0に戻す。
;========================================================
ここは,大切な初期設定。RA0~RA4の入出力の設定をしています。
入出力の設定を書き込むTRISAレジスタやTRISBレジスタはBANK1にあるので,まずはBANK1に切り替えます。
BSFってのは,BitSetF(1にする)って意味ね。STATUSレジスタの5番目のビットRP0を1にするとBANK1に切り替わるのね。
次に,Wレジスタに2進数(Binary)で00011を代入します(MoveLiteral with W)。0は出力設定,1は入力設定です。今回は使わないけどRA0,RA1にスイッチをつけてあるから1(入力)にして,RA2~RA4は0(出力)にしました。
んで,この入出力設定をTRISAレジスタに書き込んで設定完了。BANK0に戻して(BitClearF)初期設定終了。
;=================================================
MOVLW B'01100' ;Wレジスタに2進数01100を代入して、
MOVWF PORTA ;PORTAに送る。(RA2とRA3が点灯)
;=================================================
いよいよLEDを点灯させます。
RA2とRA3のLEDを点灯させるのだから,2進数01100をWレジスタに代入して,PORTAに送ります(Move W to F)。
これで仕事は完了。
;================
LOOP
GOTO LOOP
END
;================
点灯しっぱなしにするためになんにもしないでぐるぐるループさせときます。ま,ここはどうでもよろしい。
電源を入れるとLEDが点灯するだけの動画(lesson1.wmv)ですが,ご覧ください。
【今日覚えた命令】 BSF,BCF,MOVLW,MOVWF,GOTO
| 固定リンク | 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)
コメント