ディジタルシステム設計と講義進度y-tani/Lecture/D.S/lec1.pdfディジタルシステム設計と講義進度...
Transcript of ディジタルシステム設計と講義進度y-tani/Lecture/D.S/lec1.pdfディジタルシステム設計と講義進度...
ディジタルシステム設計と講義進度
ここで学ぶことは
1.Z80マイクロプロセッサの構成(2週)Z80の内部構成 信号の流れ
2.Z80の命令(3週)転送 演算 入出力 ビット操作 その他
3.Z80マイクロコンピュータの構成(1週)バスライン ROM RAM I/O素子
4.マイクロコンピュータの周辺装置の知識(2週)8255 8251 Z80PIO Z80CTC Z80SIO
5.マイクロコンピュータシステム設計上の知識(2週)R C L Tr OPアンプ TTLの動作 インターフェース技術 動作
を安定にさせる技術 実装技術6.開発環境と開発事例(3週)ワンボードマイコン,計測制御システム,マイクロマウスロボット,
サッカーロボットなどの設計事例
マイクロコンピュータを理解する技術
1 デジタル回路
2 アナログ回路
3 制御回路
4.プログラミング技術
5.実装技術
6.センサー技術
7.マイクロコンピュータのハード回路とプログラム命令
主なマイクロコンピュータの誕生と進化
1971年
4004
1973年
8080
1972年
8008
1975年
Z80
1975年
8085
1974年
6800
1978年
8086
1978年
Z8000
1978年
MC68000
1977
MC14500B
1972年
3000
モトローラ
ザイログ
インテル
モトローラ
インテル
1ビット
4ビット
8ビット
16ビット
インテル
モトローラ
ザイログ
ビット・スライス
最近の代表的なマイクロプロセッサ
・
・ Z80マイコングループザイログZ80 東芝TMPZ84015BF川崎KL5C8012 日立64180
・ H8マイコングループ日立H8シリーズ
・ PICマイコングループMicrochip Technology PICシリーズ
Z80マイクロプロセッサのアーキテクチャ
B C
D E
H L
IX
IY
SP
PC
C’E’
L’
IR
バッファ
ALU
A
F
A'
バッファ
内部バス データバス
アドレスバス
コントロール
バス
メモリ
&入出力ポート
レジスタ指定
デコーダ
フラグ
Z80のレジスタ構成(‘は裏レジスタ)
A A’ アキュームレータ 演算の中心となる.
F F’ フラグレジスタ アキュームレータの状態を記録
B C D E H L B’C’D’E’H’L’ 汎用レジスタ
IX IY インデックスレジスタ
SP スタックポインタCALL文実行後の戻り先番地や汎用レジスタの一時待避先番地を指す.
PC プログラムカウンタ
I 割り込み番地指定レジスタ(上位8ビット)
割り込み要求入出力デバイスが下位8ビットを発生する.
R リフレッシュレジスタ
Z80の端子
A15
A14
A13
A12
A11
A10
A9
A7
A6
A5
A4
A3
A2
A1
A0D7
D6
D5
D4
D3
D2D1
D0
A8
WR
RD M1
MR
EQ
IOR
Q
RFSH
HA
LT
WA
IT
INT
NM
I
RE
SET
BU
SRQ
BU
SAKφ
+5
VG
ND
アドレス バスデータ バス
システム制御CPU制御CPUバス制御
Z80 CPU
負論理動作
正論理動作
Z80CPUの端子の機能(1)アドレスA0-A15 ; アドレスバス トライステート,アクティブ“H”
メモリ内のデータや入出力デバイスのデータの送受のためのアドレス指定を行う.データD7-D0 ;データバス トライステート,アクティブ“H”
8ビットの双方向性データバス.M1 ; マシンサイクル 出力 アクティブ “L”
現在のマシンサイクルが命令実行中のOPコードフェッチサイクルであるときに出力.2バイトのOPコード実行中にはOPコードフェッチサイクル毎に出力.MERQ ; メモリ要求 トライステート出力 アクティブ“L”
メモリ読み出し,メモリ書き込みの実効アドレスがアドレスバスに乗っているときに出される.IORQ ; 入出力要求 トライステート出力 アクティブ“L”
入出力の読み出し書き込みのための実効入出力アドレスがアドレスバスの下位8ビット上に乗っているときに出される.
Z80CPUの端子の機能(2)
RD ; メモリ読み出し トライステート出力 アクティブ“L”CPUがメモリ,あるいは入出力デバイスからデータを受け入
れる期間に出力.
WR ; メモリ書き込み トライステート出力 アクティブ“L”CPUデータバスに指定したメモリあるいは入出力デバイスに
ストアするべきデータが乗っているときに出される.
RFSH ; レフレッシュ 出力 アクテイブ“L”ダイナミックメモリのためのリフレッシュアドレスがアドレスバスに乗っているときに出される.
HALT ; ホールド 出力 アクティブ“L”CPUがHALT命令を実行し,ノンマスカブルあるいはノンマスカブルな割り込み待ちとなったとき出される.ホールド時はNOPを実行することによりリフレッシュ信号を出し続ける.
Z80CPUの端子の機能(3)
WAIT ; ウエイト 入力 アクティブ“L”この信号を用いて,メモリあるいは入出力デバイスがデータの送出の準備が出来ていない旨をZ80CPUに知らせる.この信号がアクティブである限りCPUはウェイト状態を続ける.
INT ; 割り込み要求 入力 アクティブ“L”割り込み要求信号は入出力デバイスから発せられる.ソフト的(プログラム)に割り込み許可フラグ(1FF)がセットしてあり,BUSRQ信号がノンアクティブならば割り込み要求は実行中の命令が終わり次第受け付けられる.
NMI ; ノンマスカブル割り込み 入力 下がりエッジ検知INTより高位の優先順位を持っていて現在実行中の命令の最後のTサイクルの立ち上がりまでに入力しているとその命令完了後に受け付けられる.割り込みの許可フラグに関係ない.NMI入力でCPUは自動的に0066H番地からスタートする.
Z80CPUの端子の機能(4)RESET ; 入力 アクティブ“L”RESET入力によりプログラムカウンタはゼロとなりCPUは初期化される.このとき次の状態になる.
1)割り込み許可フラグがリセットされる.2)レジスタI=00H3)レジスタR=00H 4)割り込みはモード0にセットされる.
BUSRQ ; バス要求 入力 アクテイブ“L”バス要求信号によりCPUのアドレスバス,データバス,及びトライステート出力の制御線は他のデバイスが使用できるように高インピーダンスとなる.
BUSAK ; バスアクノレッジ 出力 アクテイブ“L”CPUのアドレスバスデータバス及びトライステート制御バスが高インピーダンスとなり外部デバイスが使用できるようになった時点で出力
Φ ; 単相のTTLレベルのクロック信号
CPU基本タイミング例
φ
サイクル命令
MI M2 M3
(OPコード・フェッチ) (メモリ読み出し) (メモリ書き込み)
T1 T2 T3 T4 T1 T2 T3 T1 T2 T3
マシン・サイクル
CPU基本タイミング例
Tサイクル
命令OPコードフェッチサイクルM1サイクル
T1 T2 T3 T4 T1
プログラム・カウンタ リフレッシュ・アドレス
入力
RFSH
DB0~DB7
M1
WAIT
RD
MREQ
A0~A15
φ
命令OPコード・フェッチ(M1サイクル)
待ち時間を含む命令OPコードフェッチ
入力
φ
A0~A15
MREQ
RD
DB0~DB
M1
WAIT
RFSH
T1 T2 TW TW T3 T4
M1サイクル
プログラム・カウンタ リフレッシュ・アドレス
待ち状態を含む命令OPコード・フェッチ
メモリ読み出し書き込みサイクル
T1 T2 T3 T1 T2 T3
メモリ読み出しサイクル メモリ書き込みサイクル
メモリ・アドレス メモリ・アドレス
入力 データ出力
図4-3 メモリ読み出し、書き込みサイクル
φ
A0~A15
MREQ
RD
WR
(D0~D7)
WAIT
待ち時間を含むメモリ読み出し書き込みサイクルT1 T2
φ
A0~A15
MREQ
WR
WAIT
TW TW T1T3
メモリ・アドレス
入力
データ出力
(D0~D7)
図4-3A 待ち状態を含むメモリ読み出し、書き込みサイクル
読み出し
サイクル
書き込み
サイクル
(D0~D7)
RD
入力・出力サイクル
T1 T2 TW T3 T1
入力
出力
φ
A0~A7
IORQ
RD
データ・バス
WAIT
WR
読み出し
サイクル
書き込み
サイクル
図4-4 入力、出力サイクル
データ・バス
待ち状態を含む入力・出力サイクル
T1 T2 TW TW T3
ポート・アドレス
入力
出力
φ
A0~A7
IORQ
データ・バス
RD
WAIT
読み出し
サイクル
書き込み
サイクル
図4-4A 待ち状態を含む入力、出力サイクル
データ・バス
WR
バス要求アクノレッジサイクル
最終TステートTx Tx Tx T1
サンプル
フロート状態
サンプル
図4-5 バス要求/アクノリッジ・サイクル
BUSRQ
φ
BUSAK
A0~A15
MREQ、RDWR、IORQRFSH
各Mサイクルバス利用可の状態
D0~D7
割り込み要求/アクノレッジサイクル
プログラム・カウンタ
入力
リフレッシュ
図4-6 割り込み要求/アクノリッジ・サイクル
最終Tサイクル命令の最終Mサイクル M1
T1 T2 TW* TW* T3
φ
A0~A15
M1
MREQ
IORQ
データ・バス
WAIT
RD
INT
ノンマスカブル割り込み要求動作
プログラム・カウンタ リフレッシュ
図4-7 ノン・マスカブル割り込み、要求動作
最終Mサイクル最終Tタイム
T1 T1T2 T3 T4
φ
NM1
A0~A15
M1
MREQ
RD
RFSH
ホールド状態解除
φ
HALT
INTor
NM1
M1 M1M1
T4 T1 T1T2 T2T4T3
図4-8 ホールト状態解除ホールト命令はこの
メモリ・サイクル期間
で受け付けられる。
ウエイトステートを加えた要求アクノレッジサイクル
通常のアクノリッジ・タイム
1ウェイト・ステートの入ったアクノリッジ・タイム
T1 T2 TW TW TW T3
WAIT
データ・バス
IORQ’
IORQ
M1
自動ウェイト信号 ユーザウェイト命令の最終Mサイクルの最後の
Tステート
図4-6B ウェイト・ステートを1つ加えた要求/アクノリッジ・サイクル
Z80の命令 (転送命令の1例)
ニーモニック LD dd,nn
シンボリックオペレーション dd <= nn
OPコード 00 dd0 001 <-n ー> <- nー>dd は BC 00 DE 01 HL 10 SP 11
HEXコード(基本) 01+フラグ変化 C Z P/V S N H
・ ・ ・ ・ ・ ・ 変化なし
バイト数 3Mサイクル数 1Tステート数 10
Z80マイクロプロッセッサのアドレス方式
1.メモリ・レジスタ直接アドレス指定memory register direct addressing
2.レジスタ間接アドレス指定register indirect addressing
3.直接数値指定immediate addressing
4.インデックスアドレス指定index addressing
5.相対アドレス指定relative addressing
6.ビット指定bit addressing
教科書版
Z80のアドレッシング・モード
1. イミディエット・アドレッシング2. 拡張イミディエット・アドレッシング3. ゼロ・ページ修飾アドレッシング4. 相対アドレッシング5. 拡張アドレッシング6. インデックスド・アドレッシング7. レジスタ・アドレッシング8. インブライト・アドレッシング9. レジスタ間接アドレッシング10. ビット・アドレッシング
1. イミディエット・アドレッシング
OPコードに続く1バイトを実効オペランドとする.
OPコード オペランド
例1 アキュームレータに定数をロードする.LD A , 80H A <= 80H
2. 拡張イミディエット・アドレッシング
イミディエット・アドレッシングを拡張したものでオペランドが2バイトになっている.
OPコード オペランド オペランド
(下位データ) (上位データ)
例 16ビットデータをHLレジスタ対にロードする.
LD HL , nn HL <= nn
LD HL ,1234H
3. ゼロ・ページ修飾アドレッシング
メモリ0ページの8カ所を1バイトで指定する特別なコール命令(リスタート命令)
OPコード
実効アドレス 1 1 b5 b4 b3 1 1 1
5 4 3RST 00H 1 1 0 0 0 1 1 1 0000HへジャンプRST 08H 1 1 0 0 1 1 1 1 0018HへジャンプRST 10H 1 1 0 1 0 1 1 1 0010Hへジャンプ
RST 38H 1 1 1 1 1 1 1 1 0038Hへジャンプ
4. 相対アドレッシング
OPコードに続く1バイトにより,ジャンプ命令のある場所からのジャンプ先を指定する.
OPコード オペランド(2の補数)
ジャンプ先:OPコードのアドレス+2+(オペランド)
符号付き2の補数の範囲は-128から+127であるので
+129から-126の範囲へのジャンプ指定となる.
例 JR e PC <= PC+e
JR命令のある番地からeだけ離れた番地へ無条件でジャンプする
5. 拡張アドレッシング
命令に2バイトのアドレスデータを含む.メモリのある番地から他の番地へジャンプしたり,ある位置でのデータの出し入れに使う.
OPコード下位アドレスまたは下位オペランド上位アドレスまたは上位オペランド
例 LD A , (nn) A <= (nn)
LD A ,(1234H)1234H番地の内容をAレジスタに転送する
6. インデックスド・アドレッシング
OPコードのあとにメモリ・アドレスのポインタであるインデックスレジスタの内容に加えるディスプレイスメントを指定するデータバイトが置かれる.この操作でインデックスレジスタの内容は変わらない.
OPコード OPコード d(ディスプレイスメント)
(2バイトコード) (符号付き2の補数)
例 LD A ,(IX+d) A <= (IX+d)インデックスレジスタで指定するアドレスにdを加えたアドレスの内容をAレジスタに転送する.
7. レジスタ・アドレッシング
OPコード内にレジスタ指定ビットがある.1バイト命令である.
OPコード
例 LD B ,C B <= C
8. インブライト・アドレッシング
OPコード自体にレジスタ指定を含んでいて,1つまたは2つのレジスタが自動的に指定される.演算命令ではつねにアキュームレータが結果をセットするレジスタとなる.
OPコード
例1 演算命令
ADD A , B A <= A+B
例2 交換命令 EX DE ,HL DE HL
9. レジスタ間接アドレッシング
メモリ内の位置指定のポインタとして16ビットのレジスタペアが使用される.
OPコード (1バイトまたは2バイト)
例 LD A , (HL) A <= (HL)
HLで示す番地の内容をAレジスタに転送する.
10. ビット・アドレッシング
Z80にはビットセット リセット テスト命令がある.これらの命令は,どのメモリ位置 CPUレジスタに対しても有効でレジスタ,レジスタ間接及びインデックスドのいずれのアドレッシングモードでも操作できる.
例 BIT 0,A
A の0ビット目のテスト,結果はFレジスタに
RES 1,(HL)
HLで示す番地の内容の1ビット目のを0にする.
SET 2,(IX+d)
インデックスレジスタで示すアドレス+d番地の内容の2ビット目を1にする.
メモリ・レジスタ直接アドレス指定
メモリの番地やレジスタ名を直接命令の中で指定する
1. ADD A , B A <= A + B2. LD A , (0100H) A <= (0100H)
Z80マイクロプロセッサの命令体系
(1)データ転送命令( data transfer instruction )
(2)算術論理演算命令( operation instruction )
(3)分岐命令( branch instruction )
(4)サブルーチン関連命令( subroutine call / returninstruction )
(5)入出力命令( input / output instruction )
(6)CPU制御命令( CPU control instruction )
(1)データ転送命令
ニーモニックコード 機能
LD r,r‘ r <= r’
LD r,n r <= n
LD rp ,nn rp <= nn
LD r ,(nn) r <= (nn)
LD (nn),r (nn) <= r
LD (rp),A (rp) <= A
LD A,(rp) A <= (rp)
但し r,r‘ ;A,B,C,D,E,H,L n, nn ; 8ビット 16ビットデータrp;ペアレジスタ(BC,DE,HL) ( );( )内の番地の内容
PUSH qq (SPー1) <= qqH (SPー2)<=qqL
POP qq qqL <= (SP) qqH <= (SP+1)
(2)算術論理演算命令
演算命令
ニーモニック 機能
ADD 加算命令 例 ADD A,n A <= A+n
ADC キャリを含む加算命令 例 ADC A,n A <= A +n + CY
SUB 減算命令 例 SUB s A <= A - s
SBC キャリを含む減算命令 例 SBC s A <= A – s - CY
AND 論理積 例 AND s A <= A * s
XOR 排他的論理和 例 XOR s A <= A s
OR 論理和 例 OR s A <= A + s
CP 比較 例 CP s A - s (内容は不変)
INC +1 例 INC r r <= r+1
DEC -1 例 DEC r r <= r – 1
(3)分岐命令
ニーモニック 機能
1. JP nn PC <= nn
2. JP cc,nn if cc = true , PC <= nn
条件符号cc フラグ 条件
NZ Z=“0” 演算結果がゼロでない
Z Z=“1” 演算結果がゼロである
NC CY=”0” MSBから桁上げがない
C CY=”1” MSBから桁上げがある
PO P=“0” 8ビット中“1”の個数が偶数
PE P=”1” 8ビット中“1”の個数が奇数
P S=”0” MSBが“0”
M S=”1” MSBが“1”
(4)サブルーチン関連命令ニーモニック 機能
CALL nn スタックメモリ<= PC, PC<=nn
(SP-1)<=PCH ,(SP-2)<=PCL ,PC<=nn
RET PC <= スタックメモリ
PCL<=(SP),PCH<=(SP+1),SP<=SP+1
CALL cc,nn ccの条件が合えばCALL文を実行
RET cc ccの条件が合えばRET文を実行NZ Z=“0” 演算結果がゼロでない
Z Z=“1” 演算結果がゼロである
NC CY=”0” MSBから桁上げがない
C CY=”1” MSBから桁上げがある
PO P=“0” 8ビット中“1”の個数が偶数
PE P=”1” 8ビット中“1”の個数が奇数
P S=”0” MSBが“0”
M S=”1” MSBが“1”
(5)入出力命令
ニーモニック 機能
IN A , (n) A <= ポート番号
IN r , ( C ) r <= ( C )
レジスタCで示すポート番号の内容を r レジスタに入力
OUT (n),A ポート番号 <= A
OUT (C),A レジスタCで示すポート番号<=A
他に
OTIR,OUTD,OTDR,INI,INIR,IND,INDR
(6)CPU制御命令
ニーモニック 機能
NOP 何もしない
HALT 停止状態になる
DI 割り込み受付禁止
EI 割り込み受付許可
IM0 割り込みモード0 8080Aモード
IM1 割り込みモード1 38Hへのコール命令
IM2 割り込みモード2
レジスタIと割り込みデバイスからの8ビットデー タを用いた間接コール命令
ローティとシフト命令
CY b7 b0
b7 b0
b7 b0
b7 b0
CY
CY
CY
左ローティトサーキュラ
左ローティト
右ローティト
右ローティトサーキュラ
RLC
RRC
RL
RR
CY b7 b0 0
b7 b0
b7 b0
0
CY
CY
算術的左シフト
算術的右シフト
論理的右シフト
SLA
SRA
SRL
B7 B4 B3 B0B3 B0
Acc (HL)
右ローティトデジット RRD
B7 B4 B3 B0B3 B0
Acc (HL)
左ローティトデジット RLD
ブロックサーチ命令
CPI ; Aー(HL) ,HL <= HL+1 ,BC <= BC++1(HL)の内容で指定されるメモリの内容とAとの内容を比較する.
CPIR ; Aー(HL) ,HL <= HL+1 ,BC <= BC++1(HL)の内容で指定されるメモリの内容とAとの内容を比較する
BCがゼロか,比較した結果が等しくなるまで繰り返す.
CPD ; A=(HL) , HL <= HL-1 , BC <= BC-1(HL)の内容で指定されるメモリの内容とAとの内容を比較する
CPDR ; A=(HL) , HL <= HL-1 , BC <= BC-1(HL)の内容で指定されるメモリの内容とAとの内容を比較する
BCがゼロか,比較した結果が等しくなるまで繰り返す.
交換
EXX BC BC’ DE DE’ HL HL’
レジスタペアの内容をそれぞれ裏レジスタの内容と交換する.
EX DE , HL DE HL
EX AF , AF’ AF AF’
EX (SP) , HL L (SP) H (SP+1)
EX (SP) , IX IXL (SP) IXH (SP+1)
EX (SP) ,IY IYL (SP) IYH (SP+1)
リスタート命令
RST 0 0000Hへジャンプ C7H
RST 8 0008Hへジャンプ CFH
RST 16 0010Hへジャンプ D7H
RST 24 0018Hへジャンプ DFH
RST 32 0020Hへジャンプ E7h
RST 40 0028Hへジャンプ EFH
RST 48 0030Hへジャンプ F7H
RST 56 0038Hへジャンプ FFH
その他の操作命令
DAA
2進化10進法による加減算の際にAの内容を補正する
CPL
Aの内容について1の補数をとる.(反転させる)
NEG A<=0-A
Aの内容について2の補数をとる.
CCF
キャリーフラグの内容の1の補数をとる
SCF CY <= 1
キャリーフラグをセットする.
ブロック転送命令
LDI (DE) <= (HL) , DE <= DE+1 , HL <= HL+1 , BC <= BC-1
(HL)の内容を(DE)へ転送する.
LDIR (DE) <= (HL) , DE <= DE+1 , HL <= HL+1 , BC <= BC-1
(HL)の内容を(DE)へ転送する.この操作をBCが0になるまで繰り返す.
LDD (DE) <= (HL) , DE <= DEー1 , HL <= HLー1 , BC <= BCー1
(HL)の内容を(DE)へ転送する
LDDR (DE) <= (HL) , DE <= DE-1 , HL <= HLー1 , BC <= BCー1
(HL)の内容を(DE)へ転送する.この操作をBCが0になるまで繰り返す.
8ビット算術論理演算命令
8ビット算術、論理演算
ソース
A B C D E H L (HL)(IX
+d)
(IY
+d)n
レジスタ・アドレシングレジスタ
間接インデックスド
イミディ
エット
’ADD’
ADDwCARRY
’ADC’
SUBTRACT
’SUB’
SUBwCARRY
’SBC’
’AND’
’XOR’
’OR’
COMPARE
’CP’
INCREMENT
’INC’
DECREMENT
’DEC’
87 80 81 82 83 84 85 86
8F 88 89 8A 8B 8C 8D 8E
97 90 91 92 93 94 95 96
9F 98 99 9A 9B 9C 9D 9E
A7 A0 A1 A2 A3 A4 A5 A6
AF A8 A9 AA AB AC AD AE
B7 B0 B1 B2 B3 B4 B5 B6
BF B8 B9 BA BB BC BD BE
3C 04 0C 14 1C 24 2C 34
3D 05 0D 15 1D 25 2D 35
DD FD
d n86
CE8E
96
9E
A6
AE
B6
BE
34
35
FE
F6
EE
E6
DE
D6
DD
DD
DD
DD
DD
DD
DD
DD
DD
FD
FD
FD
FD
FD
FD
FD
FD
FD
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
n
n
n
n
n
n
n
06
35
34
BE
B6
AE
A6
9E
96
8E
86
8ビット転送命令
I R A B C D E H L (HL) (BC) (DE)(IX+d)(IY+d) (nn) n
A
B
C
D
E
H
L
(HL)
(BC)
(DE)
(IX+d)
(IY
+d)
(nn)
I
R
インプライドレジスタ レジスタ間接
インデッ 拡張アド
レシング
イミディ
エット
レジスタ
レジスタ間接
インデッ
拡張アド
レシング
インプライド
ED
57
ED
5F 7F 78 79 7A 7B 7C 7D 7E 0A 1ADD7Ed
FD7Ed
3Ann
3E
n
47 40 41 42 43 44 45 46 46DD
d
FD46d n
06
4F 48 49 4A 4B 4C 4D 4E 4EDD
d
FD4Ed n
n
n
n
n
n
DD
DD
DD
DD
d
d
d
d
FD
FD
FD
FD
d
d
d
d
57 50 51 52 53 54 55 56 56 56
0E
16
1E
26
2E
36
5E
66
6E
5E
66
6E
5F 58 59 5A 5B 5C 5D 5E
67 60 61 62 63 64 65 66
6F 68 69 6A 6B 6C 6D 6E
77 70 71 72 73 74 75
02
12
DD
dFD
d
DD DD DD DD DD DD
d d d d d d
FD FD FD FD FD FD
d d d d d d
77 70 71 72 73 74 75
77 70 71 72 73 74 75
ED
47
ED
4F
32nn
FD
DD
d
dn36
36n
8ビットロード”LD” ソース 注36
注31
注32
注33
注34
注35
ディスティネーション
クスド
クスド
16ビット転送命令
レジスタ
16ビットロード”LD”
ディスティネーション
AF BC DE HL SP IX IY nn (nn) (SP)
AF
BC
DE
HL
SP
IX
IY
(nn)
(SP)
ソース
拡張イミ
Σィエット
拡張アド
レシング
レジスタ
間接
注37
PUSH命令
POP命令
拡張アドレシング
レジスタ間接
レジスタ
F1
C1
D1
E1
DD
FD
E1
E1
01nn
ED4B
11
21
5B
2A
317B
DD
F9
43 5322
73
F5 C5 D5 E5E5
nn
nn
nn
nn
DD
F9
FDF9
nn
ED
nn
ED
nn
ED
nn
n2An
21FD
nn
FD2Ann
21DD
nn
nnnn n
n
DD FD
nn
nn
FD
22 22ED ED ED
→
↑(注)PUSHおよびPOP命令の
全実行が終わったあとに
SPが修正される。
ポップ命令はプッシュ命令とちょうど逆の操作になる。
16ビット算術演算命令
BC DE HL SP IX IY
HL
IX
IY
HL
HL
’ADD’
ADD WITH CARRY AND
SET FLAGS ’ADC’
SUB WITH CARRY AND
SET FLAGS ’SBC’
INCREMENT ’INC’
DECREMENT ’DEC’
16ビット算術演算
ソース
ディスティネーション
09 19 29 39
DD DD DD DD09 19 39 29
09 19 39 29
FD FD FD FD
ED ED ED ED
ED ED ED ED
4A 5A 6A 7A
42 52 62 72
23
2B
DD
DD
FD
FD
23
2B
03 13 23 33
0B 1B 2B 3B
ジャンプコールリターング命令
JUMP ’JP’
JUMP ’JP’
JUMP ’JP’
JUMP ’JP’
JUMP ’JR’
’CALL’
DECREMENT B,
JUMP IF NON
ZERO ’DJNZ’
RETURN
’RET’
RETURN FROM
INT ’RETI’
RETURN FROM
NON MASKABLE
INT ’RETN’
無条件 キャリ
ノン・
ゼロ
パリティ
偶数 奇数 負 正 カウント
パリティゼロキャリ
ノン・
拡張イミ
ディエット
相対
レジスタ
間接
間接
間接
間接
レジスタ
レジスタ
レジスタ
相対
ディエット
拡張イミ
nn
PC+e
(HL)
(IX)
(IY)
nn
(SP)
(SP+1)
(SP+1)
(SP)
(SP+1)
(SP)
PC+e
n
nn
n n n n n n n nn n n n n n n n
n n n n n n n nn n n n n n n n n
e-2 e-2 e-2 e-2 e-2
C3 DA D2 CA C2 EA E2 FA F2
E9
DD
E9
FD
E9
C9
ED
4D
ED
45
D8 D0 C8 C0 E8 E0 F8 F0
18 38 30 28 20
CD DC D4 CC C4 EC E4 FC F4
10
e-2
ジャンプ,コール,リターングループ
条件
あるフラグは1つ以上の
目的で用いられる。
詳細は第6章参照。
CPU制御命令
’NOP’
’HALT’
DISABLE INT ’(DI)’
ENABLE INT ’(EI)’
SET INT MODE 0
’IM0’
SET INT MODE 1
’IM1’
’IM2’
SET INT MODE 2
00
76
F3
FB
ED
46
ED
56
ED
5E
CPU制御命令
8080A モード
38H番地へのコール命令
レジスタIと割り込みデバイス
からの8ビットデータを用いた
間接コール命令
その他の命令
Decimal Adjust Acc,’DAA’
Complement Acc,’CPL’
Negate Acc,’NEG’
(2’complement)
Complement Carry Flag,’CCF’
Set Carry Flag,’SCF’
27
2F
ED
44
3F
37
その他の操作
フラグの変化
INIR;INDR;OTIR;OTDR
命 令 C Z S N H
P
V/
0
1
X
P
V
●
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
● ● ●
● ● ●
V
V
V
V
P
V
V
P
P
P
P
1 1
1
1
1
1
1
1
1
1
X
X1
X
X X X
XX X1
X
X
X
X0
X X
X X
0IFF
備 考
ADD A,s;ADC A,s
SUB s;SBC A,s,CP s
NEG
AND s
OR s;XOR s
INC
DEC s
ADD dd,ss
ADC HL,ss
RLA;RLCA;RRA;RRCA
SBC HL,ss
RL s;RLC s;RR s;RRC s
SLA s;SRA s;SRL s
RLD,RRD
DAA
CPL
SCF
CCF
IN r,(C)
INI;IND;OUTI;OUTD
LDI,LDD
LDIR,LDDR
CPI,CPIR,CPD,CPDR
LD A,I;LD A,R
BIT b,s
8ビット加算、キャリを含む加算
8ビッ減算、キャリを含む加算、比較
符号反転(ニゲイト)
論理演算
8ビット、インクリメント
8ビット、デクリメント
16ビット加算
16ビットキャリを含む加算
16ビットキャリを含む減算
ローテイト・アキュウムレータ
ローテイト・シフトs
ローテイト・デジット 左、右
デジタル・アジャスト・アキュムレータ
アキュムレータ補数変数
セット・キャリ
キャリ補数変数
レジスタ間接入力
ブロック入出力
B≠0 ならばZ=0、その他はZ=1
ブロック転送
B≠0 ならばP/V=0、その他はP/V=0
ブロック・サーチ
A=(HL) ならばZ=1、その他はZ=0
BC≠0 ならばP/V=1、その他はP/V=0
IFFの内容がP/Vにコピーされる
sのビットbの内容がZにコピーされる
記号の説明
記号の説明
C ;キャリ/リンク・フラグ 結果のMSBからのキャリがあれば、C=1。
Z ;ゼロ・フラグ 零ならば、Z=1。
S ;サイン・フラグ 結果のMSBが1ならば、s=1。
P/V ;パリティとオーバフロー兼用フラグ 結果が奇数、またはオーバフローならば、P/V=1。
結果が偶数ならば、P/V=0。H ;ハーフ・キャリ 結果にキャリ、ボローがあれば、H=1。
N ;加算/減算フラグ さきの演算が減算ならば、N=1
; 操作の結果、変化する。
● ; 操作の結果、変化しない。
0 ; 操作により、リセットされる。
X ; 無視して良い。
V ; オーバ・フラグとして扱われる。
P ; パリティ・フラグとして扱われる。
s ; 8ビット・ロケーション。
R ; リフレッシュ・カウンタ。
I ; Iレジスタ(割り込みベクトルの上位バイト用)。
r ; CPUレジスタA,B,C,D,E,H,L。
ss ; 16ビット・ロケーション。
n ; 8ビット値(0~255)。
nn ; 16ビット値(0~65535)。
Z80マイクロプロッセッサのフラグレジスタ
S Z X H X P/V N CY
MSB LSB
フラグ フラグが“1”にセットされる条件
S 演算の結果、MSB=1のときZ 演算の結果、すべてのビットが“0”のときX 未使用H 演算の結果、下位4桁目からの桁上げが生じたときX 未使用P/V 演算の結果、“1”の個数が偶数のとき
算術演算の結果、扱える数値の範囲を超えたときN 加減算フラグ ADD命令で“0” SUB命令で“1”にセットCY 演算の結果、MSBからの桁上がりが生じたとき
入力命令
入力命令群
ソース
入力ポート
ディスティネーション
入力
INPUT’IN’
ブロック入力
コマンド
’INI’_INPUT &
Inc HL,Dec B
’INIR’_INP,Inc HL,
Dec B,REPEAT IF B≠0
’IND’_INPUTρ
Dec HL,Dec B
’INDR’_INPUT,Dec HL,
Dec B,REPEAT IF B≠0
レジスタ・
アドレシング
レジスタ
間接
イミディ
エット
レジスタ
間接
A
(n)(C)
B
C
D
E
H
L
(HL)
DBn
ED
ED
ED
ED
ED
ED
ED
ED
ED
ED
ED
78
40
48
50
58
60
68
A2
B2
AA
BA
出力命令
レジスタレジスタ
間接
イミディ
エット
レジスタ
間接
レジスタ
間接
レジスタ
間接
レジスタ
間接
レジスタ
間接
A B C D E H L (HL)
(n)
(C)
(C)
(C)
(C)
(C)
D3n
ED ED ED ED ED ED ED
ED
79 41 49 51 59 61 69
ED
ED
ED
A3
B3
AB
BB
’OUT’
’OUTI’_OUTPUT
Inc HL,Dec b
’OTIR’_OUTPUT,Inc HL,
Dec B,REPEAT IF B≠0
’OUTD’_OUTPUT
Dec HL & B
’OTDR’_OUTPUT,Dec HL
& B,REPEAT IF B≠0
出力ポート
ディスティネーション
ブロック出力
コマンド
ソース
出力命令群
ビット操作命令レジスタ・アドレシング
レジス
タ間接
インデッ
クスド
ビット
TEST
’BIT’
RESET
BIT
’RES’
SET
BIT
’SET’
A B C D E H L (HL)(IX+d)(IY+d)
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CB CB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
CB CB CB CB CB CB CB CBCB CB
40 41 42 43 44 45 4647
48 49 4A 4B 4E4C 4D4F
DD FD
d
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
FD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
DD
d d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d d
d
d d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
46 46
4E4E
50 5157 52 53 54 55 56
5F 58 59 5A 5B 5C 5D 5E
67 60 61 62 63 64 65 66
6F 68 69 6A 6B 6C 6D 6E
77 70 71 72 73 74 75 76
7F 78 79 7A 7B 7C 7D 7E
87 80 81 82 83 84 85 86
8F 88 89 8A 8B 8C 8D 8E
97 90 91 92 93 94 95 96
9F 98 99 9A 9B 9C 9D 9E
A7 AO A1 A2 A3 A4 A5 A6
AF A8 A9 AA AB AC AD AE
B7 B0 B1 B2 B3 B4 B5 B6
BF B8 B9 BA BB BC BD BE
C7 C0 C1 C2 C3 C4 C5 C6
CF C8 C9 CA CB CC CD CE
D7 D0 D1 D2 D3 D4 D5 D6
DF D8 D9 DA DB DC DD DE
E7 E0 E1 E2 E3 E4 E5 E6
EF E8 E9 EA EB EC ED EE
F7 F0 F1 F2 F3 F4 F5 F6
FF F8 F9 FA FB FC FD FE
56 56
5E 5E
66 66
6E 6E
76 76
7E 7E
86 86
8E 8E
96 96
9E 9E
A6 A6
AE AE
B6 B6
BE BE
C6 C6
CE CE
D6 D6
DE DE
E6 E6
EE EE
F6 F6
FE FE
ビット操作グループ
ブロック転送命令
レジスタ
間接
ディスティネーション
(HL)
(DE)
ED
A0
B0
A8
B8
HLはソースのポインタ。
DEはディスティネーションのポインタ。
BCはバイトカウンタ。
’LDI’_Load(DE)←(HL)
Inc HL & DE,Dec BC
’LDIR’_Load(DE)←(HL)
Inc HL & DE,Dec BC,Repeat until BC=0
’LDD’_Load(DE)←(HL)
Dec HL & DE,Dec BC
’LDDR’_Load(DE)←(HL)
Dec HL & DE,Dec BC,Repeat until BC=0
ED
ED
ED
レジスタ
間接
ソース
ブロック転送グループ
ロケーション
ローテートとシフト命令
ソースおよびディスティネーション
ローテイト
あるいは
シフトの型
ローテイトとシフト
A B C D E H L (HL)
(IX
+d)
(IY
+d)
’RLC’
’RRC’
’RR’
’RL’
’SLA’
’SRA’
’SRL’
’RLD’
’RRD’
CB
CB
CB
CB
CB
CB
CB
CB CB CB CB CB CB CB
CB CB CB CB CB CB CB
CB CB CB CB CB CB CB
CB CB CB CB CB CB CB
CB CB CB CB CB CB CB
CB CB CB CB CB CB CB
CB CB CB CB CB CB CB
07 00 01 02 03 04 05 06CB CB
CBCB
CB
CB
CB
CB
CB
CB
CB
CB
CB
CB
DD FD
d
DD
DD
DD
DD
DD
DD
FD
FD
FD
FD
FD
FD
d
d
d
d
d
d
0F 08 09 0A 0B 0C 0D 0E
17 10 11 12 13 14 15 16
1F 18 19 1A 1B 1C 1D 1E
27 20 21 22 23 24 25 26
2F 28 29 2A 2B 2C 2D 2E
3F 38 39 3A 3B 3C 3D 3E 3E 3E
2E 2E
26 26
1E 1E
16 16
0E 0E
06 06d
d
d
d
d
d
d
ED
ED
67
6F
A
RLCA
RRCA
RLA
RRA
07
0F
17
1F
左ローテイト・サーキュラb7 b0CY
CY
右ローテイト・サーキュラ
左ローテイト
右ローテイト
算術的左シフト
算術的右シフト
論理的右シフト
0
0
左ローテイト
右ローテイト
b3 b0 b0b3 b0b3
ACC
(HL)デジット
ACC
(HL)デジット
ブロックサーチ命令
Repeat until BC=0 or find match
HLはアキュウムレータの内容と照合する
メモリの位置のポインタ。
BCはバイトカウンタ。
’CPI’
Inc HL,Dec BC
’CPIR’,Inc HL,Dec BC
’CPD’Dec HL & BC
A1
B1
A9
B9
(HL)
レジスタ
間接
ED
ED
ED
ED
repeat until BC=0 or find match
’CPDR’Dec HL & BC
ブロックサーチサーチ
ロケーション
割り込みとは
現在実行中の処理を一時中断し,より緊急度の高い処理に強制的に実行を移すこと.
1.電源遮断など異常事態が発生したときの対応2.プロセッサに比べて処理速度の遅い入出力装置とのデータ転送3.タイマからの割り込みを利用したリアルタイム制御4.不正な演算など異常事態が生じた場合からの復帰5.プログラムが暴走したときなどからの復帰
別の観点から見ると 外部機器主導の制御方法である.処理中
処理依頼1
処理依頼2 優先順位が高
い方から処理優先順位が低い
方の処理が行わ
れていた場合
処理1 処理2
処理1
処理2
一般の処理と割り込み処理の違い START
CALL 処理1
CALL 処理2
CALL 処理3
CALL 処理4
CALL 処理N
CALL文による方法
メインプログラム
処理プログラム 一般の処理
CALL文でジャンプする
割り込み処理
割り込み要求でジャンプする
処理p
RETI
RETI
RETI
RETI
処理1
処理2 処理N
処理3
START START
STARTSTART
START
割り込みによる方法
Z80の割り込み処理
IEI IEO IEI IEO IEI IEO IEI IEO
Z80
CPU メモリI/O1 I/O2 I/O3 I/O4
Vcc
H LH H L L L L
割り込み
INT信号
Iレジスタ 28H
IO2 アドレス 00H
I + IO2 = 2800H
0000H
2800H
3000H
4000H5000H
00H30H00H40H00H50H
処理1
処理2
処理3
00H 02H 04H06H
2802H
2804H
アドレス
テーブル ; PIO MODO 0
ORG 0000H
LD SP , 0000H
IM 2
LD A , 28H
LD I , A
LD A , 00001111B ;動作モード
OUT (PIOCON) , A
LD A,00H ;割り込みベクトル
OUT (PIOCON),A
LD A , 1000111B ;割り込み制御語OUT (PIOCON) , A
FFFFH
Z80のデージーチェーンでの割り込みサービス
IEI IEO IEI IEO IEI IEO IEI IEO
Vcc
IEI IEO IEI IEO IEI IEO IEI IEO
Vcc
IEI IEO IEI IEO IEI IEO IEI IEO
Vcc
IEI IEO IEI IEO IEI IEO
Vcc
IEI IEO IEI IEO IEI IEO
Vcc
H H H H H
1.割り込み発生前のデージーチェーンの状態
サービス受付H H H L L
サービス受付 サービス中断H H L L L
ポート1 ポート2 ポート3 ポート4
2.ポート3が割り込みを要求し受け付けられる.
3.ポート2が割り込みを発生し,ポート3のサービスを保留
サービス完了 サービス続行H H H L L
RETI
4.ポート2のサービスを完了しRETIを実行しポート3のサービスを再開
RETI
サービス完了H H H H H
5.ポート3のサービスを完了後RETIを実行する.
マイコンによる各種制御法
CPU ROM/RAM IO-1 IO-2
温度 / モータ制御など
アドレスデータ
コントロール
制 御計 測
A)一定時間毎に計測し,設定値との差を修正する。
B)設定値との差が指定値を上回ったときのみ修正をくわえる。
計測
計測制御
有効
時間
計測
計測制御
計測制御
有効
無効
無効
有効
計測制御
計測制御
計測制御 時間
有効
有効
有効
無効
無効
無効
無効
無効
無効
マイコンの制御対象のおよその応答時間
1.キー入力:全く期待できない
2.ディスプレイ表示:60分の1秒毎
3.モータ制御:数10から数100回転毎の計測と制御
4.温度制御:一般に対象物の温度慣性が大きく数分以上
5.音による計測制御:音波の伝搬速度による
6.光による計測制御:高速である
7.
8.
9.
10.
マイクロコンピュータの構成
CPU ROM RAM I/O1
Add BUSData BUS
Control BUS
I/O2
16
813
クロック
CPU 中央処理装置
ROM 読み出し専用メモリ 電源を切っても内容が消えない
RAM 読み書き(作業)用メモリ 電源を切ると内容が消える
I/O 外部装置とのインターフェースに用いる。INPUT/OUTPUT
クロック CPUを動作させるための基準信号。
キーボード 表示装置 外部制御装置
外部制御装置 例として モータ制御回路、温度センサ etc
I/O
i8255
Z80PIO
など
クロック回路とパワーオンリセット回路
クロック回路 リセット回路
5V
D
C
R
SW
図 2 3 リ セ ッ ト 回 路
5VR
C
X
F/F
R
φ
図 2 2 水 晶 発 振 回 路
CPUの動作の基準となるZ80CPUのクロック条件は
電源ON時に自動的にリセットを掛けるCPUはリセットされると次の状態になるPC => 0000H
ICメモリの種類
読出し書込みメモリ 読出し専用メモリ
Read write memory RWM read only memory ROM
電源を切るとデータが消える 電源を切ってもデータは消えない
ICメモリの分類ICメモリ
RAM
SAM
読み書き可能形
RAM
読出し専
用形 ROM
ユーザ書込
み形 PROM
書換え可能
形 EPROM
書換え
不可能形
マスクROM
DRAM
SRAM
電気的消去形
EEPROM
紫外線消去形
EPROM
CCD
ヒューズ切断形
(random
access
memory)
(read only
memory)
(programmable
ROM)
( erasable
PROM)
(dynamic RAM)
(static RAM)
(electrically
erasable PROM)
(charge
coupled device)(sequential access memory)
記憶容量の表現
210= 1024ビット 1Kbit 128バイト
214= 16384ビット 16Kbit 2048バイト 2KB
216= 65536ビット 64Kbit 8192バイト 8KB
220= 1048576ビット 1Mbit 131072バイト 131KB
230=1073741824ビット 1Gbit 134217728バイト 134MB
メモリ回路構成例例えば16Kビットメモリの場合
1ビット構成 並列 1ビット*16384
4ビット構成 並列 4ビット* 4096
8ビット構成 系列 8ビット* 2048
データ線
D7
D0
1Bit
構成
4bit
構成
8bit
構成
行アドレス
列アドレスメモリ メモリ メモリ
メモリ回路例
ROM 8KB 0000H ~ 1FFFH メモリ名 2764RAM 8KB 2000H ~3FFFH メモリ名 6264
RAM(6264)
ROM(2764)
D A
ADD0-13
8
A14
CSCS
RD
MREQ
WR
1FFFH
3FFFH
0000H
FFFFH
ROM
RAMOE OE
WW
i8255の動作
1.形状とピン配置
2.i8255のブロック構成
3.動作モード
4.コントロールワードの設定
5.Cポートのビット制御ワードの設定
6.回路例
1.形状とピン配置内部側端子 外部側端子
PA7
PA0
PB7
PB0
PC7
PC4PC3
PC0
ポートAグループ
ポートBグループ
D7
D0
CS
RD
WR
A1
A0
RESET
データ線
2.i8255のブロック構成
RD
WR
A1
A0
RESET
CS
CPUデー
タバス
D0-D7
データ
バスバ
ッファ
リード
ライト
コント
ロール
グループA
コントロー
ルレジスタ
(4)
グループB
コントロー
ルレジスタ
(4)
グループ
Aポート
PA(8)
グループ
Bポート
(8)
グループ
Aポート
C上位
グループ
Bポート
C下位
入出力
PA0-PA7
入出力
PC4-PC7
入出力
PC0-PC3
入出力
PB0-PB7
CPU側 周辺側
( )内はビット数
3.i8255の動作モード1.モード0 ベーシック入出力動作単純な入力,あるいは出力ポートとして使用(PA7-0 PC上位7-4 PC下位3-0 PB7-0)
2.モード1 ストローブ入出力動作8ビットのデータポート(入力または出力)と4ビットのコントロールポートからなる.PAグループ(PA7-0 PC上位7-4 )PBグループ( PC下位3-0 PB7-0 )
3.モード2 ストローブ双方向バス入出力動作(PAグループのみ)データの入出力に同一のポートを使用し双方向バスを通して周辺デバイスと接続する.データ入出力の制御はモード1と同様にコントロール信号及びステータス信号を用いる.データポートとしてAポートのみ使用する.コントロール/ステータスポートはポートC(PC7-PC3)の5ビット使用
4.i8255のモードセットモード0ベーシックインプットアウトプットモード (A,Bグループ)
モード1ストローブインプットアウトプットモード(A,Bグループ)
モード2双方向バス(Aグループのみ)
モードセットのコントロールワードであるとき 1
グループモードモード0のときD6D5は00モード1のときD6D5は01モード2のときD6D5は1X
ポートA OUTPUTのとき 0
INPUTのとき 1
ポートC(上位4ビット)
グループBモード
モード0のとき 0
モード1のとき 1
OUTPUTのとき 0
INPUTのとき 1
ポートB
OUTPUTのとき 0
INPUTのとき 1
ポートC(下位4ビット)
D7 D6 D5 D4 D3 D2 D1 D0
5.i8255のビットセットリセットコントロールワードの設定ビットセット/リセットのコントロールワード
であるとき 0ドントケア
ビット選択
セット/リセット
セット (”H")のとき 1
リセット(”L")のとき 0
ポートC
選択ビットD3 D2 D1
PC7 1 1 1
PC6 1 1 0
PC5 1 0 1
PC4 1 0 0
PC3 0 1 1
PC2 0 1 0
PC1 0 0 1
PC0 0 0 0
D7 D6 D4 D3 D2 D1 D0D5
6.回路例
A
B
C5
C4
C3
C2
C1
C0
8
i8255
A 1
A3
A0
DA
60-5
PMM8713
US
P
GND
5V
START
STOP
MODE
GOAL
5V
CS
WR
RD
RESET
RD
WR
IORQ
図 2 6 i 8 2 5 5 回 路
Z80PIOの動作
1.形状とピン配置
2.Z80PIOの構成
3.動作モード
4.コントロールワードの設定
5.
6.回路例
1.形状とピン配置
2.Z80PIOの構成
4.コントロールワードの設定
PIOの動作語の設定
D7 D6 D5 D4 D3 D2 D1 D0
M1 M0 X X 1 1 1 1
D7 D6 D5 D4 D3 D2 D1 D0
IO7 IO6 IO5 IO4 IO3 IO2 IO1 IO0
D7 D6 D5 D4 D3 D2 D1 D0
EI A/O H/L MF 0 1 1 1
D7 D6 D5 D4 D3 D2 D1 D0
MB7 MB6 MB5 MB4 MB3 MB2 MB1 MB0
D7 D6 D5 D4 D3 D2 D1 D0
V7 V6 V5 V4 V3 V2 V1 V0
モード 3
YES
NO
YES
YES
NO
NO
マスク・フォローズ
割り込み使用
モードワード
データ・ディレク
ション・ワード
インタラプト・コ
ントロール・ワード
インタラプト・
マスク・ワード
インタラプト
・ベクトル
Z80PIOの初期化終了
D0は0のみ
5.プログラム例(1)
5.プログラム例(2)
5.プログラム例(3)
i8251の構成
8251の信号名と機能
TxD (transmitter data) 送信データRxD (receiver data) 受信データDSR (data set read) 通信する相手側が通信可能な時、“0”となる。DTR (data terminal ready) こちら側が通信可能な時、“0”となる。CTS (clear to send) 相手側がこちらからの送信を要求する時、“0”となる。RTS (request to send) 相手側からの送信を要求する時、“0”となる。
TxE (transmitter empty) 送信バッファが空の時、“1”となる。TxRDY(transmitter ready) 送信データをプロセッサに要求する信号である。TxE=1かつCTS=0の時、“0”となる。 RxRDY(receiver ready) 受信データが受信バッファに入った時、1となり、プロセッサにデータの読みだしを要求する。 TxC (transmitter clock) 送信用クロックパルス RxC(receiver clock) 受信用クロックパルス
Z80CTCの動作
Z80SIOの動作
マイクロコンピュータを構成する部品の知識 抵抗
1.固定抵抗
2.集合抵抗
3.可変抵抗
4.抵抗の等価回路
マイクロコンピュータを構成する部品の知識 コンデンサ
1.固定コンデンサ2.可変コンデンサ3.コンデンサの種類電解コンデンサ セラミックコンデンサ マイラコンデンサ 空気コンデンサ
4.コンデンサの等価回路と周波数特性
マイクロコンピュータを構成する部品の知識 ダイオード
1.整流ダイオード
2.発光ダイオード
3.検波ダイオード
4.定電圧ダイオード
5.定電流ダイオード
6.可変容量ダイオード
7.フォットダイオード
マイクロコンピュータを構成する部品の知識 トランジスタ
1.トランジスタの構造(PNP,NPN)
2.トランジスタの動作
3.
マイクロコンピュータを構成する部品の知識 TTL
マイクロコンピュータを構成する部品の知識 基板
マイクロコンピュータを構成する部品の知識 OPアンプ
1.形状2.名称例3.差動増幅回路4.非反転増幅回路5.反転増幅回路6.微分回路7.積分回路8.加算回路9.比較回路
OPアンプの動作(差動増幅)
OPアンプの動作(反転増幅)
OPアンプの動作(非反転増幅)
OPアンプの動作(微分回路)
OPアンプの動作(積分動作)
OPアンプの動作(比較動作)
OPアンプの動作(加算回路)
マイクロコンピュータを構成する部品の知識 FET
論理回路の知識 (OR,NOR)
論理回路の知識(AND NAND)
論理回路の知識(BUFFER NOR)
論理素子のシンボル
カラーコードの知識
1 茶を1杯2 赤い2んじん3 第3の男4 黄子恵子5 五月みどり みどりご6 青二才の6で無し7 紫7部8 8イヤー9 ホワイト9リスマス0 黒い0服
パワーオンリセット動作
Z80は電源ONしてもプログラムカウンタは0000Hでない
プルアップ回路と動作
スリーステートバッファ回路の動作
回路の知識(定電圧駆動と定電流駆動)
回路の知識(鳳ーテブナンの定理)
回路の知識(重ね合わせの理)
電子回路の知識(等価回路)
i8255による制御回路例
RESET
PB0
PB0
PB7
PA0
PA7
PC0
PC7
AB
012
G
3
22
5V
5V
5V
3.9V
1K
1K
1K1K
22
22
22
22
22
22
220
5V
20K
3.9V
3K
1.1K
0.1
10K TPS603
ホトTR
10μF10K
10K
8.2K 20K
100K
1K10μF
MIC
3.3K
3.9V
外部入力
LED1
LED8
μPA2003×4
7406×4
DATAC0C1
VCC RS
C0CLK
A1
A0A2
A3
10K
リレー1 リレー35V
μPA2003×3
10K
VR
10μF
10μF
100μF
LM386
2SD633×41K
1K
1K
1K
PA0
PA7
PC0
PC7
PB7
PB4
PB1
PB2
PB3
CS
RESET
A0
A1
RD
WR
D0
D7
D7
D0
RD
WR
A0
A1
CS
DIR
A B
G
10K
5V
1K
74LS32
74LS00
74LS04
74LS04
74LS04
74LS04
10K 5V
5V
10K
10K 10K 10K
74LS00
74LS266
74LS139
74LS245
33
5V
3.9V
GND
47μF
RD3.9EB
0.1×9
47μF100μF
5V
GND
割り込み出力
5V
5V
10K
10KI/OW(WR)
I/OR(RD)
D0
D7
I/O
RESETOUT
A1
A0
A2A3
A4
A5
A6
A7
割り込みSW
IC2
i8255
IC1
i8255
5V
LM358
LM358MZ-5 MZ-5MZ-5
SP
MB-4052
JD
JC
JB
JA
ブロック構成図
LED駆動回路
リレー駆動回路
オーディオアンプ
スピーカ
A/D
コンバータ
SW-1 SW-2 SW-3 SW-4
リレー
リレー
リレー
外線端子
ホトトランジスタ
サーミスタ
マイク
外線端子
光
温度
音
ブッファ
ポートA
ポートB
ポートC
ユーザに開放
PB7-0
PC7
PC6-4
PA3-0
PA7
PC3-0
アドレス
レコード
回 路
A2-1
D7-0
CS
WR
RD
CS
A2-1
WR
RD
D7-0
IC
28255A
A2-1
WR
RD
D7-0
A7-2
IORQ
IC
18255A
アドレスレコード回路
B
A0
A1
A2
A3
A4
A5
A7
A6
5V
Y0
Y1
Y2
Y3
CS
G
A
JA
CS
5VSB8-103
SB8-103
A0
A1
74LS00
74LS266
10K ×4
2.2K 74LS139
図 5 ア ド レ ス レ コ ー ド 回 路
8255
8255
LED駆動回路
2.7K
7.2K
3K
220・ PA-2003
220
8255A
ポートB8255A
ポートB
5V 5V
7406
図 6 L E D 駆 動 回 路
センサ回路MIC
RS
DATA
ADC・CLK
C 0
A 0
A 1
A 2
A 3
C 1
VCC 2
CS
MB4025
3.9V
10・F1K
100K
10K
3.3K
10K
1 0・F
LM358
20K
3K
1.1K
8 .2K
20K
0.1・F
3.9V
10K
5V
3.9V
LM358
図 1 2 セ ン サ 回 路
PA7
PC3
PC2
PC1
PC0
8255A
外部入力
サーミスタ
ホトTR
TPS603
2 .0
1.8
1.6
1.4
1.2
1.0
0.8
0.6
0.2
0.4
0.0
-10 0 10 20 30 40
出力電圧
(V)
温度(゜C)
図 1 3 温 度 セ ン サ 回 路 の 出 力 電 圧
ステッピングモータの構造
A相
B相
A相
B相
A
A
A’A’
B B
B’
B’
青
緑
黄
赤白
緑
図 1 4 ス テ ッ ピ ン グ モ ー タ K P 4 P 8 - 2 0 6 の 構 造
A
固定子
A
B’
B’
+電源へ+電源へ
B
B
A’A’
デジタルシステム装置の設計例(ワンボードマイコン)
デジタルシステム装置の設計例(マイクロマウス)