Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

PIC16F88 + SC1602BS + XC8

PIC16F84A + SC1602BS + XC8 という組み合わせでLCDの表示ができたのだから、PIC16F88でもすぐにできるはずだ。
その根拠は以下の通り。
PIC16F84A_88_pin
つまり、88は84Aの上位互換PICなのだ。
なので、そのままの回路で88に載せかえるだけですぐにLCDへの表示ができるはずだ。

と、素人である私は思うが、そうはうまくいかないのが、より高機能なPICを使う場合の落とし穴だ。

まず、
ANSEL = 0b00000000;
が必要になる。
ユーザーからすると上位の機能であると考えがちなA/D変換が、初期設定になっているからだ。
明示的に設定しないと、Digital I/Oで用いたいのに、うんともすんともいわないという結果になる。

で、もうひとつが、
#pragma config LVP = OFF
// Low-Voltage Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
よくわからないが、これがONだと動かなかった。
ONにしておくと、
#pragma config LVP = ON
// Low-Voltage Programming Enable bit (RB3/PGM pin has PGM function, Low-Voltage Programming enabled)
RB3がそのために使われてしまうのだそうだ。
ん、RB3はLCDの表示には使ってないんだけどなあ…。

一応写真を撮ったが、PICの型番が写らないので84Aとの違いは見た目ではわからない。
PIC16F88_SC1602B
ちなみに、PIC16F648Aもピン配置が同じなのでまったく同じ回路で使うことができる。

このエントリーをはてなブックマークに追加

Posted under: MPLAB X, PIC Hardware, PIC16F88


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.