こんどは、16F88でLCD表示です。16F88はAD入力が可能なPICです。
まずは、同じソースでコンパイルして、書き込みますが、コンフィグレジスタの書き込みエラーが
発生しました。16F648Aとは、コンフィグレジスタの設定に違いがあるようです。
よく見てみると、CFG2がアクティブになっています。なにやら、Enableになっているので
さしあたり、Disableにしてみました。
これで書き込みエラーはなくなりました。

しかし、動作してくれません。下記のANSELの設定を追加したところ動作しました。
char *text = "mikroElektronika";
void main() {
// CMCON = 7; //disable comparators
TRISA = 0;
TRISB = 0;
PORTA = 0;
PORTB = 0;
ANSEL = 0b00000000;
Lcd_Config(&PORTB,2,3,0,7,6,5,4);
Lcd_Init(&PORTB);
LCD_Cmd(LCD_CLEAR); // Clear display
LCD_Cmd(LCD_CURSOR_OFF); // Turn cursor off
LCD_Out(1,1, text); // Print text to LCD, 2nd row, 1st column
while(1)
{
}
}
16F648Aでは、CMCON = 7;が判らず、16F88では、ANSEL = 0b00000000;が判らず、それぞれ1週間くらい
悩みました。ANSELについては、”PICについて語ろう”の掲示板で、教えていただきました。
また、”久世に訊け!!ver.2007”にも詳しく説明がありました。

このようにブレッドボードでテストしています。中央のチップが16F88です。

チップにはこのように、テプラで作成したシールを張っています。
最近小さな文字がぁ...これならすぐに判ってとっても便利です。 |