« PICのお勉強 (0) 16F84Aのテストボード製作 | トップページ | PICのお勉強(2) 2個のLEDの交互点滅 »

2011年12月25日 (日)

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

| |

« PICのお勉強 (0) 16F84Aのテストボード製作 | トップページ | PICのお勉強(2) 2個のLEDの交互点滅 »

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

コメント

コメントを書く



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


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



トラックバック


この記事へのトラックバック一覧です: PICのお勉強 (1) LEDの点灯:

« PICのお勉強 (0) 16F84Aのテストボード製作 | トップページ | PICのお勉強(2) 2個のLEDの交互点滅 »