第8章输入输出接口
48
方式2的应用
• 可使A端口作为双向端口所有
• 用于中断控制方式
• 当A口工作于方式2时,B口可工作于
方式1(此时C口的所有位都用作选通
控制信号的输入输出),也可工作于
方式0(此时C口的剩余位也可工作于
方式0)
2020/9/23
49
方式控制字及状态字
• 利用软件编程确定3个端口工作于何 种方式下;
格式
2020/9/23
30
8253的应用
• 与系统的连接 • 芯片初始化 编 • 置计数初值 程
2020/9/23
31
高 位 地 址
2020/9/23
与系统的连接示意
DB IOW IOR
A1 A0
译码器
8253
D0~D7
WR CLK
外
RD GATE
部 电
A1 OUT
路
A0
CS
32
2020/9/23
• 使8255的A端口和B端口均工作于方式0
• 8253计数器0和计数器1均工作于方式3,利用OUT0的 输出作为计数器1的时钟信号,使OUT0输出频率为 2KHz,OUT1输出频率为10Hz。用OUT1信号作为中 断源。
• 8253两个计数器的计数初值分别为:
CNT0:2MHz/2KHz =1000
CNT1:100ms/0.5ms=200
2020/9/23
54
D0-D7 IOR# IOW#
A1 A0 384H~387H
388H~38BH
2020/9/23
8255
R
DB PA0
RD WR
•••
PA7
•••
继电器×8
Q
Vcc
A1 PB0
A0
•••
CS PB7
R
+5V
K
OUT1 A1 OUT0 A0 CLK1 CS CLK0
续方波信号,计数器2在定时5ms后产生
输出高电平。输入8253的时钟频率为
2MH。
2020/9/23
34
8253应用例
• 计算计数初值: CNT0:10ms/0.5us=20000 CNT1:2 MHz/10KHz=200 CNT2: 5ms/0.5us=10000
• 确定控制字:
CNT0:方式2,16位计数值
2020/9/23
24
结构特点
• 计数器 16位初值寄存器
16位计数寄存器
• 控制寄存器 • 控制逻辑
存放8位控制命令字
2020/9/23
25
计数启动方式
GATE端为高电平
软件启动 置入计数初值后的第2个
CLK脉冲的下降沿启动
GATE端有一个上升沿
硬件启动 对应CLK脉冲的下降沿启动
2020/9/23
8253应用例
初始化程序
CNT0: MOV DX,0123H MOV AL,34H OUT DX,AL MOV DX,0120H MOV AX,20000 OUT DX,AL
MOV AL,AH OUT DX,AL
CNT1: ……
CNT2: ……
2020/9/23
37
二、并行接口8255
特点:
• 含3个独立的8位并行输入/输出端口, 各端口均具有数据的控制和锁存能力
12
三态门接口应用例
D0~D7 A0
A12 MEMW MEMR 高位地 址信号
2020/9/23
IOR A0~ A12
• • •
译码 D0
D0~D7 A0 ••• A12
WE
OE
CE
READY/BUSY
译码
380H
13
锁存器接口
• 通常由D触发器构成; • 特点:
具有对数据的锁存能力; 不具备对数据的控制能力
信号不同
输出
输入
2020/9/23
46
方式1的应用
• 方式1主要用于中断控制方式下的输入 输出
• C口的8位除用作选通信号外,其余位 可工作于方式0下,作为输入或输出口
2020/9/23
47
方式2
• 双向输入输出方式-------可以既作为输入 口,又作为输出口
• 只有A端口可工作在方式2下
2020/9/23
方式3
软、硬件启动,自动重复计数 装入初值后输出端变高电平, 输出对称方波
2020/9/23
28
工作方式
方式4
软件启动,不自动重复计数。 装入初值后输出端变高电平, 计数结束输出一个CLK宽度的低电平
硬件启动,不自动重复计数
方式5 波形与方式4相同
2020/9/23
29
控制字
• 用于确定各计数器的工作方式
• 命令寄存器 —— 存放控制命令,用来 设定接口功能、工作参数和工作方式 。
• 状态寄存器 —— 保存外设当前状态,
以供CPU读取。
2020/9/23
6
外设接口
输入接口 输出接口
并行接口 串行接口
数字接口 模拟接口
2020/9/23
7
输入输出接口的特点
输入接口:
• 要求对数据具有控制能力(常用三态门 实现)
D0~D7
译码器
IOW#
≥1
A7~A4
A15~A8
A3 A2 A1 A0
74LS138
&G Y0
≥1 G2A
G2B
C B
Y1
A
IOR#
≥1
2020/9/23
74LS273
7406 Rx8
D0 Q0
a
| Q1
反相器
b
D7 Q2
c
Q3
d
Q4
e
CP Q5
f
Q6
g
Q7
DP
74LS244
D0 O1 I1 D1 O2 I2 D2 O3 I3 D3 O4 I4
初始化程序流程
写控制字 写计数值低8位 写计数值高8位
写入顺序: 可以计数器为 单位,也可先 写所有计数器 控制字,再写 入初值
33
8253应用例
• 采用8253作定时/计数器,其接口地址为 0120H~0123H。
• 要求计数器0每10ms输出一个CLK脉冲
宽的负脉冲;用计数器1产生10KHz的连
2020/9/23
44
方式0的应用:
• 常使A端口和B端口作为8位数据的输 入或输出口,使C口的某些位作状态输 入
2020/9/23
45
方式1
• 利用一组选通控制信号控制A端口和B 端口的数据输入输出
• A口、B口作输入或输出口,C口的部 分位用作选通控制信号
• A口、B口在作为输入和输出时的选通
接口
2020/9/23
P341图
11
三态门接口应用例
• 利用三态门作为输入接口(接口地址
380H)接到地址范围为70000H----
71FFFH的EEPROM芯片的
READY/BUSY端,当三态门输出高电平
时,可向98C64A写入一个字节数据,输
出低电平时则不能写入。试画芯片与系
统的连接图
2020/9/23
分别对应 A、B、C 三个端口
2020/9/23
40
结构
端口A A组 端口C的高4位
端口B B组 端口C的低4位
2020/9/23
41
8255与系统的连接示意图
D0~D7
IOW IOR
A1 A0
DB 译码器
8255
D0~D7 A口
WR
RD
C口
A1
A0 B口
CS
外设
2020/9/23
42
工作方式
内部结构框图
2020/9/23
22
主要引线功能
连接系统端的主要引线:
• D0----D7 • CS • RD • WR • A0,A1
A1 A0 00 01 10 11
CNT0 CNT1 CNT2 控制寄存器
2020/9/23
23
主要引线功能
连接外设端的主要引线: • CLK ----------- 时钟脉冲输入 • GATE ---------- 门控信号输入 • OUT ------------ 定时输出
• 可通过编程,设置各端口工作在某一 确定状态下。
2020/9/23
38
引线
连接系统端的主要引线:
• D0----D7 • CS • RD • WR • A0,A1 • REAST
2020/9/23
A1 A0 00 01 10 11
A端口 B端口 C端口 控制寄存器
39
引线
连接外设端的引脚:
• PA0 —— PA7 • PB0 —— PB7 • PC0 —— PC7
CNT1:方式3,低8位计数值
2020/9/23 CNT2:方式0, 16位计数值
35
?
2020/9/23
8253应用例
DB IOW IOR
A1 A0
译码器
8253
GATE0
D0~D7 GATE1
GATE2 WR
CLK0 RD CLK1
A1
CLK2
A0
OUT0
OUT1
CS
OUT2
+5V 2MHz
36
• C端口可以按位操作。当其工作于方 式0下且作为输出口时,需要对输出 线设置初始状态(即初始化)。
2020/9/23
50
方式控制字与状态字格式
• 控制字--------确定3个端口的工作方式 • 状态字--------确定C口某一位的初始状态