PIC初心者用掲示板

PICの初心者用の質問箱です。
何でもお気軽にどうぞ!

■最新ツリー一覧

□このツリー付近のツリー一覧

★新規ツリー作成

◆ 5663. ポート一括の入力について [クレパスしんた] 2005/07/30 11:22
    ┗ 5665. Re: ポート一括の入力について [JO_O2005/07/30 14:43
    ┗ 5666. Re: ポート一括の入力について [リバー] 2005/07/30 16:05
        ┗ 5669. Re: ポート一括の入力について [クレパスしんた] 2005/07/30 20:30


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_O2005/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さん、リバーさん、説明ありがとうございます。
良く分かりましたので、試してみようと思います。