その2 PICプログラムリスト
今回は、A/D入力の信号を0Vから5Vまでを1024段階で検出しています。この時の1ビットのあらわす分解能は、5V/1024=0.004883V。4.883mVで1ビットとなります。 |
そこで、PIC側の計算を楽にするとともに、温度センサーの0.1度を表現する為に、オペアンプを使って約9.8倍に増幅してからA/D変換入力しています。こうすると、 |
温度センサーは10mV/1度ですから、98mV/1度となり、98mV/4.883=20となり、A/D変換された値を1/2してやれば10倍の読みがバイナリーで得られる事になります。 |
これをBCD変換後、ASCIIコードにすれば、10倍の温度表示データー文字列で得られます。ここで最後の1桁目の前に小数点をLCDに送ってやれば、見事に小数点以下の |
温度表示ができるというわけです。 |
実際には、デジタルマルチメーターでセンサーの出力を直接読み取りながら、LCDが正しく表示されるように、オペアンプの増幅率を調整すればぴったり合ってしまいます。(9.764倍) |
温度の分かっているものを測定しながら、校正することも可能です。PICはA/D変換結果を単に1/2(10ビットを右シフト)しているので単純明解です。 |
プログラムのほとんどの部分は、「PICマイコンプログラミング&電子工作」高橋 隆雄 著 秀和システム ISBN4-7980-0895-8 を参考にしていますので、 |
解説は省かせていただきます。 |
◎なお、このソースリストは、コンフィグレーション部分や割り込み処理部分がPIC 16F873のAバージョン用になっています。16F873のノーマルバージョンとは、 |
異なっており、そのまま使用できませんので御注意ください。無理に使用すると、チップに書き込みができなくなってしまう場合があります。 |
データーは、Xportに対してASCIIコード3文字+小数点と復帰(CR)の5文字を転送しています。 |
ご意見/苦情/ご感想はこちらまで |