10bit Binary to 7seg by 8bit PIC






無断転用厳禁





 8bitの PICで 10bitのデータ、例えば 10bitの A/D変換出力、を 7seg LEDに表示するのは少々面倒です。 8bitのデータであれば僅か 16行(当方オリジナルの場合)で変換可能ですが、10bitとなるとそう簡単には 行きません。メーカーから 16bitデータの変換例が発表されていますが、解析には少し時間がかかりました。 メーカー発表のコードそのままで動作しますが、他人の作ったコードをそのまま使用するのも (変数名等を変えたところで他人の作ったものに変わりはない)、バカ・アホと同じ で面白くありませんし、HPで発表も出来ません。図々しく発表出来るとすればそれはド素人か、 どうしようもない厚顔無恥のバカかアホのいずれかです。
 以下は当方で作成した 10bitのバイナリデータを 7seg LEDに表示する変換例です。行数 31。
 必要があれば 10bit以上も考えるのですが、現在のところこれといって PICで作りたいものもありません。


 1.変換出力を left justifyで得る。DataH 8bit、DataL 上位 2bit。

 2.DataHから 019h(25)を引く。引けた回数が 7seg LEDの上位 2桁となる。
 一度も引けなければ上位 2桁は 0,0、10回引ければ 1,0となる。

 3.余りを 2bit RLFし、Right justifyした DataLと加算する。

 4.加算したデータから 0Ah(10) を引き、下位 2桁のデータを得る。


作成中のミス

 テストしてみるとデータが 100以下の場合は良いのだが、100以上だと 2大きく表示される。おかしいな こんなはずは・・・とコードをチェック。 3.の "余りを 2bit RLF" する前に、STATUS,Cを CLEARするのを 忘れていた。ついつい忘れがちなこと。

 まともに動作しなかった場合、プログラムもハードも良く分からない者だったら大変ですね。当方のように ハードには絶対の自信を持っており、予めチェックの仕方も心得ておれば、これはコードがどこかおかしい と (更に症状から多分あの辺りと) 判断できますが、プログラムもハードも良く分からなかったらどうするん でしょうね。ハハハ。そういう人は止めましょ。出版社や Microchipの戦略に乗る必要はありません。










 








作品の部屋に戻る