戻るPIC12F1822を使いi2c接続RTCの実験  nobcha(C)2011

 

1. はじめに 

  i2c接続でRTCとLCDをつなぎ、時計まがいを作ってみます。PIC12F1822のMSSPを使用したi2cマスタープログラムで作ります。

 

2. 試作機の仕様は 

項番 項目 詳しい内容
  1 RTC セイコーエプソン製のi2c接続タイプのクロック回路です。1Hz信号が出せるので、それをPICへの割込み信号にして、表示を更新させます。
  2 LCD 当初はストロベリーリナックスのLCDを使う予定でしたが、代わりにPIC16F88を使い新たに試作したものを使用します。
  3 MSSPでi2c制御 i2c接続のマスター側をMSSP使って実現します。そのためにSCL/SDAはRA1/RA2に割り付けられます。
  4 時間設定 設定選択、アップ、ダウンの3つの押しボタンスイッチを使用して、LCDに表示された年日時曜日を順に設定できます。
  5 割込みリフレッシュ表示 RTCの1秒クロック信号出力により割り込みをかけ、RTCレジスタの内容を読み出してLCDに時間表示を行います。

 

3. 回路図 

 当初ストロベリーリナックス製の液晶モジュールを使う予定でした。その実験用回路は次になります。

 ところが取り扱い不注意で割ってしまったので、替わりにPIC16F88を使用したLCD表示回路を作りました。

 替わりの液晶をつなぎ、途中でRTCから1秒クロックを取り出す必要があり、その部分を追加しました。

 

 回路図は水魚堂さんのBSchを使いました。また関連記号類も利用させていただきます。公開された作者さん達のご努力に感謝いたします。http://www.suigyodo.com/online/schsoft.htm
   

4. 実験 

 ブレッドボードで実験を進めます。プログラムはHI-TEC Cを使用、MPLABでコンパイル,PICKIT2を使ってフラッシュの書き込みを行います。

 デバッグ中は液晶表示の余った部分にRTC設定対象のレジスタ内容をダンプ表示しました。

 

 無事動き出しました。デバッグダンプ表示ですが、05は金曜日のカウント値、表示用バッファも同じく05、その次06は曜日カウントの最大値、これ以上になると0に戻す。最後は曜日カウントの最小値で0です。これ以下になると06に戻すというようなカウントアップ、ダウンのソフト処理になっています。プログラム訂正せず、そのままLCDモジュールを16字2行にすると余計な文字は表示されなくなります。

 

 

5. プログラム 

  プログラムはMAIN部LCD表示制御部mssp使用i2cドライバ部に分かれています。

  またdelay.hlcd_i2c_mssp_.hmssp_i2c.hを引きこみ必要です。

 

6. 次はどうなる 

  アラーム設定とアラーム時ブザー機能など追加したいと思っています。しかし、もうポートが足りません。PIC12F1822でもi2c接続ならまだぶら下げることも可能ですからi2cインタフェイスのADCなど使うならデータロガーなどにも発展できそうです。

 

「ご注意」 このWEBに掲載された内容(文面・回路・写真・プログラムなど)には著作権があります。無断転載やコピーは法律に抵触する場合があります。何か疑義ある場合はお問い合わせください。また本WEBに掲載された実験や試作はnobcha個人の趣味で行っております。ここに示す結果の再現性や正確性は保証するものではありません。あくまでも個人の趣味の範囲で参考にしてください。
PIC新4桁シリーズのTOPへ       WEB目次へ 戻る     2011.10.22

アイコンは「牛飼いとアイコンの部屋」から借用しました  http://www.ushikai.com/

 

inserted by FC2 system