--「PIC」プログラミング再び (20)---

 ===「LCD表示ライブラリー」===
 PICのプログラムを組んで、検証するのに、LCDの表示が便利
 です。秋月のSD1602というLCDを使ってますが、これを使うに
 あたって、表示のためのライブラリーが必要です。

 諸先輩のHPを参考に動かしていましたが、
 使用ピンを変更したくて、あれこれやりました。
 プログラムを見ると、
           #define LCD_DATA PORTB
           void lcd_write(unsigned char c){
          __delay_us(40);
          LCD_DATA = ( ( c >> 4 ) & 0x0F );
 //上位4ビットを右に4回シフトしてRB0~RB3に書き込む
          LCD_STROBE();
          LCD_DATA = ( c & 0x0F );
 //下位4ビットをRB0~RB3に書き込む
          LCD_STROBE();
           }
 という項目があり、データをBレジスタで書き込んでいる
 ようですので、ここを書き換えるといいはずでした。
 プログラムでは、8ビットのデータを2回に分けてRB0~RB3
 に書き込んでいるようでしたので、ここを変更すれば、
 違う端子から書き込みができるはずでした。
 ここを、RB4~RN7に変更すべく、
           void lcd_write(unsigned char c){
          // 送信データのバイト列上位4ビットを処理
          RB4 = ( ( c >> 4 ) & 0x01 ) ;
          RB5 = ( ( c >> 5 ) & 0x01 ) ;
          RB6 = ( ( c >> 6 ) & 0x01 ) ;
          RB7 = ( ( c >> 7 ) & 0x01 ) ;
           LCD_STROBE() ;
          // 送信データのバイト列下位4ビットを処理
          RB4 = ( ( c ) & 0x01 ) ;
          RB5 = ( ( c >> 1 ) & 0x01 ) ;
          RB6 = ( ( c >> 2 ) & 0x01 ) ;
          RB7 = ( ( c >> 3 ) & 0x01 ) ;
          LCD_STROBE() ;
          }
 と変更してみましたが、うまくいきませんでした。考え方は、
 これでいいみたいでしたが、ネットでくぐると、
 別な方のHPに同じ考えのライブラリーが載ってました。
 最初の#defineのところで、使用ポートを記述すればいいので、
 便利だと思います。
 今日も一つ勉強しました。
 ライブラリー用に編集したものをここに掲載します。
 ヘッダーファイルは、HITEC-Cのサンプルのを
 そのまま使います。