nobcha23の日記

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

クロックのソフト


PIC16F1823でLCD4ビット接続をベースにしたクロックができました。手元にスーパーキャパシターが無く、ちょっと大き目電解コンデンサをつけ代用してます。コンパイルやり直しの際、フラッシュ書込みのためPICを外したぐらいの時間なら十分バックアップされてます。ソフトウェア一式は次になります。 
http://chitose6thplant.web.fc2.com/n_4digit/1823_clock/1823_rtc_main_c.pdf
http://chitose6thplant.web.fc2.com/n_4digit/1823_clock/lcd_c.pdf
http://chitose6thplant.web.fc2.com/n_4digit/1823_clock/mssp_i2c_c.pdf
http://chitose6thplant.web.fc2.com/n_4digit/1823_clock/delay_h.pdf
http://chitose6thplant.web.fc2.com/n_4digit/1823_clock/lcd_h.pdf
http://chitose6thplant.web.fc2.com/n_4digit/1823_clock/mssp_i2c_h.pdf     
ここでlcd.cはPIC16F1823から4ビット接続でSC1602系LCDモジュールを制御する関数です。LCD初期化などの立ち上げシーケンスと時間はLCDモジュールのマニュアルとかHI-TECH社提供のサンプルコードを参考にして_delay(*)でトライアンドエラーで動かしています。LCDを2.5Vぐらいで駆動するためLCDモジュール内の制御LSIの起動が緩慢なためにLCDによっては追いつかない場合があるようです。そんなときは立ち上げ時間を中心に引数を増やしてみてください。  
mssp_i2c.cはPIC16F1823のMSSPを使って7ビットモードのi2cマスター制御を行う関数です。新4桁シリーズ内蔵のMSSPを前提に組みましたが、PIC16F88などのSSPでもレジスタ名など変えれば使えます。今まで接続したことのあるi2cスレーブはストロベリーリナックス社の液晶モジュール、EPSONのリアルタイムクロックRTC-8586、EEPROMの24LC64でブロック読書きまで確認しております。


参考書は次なんですが、どうもこれだけだと進歩が無いようです。でも初心者にはHI-TECH Cの基本が説明されていて好適なのでは無いかと思います。