http://qsyang.yeah.net
现代微机原理与接口技术
1
第 7章 并行接口
7.1 并行接口概述并行接口和串行接口的结构示意图
http://qsyang.yeah.net
现代微机原理与接口技术
2
7.2 可编程并行接口芯片 82C55
7.2.1 8255的基本功能
1,8255具有 2个独立的 8位 I/O口( A口和 B口)和 2个独立的 4位 I/O( C口上半部和 C口下半部),提供 TTL
兼容的并行接口。作为输入时提供三态缓冲器功能
,作为输出时提供数据锁存功能。其中,A口具有双向传输功能。
2,8255有 3种工作方式,方式 0、方式 1和方式 2,能使用无条件、查询和中断等多种数据传送方式完成
CPU与 I/O设备之间的数据交换。
3,B口和 C口的引脚具有达林顿复合晶体管驱动能力,
在 1.5V时输出 1mA电流,适于作输出端口。
4,C口除用做数据口外,当 8255工作在方式 1和方式 2
时,C口的部分引脚作为固定的联络信号线 。
http://qsyang.yeah.net
现代微机原理与接口技术
3
7.2.2 8255的内部结构和外部引脚
1,内部结构
http://qsyang.yeah.net
现代微机原理与接口技术
4
2,外部引脚
http://qsyang.yeah.net
现代微机原理与接口技术
5
表 7.1 8255的端口与操作选择表
A1 A0 RD WR CS 操作
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
A口内容读至数据总线
B口内容读至数据总线
C口内容读至数据总线输入
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
数据总线内容写至 A口数据总线内容写至 B口数据总线内容写至 C口
DB内容写至控制寄存器输出
X
1
X
X
1
X
X
0
1
X
1
1
1
0
0
端口输出为高阻非法端口输出为高阻禁止
http://qsyang.yeah.net
现代微机原理与接口技术
6
7.2.3 8255的工作方式
1.方式 0
方式 0提供两个 8位口( A和 B)和两个 4位口( PC7~PC4,PC3~PC0),任何一个口都可用做输入 或 输出 (单向),由 CPU用简单的
I/O指令来进行读 /写。
一般用于无条件传送的场合,也可以用做查询式传送。
习惯上将 A口和 B口作为数据口,将 C口作为控制输出和状态输入口。
http://qsyang.yeah.net
现代微机原理与接口技术
7
图 7.4 8255A方式 0输入时序和参数说明
http://qsyang.yeah.net
现代微机原理与接口技术
8
2.方式 l ( A口和 B口有此方式,单向)
( 1)方式 l的输入图 7.6 A口和 B口方式 l的输入组态
http://qsyang.yeah.net
现代微机原理与接口技术
9
INTE为中断允许位,对应 PC口寄存器 (状态字 )的 D4位( INTEA)和 D2位 ( INTEB),可通过对 PC口按位写方法设置;
PC2,PC4引脚作用:用作锁存数据口数据;
中断条件,STB#(引脚 )=1(无效 ),IBF=1、
INTE=1;
PC6,7可作为数据线使用。
http://qsyang.yeah.net
现代微机原理与接口技术
10
http://qsyang.yeah.net
现代微机原理与接口技术
11
方式 1下的输入过程:
外设把数据送到 8255端口
外设用选通信号 STB把数据打入端口的输入锁存器
输入缓冲器满信号 IBF有效,CPU可查询该信号
如果 INTE有效,8255将使 INTR有效,申请中断
CPU向 8255发读信号 RD,从 8255端口读数据
中断请求信号 INTR变无效,然后 IBF无效,外设可送下一个数据。
http://qsyang.yeah.net
现代微机原理与接口技术
12
( 2)方式 1的输出图 7.8 8255方式 1输出组态
http://qsyang.yeah.net
现代微机原理与接口技术
13
INTE为中断允许位,对应 PC口寄存器 (状态字 )的 D6位( INTEA)和 D2位 ( INTEB),可通过对 PC口按位写方法设置;
PC2,PC6引脚作用:用作对 OBF的回应;
中断条件,ACK (引脚 )=1(无效 ),OBF=1(W
无效 ),INTE=1;
PC4,5可作为数据线使用。
http://qsyang.yeah.net
现代微机原理与接口技术
14
http://qsyang.yeah.net
现代微机原理与接口技术
15
方式 1下的输出过程:
CPU发 WR信号,向 8255送一个数据
WR使 INTR无效,OBF有效,通知外设可取数据
外设接到数据后,向 8255回送 ACK信号
OBF无效,接着 ACK无效,其上升沿引发 INTR有效,
向 CPU发中断申请,请求发送新数据。
http://qsyang.yeah.net
现代微机原理与接口技术
16
3.方式 2
图 7.10 8255方式 2组态双向 I/O,只有 A口有此方式
http://qsyang.yeah.net
现代微机原理与接口技术
17
7.2.4 8255的控制字与初始化编程
1.工作方式控制字(写,A1A0= 11 )
图 7.11 8255工作方式控制字
http://qsyang.yeah.net
现代微机原理与接口技术
18
例 7.1 某系统要求使用 8255的 A口工作于方式 1作输入,
B口工作于方式 0作输出,C口上半部输入,下半部输出。 8255端口地址为 60H-63H。
控制字为,10111000B=0B8H
初始化程序为:
MOV AL,0B8H
OUT 63H,AL
http://qsyang.yeah.net
现代微机原理与接口技术
19
2,C口按位置 /复位控制字(写,A1A0= 11 )
图 7.12 C口按位置 /复位控制字例 7.2 如上例,若 A口工作于方式 1作输入,要使用中断传送方式,则应当写 PC4的按位置位字:
MOV AL,00001001B
OUT 63H,AL
http://qsyang.yeah.net
现代微机原理与接口技术
20
方式 1下 8255状态字中 INTE位的置位和复位
⊙ 若禁止 PA口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00001000B ;置 PC4=0,禁止中断请求
OUT DX,AL
⊙ 若允许 PA口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00001001B ;置 PC4=1,允许中断请求
OUT DX,AL
⊙ 若允许 PA口输出中断请求
MOV DX,303H ; 8255命令口
MOV AL,00001101B ;置 PC6=1,允许中断请求
OUT DX,AL
http://qsyang.yeah.net
现代微机原理与接口技术
21
⊙ 若允许 PB口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00000101B ;置 PC2=1,允许中断请求
OUT DX,AL
⊙ 若禁止 PB口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00000100B ;置 PC2=0,禁止中断请求
OUT DX,AL
⊙ 若允许 PB口输出中断请求
MOV DX,303H ; 8255命令口
MOV AL,00000101B ;置 PC2=1,允许中断请求
OUT DX,AL
http://qsyang.yeah.net
现代微机原理与接口技术
22
例 7.3 图 7.13采用一个 8255芯片和软盘控制器相连,箭头标明了 I/O的方向,根据该图,试写出 8255的初始化程序。设 8255端口地址为 0300-0303H。
图 7.13 8255用作软盘基本接口
http://qsyang.yeah.net
现代微机原理与接口技术
23
A口工作在方式 2,PC4-PC7作应答联络信号线,PC3
用作 A组中断请求,B口和 PC0-PC2作输出,工作在方式 0。
工作方式控制字为,11XXX000B
初始化程序为:
MOV DX,303H
MOV AL,0C0H
OUT DX,AL
MOV AL,00001001B
OUT DX,AL ; PC4置位,开放输入中断
MOV AL,00001101B
OUT DX,AL ; PC6置位,开放输出中断
http://qsyang.yeah.net
现代微机原理与接口技术
24
例 7.4 某应用系统以 8255A作为接口,采集一组开关
S7~S0 的状态,然后通过一组发光二极管 LED7~LED0
显示开关状态,(Si闭合,则对应 LEDi亮,Si断开,则对应的 LEDi灭)电路连接如下图,一直 8255A,B两组均工作在方式 0。
1) 写出 8255四个端口的地址。
2) 写出 8255工作方式控制字。
3) 画出实现给定功能的汇编语言程序。
http://qsyang.yeah.net
现代微机原理与接口技术
25
LED7
LED0
S7
S0
PB7
PB0
PA7
PB0
8255A
D7~D0D7~D0
WR
RD
IOW
IOR
Y0G1G
2A
G2B
CB
A
74LS138
CSA9AEN
&
A8A
7A
6A
5A
4A
3A
2 A
1A
0
A1
A0
http://qsyang.yeah.net
现代微机原理与接口技术
26
答:
1) A口,B口,C口和控制口的地址分别是
320H,321H,322H和 323H。
2) A口工作在方式 0输出,B口工作在方式 0输入,C口空闲,所以其控制字是 10000010b= 82H
3) 程序如下:
MOV AL,82H ;置方式字
MOV DX,323H ;置控制端口地址
OUT DX,AL
L1,MOV DX,321H ;置 B口地址
IN AL,DX ;读开关状态( 1断,0通)
NOT AL ;状态取反
MOV DX,320H ;置 A口地址
OUT DX,AL ;输出( 1亮,0灭)
JMP L1
http://qsyang.yeah.net
现代微机原理与接口技术
27
思考题:
如果上题要求修改成:不用查询方式,而是每
50ms来一次中断,在中断中读 B口,输出 A口,
请问电路和程序要怎么改动?假设系统提供一个
2KHz的脉冲。
http://qsyang.yeah.net
现代微机原理与接口技术
28
http://qsyang.yeah.net
现代微机原理与接口技术
29
7.3 并行打印机接口标准
◆ Centronics并行打印接口标准
http://qsyang.yeah.net
现代微机原理与接口技术
30
http://qsyang.yeah.net
现代微机原理与接口技术
31
◆ Centronics并行接口时序
http://qsyang.yeah.net
现代微机原理与接口技术
32
表 7.3主机 -打印机接口信号连线表◆
http://qsyang.yeah.net
现代微机原理与接口技术
33
控制字格式
控制字锁存器状态字格式
状态端口微机系统中打印机卡 1的地址是:
数据口 0378H、状态口 0379H、控制口 037AH
微机系统中打印机卡 2的地址是:
数据口 0278H、状态口 0279H、控制口 027AH
http://qsyang.yeah.net
现代微机原理与接口技术
34
例 7.5 假设利用 8255的 A口方式 0与打印机相连,
将内存缓冲区 BUFF中的字符打印输出。
打印机接口在 STB有效时,接收数据,而在
BUSY有效时,表示打印机忙,不能接收数据。
http://qsyang.yeah.net
现代微机原理与接口技术
35
打印机时序返回
http://qsyang.yeah.net
现代微机原理与接口技术
36
图 7.14 8255与打印机接口
http://qsyang.yeah.net
现代微机原理与接口技术
37
DATA SEGMENT
BUFF DB ‘HELLO,WORLD!’,13,10,
‘ $’
PORTA EQU 60H
PORTB EQU 61H
PORTC EQU62H
PORTCN EQU 63H
DATA ENDS
CODE SEGMENT
ASSUME CS,CODE,DS,DATA
START,MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUFF
MOV AL,88H; 8255初始化,A口方式 0输出,C口上半部输入
http://qsyang.yeah.net
现代微机原理与接口技术
38
OUT PORTCN,AL ; C口下半部输出
MOV AL,01H ;置位 PC0,STB无效
OUT PORTCN,AL
WAIT,IN AL,PORTC ;读打印机状态,
若“忙”则等待
TEST AL,80H
JNZ WAIT
MOV AL,[SI]
CMP AL,‘ $’
JZ PRINT_OVER
http://qsyang.yeah.net
现代微机原理与接口技术
39
OUT PORTA,AL ;数据送出
MOVAL,00H;产生选通信号,打印机接收数据,开始打印。
OUT PORTCN,AL
MOV AL,01H
OUT PORTCN,AL
INC SI
JMP WAIT
PRINT_OVER,MOV AH,4CH
INT 21H
CODE ENDS
END START 看图
http://qsyang.yeah.net
现代微机原理与接口技术
40
思考题:
如果改成 8255使用方式 1,应该怎么连接?程序该怎么编写?
现代微机原理与接口技术
1
第 7章 并行接口
7.1 并行接口概述并行接口和串行接口的结构示意图
http://qsyang.yeah.net
现代微机原理与接口技术
2
7.2 可编程并行接口芯片 82C55
7.2.1 8255的基本功能
1,8255具有 2个独立的 8位 I/O口( A口和 B口)和 2个独立的 4位 I/O( C口上半部和 C口下半部),提供 TTL
兼容的并行接口。作为输入时提供三态缓冲器功能
,作为输出时提供数据锁存功能。其中,A口具有双向传输功能。
2,8255有 3种工作方式,方式 0、方式 1和方式 2,能使用无条件、查询和中断等多种数据传送方式完成
CPU与 I/O设备之间的数据交换。
3,B口和 C口的引脚具有达林顿复合晶体管驱动能力,
在 1.5V时输出 1mA电流,适于作输出端口。
4,C口除用做数据口外,当 8255工作在方式 1和方式 2
时,C口的部分引脚作为固定的联络信号线 。
http://qsyang.yeah.net
现代微机原理与接口技术
3
7.2.2 8255的内部结构和外部引脚
1,内部结构
http://qsyang.yeah.net
现代微机原理与接口技术
4
2,外部引脚
http://qsyang.yeah.net
现代微机原理与接口技术
5
表 7.1 8255的端口与操作选择表
A1 A0 RD WR CS 操作
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
A口内容读至数据总线
B口内容读至数据总线
C口内容读至数据总线输入
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
数据总线内容写至 A口数据总线内容写至 B口数据总线内容写至 C口
DB内容写至控制寄存器输出
X
1
X
X
1
X
X
0
1
X
1
1
1
0
0
端口输出为高阻非法端口输出为高阻禁止
http://qsyang.yeah.net
现代微机原理与接口技术
6
7.2.3 8255的工作方式
1.方式 0
方式 0提供两个 8位口( A和 B)和两个 4位口( PC7~PC4,PC3~PC0),任何一个口都可用做输入 或 输出 (单向),由 CPU用简单的
I/O指令来进行读 /写。
一般用于无条件传送的场合,也可以用做查询式传送。
习惯上将 A口和 B口作为数据口,将 C口作为控制输出和状态输入口。
http://qsyang.yeah.net
现代微机原理与接口技术
7
图 7.4 8255A方式 0输入时序和参数说明
http://qsyang.yeah.net
现代微机原理与接口技术
8
2.方式 l ( A口和 B口有此方式,单向)
( 1)方式 l的输入图 7.6 A口和 B口方式 l的输入组态
http://qsyang.yeah.net
现代微机原理与接口技术
9
INTE为中断允许位,对应 PC口寄存器 (状态字 )的 D4位( INTEA)和 D2位 ( INTEB),可通过对 PC口按位写方法设置;
PC2,PC4引脚作用:用作锁存数据口数据;
中断条件,STB#(引脚 )=1(无效 ),IBF=1、
INTE=1;
PC6,7可作为数据线使用。
http://qsyang.yeah.net
现代微机原理与接口技术
10
http://qsyang.yeah.net
现代微机原理与接口技术
11
方式 1下的输入过程:
外设把数据送到 8255端口
外设用选通信号 STB把数据打入端口的输入锁存器
输入缓冲器满信号 IBF有效,CPU可查询该信号
如果 INTE有效,8255将使 INTR有效,申请中断
CPU向 8255发读信号 RD,从 8255端口读数据
中断请求信号 INTR变无效,然后 IBF无效,外设可送下一个数据。
http://qsyang.yeah.net
现代微机原理与接口技术
12
( 2)方式 1的输出图 7.8 8255方式 1输出组态
http://qsyang.yeah.net
现代微机原理与接口技术
13
INTE为中断允许位,对应 PC口寄存器 (状态字 )的 D6位( INTEA)和 D2位 ( INTEB),可通过对 PC口按位写方法设置;
PC2,PC6引脚作用:用作对 OBF的回应;
中断条件,ACK (引脚 )=1(无效 ),OBF=1(W
无效 ),INTE=1;
PC4,5可作为数据线使用。
http://qsyang.yeah.net
现代微机原理与接口技术
14
http://qsyang.yeah.net
现代微机原理与接口技术
15
方式 1下的输出过程:
CPU发 WR信号,向 8255送一个数据
WR使 INTR无效,OBF有效,通知外设可取数据
外设接到数据后,向 8255回送 ACK信号
OBF无效,接着 ACK无效,其上升沿引发 INTR有效,
向 CPU发中断申请,请求发送新数据。
http://qsyang.yeah.net
现代微机原理与接口技术
16
3.方式 2
图 7.10 8255方式 2组态双向 I/O,只有 A口有此方式
http://qsyang.yeah.net
现代微机原理与接口技术
17
7.2.4 8255的控制字与初始化编程
1.工作方式控制字(写,A1A0= 11 )
图 7.11 8255工作方式控制字
http://qsyang.yeah.net
现代微机原理与接口技术
18
例 7.1 某系统要求使用 8255的 A口工作于方式 1作输入,
B口工作于方式 0作输出,C口上半部输入,下半部输出。 8255端口地址为 60H-63H。
控制字为,10111000B=0B8H
初始化程序为:
MOV AL,0B8H
OUT 63H,AL
http://qsyang.yeah.net
现代微机原理与接口技术
19
2,C口按位置 /复位控制字(写,A1A0= 11 )
图 7.12 C口按位置 /复位控制字例 7.2 如上例,若 A口工作于方式 1作输入,要使用中断传送方式,则应当写 PC4的按位置位字:
MOV AL,00001001B
OUT 63H,AL
http://qsyang.yeah.net
现代微机原理与接口技术
20
方式 1下 8255状态字中 INTE位的置位和复位
⊙ 若禁止 PA口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00001000B ;置 PC4=0,禁止中断请求
OUT DX,AL
⊙ 若允许 PA口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00001001B ;置 PC4=1,允许中断请求
OUT DX,AL
⊙ 若允许 PA口输出中断请求
MOV DX,303H ; 8255命令口
MOV AL,00001101B ;置 PC6=1,允许中断请求
OUT DX,AL
http://qsyang.yeah.net
现代微机原理与接口技术
21
⊙ 若允许 PB口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00000101B ;置 PC2=1,允许中断请求
OUT DX,AL
⊙ 若禁止 PB口输入中断请求
MOV DX,303H ; 8255命令口
MOV AL,00000100B ;置 PC2=0,禁止中断请求
OUT DX,AL
⊙ 若允许 PB口输出中断请求
MOV DX,303H ; 8255命令口
MOV AL,00000101B ;置 PC2=1,允许中断请求
OUT DX,AL
http://qsyang.yeah.net
现代微机原理与接口技术
22
例 7.3 图 7.13采用一个 8255芯片和软盘控制器相连,箭头标明了 I/O的方向,根据该图,试写出 8255的初始化程序。设 8255端口地址为 0300-0303H。
图 7.13 8255用作软盘基本接口
http://qsyang.yeah.net
现代微机原理与接口技术
23
A口工作在方式 2,PC4-PC7作应答联络信号线,PC3
用作 A组中断请求,B口和 PC0-PC2作输出,工作在方式 0。
工作方式控制字为,11XXX000B
初始化程序为:
MOV DX,303H
MOV AL,0C0H
OUT DX,AL
MOV AL,00001001B
OUT DX,AL ; PC4置位,开放输入中断
MOV AL,00001101B
OUT DX,AL ; PC6置位,开放输出中断
http://qsyang.yeah.net
现代微机原理与接口技术
24
例 7.4 某应用系统以 8255A作为接口,采集一组开关
S7~S0 的状态,然后通过一组发光二极管 LED7~LED0
显示开关状态,(Si闭合,则对应 LEDi亮,Si断开,则对应的 LEDi灭)电路连接如下图,一直 8255A,B两组均工作在方式 0。
1) 写出 8255四个端口的地址。
2) 写出 8255工作方式控制字。
3) 画出实现给定功能的汇编语言程序。
http://qsyang.yeah.net
现代微机原理与接口技术
25
LED7
LED0
S7
S0
PB7
PB0
PA7
PB0
8255A
D7~D0D7~D0
WR
RD
IOW
IOR
Y0G1G
2A
G2B
CB
A
74LS138
CSA9AEN
&
A8A
7A
6A
5A
4A
3A
2 A
1A
0
A1
A0
http://qsyang.yeah.net
现代微机原理与接口技术
26
答:
1) A口,B口,C口和控制口的地址分别是
320H,321H,322H和 323H。
2) A口工作在方式 0输出,B口工作在方式 0输入,C口空闲,所以其控制字是 10000010b= 82H
3) 程序如下:
MOV AL,82H ;置方式字
MOV DX,323H ;置控制端口地址
OUT DX,AL
L1,MOV DX,321H ;置 B口地址
IN AL,DX ;读开关状态( 1断,0通)
NOT AL ;状态取反
MOV DX,320H ;置 A口地址
OUT DX,AL ;输出( 1亮,0灭)
JMP L1
http://qsyang.yeah.net
现代微机原理与接口技术
27
思考题:
如果上题要求修改成:不用查询方式,而是每
50ms来一次中断,在中断中读 B口,输出 A口,
请问电路和程序要怎么改动?假设系统提供一个
2KHz的脉冲。
http://qsyang.yeah.net
现代微机原理与接口技术
28
http://qsyang.yeah.net
现代微机原理与接口技术
29
7.3 并行打印机接口标准
◆ Centronics并行打印接口标准
http://qsyang.yeah.net
现代微机原理与接口技术
30
http://qsyang.yeah.net
现代微机原理与接口技术
31
◆ Centronics并行接口时序
http://qsyang.yeah.net
现代微机原理与接口技术
32
表 7.3主机 -打印机接口信号连线表◆
http://qsyang.yeah.net
现代微机原理与接口技术
33
控制字格式
控制字锁存器状态字格式
状态端口微机系统中打印机卡 1的地址是:
数据口 0378H、状态口 0379H、控制口 037AH
微机系统中打印机卡 2的地址是:
数据口 0278H、状态口 0279H、控制口 027AH
http://qsyang.yeah.net
现代微机原理与接口技术
34
例 7.5 假设利用 8255的 A口方式 0与打印机相连,
将内存缓冲区 BUFF中的字符打印输出。
打印机接口在 STB有效时,接收数据,而在
BUSY有效时,表示打印机忙,不能接收数据。
http://qsyang.yeah.net
现代微机原理与接口技术
35
打印机时序返回
http://qsyang.yeah.net
现代微机原理与接口技术
36
图 7.14 8255与打印机接口
http://qsyang.yeah.net
现代微机原理与接口技术
37
DATA SEGMENT
BUFF DB ‘HELLO,WORLD!’,13,10,
‘ $’
PORTA EQU 60H
PORTB EQU 61H
PORTC EQU62H
PORTCN EQU 63H
DATA ENDS
CODE SEGMENT
ASSUME CS,CODE,DS,DATA
START,MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUFF
MOV AL,88H; 8255初始化,A口方式 0输出,C口上半部输入
http://qsyang.yeah.net
现代微机原理与接口技术
38
OUT PORTCN,AL ; C口下半部输出
MOV AL,01H ;置位 PC0,STB无效
OUT PORTCN,AL
WAIT,IN AL,PORTC ;读打印机状态,
若“忙”则等待
TEST AL,80H
JNZ WAIT
MOV AL,[SI]
CMP AL,‘ $’
JZ PRINT_OVER
http://qsyang.yeah.net
现代微机原理与接口技术
39
OUT PORTA,AL ;数据送出
MOVAL,00H;产生选通信号,打印机接收数据,开始打印。
OUT PORTCN,AL
MOV AL,01H
OUT PORTCN,AL
INC SI
JMP WAIT
PRINT_OVER,MOV AH,4CH
INT 21H
CODE ENDS
END START 看图
http://qsyang.yeah.net
现代微机原理与接口技术
40
思考题:
如果改成 8255使用方式 1,应该怎么连接?程序该怎么编写?