第 9章 常用可编程接口芯片及应用
9.1 可编程定时 /计数器 8253
9.1.1 8253内部结构及引脚功能
9.1.2 8253的工作方式及特点
9.1.3 8253的编程
9.1.4 8253的应用举例
9.1.1 8253内部结构及引脚功能
1,8253的内部结构
2,8253的引脚功能
1,8253的内部结构控制字寄存器读 /写逻辑计数器 0数据总线缓冲器计数器 2
计数器 1
内部总线
CLK0
GATE0
OUT0
CLK2
GATE20
OUT2
CLK1
GATE1
OUT1
D7~ D0
WRRD
A0A
1CS
图 9-1 8253内部结构
2,8253的引脚功能
CS RD WR
A1 A0 功能
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
读计数器 0当前值读计数器 1当前值读计数器 2当前值设置计数器 0的初始值设置计数器 1的初始值设置计数器 2的初始值设置控制字
D7
D6
D5
D4
D3
D2
D1
D0
VCC
WR
RD
CS
A1
A0
CLK2
OUT2
GATE2
CLK1
GATE1
OUT1
1
2
3
4
5
6
7
8
9
10
11
12
24
23
22
21
20
19
18
17
16
15
14
13
8253
CLK0
OUT0
GATE0
GND
图 9-2 8253 引脚表 9-1 8253计数器的选择与操作
9.1.2 8253的工作方式及特点
方式 0—— 低电平输出( GATE信号上升沿继续计数)
方式 1—— 低电平输出( GATE信号上升沿重新计数)
方式 2—— 周期性负脉冲输出
方式 3—— 周期性方波输出
方式 4—— 单次负脉冲输出(软件触发)
方式 5—— 单次负脉冲输出(硬件触发)
方式 0—— 低电平输出( GATE信号上升沿继续计数)



n=5
n=9
n=5
5 4 3 2 1 0
5 4 3 2 1 0
n=49 8 4 3 2 1 0
WR
GATE
OUT
WR
OUT
CLK
WR
OUT
图 9-3 8253的方式 0时序波形方式 1—— 低电平输出( GATE信号上升沿重新计数)
4 4 3 2 1 0
3 2 1 0 2 1 0
n=4
n=2n=3
4 3 2 1 0



WR
GATE
OUT
WR
GATE
OUT
GATEOUT
CLK
图 9-4 8253的方式 1时序波形方式 2—— 周期性负脉冲输出
3 2 1 0 3 3 2 1 0 1
4 3 2 1 0(3) 2 1 (0) 3
n=4
4 3 2 1 0 3 2 1’



WR
OUT
GATE
WR
OUT
n=4
n=3
n=3
CLK
WR
OUT
图 9-5 8253的方式 2时序波形方式 3—— 周期性方波输出
n=4
n=5


CLK
WR
OUT
WR
OUT
2 22 2
2 23 3
图 9-6 8253的方式 3时序波形方式 4—— 单次负脉冲输出(软件触发)
5 5 4 3 2 1 0
5 4 3 2 1 0①


CLK
WR
OUT
WR
OUT
GATE
OUT
n=5
n=3 n=2
3 2 1 0 2 1 0
图 9-7 8253的方式 4时序波形方式 5—— 单次负脉冲输出(硬件触发)
5 4 3 2 1 0
5 4 5 4 3 2 1 0

② GATE
OUT
n=4WR
GATE
OUT
CLK
图 9-8 8253的方式 5时序波形
9.1.3 8253的编程
设定方式控制字
设定计数初值设定方式控制字图 9-9 8253的方式控制字
SC1 SC0 RW1 RW0 M2 M1 M0 BCD
读 /写控制
00计数器锁存
01只读 /写计数器低字节
10只读 /写计数器高字节
11 读 /写计数器 16位数先低字节,后高字节
00计数器 0
01计数器 1
10计数器 2
11 无意义工作方式选择
000 方式 0
001 方式 1
× 10方式 2
× 11 方式 3
100 方式 4
101 方式 5
计数格式选择 1 十进制计数
0 二进制计数设定计数初值
例 9-1 设 8253计数器 0工作于方式 3下,计数初值为 6000(十进制格式),试写出其初始化程序。(设 8253计数器 0,计数器 1,计数器 2及控制端口地址分别为 40H~ 43H。)
根据题目要求,8253方式控制字应为 00110111,具体程序如下:
MOV DX,43H ;设定控制端口
MOV AL,37H ;写入控制字
OUT DX,AL
MOV DX,40H ;设计数器 0
MOV AL,0 ;写计数初值低字节
OUT DX,AL
MOV AL,60 ;写计数初值高字节
OUT DX,AL
9.1.4 8253的应用举例
例 9-2
例 9-3
例 9-4
例 9-2
IBM PC/XT系统板上 8253的 3个计数器的使用。
(8255) PB0
74LS74
74LS175
74LS138 DREQ0(8237)
IRQ0(8259)
D Q
U21
> C Q
D Q
U73
Y2
A5A
6A
7A
8A
9AEN
AB
CG
2AG
2BG
1
IOR
IOW
CLK0CLK
1CLK
2
8253-5
GATE0GATE
1GATE
2
OUT0OUT
1OUT
2
U26RD
WR
CS
A1
A0
D7~ D0
PCLK
RESETDRV
DACK0BRD
图 9-10 8253与系统总线的连接
OUT0
CLK0
GATE
0
OUT2
GATE
2
CLK2
OUT1
GATE
1
CLK1
8253
(方式 2)
(方式 1)
(方式 3)
启动转换
A/D转换子系统时钟发生器手动 /继电器开关
+5V
例 9-3
8253的 3个计数器串级连接起来,为某 A/D子系统提供可调用的启动采样频率信号。
设 8253的端口地址为 304H,
305H,306H,307H。 初始值 L,
N为二进制数,且小于 256,M
为 BCD数,且大于 100。
MOV AL,14H
OUT 307H,AL
MOV AL,L
OUT 304H,AL
MOV AL,73H
OUT 307H,AL
MOV AX,M
OUT 305H,AL
MOV AL,AH
OUT 305H,AL
MOV AL,96H
OUT 307H,AL
MOV AL,N
OUT 306H,AL
例 9-4
图 9-11所示为一自动计数系统 。 当工件从光源与光敏电阻之间通过时,CLK0端即可接收到一个脉冲信号,由计数器 0
计数 。 每当有 80个工件通过后,由输出端 OUT0输出一个负脉冲作为中断请求信号通知 CPU。 CPU在处理该中断的中断服务程序中启动计数器 1,由 OUT1产生
2000Hz的方波驱动蜂鸣器发声,提示工件以满 80个,5秒后扬声器停止发声 。
光敏电阻驱动器扬声器
CLK1
GATE1
5MHz
8255PA4
OUT0
TNT
OUT1
光源工件
R
+5V
MOV AL,15H
OUT 43H,AL
MOV AL,80
OUT 40H,AL
STI
LOOP,HLT
JMP LOOP
MOV AL,01H
OUT 80H,AL
MOV AL,77H
OUT 43H,AL
MOV AL,0
OUT 41H,AL
MOV AL,25
OUT 41H,AL
CALL D5S
MOV AL,0
OUT 80H,AL
9.2 可编程并行接口芯片 8255A
9.2.1并行接口概述
9.2.2可编程并行接口 8255A
9.2.1并行接口概述
并行接口的特点
并行接口的类型并行接口的特点
1,并行接口是在多根数据线上以数据字节或字为单位与 I/O设备或被控对象传输数据 。
2,并行接口适用于近距离数据传输 。 一次同时传送多位数据,传送速度快 。
3,在并行接口中,8位或 16位是同时传输的 。
4,并行传送的信息不要求固定的格式,这与串行传送的信息有固定格式的要求不同 。
并行接口的类型
1.从并行接口数据传送的方向看,可分为两种,一是单向传送(只作为输入口或只作为输出口),另一种是双向传送(既可作为输入口,也可作为输出口)
2.从并行接口的电路结构看,并行接口可分为硬接线接口和可编程接口。
3.可编程接口可以用软件编程序的方法改变接口的工作方式及功能,具有广泛的适应性和很高的灵活性。
9.2.2可编程并行接口 8255A
8255A内部结构及引脚功能
8255A的编程
8255A的工作方式
8255A的应用举例
8255A内部结构及引脚功能
8255A内部结构
8255A引脚功能
WR
RESET
PA7
PA4
PB7
PB6
PB5
PB4
D0
D1
D2
D3
D4
D5
D6
D7
VCC
PB3
图 9-12 8255A的内部结构及外部引脚图
RD
A1
A0
PC7
PC6
PC5
PC4
PA3
PA2
PA1
PA0
CS
A组
A口
( 8位)
B组
B口
( 8位)
A组
C口
(高 4位 )
B组
C口
(低 4位 )
数据
A组控制缓冲器读 /写控制逻辑
B组控制
CS
A1
RD
WR
PC3~PC0
PA7~PA0
PC7~PC4
PB7~PB0
总线
A0
D7~D0
RESET
1
2
3
4
5
6
7
8
17
18
19
20
9
10
11
12
13
14
15
16
28
27
26
25
24
23
22
21
36
35
34
33
32
31
30
29
40
39
38
37
8255A
GND
PC3
PC2
PC1
PC0
PB0
PB1
PB2
PA5
PA6
8255A内部结构
PC端口
60H
61H
62H
60H
61H
62H
63H
63H
0
0
0
0
0
0
0
1
0
0
A0
0
1
0
0
1
0
1
×
×
1
A1
0
0
1
0
0
1
1
×
×
1
0
0
0
1
1
1
1
×
1
0
1
1
1
0
0
0
0
×
1
1
操 作读 A口数据读 B口数据读 C口数据写 A口数据写 B口数据写 C口数据写控制字寄存器总线悬浮(三态)
总线悬浮控制口不能读表 9-2 8255A基本操作与端口地址
WRRDCS
8255A的引脚功能
8255A的编程
1,方式控制字
2,端口 C置位 / 复位控制字
1,方式控制字
例 9-5 要把 A口指定为方式 1,输入,C口上半部定为输出; B口指定为方式 0,输出,C口下半部指定为输入,则工作方式命令代码是 10110001B或 B1H。 设 8255A控制字寄存器端口地址为 303H。
初始化的程序段为:
MOV DX,303H ; 8255A命令口地址
MOV AL,0B1H ;初始化命令
OUT DX,AL ;送到命令口
1 D6 D5 D4 D3 D2 D1 D0
0 0 方式 0
0 1 方式 1
1 × 方式 2
C口下半部 1 输入
0 输出
B口选择 1 输入
0 输出
B组方式 0 方式 0
1 方式 1
C口上半部 1 输入
0 输出特征位
A组方式
A口选择1 输入
0 输出图 9-13 8255A方式控制字格式
2,端口 C置位 / 复位控制字
例 9-6 若要把 C口的 PC2引脚置成高电平输出,则命令字应该为 00000101B
或 05H。
程序段为
MOV DX,303H ; 8255A命令口地址
MOV AL,05H ;使 PC2= 1的控制字
OUT DX,AL ;送到命令口特征位图 9-14 端口 C置位 /复位控制字格式位控
0 D6 D5 D4 D3 D2 D1 D0
1 置位 ( 高电平 )
0 复位 ( 低电平 )
无关位 ×××
可设为 0 0 0
C口的位选择
D3 D2 D1 选择
0 0 0 PC0
0 0 1 PC1
0 1 0 PC2
0 1 1 PC3
1 0 0 PC4
1 0 1 PC5
1 1 0 PC6
1 1 1 PC7
8255A的工作方式
方式 0
方式 1
方式 2
1.工作方式 0
方式 0又称为基本输入 /输出方式 。
( 1) A口,C口的高 4位,B口以及 C口的低 4位可分别定义为输入或输出,各端口互相独立,故共有 16种不同的组合 。
( 2) 定义为输出的口均有锁存数据的能力,而定义为输入的口则无锁存能力 。
( 3) 在方式 0下,C口有按位进行置位和复位的能力 。
2.工作方式 1
一种选通的输入 /输出工作方式 。
( 1) 三个端口分为两组,即 A组和 B组 。
( 2) A组包括 8位数据端口 A和 PC7~ PC3五位控制 /状态端口,B组为 8位数据端口 B和 PC2~ PC0三位状态控制端口 。
( 3) 每一个 8位数据端口均可设置为输入 /输出方式,且两种工作方式均可锁存 。
( 4) 控制 /状态口除了指示两组数据口的状态及选通信号外,还可用做 I/O口,如 PC6和 PC7,用位控方式传送 。
( 1)方式 1下 A口,B口均为输出方式 1输出方式 1输出接口 A 方式 1输出接口 B
I/O
8259& &
PB7~ PB0PA7~ PA0
2
PC6
PC7
PC3
PC4,5
PC1
PC2
PC0
图 9-15 方式 1下 A,B口为输出的选通信号定义
WRWR
INTRA INTR
B
INTEA INTEB
OBFA
ACKA
OBFB
ACKB
( 2)方式 1下 A口,B口均为输入方式 1输入接口 A 方式 1输入接口 B
I/O
& &
PB7~ PB0PA7~ PA0
2
PC5
PC4
PC3
PC6,7
PC2
PC1
PC0
图 9-16 方式 1下 A,B口均为输入时的信号定义
RDRD
INTRA INTRB
INTEA INTEBSTB
A STBB
8 8
3.工作方式 2
( 1) 工作方式 2只适用于
A口,B口仍按方式 0或方式 1工作 。
( 2) A口可工作于双向方式,C口的 PC7~ PC3位作为 A口的控制 /状态信号端口,PC2~ PC0用于 B组 。
( 3) A口的输入 /输出均有锁存功能 。 在方式 2工作状态下,A口既可工作于查询方式,又可工作于中断方式 。
I/O
≥1
WR
RD
&
&
PC7
PC6
PC3
PC4
PC5
PC2~0
3
8
INTE1
INTE2 IBFA
INTRA
图 9-17 方式 2下的信号定义
OBFA
ACKA
STBA
PA7~ PA0
8255A的应用举例
例 9-7
例 9-8
例 9-7
应用 8255A方式 0连接打印机;初始化 8255A,使 A口处于方式 0、输出,C口高 4位输入、低 4位输出
MOV AL,10001000B
OUT 63H,AL
MOV AL,00000011B
OUT 63H,AL
WAIT,IN AL,62H
AND AL,00100000B
JNZ WAIT
MOV AL,CL
OUT 60H,AL
MOV AL,00000010B
OUT 63H,AL
CALL DELAY
MOV AL,00000011B
OUT 63H,AL

8255A 打印机
PA7~ PA0
PC1
PC5
DATA0~
DATA7
STROBE
BUSY
图 9-18 方式 0的打印机接口例 9-8
应用 8255A工作在方式 0和方式 1进行双机并行通信。;发送方的发送程序
MOV AL,10100000B
OUT 63H,AL
MOV AL,0DH
OUT 63H,AL
TEST1,IN AL,DX
AND AL,40H
JNZ TEST1
MOV AL,CL
OUT 60H,AL;接收方的接收程序
MOV AL,10011000B
OUT 63H,AL
MOV AL,01H
OUT 63H,AL
RECEIVE,IN AL,62H
TEST AL,10H
JNZ RECEIVE
IN AL,60H
MOV CL,AL
MOV AL,00H
OUT 63H,AL
CALL DELAY
INC AL
OUT 63H,AL

PA0~7 PA0~7
PC7PC7
PC0 PC6
PC4~6
PC1~3
PB0~7 PC0~5
PB0~7
PC3
8255A 8255A
0方式 1方式乙(接收)
CPU
甲(发送)
CPU
未用
OBF
ACK
图 9-19两种方式的并行传送接口电路框图
9.3 可编程串行接口芯片 8250
1.主要功能
INS 8250的主要功能有:
1) 8250支持异步通信规程,
2) 8250的异步通信的数据格式可由用户编程选择。
3)内部具有可编程时钟产生电路。
4)具有独立的接收时钟输入引脚。
5)有 CPU发向调制解调器的信号,还有能接收并记录由调制解调器发送到计算机的状态信息。可方便地与 MODEM相连。
6)具有带优先级排序的中断系统,有多种中断源。
7)具有可记录所有状态信息的状态寄存器和检查起始位出错的能力。
2,8250的结构框图和引脚
B A U D O U T
数据总线缓冲器内部数据总线接收缓冲寄存器接收移位寄存器
SIN
发送缓冲寄存器发送移位寄存器
S O U T
传输线状态寄存器分频次数锁存器 (低)
分频次数锁存器 (高)
波特率发生器传输线控制寄存器接收同步控制发送同步控制
R C L K
INT R P T
中 断 允 许寄 存 器中 断 识 别寄 存 器中 断 控制 逻 辑
M O D E M 控制 寄 存 器
M O D E M
状 态 寄 存 器调 制 解调 控 制逻辑选择和读写控制逻辑
CS
0
CS
1
CS
2
A
0
A
1
A
2
A D S
D I S T R
D I S T R
D O S T R
D O S T R
D D I R
C S O U T
MR
X T A L
1
X T A L
2
+5V
G N D
R T S
C T S
D T R
D S R
R L S D
RI
O U T
1
O U T
2

9-
20
82
50
的结构框图
1
2
3 1 0
4
5 9
6
7 1 5
8
12
13
1 4 1 1
2 8 3 2
2 7 8 2 5 0 3 6
2 6 3 3
2 5 3 7
2 2 3 8
2 1 3 9
1 9 3 4
1 8 3 1
2 3 3 0
24
3 5 4 0
1 6 2 0
17
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
CS
0
CS
1
CS
2
A
0
A
1
A
2
A DS
DIS T R
DIS T R
DOST R
DOST R
DDIR
CS OU T
MR
X T A L
1
X T A L
2
SIN
RCL K
B A UDOU T
S OUT
RT S
CT S
DT R
DS R
RL S D
RI
OUT
1
OUT
2
INT RP T
+5V
GND
图 9-21 8250的引脚配置
3,8250的内部寄存器及初始化编程
( 1) 8250的内部寄存器及其寻址表 9-3 8250内部寄存器寻址
( 2) 8250内部寄存器的编程格式

9-
22
传输线控制寄存器
LCR
的控制字格式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
字符长
0 0 =5 位
0 1 =6 位
1 0 =7 位
1 1 =8 位停止位的位数
0 =1 位停止位
1= 当字符长为 5 位时,1,5
位停止位;当字符长为
6~8 位时,2 位停止位。
有无奇偶校验
0= 无奇偶校验
1= 有奇偶校验附加奇偶标志位
0= 不附加
1= 附加 1 位 (D
4
=1,D
3
=1,偶校验,奇 偶 校 验 位 为 0 ;
D
4
=0,D
3
=1,奇校验,奇偶校验位为 1) 。
寻址识别位 ( DL A B )
0= 寻址 RBR,T BR,IE R
1= 寻址分频次数锁存器
DL L,D L H
设置间断
0= 禁止间断
1= 强迫 S OUT 引脚连续输出空白状态奇偶校验的类型
0= 奇校验
1= 偶校验
图 9-23 LSR寄存器的格式
D R = 1 接收数据准备好
B I = 1,检测到间断
O E = 1,重叠错
T B R E = 1,发送缓冲器空
P E = 1,奇偶错
F E = 1,帧错
T S R E = 1,发送移位寄存器空恒为 0
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
传输线状态寄存器 LSR
表 9-4 分频次数与波特率对应表分频次数锁存器 DLH和 DLL
图 9-24 MCR寄存器的格式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
1 = D T R 引脚为低电平(表示数据终端准备好) 1 =自测试循环回送状态
0 =正常工作状态
1 = R T S 引脚为低电平(表示请求发送)
1 = O U T 1 引脚为低电平
1 = O U T 2 引脚为低电平恒为 0
MCR是 8位的寄存器
△ CT S 位
1 = CT S 引脚电平发生变化
△ DSR 位
1 = DSR 引脚电平发生变化
△ T ERI 位
1 = RI 引脚电平发生变化
△ RL SD 位
1= R LSD 引脚电平发生变化
0 = CT S 引脚为高电平
1 = CT S 引脚为低电平
0 = DSR 引脚为高电平
1 = DSR 引脚为低电平
0 = RI 引脚为高电平
1 = RI 引脚为低电平
0 = RL SD 引脚为高电平
1 = RL SD 引脚为低电平
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
图 9-25 MSR的格式
MODEM状态寄存器 MSR
图 9-26 中断识别寄存器 IIR的状态字格式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
有无中断请求位 ( IP )
0= 有中断请求
1= 无中断请求中断源识别
00=M O D E M 状态发生变化中断
01= 发送缓冲器空中断
10= 接收数据准备就绪中断
11= 接收数据发行错中断恒为 0
中断识别寄存器 IIR
图 9-27 中断允许寄存器 IER格式
D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
恒为 0
1= 开放接收数据就绪中断
1= 开放发送缓冲器空中断
1= 开放接收字符错或接收到间断状态中断
1= 开放 M O D E M 状态改变中断中断允许寄存器 IER
4,8250编程举例例:设数据传输速率 1200波特,通信格式为
7位 /字符,2 位停止位,奇校验,数据传输不采用中断方式,则其初始化程序段为:
MOV DX,2FBH ; LCR的口地址
MOV AL,80H ;将 DLAB位置 1
OUT DX,AL
MOV DX,2FBH ; DLL的口地址
MOV AL,60H ;写入 1200波特的 DLL值,通过查表可知 1200对应的; DLH DLL值分别为 0060H
OUT DX,AL
MOV DX,2F9H ; DLH口地址
MOV AX,0
OUT DX,AX ;写入 12000波特的 DLH值
MOV DX,2FBH ;设定 LCR的口地址
MOV AL,0EH ; 7位字符,1位停止位,奇校验
OUT DX,AL ;写入 LCR控制字
MOV DX,2FCH ;设定 MCR口地址
MOV AL,03H ;置 MCR控制字
OUT DX,AL
MOV DX,2F9H ;设定 IER口地址
MOV AL,0 ;禁止一切中断
OUT DX,AL ;置 IER控制字