nobcha23の日記

PICマイコンやArduinoを使う電子回路遊びを紹介します

マスター側のプログラム

マスター側とは

http://d.hatena.ne.jp/nobcha23/20120928/1348802347
この写真で表示を制御しているの方のコードになります。(上がそうです、下のほうのユニットはスレーブです)
i2cキーパッドスレーブを試すプログラムです。PICFUNで紹介されているストロベリーリナックスLCDをテスト表示するプログラムを参考に作りました。
http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/1827_i2c_lcd_key_test_main_c.pdf   
マスターが自分のポートにつないでいるLCD制御の関数です。
http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_c.pdf   
今回接続試験しているLCD+KEYを接続するための関数です。
http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_key_i2c_sl_mssp_c.pdf   
i2cインターフェイス信号をMSSP経由で制御する関数です。
http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/mssp_i2c_c.pdf   
LCD制御のヘッダファイルです。
http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_h.pdf   
LCD+KEY制御関数のヘッダファイルです。
http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/lcd_key_i2c_sl_mssp_h.pdf   
MSSP制御関数のヘッダファイルです。
http://chitose6thplant.web.fc2.com/n_4digit/1827_i2c_slave/mssp_i2c_h.pdf

nobcha実験では電源は単三を2本というのが多くて、この実験の場合も単三が二本の3Vで動かしております。従いましてLCDに関してはVoをチャージポンプのマイナス電源で引っ張る方式採用。また、LCDコントローラの自励発振が電源電圧依存のためにLCD制御信号に対しての応答が悪くなり、LCD制御のタイミングにはあっちゃこっちゃに__delay_us(*);を入れています。従いまして、i2cのフル速度(400kbps)では応答難しいかもしれません。今は数十kbpsのスルーレートタイミングで動かしております。