林銘波編著 --- 全華科技圖書公司 12.1
步並列資料轉移
(a) 單一時脈週期 CLK
位址與命令
資料
(b) 多時脈週期 CLK
位址與命令
資料
匯流排週期 匯流排週期
匯流排週期 匯流排週期
微算機基本原理與應用 第12章 並列I/O與界面
閃脈控制方式 ---來源裝置啟動
來源裝置 標的裝置
資料匯流排 閃脈控制線
(a) 方塊圖
(b) 時序圖 資料 成立
匯流排
閃脈
控制線 標的裝置將資料
閘入資料暫存器中
林銘波編著 --- 全華科技圖書公司 12.3
閃脈控制方式 ---標的裝置啟動
來源裝置 標的裝置
資料匯流排 閃脈控制線
(a) 方塊圖
(b) 時序圖 資料 成立
匯流排
閃脈
控制線 標的裝置將資料
閘入資料暫存器中
微算機基本原理與應用 第12章 並列I/O與界面
來復式控制方式 ---來源裝置啟動
(a) 方塊圖
來源裝置 標的裝置
資料匯流排
DAV
(b) 時序圖 資料 成立
匯流排
DAV
DAC
DAC
林銘波編著 --- 全華科技圖書公司 12.5
來復式控制方式 ---標的裝置啟動
(a) 方塊圖
來源裝置 標的裝置
資料匯流排
DAV DAC
(b) 時序圖 資料 成立
匯流排
DAV DAC
微算機基本原理與應用 第12章 並列I/O與界面
輸入裝置的來復式控制
SR I
IE CR
界面電路 資料匯流排
INT
RD
CS
接往CPU模組
3 4
DAC
DAV
I/O埠
I/O裝置 DAC
DAV
資料匯流排 t
資料 成立的資料
5
6 7
2
1
林銘波編著 --- 全華科技圖書公司 12.7
輸出裝置的來復式控制
界面電路 資料匯流排
INT
WR CS
接往CPU模組
4
1 DAC
DAV
I/O埠
I/O裝置 DAC
DAV
資料匯流排 t
資料 成立的資料
4
5 6
3
2
微算機基本原理與應用 第12章 並列I/O與界面
三線來復式控制結構
資料匯流排
來源裝置
DAV RFD DAC 標的裝置 1
資料 資料
DAV RFD DAC 標的裝置 2
資料
DAV RFD DAC 標的裝置 3
資料 DAV
DAC RFD
來復式控制線
林銘波編著 --- 全華科技圖書公司 12.9
三線來復式控制時序
資料匯流排
RFD
DAV
DAC
1
成立的資料
2 3
3
4 5
5
微算機基本原理與應用 第12章 並列I/O與界面
MCS-51 I/O埠位元線結構
(a) I/O埠0位元
D Q CL Q 讀取門閂
寫入門閂
讀取接腳 內部匯流排
V
CCP1.x
(b) I/O埠1位元(標準MCS-51)
內部提 升電阻器
D Q
CL Q
MUX讀取門閂
寫入門閂
讀取接腳 內部匯流排
位址 / 資料 控制 V
CCP0.x
林銘波編著 --- 全華科技圖書公司 12.11
MCS-51 I/O埠位元線結構
(c) I/O埠2位元
(d) I/O埠3位元(標準MCS-51); I/O埠1及3 位元(在8xC51Fx);I/O埠1、3、4、及5 位元(在8xC51GB)
D Q CL Q 讀取門閂
寫入門閂
讀取接腳 內部匯流排
V
CCPy.x 內部提 升電阻器
D Q CL Q
MUX
讀取門閂
寫入門閂
讀取接腳 內部匯流排
位址 控制 V
CCP2.x 內部提 升電阻器
副功能輸出
副功能輸入
微算機基本原理與應用 第12章 並列I/O與界面
MCS-51的RMW指令組
指令 功能 使用例
ANL 邏輯 AND 運算 ANL P2,A
ORL 邏輯 OR 運算 ORL P2,A
XRL 邏輯 XOR 運算 XRL P3,A
JBC 若位元值為 1 ,則分岐並清除該位元 JBC P2.2,bitclear
CPL 將位元取補數 CPL P3.0
INC 將指定位元組加 1 INC P1
DEC 將指定位元組減 1 DEC P2
DJNZ 減 1 後,若不為 0 ,則分岐 DJNZ P3,again MOV Px.y,C 複製進位旗號位元到 I/O 埠 x 位元 y MOV P3.2,C CLR Px.y 清除 I/O 埠 x 位元 y 為 0 CLR P1.4 SETB Px.y 設定 I/O 埠 x 位元 y 為 1 SETB P1.2
林銘波編著 --- 全華科技圖書公司 12.13
*82C55A內部功能方塊圖
Vcc Gnd
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC4 PC5 PC6 PC7
PC0 PC1 PC2 PC3 I/O埠
A
I/O埠 C 上半部
I/O埠 C 下半部
I/O埠 B A 群
A群控制B群控制
8位元內部資料 匯流排
讀取/寫入控制邏輯資料匯流排緩衝器
B 群 D0
D1 D2 D3 D4 D5 D6 D7
RESET A0 A1
26 7
34 33 32 31 30 29 28 27
4 3 2 1 40 39 38 37
13 12 11 10
14 15 16 17
18 19 20 21 22 23 24 25 5
36 35 9 8 6 RD WR
CS
微算機基本原理與應用 第12章 並列I/O與界面
*82C55A內部暫存器之選取
選擇信號 選擇信號
A1 A0
RD WR
CS 動作A1 A0
RD WR
CS 動作 0 0 0 1 0 I/O 埠 A →D7~D0 1 0 1 0 0 D7~D0→I/O 埠 C 0 1 0 1 0 I/O 埠 B → D7~D0 1 1 1 0 0 D7~D0→ 控 制 語句
1 0 0 1 0 I/O 埠 C → D7~D0 φ φ φ φ 1 D7~D0→ (高阻抗) 0 0 1 0 0 D7~D0→I/O 埠 A 1 1 0 1 0 不成立
0 1 1 0 0 D7~D0→I/O 埠 B φ φ 1 1 0 D7~D0→ (高阻抗)
林銘波編著 --- 全華科技圖書公司 12.15
*82C55A控制語句格式
D7 D6 D5 D4 D3 D2 D1 D0
1 A 群控制 B 群控制
模式選擇 00 = 模式 0 01 = 模式 1 1φ = 模式 2
I/O 埠 A 0 = 輸出 1 = 輸入
I/O 埠 C (上半部) 0 = 輸出 1 = 輸入
模式選擇 0 =模式 0 1 =模式 1
I/O 埠 B 0 = 輸出 1 = 輸入
I/O 埠 C (下半部) 0 = 輸出 1 = 輸入
微算機基本原理與應用 第12章 並列I/O與界面
*I/O埠C位元設定/旗號清除控制語句
D7
D6 D5 D4 D3 D2 D1 D0
0 未用 指定 I/O 埠 C 位元 設定/清除
D3 D2 D1=000:位元 0
∼ D3 D2 D1=111:位元 7
1=設定
0=清除
林銘波編著 --- 全華科技圖書公司 12.17
*82C55A模式1(輸入)
PA7 − PA0
PC5
PC3 PC4
PC6 PC7 INTE A
STB A
RD
IBF A
INTR A
PB7 − PB0
PC1
PC0 INTE B PC2
STB B
RD
IBF B
INTR B
微算機基本原理與應用 第12章 並列I/O與界面
*82C55A模式1(輸入)
資料成立
8255A將資料閘入PORT A或PORT B STB
IBF
INTR
RD
PORT A / B
CPU讀取資料
林銘波編著 --- 全華科技圖書公司 12.19
*82C55A模式1(輸入)
1 ;ex12.3-1.a51
8000 2 PPIBASE EQU 8000H ;82C55A I/O base address 8000 3 PORTA EQU PPIBASE
8002 4 PORTC EQU PPIBASE+2 0020 5 IBFA EQU 20H ;PC5
6 ;
---- 7 CSEG AT 0100H
8 ;read 82C55A PORT A and return the data in ACC.
0100 908002 9 READ_PA: MOV DPTR,#PORTC 0103 E0 10 WAIT1: MOVX A,@DPTR ;wait until 0104 30E5FC 11 JNB ACC.5,WAIT1 ;IBFA = 1 0107 908000 12 MOV DPTR,#PORTA ;read PORT A 010A E0 13 MOVX A,@DPTR ;and return 010B 22 14 RETURN: RET
15 END
微算機基本原理與應用 第12章 並列I/O與界面
*82C55A模式1(輸出)
PA7 − PA0
PC6
PC3 PC7
PC4 PC5 INTE A
OBF A
WR
ACK A
INTR A
PB7 − PB0
PC2
PC0 INTE B PC1
WR
INTR B OBF B
ACK B
林銘波編著 --- 全華科技圖書公司 12.21
*82C55A模式1(輸出)
CPU將資料閘入PORT A或PORT B WR
CPU資料輸出
ACK INTR
週邊裝置讀取資料
OBF
微算機基本原理與應用 第12章 並列I/O與界面
*82C55A模式1(輸出)
1 ;ex12.3-2.a51
8000 2 PPIBASE EQU 8000H ;82C55A I/O base address 8000 3 PORTA EQU PPIBASE
8002 4 PORTC EQU PPIBASE+2 0080 5 OBFA EQU 80H ;PC7
6 ;
---- 7 CSEG AT 0100H
8 ;write the data in ACC to 82C55A PORT A 0100 908002 9 WRITE_PA: MOV DPTR,#PORTC 0103 E0 10 WAIT1: MOVX A,@DPTR ;wait until 0104 30E7FC 11 JNB ACC.7,WAIT1 ;OBFA = 1 0107 908000 12 MOV DPTR,#PORTA ;write PORT A 010A F0 13 MOVX @DPTR,A ;and return 010B 22 14 RETURN: RET
15 END
林銘波編著 --- 全華科技圖書公司 12.23
*82C55A模式2
PA7−PA0
PC5
PC3 PC4
PC0 PC2 INTE 2
STBA
WR
IBFA
INTR
RD
PC7 PC6 ACKA
OBFA INTE 1
PC1
微算機基本原理與應用 第12章 並列I/O與界面
*82C55A模式2
送至82C55A的資料 PORT A
自82C55A取得的資料 IBF
INTR WR OBF
ACK
STB
RD
林銘波編著 --- 全華科技圖書公司 12.25
*82C55A模式2
1 ;ex12.3-3.a51
8000 2 PPIBASE EQU 8000H ;82C55A I/O base address 8000 3 PORTA EQU PPIBASE
8002 4 PORTC EQU PPIBASE+2 0020 5 IBFA EQU 20H ;PC5 0080 6 OBFA EQU 80H ;PC7
7 ;
---- 8 CSEG AT 0100H
9 ;read 82C55A PORT A and return the data in ACC.
0100 908002 10 READ_PA: MOV DPTR,#PORTC 0103 E0 11 WAIT10: MOVX A,@DPTR ;wait until 0104 30E5FC 12 JNB ACC.5,WAIT10 ;IBFA = 1 0107 908000 13 MOV DPTR,#PORTA ;read PORT A 010A E0 14 MOVX A,@DPTR ;and return 010B 22 15 RETURN0: RET
16 ;
微算機基本原理與應用 第12章 並列I/O與界面
*82C55A模式2
17 ;write the data in ACC to 82C55A PORT A 010C 908002 18 WRITE_PA: MOV DPTR,#PORTC 010F E0 19 WAIT11: MOVX A,@DPTR ;wait until 0110 30E7FC 20 JNB ACC.7,WAIT11 ;OBFA = 1 0113 908000 21 MOV DPTR,#PORTA ;write PORT A 0116 F0 22 MOVX @DPTR,A ;and return 0117 22 23 RETURN1: RET
24 END
林銘波編著 --- 全華科技圖書公司 12.27
*82C55A狀態語句格式
A 群 B 群
位元 7 位元 6 位元 5 位元 4 位元 3 位元 2 位元 1 位元 0 模式 1 輸入組態
I/O I/O
IBF
A INTE AINTR
A INTE BIBF
BINTR
B 模式 1 輸出組態OBF
A INTE A I/O I/OINTR
A INTE BOBF
BINTR
B 模式 2OBF
A INTE 1IBF
A INTE 2INTR
A - - -微算機基本原理與應用 第12章 並列I/O與界面
*82C55A模式定義總覽
模式 0 模式 1 模式 2
輸入 輸出 輸入 輸出 A 群
I/O 埠 A 輸入 輸出 輸入 輸出 雙向
I/O 埠 B 輸入 輸出 輸入 輸出 模式 0/1
PC0 輸入 輸出
INTR
BINTR
B I/OPC1 輸入 輸出
IBF
BOBF
B I/OPC2 輸入 輸出
STB
BACK
B I/OPC3 輸入 輸出
INTR
AINTR
AINTR
APC4 輸入 輸出
STB
A I/OSTB
APC5 輸入 輸出
IBF
A I/OIBF
APC6 輸入 輸出 I/O
ACK
AACK
APC7 輸入 輸出 I/O
OBF
AOBF
A林銘波編著 --- 全華科技圖書公司 12.29
*82C55A讀取與寫入時序
(b)寫入時序 (a)讀取時序
t
RACS
RD
資料匯流排
資料成立 t
RRt
RDt
DFt
ARA1,A0
t
AWt
WA資料匯流排
WR
t
WWt
DWt
WDCS
A1,A0
(c)參數值(82C55A-2) t
AWt
WAt
DWt
WDt
WWt
RAt
RRt
RDt
DF參數
數值(ns) min max
0 20 30 30 100
0 0 150
120 10 75 t
ARt
RV200
微算機基本原理與應用 第12章 並列I/O與界面
*82C55A與MCS-51模組的界接
XTAL1
XTAL2
PSEN PSEN RST 30pF
30pF 12 MHz
19
18
9
29 Reset
8.2 K
100 10µF
40 VCC
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 8 7 6 5 4 3 2 1 31EA
RD WR P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
D D DD D D D D
Q Q QQ Q Q Q Q G
OE 11 13 14 8 7 17 18 4 3
1 2 5 19 166 9 15 12
74LS373
ALE
P3.7 P3.6 17 16 28 2726 25 24 23 22 21 30
P0.7 P0.6 P0.5P0.4 P0.3P0.2 P0.1 P0.0 32 33 34 35 36 37 38 39
D7 D6 D5 D4 D3D2 D1 D0 A7 A6 A5A4 A3A2 A1 A0 A15 A14 A13 A12 A11 A10 A9 A8
P3.1 P3.0 P3.5 P3.4 P3.3 P3.211
10 15 14 13 12
AB C
G1 GND
Y0
G2A 16
2 3
4 5 6 8 10111279
1314 15 74LS138
Y1 Y2 Y3 Y4 Y5 Y6 Y7 G2B 1
VCC
CS
A0 A1
RESET RD WR 9 8
35 5 36 6
VCC 26
GND
MCS-51
82C55A
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 4 3 2 1 40 39 38 37
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 18 19 20 21 22 23 24 25
PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
14 15 16 17 13 12 11 10 D0 D1 D2 D3 D4 D5 D6 D7 34 33 32 31 30 29 28 27 A1 A0