秋月I2C接続キャラクタLCDモジュールをシリアル入力タイプに改造 ― 2012/04/18 23:59:29
3:RA4:O:LCD_E
4:RA3:I:(MCLR) モードスイッチに使用。基板内部で10KΩプルアップされている
5:RC5:O:LCD_D5
6:RC4:O:LCD_D4
7:RC3:O:LCD_D3
8:RC6:O:LCD_D6
9:RC7:O:LCD_D7
10:RB7:O:(TX)
20:VSS
19:RA0:O:(ICSPD)
18:RA1:O:(ICSPC)
17:RA2:O:LCD_RS
16:RC0:O:LCD_D0
15:RC1:O:LCD_D1
14:RC2:O:LCD_D2
13:RB4:O:(SDA) 右スイッチに使用
12:RB5:O:(RX)
11:RB6:O:(SCL) 左スイッチに使用
コメント
_ ラジオペンチ ― 2012/04/19 21:58:41
_ air_variable ― 2012/04/20 16:44:16
LCDの文字数はlcd.cのlcd_putch(unsigned char c)内で一括でおこなっています。
一文字表示させるごとにlcd_loccntというグローバル変数を足していて、これが行末になったら表示ラインを切り替えています。
変数はlcd.hで定義していて、LCDの種別はmain.hでやっています。
建て増しプログラムで可読性が悪くて失礼します。
一行目は0x10(16)になった時、0x40に切り替え、
2行目は0x40+0x10=0x50(80)になったら0に戻しています。
ですので、表示漏れがありません。
タイムスタンプは、いつの間にか夜中になっていたという感じでしたw
_ じゅん ― 2012/04/24 04:10:23
わたしも昨日秋月から買ってきて、インターネットラジオにつないでみました。
すこしだけコマンドが違うようです。スレーブアドレスを変えるだけでは最初の一行が表示されるだけでした。
最初のファンクションセットのところは1行書くだけで済みました。その分PICがお仕事しているんでしょうね。あと、ストリベリーリナックスのはコマンドバイトかデータバイトかの区分けにさらにあとにデータが続くかどうかでコマンドが4種類にわかれていますが、秋月のは単純にデータかコマンドかの2種類で大丈夫でした。
製品に添付されている資料が非常にわかりづらく、解決するのに3時間も掛かってしまった (^^;;;
_ air_variable ― 2012/04/24 20:49:25
ストリナと実は若干違いがあるみたいで、全くのコンパチでは無い様でした。
I2C式のは他に共立のこれも安くて良いと思いました。
http://eleshop.jp/shop/g/gB3A41L/
_ pc9801vm ― 2012/05/18 22:43:50
ソース頂いて早速色々と活用しています。
少し質問なのですが、
lcd_data_set()関数にLCD_STROBEが2発入っているのは
何か理由があるのでしょうか?
これを1つにしないとストロベリーリナックスのOLED液晶で
うまく動かなかったので・・・
単に興味本位ですが、よろしくお願いします。
_ air_variable ― 2012/05/19 10:36:46
>lcd_data_set()関数にLCD_STROBEが2発入っているのは
あ、本当ですね。4ビットのソースを8ビットに改造した時、消し忘れしていました。ここは1つです。
ご指摘ありがとうございます。
_ air_variable ― 2012/05/20 14:28:08
http://www.ne.jp/asahi/air/variable/picmel/applications/lcd_serial/16F689/index.html
_ ken2 ― 2012/10/29 22:58:39
ACM1602検索していて、こちらにたどり着きました。
手持ち部品で、作成し動作する所までいきました。
素晴らしいです I2cでデバッグ用に使おうと思っていましたが
こちらの方が、自身のニーズに合ってます。
これでデバッグが楽になるかも?(自分の頭が付いて行かない)
有難うございました。
_ air_variable ― 2012/10/30 14:41:28
実は作りかけで、このハードウェアで、スイッチによるモード切替で、
シリアル通信の他、秋月I2C、ストロベリーリナックスI2Cと
3つのモードが切り替えられるファームを書いている最中です。
若干スイッチの配線が変更になる可能性があります。
また、いつ出来るかも進捗が進んでいないのですが、出来上がったら公開する予定です。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。
ここ拝見してると自動的に新しい情報が入手できるので感謝してます。
仕様を見て判らなかったのは、一行に16文字以上入力された場合の挙動です。自動的に次行にスクロールされる、あるいは無視される?
普通のSD1602とかの仕様だと無視でしたっけ。
PICは全然素人なのですが、そのへん知りたくてソースを追ってみたのですが、
lcd_putch(byte);
の先がどうやっているのかで決まるのでしょうが、修行不足でこの先を見失いました。
それにしても、ファイルのタイムスタンプがすごかった。