SSブログ

7SEG表示 & 16進キーボード(ワンボードマイコン風) [6303]

I/O関連の続き。
その先に接続するものとして、7SEG LEDと16進キーボードを用意。
初期のワンボードマイコンの雰囲気を楽しむ。

制作したボードがこれ

7seg-hkey-borad.jpg

7SEGが8桁と5×5のキーボード。TK-80風。
私が持っているのはTK-85なので、0~9,A~F以外のコマンドキー(?)はTK-85を参考に割り付け。
他にもキー(ボタン)がついているのは、このボードは一応8279に接続するのを前提としているため。SHIFTとかCTRLとかは8279の機能。
8255Aと共通で使えるようにするため、PPIボードで使っている34Pのコネクタにしてpinも割り振ったが、全く同じようには使えない。8255Aがビット単位で入出力を指定できればほぼいけたのだが。
今回は8255Aに接続。使ったボードがこれ

ppi-s-borad.jpg

前々回で紹介したPPI2個のボードとは別で1個のもの。設計自体は2個のものよりずっと前に終わっていたのだが、ポカをやらかして作り直して後になってしまった。
ちなみにPPI2個ボードでも同じソフトが動くことは確認済み。

8279ならスキャン操作は勝手にやってくれるのだが、8255Aではそういうわけにはいかないのでタイマの使えるボードとしてHD6303のものを用意。
タイマの使えるボード用のモニタは、システムタイマとして10ms間隔のタイマを入れている。実際にはカウンタ変数をカウントアップしているだけなのでが、ちょっと前にユーザ割り込みルーチンが用意されていれば、それを呼び出すように変更している。
USB-COM変換に使っているPICには10ms間隔でタイマ出力させているが、実際に使っているのは独立した割り込み入力がある8085ボードだけ。
Z80ボードはモード2割り込みを使っているので、/INT端子に入れても使えない。
MC6802はACIAをチェックして、ACIAが割り込みだしていなかったらタイマ割り込みで良いんだろうけど、そこまでやっていない。

HD6303ボードで10msのシステムタイマ割り込みを使ってダイナミック点灯をやってみたが、見事にちらつく(苦笑)。
10ms点灯して70ms消灯しているから、まぁそうなるか。
HD603X/Yはタイマをもう1本持っているので、それで2msタイマを生成。2msだとちらつきなし。
ただ2msだとどうしてもキーはチャタリング拾うので2回読みにする。10msだと拾わないけど。

接続はこんな感じ。

7seg-key-test.jpg

本当は右端2桁も表示されているのだが、静止画だとダイナミック点灯は全部写らない。
今までは基本ソフト製作がメインだったのでROM書き換えては差し替えとやっていた都合上、メモリボードを前面にだしていたが、今は作成したソフトをロードするだけなのでCPUボードを前に。

とりあえずだが、
左4桁にアドレス表示、右2桁にそのアドレス内データ表示。
INC/DECキーで表示アドレス変更。
16進キーで数値入力してEnterキーでメモリ内容変更。
ADDRESS SETキーでアドレス変更。
ここまではやってみた。
いずれは昔のワンボードのように動作するようにしてみたいと思う。
nice!(0)  コメント(0) 
共通テーマ:趣味・カルチャー

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。