nobcha23の日記

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

PIC16F88 ADC どういうプログラムにするか

プログラムの要求項目は整理できたので、プログラム書きます。基本部分となるのはこの間のキー入力でLEDを付けたり消したりするものです。キー入力”2”を追加し、”2”入力でADC値取得。変換実施します。ADCは10ビットあるが、精度は問題にしないので、今回は上位8ビットだけ使います。

関数read_a2d()というのを作り、ここでADCスタート、変換できたら値を持ってリターン。

read_a2d()の戻り値に19(5V/256)を掛けます。バイナリー電圧値ができました。

その結果を1000、100、10、1で割ります。整数と整数の割り算なので結果は整数。(小数点以下は切り捨て)その結果を10で割ったあまり(1の位だけを取り出す)が桁ごとの十進コードになります。これを表示できるように0x30を(ASCIIコードの1は0x30、9は0x39なので)ORしてUARTへ出力するというものです。

別な計算法として、iで桁カウント、1000を引く回数をjでカウントしてマイナスになるまで回して、jに0x30をORする方法も考えました。

2,3日悩みましたが、6行ぐらいでできました。



今までの試作をまとめたnobchaのWEB
http://chitose6thplant.web.fc2.com/