PIC12F675とLM61BIZを用いた室温表示の実験
nobcha(c)2010
|
はじめに
温度センサー室温表示をLCDにしてみようという実験です。CPUはPIC12F675、8ピンで、IOが入力専用入れても6本のPICです。データ線4ビット接続でもRS,EN入れると6本の制御信号線が必要なLCD1602コンパチ品を2本の信号線シリアル接続で使います。
RS線+4ビットデータを送るシリパラ変換ドライバの役目をソフト制御と組み合わせでバイナリーカウンタTC4040Bにやってもらいます。パルス1個でDB1、2個でDB2というようにパルスの数が4ビットデータとなります。このやり方はシフトレジスタでのシリパラ変換を一ひねりしたもので面白いです。そしてもう一つのひねりはクロック端子をHにするリセットのかけ方です。積分回路が入っており、クロック端子が積分回路の時定数より長いとリセットが掛かります。駆動パルスは幅が狭く積分回路でなくなり、リセットにはなりません。
|
実験仕様
LM61BIZの電圧をADCで取り込み、数値計算変換後桁毎にLCDへ送り出します。
項番 |
項目 |
詳細説明 |
1 |
温度センサーはLM61BIZを使用 |
V=T*10mV+600mVという出力電圧 |
2 |
MAPLAB+PICKIT2+HiTEC C |
MPLABV8.46 HiTECH
C V9.71a |
3 |
表示は1602の16文字2行LCD |
SC1602BSLB |
4 |
LCDインターフェイス駆動はTC4040B経由 |
TC4040Bバイナリーカウンタにパルスを送り込み駆動信号をラッチ、PICのポートからはEN信号 |
5 |
電源はニッケル水素電池4本 |
5.04Vを電源電圧のノミナルとする→ADCの参照電圧になる |
6 |
氷点下表示は対応 |
−がでます。 |
MPLAB、PICKIT2,HITEC CコンパイラはMicrochip社のライセンスフリー製品を使いました。詳しくは次のURLを参照してください。
http://www.microchip.com/
|
回路
回路ですが、プログラム書き込みはCPU+ICSPコネクタ部はデバッグ用基板を利用します。ブレッドボード上でPIC12F675+LM61BIZ+TC4040B+LCD接続用フラットケーブルのシングルライン差込をつなぎ合わせます。
SC1602の接続ピン番に間違いがあります。#7〜#10を#11〜#14にずらし、読み替えて配線願います。
回路図は水魚堂さんのBSchを使いました。また関連記号類も利用させていただきます。公開された作者さん達のご努力に感謝いたします。
http://www.suigyodo.com/online/schsoft.htm
|
プログラム
プログラムはMAIN部とLCD表示部に分けて書いております。関数delay.hと675_lcd_disp.hを引きこみ必要です。
コンフィギュレーションはPIC12F675のnobcha標準テンプレート値を採用。AN0から温度センサー信号をADCに取り込みます。ADCは10ビット幅を使うので関数のデータ型はSHORTになります。TC4040へのクロックデータはGPIO5,EN駆動はGPIO1を使用します。クロックは内部で4MHzです。
MAINは以前に作った7セグLED表示のプログラムを流用し、電源電圧値にあわせ変換式に対応。7セグメント表示のプログラムはこの実験の一つ前に作った3桁カソードコモンLEDをTC4040B経由で点灯するものの改造。完成時には温度センサーの替わりに半固定抵抗器をブレッドボードに差しADCの入力値変えて確認しました。
|
実験風景
以前作ったICSP+CPU+突き刺し用ピンのユニバーサルボードで接続します。1602コンパチからの信号をいシングルインラインに変換してブレッドボードに差し込みます。7セグLED表示ではニッケル水素電池2本、2.6Vで動かせましたが、今回はLCDが4.5V以上ないと動きませんので、ニッケル水素電池4本5.1Vで実験です。
|
全体目次に戻るPIC12F先頭へ
アイコンは「牛飼いとアイコンの部屋」から提供受けました。ありがとうございます。
|
「ご注意」 このWEBに掲載された内容(文面・回路・写真・プログラムなど)には著作権があります。無断転載やコピーは法律に抵触することがあるのでご注意ください。リンクをお取りになりたいときはポータルページを使用ください。”http://d.hatena.ne.jp/nobcha23/”その際ご連絡いただくと幸いです。そのほかの場合メールでご相談ください。本WEBに掲載された実験や試作はnobcha個人の趣味で行っております。ここに示す結果の再現性や正確性は保証するものでなく、あくまでも個人の趣味の範囲で参考にしてください。
|