COUNTER



新BLOG
 
新BBS
MN-BBS
旧BBS
CALENDAR
S M T W T F S
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
<<  2024 - 11  >>
 
LOGIN
現在モード: ゲストモード
USER ID:
PASS:
CATEGORIES
ARCHIVES
PROFILE
OTHERS
    処理時間 0.295273秒
POWERED BY
POWERED BY
ぶろぐん
DESIGN BY
ブログンサポート
          
--「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のサンプルのを

 そのまま使います。Webはくしゅ

| mabo52 | 21:06 | comments (0) | trackback (0) | DIY::  -pic |

こんな物欲しいな
CLOCK
NEW ENTRIES
COMMENTS
    ---SPINDLEのPWM制御 (その2) (7)
  • TR >06.18
    ---番外編---
  • TR >06.02
    ---SPINDLEのPWM制御 (その2) (5)
  • mabo >05.30
保留中コメント:10件
LINKS
    相互リンクさせていただいてます。
  • The Rider
Search Box
名言集
メール
   
連絡は下記から
名前:

メールアドレス:

件名:

メッセージ(必須):


TOP PAGE