TK-Z80についての質問

戻る ホーム 上へ 進む

7セグメントLED表示で使用しているDMAのタイミングについて教えてください。

どうすれば7セグメントLEDに任意のデータを表示できますか。

モニタープログラムのキー入力はどうなっていますか。

モニタープログラムのワークエリア(RAM)の割り付けはどうなっていますか。

アセンブルからプログラムの実行までの手順を教えてください。

Z-Vison Windowsを接続する場合はどのように設定しますか。

Z-VisionやRM-80でトレース中に割り込み信号を入れても
割り込みプログラムに処理が移りません。なぜですか。

キットを購入したのですが,部品表と違う型番の部品が入っています。

7セグメントLED表示で使用している
DMAのタイミングについて教えてください。

    DMAのタイミングチャートと回路図を見ながら以下の説明をお読みください。

  1. U11(74HC08)からCPUシステムクロックと同じクロックがU4(74HC4040)とU14(74HC393)で13段分周され,U14のQAから600Hzのクロックが出力されています。
  2. U14のQA(11番ピン)のクロックの立ち上がりに同期してU13(74HC74)のQ(6番ピン)からCPUへBUSREQ信号が出力されます。
  3. CPUはBUSREQ信号を検知すると,BUSACK信号をLowにし,データバスとアドレスバスをハイインピーダンス状態にします。
  4. BUSACK信号はU21(74HC00)で反転され,それを受けたU3(74HC74)はQ(9番ピン)からDMA信号,Q(8番ピン)からDMA信号を出力します。
  5. DMA信号はDMAアドレス生成部で使用されます。まずU14(74HC393)のクロックに入力されますが,仮に前の状態がQCQBQA=111とすると,このクロックの立ち下がりでQCQBQA=000となります。この値は次のU13(74HC367)によって,A15A2A1A0=1000となり,その他のアドレスは(3)によりハイインピーダンス状態なので10Kオームのプルアップ抵抗が効いてHiの状態になっており,生成されるアドレスはFFF8hとなります。このアドレスとMREQRDにより,データバス上にはFFF8h番地の内容が乗っています。
  6. DMA信号はU6(74HC107)とU21(74HC00)で構成される同期式カウンタの入力として使用され,データラッチ,アドレスラッチ(CLRと兼用)信号を出力します。同期式カウンタ部分を見ていくと,DMA信号はまず1段目の74HC107のJK端子に入りクロックに同期してQ(3番ピン)がHigh,Q(2番ピン)がLowになります(6−1)。Q(3番ピン)=High信号は,2段目の74HC107のJK端子に入り,次のクロックに同期してQ(5番ピン)がHighになります(6−2)。このとき,1段目のHC107の出力はQ,Qとも反転します。Q(2番ピン)とQ(5番ピン)を受けてU21(74HC00)からデータラッチ信号Lowが出力され(6−3),U20(74HC574)からデータバス上のFFF8h番地のデータがLEDへ出力されます。そして次のクロックで,Q(3番ピン)とQ(5番ピン)は共にHighとなり,CLR信号が出力されます(6−4)。CLR信号はタイミングチャートを見るとわかるように,いくつかの信号をクリアしますが,同時にU16(74HC137)の入力でアドレスラッチとしても使用しています。U16(74HC137)のデコーダ入力(ABC端子)は,U14(74HC393)で出力された下位3ビットアドレスと同じもので,出力はU17(TD62384)を介してLED2,3の桁選択に用いられます。いま,U14(74HC393)はQABC=000なので,U16(74HC137)の15番ピンがLowになり,LED2の最左端の桁がアクティブになります。

    以上 (1)〜(6)の一連の操作で7セグメントLED1桁を表示し,(1)〜(6)を8回繰り返すことにより全桁を表示することができます。

[先頭に戻る]

どうすれば7セグメントLEDに任意のデータを表示できますか。

    TK-Z80はDMAによりFFF8h〜FFFFh番地のメモリーの内容を自動的に表示します。それで,任意のデータを表示するにはこのアドレスにデータをセットすればよいことになります。各桁とアドレスの関係は次のようになっています。

           
FFF8h FFF9h FFFAh FFFBh FFFCh FFFDh FFFEh FFFFh

    各アドレスにはセグメントデータをセットすることになります。セグメントとデータビットの関係は次のとおりで,光らせたいセグメントに相当するデータビットに1をセットします。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
d.p. g f e d c b a

    なお,参考としてプログラム設計時に作成したモニターの表示プログラムのフローチャートをダウンロードすることができます。

[先頭に戻る]

モニタープログラムのキー入力はどうなっていますか。

    プログラム設計時のフローチャートをダウンロードしてください。詳細はこのフローチャートに記されています。(全3ページ。1ページ2ページ3ページ

[先頭に戻る]

モニタープログラムのワークエリア(RAM)の
割り付けはどうなっていますか。

    メモリーマップをダウンロードしてください。(全2ページ。1ページ2ページ

[先頭に戻る]

アセンブルからプログラムの実行までの手順を教えてください。

    アセンブラにXA80(システムロード社)を利用した場合の手順についての資料を下記からダウンロードしてください(Xa80.pdf)。他のアセンブラの場合でも参考になると思います。

[先頭に戻る]

Z-Vison Windowsを接続する場合はどのように設定しますか

    Z-Vision WindowsをTK-Z80で使用するときの設定方法については,次の資料をダウンロードしてください(zvr.pdf)。

[先頭に戻る]

Z-VisionやRM-80でトレース中に割り込み信号を入れても
割り込みプログラムに処理が移りません。なぜですか。

    Z-VisionやRM-80のトレースは,次に実行する命令の,さらに次に実行する命令を‘INT30H’に置き換えることで,1命令実行したあとでデバッガに処理を移しています。例として次のプログラムをトレースする場合を考えます。

LD A,30h ;(1)ここまでトレースしてきた
LD B,16h ;(2)次にこの命令を実行する
ADD A,B ;(3)

    (1)で止まっているときに割り込み信号を入れると,リモートデバッガ内はDIになっているので割り込みは一時保留になります。リモートデバッガからトレースでアプリケーションに処理が移るときに,これまでアプリケーションでEIであればEIに戻すので,それ以降,割り込みを受け付けることになります。つまり,(2)の命令を実行する前に割り込みを受け付けます。

    さて,(1)で止まっているときに割り込み信号を入れ,そしてトレースを行うと,(3)を‘INT30H’に置き換えてからアプリケーションに処理を移すので,割り込み処理と(2)の命令を実行してからデバッガに処理が移ります。というわけで,トレースでは割り込みプログラムに処理を移すことができません。

    対応策は,割り込みプログラムのデバッグは,割り込みプログラムの先頭にブレークをはって一度ブレークをかけてからトレースすることで行います。

[先頭に戻る]

キットを購入したのですが,
部品表と違う型番の部品が入っています。

    特にICのパッケージに記されている型番と部品表の型番が違うことがあります。しかしこれは相当品を使用しているためですので,動作的には何ら問題ありません。安心してお使いください。

[先頭に戻る]

戻る ホーム 上へ 進む

Copyright (c) 2000-2024 ToyoLinx Co.,Ltd.