ココマⅡ 基本タイプ ガーデンルーム・サイドスルー 取付説明書...E412_201602B 1 施工工程一覧 ガーデンルームタイプ、サイドスルータイプ
情報工学実験Ⅱ講義 -...
Transcript of 情報工学実験Ⅱ講義 -...
情報工学実験Ⅱ講義
第 1週 A1 マイクロコンピュータ・トレーニングの使い方第 2週 A2 マイクロプロセッサZ80CPUの構造と命令第 3週 B1 i8255の構造と使い方第 4週 B2 音の発生と待ちプログラム第 5週 B3 キー入力回路の知識第 6週 B4 A/D D/A変換回路の知識第 7週 C1 TTLの特性第 8週 C2 TTLの使い方第 9週 C3 トランジスタ回路の増幅第10週 C4 トランジスタ回路のスイッチング動作第11週 C5 インタフェースの知識第12週 C6 OPアンプ回路の知識第13週 C7 テスト
第1週 ワンボードマイコンの使い方
主なマイクロコンピュータの誕生と進化
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シリーズ
マイクロコンピュータの構成
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
など
記憶容量の表現
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
クロック回路とパワーオンリセット回路
クロック回路 リセット回路
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)
ワンボードマイコンの回路
第2週A2マイクロプロセッサZ80CPUの構造と
命令
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
ブロックサーチサーチ
ロケーション
16ビットロード命令
16ビット算術演算命令
8ビットロード命令
8ビット算術演算命令
第3週 B1 i8255の構造と使い方
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 回 路
第4週 B2 音の発生と待ちプログラム
i8255によるクロックの発生start
(PX) <= H
(PX) <= L
wait(t)
END
wait(t)
A= A- 1
A<= N
A=0
T
t
f=1/T(Hz)
i8255 PX
待ちプログラム例 CALL WAIT ; T0 =17
WAIT: PUSH AF ; T1 =11
PUSH HL ; T2 =11
LD H,xxH ; T3=7
LOP1: LD L,yyH ; T4=7
LOP2: DEC L ; T5=4
JP NZ,LOP2 ; T6=10
DEC H ; T7=4
JP NZ,LOP1 ; T8=10
POP HL ; T9=10
POP AF ; T10=10
RET ; T11=10
TWAIT=T0+T1+T2+T3+xx{T4+yy(T5+T6)+T7+T8}+T9+T10+T11
プログラム例
;******************************; REIDAI program; 3年1組 FUKUOKA TAROU; H15.10.4;*****************************
[0000] : PPIPA EQU 00H[0001] : PPIPB EQU 01H[0002] : PPIPC EQU 02H[0003] : PPICW EQU 03H[0700] : SPADD EQU 0700H ;stack add[85D0] : OUTABP EQU 85D0H
;; start program;
[0000] : ORG 0000H[0000] : 31 00 07 LD SP,SPADD ;[0003] : 3E 80 LD A,80H ;PA,PB,PC OUT[0005] : D3 03 OUT (PPICW),A[0007] : 21 E0 00 LD HL,00E0H[000A] : DB 00 LOOP: IN A,(PPIPA)[000C] : 32 50 01 LD (KEYBF),A[000F] : 06 00 LD B,00H[0011] : 3A 50 01 LD A,(KEYBF)[0014] : B8 CP B[0015] : CA 26 00 JP Z,ENDP[0018] : 36 00 LD (HL),00H[001A] : 35 OUTPUT: DEC (HL)[001B] : CA 0A 00 JP Z,LOOP[001E] : CD D0 85 CALL OUTABP[0021] : CD 27 00 CALL WAIT[0024] : 18 F4 JR OUTPUT[0026] : 76 ENDP: HALT
;; sub prgram;
[0027] : F5 WAIT: PUSH AF[0028] : E5 PUSH HL[0029] : 21 00 01 LD HL,HLDA[002C] : 16 00 LD D,00H[002E] : 3A 02 01 LD A,(EDA)[0031] : 5F LD E,A[0032] : ED 52 LOP: SBC HL,DE[0034] : C2 32 00 JP NZ,LOP[0037] : E1 POP HL[0038] : F1 POP AF[0039] : C9 RET
;; TABLE;
[0100] : ORG 0100H[0100] : FF FF HLDA: DW 0FFFFH[0102] : 01 EDA DB 01H
;; WORK;
[0150] : ORG 0150H[0150] : KEYBF: DS 01H[0151] : OUTBF: DS 100H[0251] : AABF: DS 01H
;END
第5週 B3 キー入力回路の知識
キー入力回路とチャタリング
IN A<= ( P )
ON?
IN A<= ( P )
WAIT 10mS
ON?
start
end
Vcc
SWON=> L
i8255
P
OFF
ON
OFF
ON
イメージ上
現実の波形
チャタリング6 ~ 8ms
キー入力の回路
6
5
4
3
2
1
0 7
8
9
ABCD
E
FGO
ADDDAINCDEC
FN1FN2FN3FN4FN5
FN6
SST
DA
DB
1E12E11E22E2
1Y01Y11Y21Y3
2Y02Y12Y22Y3
キー入力回路
IORQ
WR
RD
AD0AD1
RST RESET B0
B7
RD
WR
CS
A0A1
D0
D7 A7
A0
C7
C3
C1C2
C4
C0
C502
02
02
04
10k5V
CTC
LS155
キー入力プログラム start
(PC) <= (KEYSADD)A <= (PA)
A = 00H?
WAIT
C <= A
A = 00H?
KEYF=FFH
KEYF <= FFH
A <= C
A <= 00H
RET
KEYF <= 00H
A <= (KEYSADD)
ADD A
(KEYSADD) <= A
(KEYSADD)=01H?
(KEYSADD) <= 01H
A <= 00H
Y
N
YN
Y
KEYF 00 off状態
FF on状態OR 80HCPL
(PC) <= (KEYSADD)A <= (PA)
OR 80HCPL
2回目以降 最初のデータ 入力無し
10ms
キー入力プログラム
Crag <= キーデータ
第6週 B4 A/D D/A変換回路の知識
DA/AD変換の必要性
自然界はアナログの世界 マイコンはデジタルの世界である。
D/A変換回路
2R
2R
2R
2R
2R
2R
2R
2R
2R
R
R
R
R
R
R
R
74HC04
r1
5V
PA7
PA0
r2
μA741
アナログ電圧出力
VA
ラダー回路の性質テブナンの定理
重ね合わせの理
R
2R
2R
2R
2R
R
R
出力
入力3
入力2
入力1
入力0
2R
R
2R
2R
2R
2R
R
R
1V
出力
2R
R
2R
2R
2R
2R
R
R
1V
出力
2R
R
2R
2R
2R
2R
R
R
1V
出力
2R
R
2R
2R
2R
2R
R
R
1V出力
2R
テブナンの定理のよる解析
2R 2R
R
1/4V 出力
2R Z
Z’
R
2R 2R 2R 2R
R R
1V 出力
2R
X’
R
2R 2R 2R
R R
1/2V 出力
R
2R1/8V出力
2R
1/16V
2R 2R 2R
R R
1/2V 出力
2RY
Y’
A/D変換の原理
0 1 2 D FE7 8 9
ディジタル値
アナログ値
アナログ入力
D/A出力
H
L
コンパレータ出力
0V
5*(14/15)
=4,67V
5*(8/16)
5*(7/16)
=2.50V
=2.19V
E1
E2
E3
R
R
R
2R
2R
2R
2R
2R
アナログ電圧入力
VA
D/A出力
コンパレータ
コンパレータ出力
VcOUT
E1-4:5V
E0i0
i2
i3
i1
A/D変換回路
2R
2R
2R
2R
2R
2R
2R
2R
2R
R
R
R
R
R
R
R
μA311
μA7415V
74HC04
PB7
PB0
PC0
5V
1S1585
10K1S1585
r1 r
2
第7週 C1 TTLの使い方(1)
TTLの中身例(NAND)
Vcc
GND
出力Y入力
AB
1301.6k4k
1k
標準TTLの基本回路
TTLの特性Vcc
GND
出力Y
入力1301.6k4k
1k
on off off
off on off
Q1
Q2
H L HZ
L
H
VOL0.4V VIL0.8V
VIH2.0VVOH2.4V
IOL16mA IIL1.6mA
IOH400μA IIH40μA
ノーマルタイプTTLの入出特性GND
Vcc 5V出力条件 入力条件
TTLの入出力電流特性
シリーズ名 入力電流 出力電流
IIH(μA) ILI(mA) IOH(mA) IOL(mA)
SN74/54 40 -1.6 -0.4 16
SN74S/54S 50 -2 -1 20
SN74H/54H 50 -2 -0.5 20
SN74L/54L 10 -0.18 -0.1 2
SN74LS/54LS 20 -0.36 -0.2 4
TI社のTTLファミリー
SN74/54 TI社のTTLファミリの基本的シリーズ
SN74S/54S SN74/54シリーズの高信頼化
SN74H/54H SN74Sシリーズより以前に作られたSN74の高速化
SN74L/54L 低消費電力のTTL
SN74LS/54LS SN74Sを低消費電力化
オープンコレクタTTL
* オープンコレクタ
(O.C)を示す。
Vcc
GND
出力Y入力
AB
1.6k4k
1k
オープンコレクタによるレベル変換
Vcc
GND
出力Y
R
オープンコレクタによるドライバ
Vcc
GND
出力Y
オープンコレクタのワイヤード接続
GND
出力Y
オープンコレクタ出力
A
B
RVcc
Y=A*BIC1
IC2
複数の出力どうしを共通の外付け抵抗を用いて互いに接続する。これをワイヤード接続といい並列接続するだけでOR出力あるいはAND出力が得られる。
これを総じてワイヤードORという。
シュミットトリガTTL
2つのスレショルド電圧を持ち波形整形動作を行うことが出来る。入力電圧が立ち上がるときのスレショルド電圧VHと立ち下がる時のスレショルド電圧VLが異なるヒステリシス特性を持つため出力が一度、“H”または“L”に出力されれば、入力電圧にノイズが加わったとしてもそれがヒステリシス幅の電圧(VHーVL)以内の振幅であれば出力はノイズの影響を受けない。
応用例
1.入力波形がゆっくり変化するようななまった波形の整形.
2.交流波形をパルス波形に変換.
トライステートTTL (スリーステートTTL)
Vcc
GND
出力Y
入力1301.6k4k
1k
on off off
off on off
Q1
Q2
H L HZ
L
H
バスライン上で接続されていない状態を作る。
第8週 C2 TTLの使い方(2)
プルアップ抵抗
*
Vcc
R
Vcc Vcc
RR
Vcc
R
プルアップ抵抗Rの目的1.入力のインピーダンスを下げる2.H出力時の電圧を大きくする。3.Hレベル出力電流の増加4.立ち上がり出力波形の改善5.O.C TTLの負荷抵抗として用いる。
Rの値の求め方。
プルダウン抵抗
R
プルダウン抵抗Rの目的1.入力をLに固定する。2.入力のインピーダンスを下げる。3.抵抗を使わず直接グランドに落としてもよい。一般にはこのようにする。
Rの値の求め方。
LEDの駆動
Vf=2VR
EILED
I=(E-Vf)/R
a
Vcc VccVccVcc
R
RRR LED
LED
LEDLED
8セグメントLEDの駆動
a b c d e f g h
com
a b c d e f g h
comk a
カソードコモン型 アノードコモン型
Vcc
R
LEDVccR
LED
a
b
c
d
e
f g
h
8セグメントLED
a b c d e f g h11110010
a b c d e f g h00001101
3を表示する場合
第9週 C3 トランジスタ回路
トランジスタのバイアス回路(1)
Vcc
出力が取り出せない。
IcIb
Ibの制御が困難
Vb
RcRb
出力が取り出せる。Ibの制御が可能
出力
電源が2つ必要
VccVb
出力が取り出せる。Ibの制御が可能
Rb Rc
出力Vcc
Ibが温度の影響を受けやすい
Rb
Ra
Rc
出力 Vcc
Re
Ia Ib
Ia>>Ibが条件
Rb
Ra
Rc
出力 Vcc
Raを追加してVBEの変動を抑制Raの値に制約がある。
トランジスタのバイアス回路(2)
Rb Rc
出力Vcc
Re
IbRb
Ra
Rc
出力Vcc
Re
Ia IbRb Rc
出力Vcc
Ia Ib
トランジスタのDC動作
Rb
Ra
Rc
出力 Vcc
Re
Ia Ib
Ia>>Ibが条件
Rb
Ra
Rc
出力 Vcc
Re
Ia Ib
Ia>>Ibが条件
トランジスタ回路の性質
Rb
Ra
Rc
出力 Vcc
Re
Ia Ib
Ia>>Ibが条件
Va
Vb Vc
Ve
1.コレクタ側は電流源動作
2.エミッタ側は電圧源動作
3.Vaが決まるとVeが決まる
(Reの値には依らない)
4.Ia>>Ibとするとオームの法則で回路の解析計算が出来る
トランジスタの等価回路
hi
hr v2 hf i1
i1
ho v2v1
v1=hi i1+hr v2
i2=hf i1+ho v2
i2
トランジスタの交流動作
トランジスタの等価回路
参考 電圧源と電流源
第10週 C4 トランジスタ回路のスイッチング
動作
トランジスタの特性
VBE
Ic
0.7V0.5V
遮断領域 飽和領域能動領域
VBE-Ic特性
VBEIc
Vcc
VB
トランジスタによるスイッチング動作
VccRc
Rb
VBE
Vcc VccR R
OFF ON
Vcc 0(H) (L)
0
Vcc
0
Vin
トランジスタを十分にONさせるために Ib>Vcc/Rc・HFE
Rb=(Vin-VBE)/Ib
スイッチングの高速化
Vcc
Rc
Rb
Cs
CbR
C1
R1
C2R2入力Vin
出力Vout
定抵抗回路C1・R1=C2・R2入力と出力の関係が周波数に無関係となる。
Cs:スピードアップコンデンサRb>RとしてCbの電荷を急速に放電させる。Csの値を適当に選ぶことによってエミッターベース容量Cbの影響を打ち消すことが出来る。
参考 定抵抗回路
R1
R2
C1
C2
Vin
Vout
Vin
Vout
(1/R1)+jωC1+(1/R2)+jωC2(1/R1)+jωC1
C1・R1=C2・R2
R1+R2
R2
第11週 C5 インタフェースの知識
第12週 C6 OPアンプ回路の知識
OPアンプの構成と特徴
R1 R2
RE
Vcc
入力1 入力2
出力1 出力2
RE
入力1 入力2
出力1 出力2
能動負荷能動負荷
電流源駆動
電流源駆動
1.電圧増幅度が極めて大きい A=∞
2.入力インピーダンスが極めて大きい Zin=∞
3.出力インピーダンスが極めて小さい Zout=0
OPアンプの特性(周波数特性)
20
40
60
80
100
1 1M10 100 1k 10k 100k
120
-20
0
周波数(Hz)
利得
(dB)
10M
開ループ利得
-6dB/oct
又は-20dB/dec
差動増幅回路
R1
R2
R3R4
反転入力V1
非反転入力V2
出力
Vo=-(R2/R1)(V1-V2)
R1=R3R2=R4
反転増幅回路
R1
R2
R1//R2
入力Vin 出力
Vo=-Vin・R2/R1
R1
R2
Vin
Vout
Vout/Vin=-R2/R1
支点
反転増幅回路の入出力関係
非反転増幅回路
R1
R2
入力Vin 出力
Vo=Vin・(R1+R2)/R1R1//R2
支点
R1
R2
VinVout
Vout/Vin=(R1+R2)/R1
非反転出力回路の入出力関係
OPアンプの応用(加算回路)
V1
V2
V3Vout
R1
R2
R3
Rf
加算回路
Vout=-Rf{(V1/R1)+(V2/R2)+(V3/R3)}
OPアンプの応用(微分回路と積分回路)
Vin VoutR
C
積分回路
Vout=(-1/CR)∫Vin d t
VinVout
C
R
微分回路
Vout=-CR(dVin/d t)
OPアンプの応用(比較回路、ボルテージフォロア)
+V
-V
VinVoutVin
Vs(基準電圧)
Vout
Vs比較回路
ボルテージフォロア
インピーダンス変換
緩衝器(バッファ)
第13週 実装技術
回路の配線上の注意点1.等価回路が再現できるように配線や配置を行う。2.コモンインピーダンスが生じないように注意する。3.アースラインがループにならないように注意する。4.信号が流れるラインは短くする。5.直流が流れる場所は長い配線が生じてもよい。6.電源ラインやアースラインは極力太い配線を利用して配線する。7.8ビットなどの信号ラインで高速な信号を扱う場合は、すべての線の長さは同じにする。8.電源インピーダンスは極力小さくする。9.高インピーダンス回路は極力短く配線する。10.配線はなるべく多芯線を用いる。11.部品の配置等では回路間の結合が生じないように配慮する。12.デジタル回路とアナログ回路はなるべく別々に配置する。13.小信号を扱う回路と大信号を扱う回路はなるべく共存させない。
マイクロコンピュータを構成する部品の知識 抵抗
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)
論理素子のシンボル
カラーコードの知識
パワーオンリセット動作
Z80は電源ONしてもプログラムカウンタは0000Hでない
回路の知識(定電圧駆動と定電流駆動)
回路の知識(鳳ーテブナンの定理)
回路の知識(重ね合わせの理)
電子回路の知識(等価回路)
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のみ
2進ー7セグメントモジュール
マイコンによる各種制御法
CPU ROM/RAM IO-1 IO-2
温度 / モータ制御など
アドレスデータ
コントロール
制 御計 測
A)一定時間毎に計測し,設定値との差を修正する。
B)設定値との差が指定値を上回ったときのみ修正をくわえる。
計測
計測制御
有効
時間
計測
計測制御
計測制御
有効
無効
無効
有効
計測制御
計測制御
計測制御 時間
有効
有効
有効
無効
無効
無効
無効
無効
無効
一般の処理と割り込み処理の違い 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
マイコンの制御対象のおよその応答時間
1.キー入力:全く期待できない
2.ディスプレイ表示:60分の1秒毎
3.モータ制御:数10から数100回転毎の計測と制御
4.温度制御:一般に対象物の温度慣性が大きく数分以上
5.音による計測制御:音波の伝搬速度による
6.光による計測制御:高速である
7.
8.
9.
10.
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を実行する.
割り込みとは
現在実行中の処理を一時中断し,より緊急度の高い処理に強制的に実行を移すこと.
1.電源遮断など異常事態が発生したときの対応2.プロセッサに比べて処理速度の遅い入出力装置とのデータ転送3.タイマからの割り込みを利用したリアルタイム制御4.不正な演算など異常事態が生じた場合からの復帰5.プログラムが暴走したときなどからの復帰
別の観点から見ると 外部機器主導の制御方法である.処理中
処理依頼1
処理依頼2 優先順位が高
い方から処理優先順位が低い
方の処理が行わ
れていた場合
処理1 処理2
処理1
処理2
マイクロコンピュータを理解する技術
1 デジタル回路
2 アナログ回路
3 制御回路
4.プログラミング技術
5.実装技術
6.センサー技術
7.マイクロコンピュータのハード回路とプログラム命令