前へ 目次 次へ
LEDを点灯してみる

突然飛びますが、先にプログラムを・・・


LEDを点灯するプログラムの例

 
;	LED Test Program 2002/04/15(Mon)

	LIST	P=16F84		;アセンブラにPICデバイスの情報を与える
STATUS	EQU	H'0003'		;STATUSレジスタは3番地
RP0	EQU	H'0005'		;ページ操作ビットは5bit目
PORTB	EQU	H'0006'		;ポートBは6番地
TRISB	EQU	H'0086'		;TRISBは86番地

	BSF	STATUS,RP0	;STATUSの5ビット目を1にする(ページ1に変更)
	CLRF	TRISB		;TRISB=0で、すべてアウトプットに設定
	BCF	STATUS,RP0	;STATUSの5ビット目を0にする(ページ0に変更)
	BSF	PORTB,7		;PORTBの7ビット目を1にする
	END			;終了
プログラム解説
 
;	LED Test Program 2002/04/15(Mon)

;(セミコロン)から行の最後までは、無視されます。 ここでは、作成日時などコメントを書き込むために利用しています。

以下、各行にコメントが書いてありますが、 こんなに書きこむと、かえって鬱陶しいです。

「C言語体当たり学習徹底入門」では、 ”コメントを書くことよりも、「コメントなんかなくても読みやすいプログラム」を書くことに 力を入れましょう。そして、奮闘するも力及ばず、どうしてもこれでは後で読んだときに 分かりにくくなってしまう、という時に、敗北感に打ちのめされ悔し涙にくれながら、 仕方なくコメントを入れる、というのが、コメントに対する正しいスタンスです(やや誇張あり)。” と書いてあります。

ここでは解説用と思って、許してください。


	LIST	P=16F84

最初に、使用するPICの種類を指定します。 ここでは、PIC16F84を利用しますので、P=16F84と記述しました。


STATUS	EQU	H'0003'

EQUという命令は、数値に別名を付けるときに使います。 ここではステータスレジスタの番地3をSTATUSという名前にしています。 これ以降STATUSは3のことになります。 このようにしておくと、プログラムの意味がわかりやすくなります。

なお、ステータスレジスタとは、命令実行後の状態を示すさまざまなフラグを持ったレジスタです。 ここでは、レジスタの初期設定のためにページを切りかえる目的で利用します(後述)。


RP0	EQU	H'0005'
PORTB	EQU	H'0006'
TRISB	EQU	H'0086'

上述のように、EQUは、数値に別名を付けるときに使います。 ページ切り替えには、ステータスレジスタの5bit目の値を変えれば良いので、 5をPR0という名前にします。

ポートBは6番地なので、これをPORTBと名づけています。

各ポートは設定により、入力用にも出力用にもなります。 この設定を行うのがTRISレジスタです。 ポートBのTRISレジスタはH86番地なので、 これをTRISBと名づけています。 このレジスタは、ページ1にあるために(デフォルトはページ0)、 設定の際にページ切り替えを必要とします。

なお、ここで設定した別名は、 MPLABでは標準Include Fileで設定されていますので、 これを読みこめば、設定の必要はなくなります。


	BSF	STATUS,RP0

BSFは指定したビットを1に設定します。 ここでは、3番地の5Bit目を1に設定しています。 これは、ページを0から1へ切りかえるための設定です。 ポートBを出力用に設定するために必要な操作です。


	CLRF	TRISB

CLRFはメモリの内容をクリアするために使います。 ポートBの入出力の設定はTRISB(H86番地)で行います。 0で出力、1で入力になります。 各BitはポートのBitに対応しています。 ここでは全て出力用に設定するために、 全てのBitを0に設定しています。


	BCF	STATUS,RP0

BCFは指定したビットを0に設定します。 ここでは、3番地の5Bit目を0に設定しています。 これは、ページを1から0へ戻すための設定です。


	BSF	PORTB,7

ポートBの7Bit目を1に設定しています。 これによってポートBの7Bit目に接続されたLEDが点灯することになります。 つまりLEDを点灯するためのプログラムはここの1行だけで、 後は設定だけだということが分かります。


	END

プログラムの最後を表しています。 この後ろにプログラムを書いても無視されます。 この命令は、必ず記述する必要があります。

 

2002/03/03(Mon)
PICのトップページへ
トップページへ
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送