- ベストアンサー
PICアセンブラ言語で車のスピードをLEDバー表示したいのですが
現在、自作で車のスピードメーターを製作しています。 車速パルスを利用して、スピード表示を10km/h単位で1つのLEDを点灯して、180kmまでの18個のLEDをバー表示したいのですが、どのようにすればその処理が出来るのか分かりません。 どなたか教えていただけないでしょうか。 宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
その質問はハードの問題?それともソフトの問題でしょうか? ネット上では、スピードメーターを作られている方がいるので参考にしてみてください。回路図とプログラムがあります。 http://www.geocities.jp/imayuki_h/custom/speed.html 上の例では7セグLED表示の数値ですが18個のLEDを制御する場合には求められた時速を10km/h単位で割り算した答えが光らせる個数です。 個数からLEDを光らせる方法として一番簡単なのは、 だいぶPICのアセンブラを忘れてて怪しいですが。 iに表示する個数が入っているとします。 ; 1つ目のLED MOVF i,F ;iがゼロか調べる。 BTFSC STATUS,Z ;ゼロ以外はスキップ GOTO DISP_LED_END ;ゼロなら終了 BSF ;1個目のLEDをONに。 ; 2つ目のLED DECF i,F ;-1して BTFSC STATUS,Z ;ゼロ以外はスキップ GOTO DISP_LED_END ;ゼロなら終了 BSF ;2個目のLEDをONに。 って感じで18個分書きます。 この書き方も回路図次第ですから、まず回路設計が必要です。 18個もLEDを制御するにはシフトレジスタが必要な気がします。
お礼
zwi様 ご回答頂き、有難う御座います。 返事が遅れまして申し訳御座いません。 今回質問をさせて頂いたのはソフト側でのものです。 それに合わせてハードを製作しようと考えていましたので。 教えて頂いたサイトの確認が出来ました。 プログラムもアップされていましたので、それをヒントに一度勉強してみようと思います。 私自身PICの事をまだ全然理解出来ていませんので、重ねてzwi様から教えて頂いたものも含めてどういう処理をすればどうなるかを調べてみます。 また解らなくなってここに質問を書かせていただくかも知れませんが、その時はまた助けて頂ければ幸いです。 この度は有難う御座いました。