nobcha23の日記

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

ちょっと ぐだぐだと LCD制御コード作成の経過

ここで時間稼ぎでプログラム説明をします。
今までプログラムの説明はあまりしてこなかったんで、ちょっと気分変えてやってみます。ソフト作成はあんまり自信ありませんし、またリストを見直すとバグだらけなので、落ち込みます。
そう言ってると昨日の自分は赤の他人で、どんどん忘れていくので、ここはレビューかね説明します。

まずはLCD制御です。一昨年PIC試作を始めやっぱり表示出さないと・・と、LCDと格闘しました。LCD制御で一番初めに手がけたのは、4040Bバイナリーカウンタをシフトレジスタ替わりに使って4ビットモードで表示データ渡すものです。これは今までどなたからも注目されず、人気ありませんでした。(この間もカンハムにおいててだれのPICマニアに説明しても、なかなか動作についてご理解いただけませんでした) まあ一番初めにキワモノ制御を手がけてしまったわけです。この件は回路構成も含め理解する必要があるのでホームページの該当記述を参照してください。http://chitose6thplant.web.fc2.com/


その次にHI−TECH社サンプルコードを参考に普通の4ビット制御をつくりました。このときはサンプルコードというそのまま信じてはいけないものを信ずると・・失敗するという経験を得ました。4ビット並列制御の場合の関数です。http://chitose6thplant.web.fc2.com/n_4digit/1823_clock/lcd_c.pdf

今度はストリナからi2c制御LCDを買って、これを相手にi2c関数用に修正かけ作りました。きっかけはニッスイ2本2.5Vで動かせる信号本数が8ピンPICでもつながるLCDと言う条件です。端的にアプリケーションを言うとPIC10F200シリーズで液晶表示するという野望です。ストリナ用i2c対応の関数です。これはPICFUNを参考に作りました。http://chitose6thplant.web.fc2.com/n_4digit/1822_rtc_clock/lcd_i2c_mssp_c.pdf

でもストリナLCDは2.7V仕様なので、2.4Vになるとちょっと暗い。それで、ストリナコンパチ(のつもり)で2.4Vでもコントラストが何とかなる独自液晶モジュールも作ってしまいました。PIC16F88とかPIC16F1823使うので、大掛かりになります。でもこれが、デバッグ時にi2cマスター関数入れて、PIC12F683の内部データをLCDで確認デバッグするという用途に使えるんですよ。PIC12F683試作マニアには受けると思うんですが・・・。これも詳しくはホームページみてください。
http://chitose6thplant.web.fc2.com/

そうこうする内に今年になって最近デジットで2.4Vでも何とかなりまっせというサンライク社のSCG002Bを買い求めました。買ってみて、添付取り説を読んでも絶対にわからへんで・・という拡張コマンドを発見、何とか改造し表示が出ました。
http://chitose6thplant.web.fc2.com/n_4digit/mssp_i2c/lcd_i2c_mssp_c2.pdf

i2c制御LCDを使うには駆動関数必要ですが、MSSPを備えたPIC用のためにはハードマスターを用意しました。(PIC12F1822)
http://chitose6thplant.web.fc2.com/n_4digit/1822_rtc_clock/mssp_i2c_c.pdf  
PIC10F200とかPIC12F683用などにはソフトマスターも作りました。
http://chitose6thplant.web.fc2.com/pic12f/683_i2c_cnt/i2c_c.pdf  

という訳で、話が長くなりましたが、キャラクタ表示LCD制御に関してはいくつかの方式を経験し、ソフト財産も増えました。
アプローチとしては最初はパクリ試作レベルで先輩実験を真似して、次に自分で仕様きめ、回路図、コードを書いてデバッグすると大体がわかってきます。できるブロガーは回路図、コメント満載のコードリストを公開されており、参考になります。感謝。

i2cの参考書


マクロミルへ登録