nobcha23の日記

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

PIC16F88 TC4040B 7SEGMENT driving function

http://chitose6thplant.web.fc2.com/
回路図に続いて、7セグメントLEDを光らせる関数です。
これはPIC16F88ポートから直接セグメントLEDを駆動する関数のdefine部分をTC4040Bに出力するパルス数に置き換えてます。
そしてセグメント駆動のためにポート信号をORするところを、カウント数の加算に切り替えてます。
今まではセグメント駆動の信号データがそろうとポートにセットすればよかったのですが、今回の場合はwhile関数でカウント数だけまわして該当ポートからパルスを出しています。
ちなみにTC4040Bのカウント動作はポートがHからLに遷移するときに行われます。
CLK端子はRST端子にもつながっていて、CLKがHになってRSTの積分回路がHになるとカウンタはリセットします。
一方桁を次に移動するときはカウンタをリセットするためにCLK端子に500マイクロ秒ぐらいHにします。そのあとCを放電するので、同じぐらいのディレーがあります。(ちょっと時間をサービスしすぎか)

もう一つ追加事項がありました。LEDの電流制限抵抗は桁に一つしか入っていません。このLEDはセグメントあたり10mA流せるそうです。ということで値は470オームにして1セグメント時でも電流制限ないです。そのかわりに全セグメント駆動時はセグメントあたり2mAも流れなくなります。そしてダイナミック駆動で光る時間が数分の一になります。暗くなるということですね。セグメント同時駆動数に合わせて、ダイナミック表示駆動時間を気持ちだけ延ばします。

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