- 5663. ポート一括の入力について [クレパスしんた] 2005/07/30 11:22
- PIC16F84Aを使用して最近マイコンの勉強を始めた初心者です。
さて、BポートへLEDを8個接続し、Aポートの最初の2ビットを使用して、LEDの駆動を制御させようとしています。(ソフトはMPLAB IDE 7.2のアセンブラを使用)
その場合、Aポートの入力の判断として、Aポート自体を0〜3の数値で判断する事は可能ですか?
Aポートの各ビット毎での入力判断方法のサンプルプログラムは見つけたのですが、Aポート一括での判断方法が分かりません。それともそう言う指定の方法は無く、各ビット毎で判断して、その組み合わせをソフトを組むしかないのでしょうか?
- 5665. Re: ポート一括の入力について [JO_O] 2005/07/30 14:43
- 毎度JOです。
>>Aポート一括での判断方法が分かりません
Aポートのうち、RA0とRA1を使用すれば出来そうですね
アセンブルなら以下の方法で
MOVF PORTA,W
ANDLW B'00000011' ←BIT0,1のみ有効
この状態で、BIT0=1 BIT1=0 ならW=1なので
条件ジャンプができます
SUBLW H'01'
BZ ジャンプ先のラベル
これを発展させれば3BIT RA0〜RA2 でも出来ます
MOVF PORTA,W
ANDLW H'07' これは B'00000111'と同じ
これにより ポートAの 0h〜07h までのデーターが扱えます
- 5666. Re: ポート一括の入力について [リバー] 2005/07/30 16:05
- >その場合、Aポートの入力の判断として、Aポート自体を0〜3の数値で判断する事は可能ですか?
まず、Wレジスタに1〜3のいずれかをいれて
次にWレジスタからPRAを引きその後のZフラグで判断する。
というのはどうでしょうか?
- 5669. Re: ポート一括の入力について [クレパスしんた] 2005/07/30 20:30
- JOさん、リバーさん、説明ありがとうございます。
良く分かりましたので、試してみようと思います。