第8章可编程接口芯片及应用
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通信:计算机与外设之间或计算机与计算 机之间的信息交换或数据传输。
通信的两种基本方式
并行通信 串行通信
8.2.1 并行通信的基本概念
1、并行通信 将数据的各位同时在多根并行传输线上进行传输。
D0 D1 D2
0 1 0
源
D3 D4 D5 D6 D7
1 0 1 1 0
D0 D1 D2 D3 目 D4 的 D5 D6 D7
8.2.2 可编程并行通信接口芯片8255A
1、8255A的编程结构及引脚功能 2、CPU与8255A的接口 3、8255A的初始化编程 4、8255A三种工作方式及应用 5、键盘和显示接口
1、8255A的编程结构及引脚功能
Vcc
GND
A组 控制
A组 端口A
D0~D7
数据 总线 缓冲器
内部数据线
G2A Y6
≥1
G2B
C B A
8255A
D0~D7
RD
WR
PA
A1 A0 RESET PB
PC CS
A口
B口 C口 控制口
端口地址:1110110000B、3B2H、3B4H、3B6H
3、8255A初始化编程
方式选择控制字
8255A的控制字 置位复位控制字(对C口任一位)
8255A方式控制字
D 7
SC1 SC0 RL1 RL0 M2 M1 M0 BCD
00 计0 01 计1 10 计2 11 无操作
00 锁存
00001 读/写低8位来自00110 读/写高8位
×10
11 11 读/写先低后高× 1 1
100
101
方式0 方式1 方式2 方式3 方式4 方式5
0 二进制计数 1 十进制计数
2、初始化编程
RD WR
A0 A1 CS RESET
读写 控制 逻辑
B组 控制
内部控制线
A组 端口C 上部
B组 端口C 下部
B组 端口B
PA0~PA7 PC4~PC7 PC0~PC3 PB0~PB7
CS、A1、A0、RD、WR逻辑关系表
CS A1 A0 RD WR 00 00 1 00 10 1 01 00 1 01 10 1 00 01 0 00 11 0 01 01 0 01 11 0 1 × ×× × ×× ×1 1
高电平和上升沿触发 特征 初始高电平
减到“1”时OUT由高变低,减到“0”时重新 计数 方式2 4 WR
CLK
GATE OUT
43210
43210
43210
43210
方式3 方波发生器
特征
高电平和上升沿触发 初始高电平 计数完成一半时OUT由高变低,减到0重新计数
方式3 4 WR
CLK
GATE OUT
CS A1 A0 读操作RD
0
0
0
读计数器0
0
0
1
读计数器1
0
1
0
读计数器2
0
1
1
无操作
写操作WR 写计数器0 写计数器1 写计数器2 写控制字
2、8253引脚及与CPU的连接
8086最小模式
D0~D7
RD
WR
A2
A1
A7
A6
A0
≥1
M/IO
A5
A4
A3
G G2A
G2B Y3 C B A
8253
D0~D7
方式5 4
3
WR
CLK
GATE
43210
3 2 13 2 10
OUT
需要注意:
处理器写入8253的计数初值只是写入了预 置寄存器,之后到来的第一个CLK输入脉冲 (需先由低变高,再由高变低)才将预置寄 存器的初值送到减1计数器。
从第二个CLK信号的下降沿,计数器才真 正开始减1计数。
8.1.3 8253的编程 1、控制字
方式0 计数结束中断
特征
高电平触发 初始低电平 减到“0”时OUT由低变高
方式0 4 WR
CLK GATE
OUT
4321 0
方式1 单稳负脉冲信号发生器
特征 WR
上升沿触发 初始高电平 开始计数OUT由高变低,到0输出变低
方式1 4
CLK
GATE
OUT
4321 0
方式2 速率信号发生器(分频器)
8255A的方式控制字:10101110B
初始化程序如下:
MOV AL,0AEH ;控制字送AL
MOV DX,203H ;8255A控制字寄存器地址送DX
OUT DX,AL ;控制字送8255A的控制寄存器
MOV AL,00001101B OUT DX,AL
;PC6置1,允许A口中断
MOV AL,00000100B OUT DX,AL
43210
43210
43210
43210
方式4 软件触发选通信号
高电平触发
特征 初始高电平
计数到“0” OUT由高变低,维持一个CLK周 期
方式4 4
3
WR
CLK
GATE
43210
3 2 3 2 10
OUT
方式5
硬件触发选通信号
上升沿触发
特征
初始高电平
计数到“0” OUT由高变低,维持一个CLK周 期
硬件定时——采用分频器、单稳电路或简易定时 电路控制定时时间
可编程硬件定时——软件硬件相结合、用可编程 定时器芯片构成一个方便灵活的定时电路
8.1.1 8253的结构及引脚功能
• 3个独立的16位计数器通道 • 每个计数器有6种工作方式 • 按二进制或十进制(BCD码)计数 • 可用于准确计数或精确定时
读取方法 1.直接读取 2.锁存读取 计数在不断进行,应该将当前计数值先 行锁存,然后读取: 写控制字:给8253写入锁存命令 从计数器I/O地址读出:读取锁存的计数 值
8.1.4 8253应用实例
例1:设8253芯片的端口地址为388H38BH。现 要求计数器0工作在方式3,计数初值为2354,十 进制计数;计数器1工作在方式2,计数初值为18H, 二进制计数。试根据上述要求编写初始化程序及读 取计数器0当前计数值的程序。
MOV DX, 38BH MOV AL,54H OUT DX,AL MOV DX,389H MOV AL,18H OUT 9CH,AL
;给计数器0送控制字
;送计数初值的低8位(BCD码) ;送计数初值的高8位 ;给计数器1送控制字 ;计数初值送低8位
计数器0计数值读出程序 MOV DX,38BH MOV AL,00H OUT DX,AL MOV DX,388H IN AL,DX MOV CL,AL IN AL,DX MOV CH,AL
GATE门控输入信号——控制计数器工作,可 分成电平控制和上升沿控制两种类型
OUT计数器输出信号——当一次计数过程结束 (计数值减为0),OUT引脚上将产生一个输 出信号 定时时间=时钟周期×计数初值
读/写逻辑
D0 ~ D7数据线 A0 ~ A1地址线 RD读信号 WR写信号 CS片选信号
通道2:方式3 CLK2=1.19MHz
控制字 10110111B
计数初值=
1.1=911K 1190H 03 K z Hz
设端口地址为98H、9AH、9CH、9EH(十进制计数) MOV AL,71H OUT 9EH,AL MOV AL,99H OUT 9AH,AL MOV AL,04H OUT 9AH,AL MOV AL,0B7H OUT 9EH,AL MOV AL,90H OUT 9CH,AL MOV AL,11H OUT 9CH,AL
RD CLK0
WR GATE0
A1
OUT0
A0
CS
计0 计1 计2 控制口 端口地址:10011000B、9AH、9CH、9EH
8.1.2 8253的工作方式
时钟周期 输入时钟CLK的周期 两个周期
输出周期 输出端OUT的输出波形的周期
主要区别
启动计数方式(硬件、软件) 计数结束信号 GATE的作用
功能
对端口 A 读
对端口 B 读
输
对端口 C 读 非法,不能对控制口读 入
对端口 A 写
对端口 B 写
输
对端口 C 写
对控制口 写
出
数据缓冲器为三态
断 开
2、CPU与8255A的接口
8086最小模式
D0~D7
RD WR A2
A1
RESET A9 A8 A7 A6 A0
M/IO A5 A4 A3
& G
计数器0:方式3 控制字 00110111B 计数初值 2354
计数器1:方式2 控制字 01010100B 计数初值=18H
初始化程序
MOV DX, 38BH MOV AL,37H OUT DX,AL MOV DX,388H MOV AL,54H OUT DX,AL MOV AL,23H OUT DX,AL
二进制计数 MOV AL,10110110B OUT 9EH,AL MOV AX,1190 OUT 9CH,AL MOV AL,AH OUT 9CH,AL
例3:信号源频率为1MHz,现要分频使之产生周期为 4s的方波,点亮发光二极管工作,编程实现。
8088最小模式
D0~D7 RD WR A1 A0 A7 A6 A5 M/IO A4 A3 A2
1、内部结构
D7~D0
数据总线 缓冲器
内
RD
WR
读写控制
部
A0
逻辑
数
A1
CS
据
总
控制字
寄存器
线
Vcc
GND
计数器0 计数器1 计数器2
CLK 0 GATE 0 OUT 0
CLK1 GATE 1 OUT 1
CLK 2 GATE 2 OUT 2
计数器
CLK时钟输入信号——在计数过程中,此引脚 上每输入一个时钟信号(下降沿),计数器的 计数值减1
G G2A ≥1 G2B Y5
C B A
8253
D0~D7
RD CLK0
WR GATE0
A1
OUT0
A0
CLK1
GATE1
CS
1MHZ 5V
1KHz
10010100B、95H、96H、97H
因为 N14SS 410665536
因此采用通道连接,如上图所示
N0 11M KH Hzz 1000
N1 114KHHzz4000
通道0 方式3 控制字 00100111B 通道1 方式3 控制字 01100111B
MOV AL,27H OUT 97H,AL MOV AL,10H OUT 94H,AL MOV AL,67H OUT 97H,AL MOV AL,40H OUT 95H,AL
8.2 并行通信和并行接口芯片8255A
第8章 可编程接口芯片及应用
8.1 可编程定时器/计数器芯片8253 8.2 可编程并行接口芯片8255A 8.3 串行通信及可编程串行接口芯片8251A 8.4 模/数(A/D)与数/模(D/A)转换技术及其接口
8.1 可编程定时/计数器8253/8254
定时功能的实现方法
软件定时(延时)——利用微处理器执行一个延 时程序段实现
D 6
D 5
D 4
D 3
D 2
D 1
D 0
方式选择控制 字识别位,为1
00:方式0 A 端口PC 7~PC 4 B组方式B端口 PC 3~PC 0 01:方式11:输入1:输入0:方式01:输入1:输入
选中
1x:方式20:输出0:输出1:方式10:输出0:输出
A 组控制
B组控制
置位复位控制字
D 7
例1:8255A初始化编程。设8255A的A口工作方式1 输出,B口工作方式1输入,PC4和PC5输入,允许A 口中断(PC6控制)禁止B口中断(PC2控制)。设片选信 号由A9A2=10000000确定。试编写程序对8255A进 行初始化。
8255A四个端口地址:200H 201H 202H 203H
D 6
D 5
D 4
D 3
D 2
D 1
D 0
C端口置位识 任意值 别位,为0有效
C口位选择 选中位置1/置0选择
000:PP0CC0 100:PPC4C4 001:PP1CC1 101:PPC5C5 010:PP2CC2 110:PPC6C6
011:PP3CC3 111:PPC7C7
0 : 置0 1 : 置1
步骤: 写入控制字 可使计数通道复位 写入计数初值
选择二进制时 计数值范围:0000H~FFFFH 0000H是最大值,代表65536
选择十进制时(BCD码) 计数值范围:0000~9999 0000是最大值,代表10000
3、读取8253计数值
对8位数据线,读取16位计数值需分两次
数据的各位同时由源到达目的地 → 快 多根数据线 → 距离短、远程费用高
并行通信适于短距离、高速通信
2、并行接口
并行接口连接CPU与并行外设,实现 两者间的并行通信, 在信息传送过程中,起到输出锁存或输入缓冲的作用。
并行接口的典型硬件结构包括: 1、一个或一个以上具有锁存或缓冲的数据端口 2、与CPU进行数据交换所必须的控制和状态信号 3、与外设进行数据交换所必须的控制和状态信号 4、端口译码电路 5、控制电路
;送计数器0计数值锁存命令 ;读出当前计数值的低8位 ;读出当前计数值的高8位
例2:某8086系统中,有一片8253芯片,利用通道1 完成对外部事件的计数,计满500次,向CPU发出中 断请求,利用通道2输出频率为1KHz的方波。编写 初始化程序。
通道1:方式0 控制字 01110001B
计数初值 499