PIC16F88にあるPortAのうち、RA0-RA4はアナログ入力と兼用になっているのですが、デフォルトではアナログ入力側が有効になっているのでデジタルのI/Oとして使用できません。
この為、ANSELレジスタ(Analog Select Register)をデジタル入出力として設定する必要があります。
ANSELレジスタ(0x9B)
bit7 unimpremented bit6 ANS6 bit5 ANS5 bit4 ANS4 bit3 ANS3 bit2 ANS2 bit1 ANS1 bit0 ANS0 |
ANSnはANnピンのモード指定で、0でデジタル入出力、1でアナログ入出力となります。
PIC16F88は、RA0~RA4がAN0~AN4にマッピングされているので下位5bitを操作すればOKです。
RB6,7も同様にデジタル入出力として使う場合はbit5,6を操作します。
例えば,RA0-RA5をデジタル出力ピンにする設定をHI-TECH Cのコードで書くと以下のようになります。
TRISA = 0x00; // PortAをすべて出力にする ANSEL = 0x00; // AN1-AN6を使用しない(すべてデジタル出力にする) |
関連記事
PIC16F88のAN0からAN4までをANSEL = 0x00; // AN1-AN6を使用しない(すべてデジタル出力にする) する事によって RA0かRA4にする事によって デジタルIOで動作した。