パチパチマイコンを作ろう!(その5)

入出力ボードの配線を行いました。CPU ボードと同じようにワイヤラッピングで配線しますが,7 セグ LED は,基板の裏側で配線します。今回は,信号の流れが単純なので,回路図は描かずにデータシート見ながら直接配線していきました。(そのせいでいろいろとハマってしまいました…。回路図は面倒くさがらずにちゃんと描いたほうが良いです)

このボードの機能

7 セグ LED で,16 進数を 4 桁まで表示できます。また,タクトスイッチ 3 つで,3 ビットの入力ができます。(3 つはチョット半端ですが,レイアウト上,3 つまでしか付けられませんでした)

CPU ボードとは I/O ポートで接続されていて,Z80 の入出力命令でデータのやり取りを行います。

7 セグのデータは,CPU から設定します。そのデータをこのボードでラッチし,時分割で 4 桁分ダイナミック表示します。これは,CPU のクロック信号を分周して,適当なタイミングを作り,一定の間隔で,表示する LED を高速に切り替えています。また,CPU からは特定のポート($00~$03)にバイトデータ($00~$0F)を書き込むだけで表示できます。

この時に使用したクロックを分周した信号は,ついでに一定間隔の割り込み信号として,CPU に送ります。CPU 側は,この信号を利用して,時間計測を行うことができます。

LED は,ダイナミックドライブで光らせているので,ちょっと多めの電流を流します(と言うのは,実際は 4 桁を順番に点滅させていることになるので,通常より暗くなってしまうのです…)。一つのセグメント当たり 20mA くらい流します。これを 8 つ光らせると,1 つの 7 セグ合計で 160mA 流れることになります。1 つの IC でドライブしようとすると,IC の定格オーバーになってしまうんですね…。すぐには壊れないかもしれませんが,IC の寿命は縮まると思います…多分。ですので,間にトランジスタを入れて電流を増幅させています。こうすることで,実際に LED に流す電流よりはるかに少ない出力電流で駆動できるわけですね。

次はソフトウェア

一応,このボードで入出力はできるようになるのですが,どのように入出力させるかは,Z80 のプログラムで制御します。このままでは,ラッチされているゴミデータがそのまま LED に出力されてしまいますよね。

次回は,このボードを制御する Z80 マシン語コードを,実際にスイッチでパチパチ入力してみたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA