微机原理与接口技术(七)
内容提要:
两种可编程并行接口芯片的应用
- 可编程芯片:
- 可以通过软件命令,控制芯片的工作方式
- 数据传输方向
- 输入/输出方式
- 可以通过软件命令,控制芯片的工作方式
可编程定时器8253
计数与定时
- 定时/计算器的工作基准是时钟脉冲
见图136
- 计数脉冲周期恒定
- 定时的时间长度取决于时钟脉冲的周期及脉冲数
- 要求定时100秒,计数脉冲数:100
- 100为计数初值,由需求和条件决定
- 分为加法计数与减法计数
- 要求定时100秒,计数脉冲数:100
8253芯片特点
可编程的逻辑器件
非通道型的接口,具有特定功能
可实现计数和定时
工作方式:
- 减法计数
- 计数值减为0时输出相应控制信号
- 输出控制信号的形式可通过软件设置
特点:
① 外部主要引脚信号,功能及内部结构
② 计数启动方式
③ 工作方式
④ 控制命令字格式
⑤ 应用
1.外部引线及内部结构
- 连接系统端的主要引线:
- D0——D7
- #CS
- #RD
- #WR
- A0,A1
- 连接外设端的主要引线:
- CLK——时钟脉冲输入
- GATE——门控信号输入
- OUT——定时输出
见图137
内部结构特点
- 具有三个完全相同的、独立的计数/定时器
见图138
- 每个计数器中都有 16b初值寄存器 和 16b计数寄存器,因此每个计数器占用一个端口地址
结构特点
内部3个计数器均为减法计数器
- 根据计数脉冲的频率及需要定时的时间长度确定计数初值
每个计数器含 16位初值寄存器(存放计数初值) 和 16位计数寄存器,拥有相同端口地址
控制寄存器(存放控制命令字)
外部引线及内部结构
三个可独立工作的16位定时/计数器,一个控制寄存器。共占用4个端口地址。
4个端口的地址编码:
A1 A0 0 0 CNT0 0 1 CNT1 1 0 CNT2 1 1 控制寄存器
2.计数启动方式
- 启动方式由GATE端信号的形式决定
- 软件启动 → GATE端为高电平
- 硬件启动 → GATE端有一个上升沿
3.工作方式
方式0
- 软件启动,不自动重复计数
- 计数结束输出高电平。
见图139
方式1
硬件启动,不自动重复计数
计数开始输出低电平,结束后又变高。
计数一旦启动,GATE端既使变 低也不会影响计数。
可重复触发。当计数到0后,不用再次写入计数初值,只要再次出现GATE上升沿,即可产生 一个同样宽度的负脉冲
见图140
方式2
- 软、硬件启动,自动重复计数。
- 计数到最后一个脉冲时输出低电平
- 可输出频率为(1/N) CLK脉冲频率的连续方波信号。
- 每1个OUT端脉冲包含 (N-1)*CLK的正脉冲,1CLK的负脉冲。
见图141
方式3
- 软、硬件启动,自动重复计数
- 输出对称方波
- 若N为偶数,输出频率 为(1/N)CLK频率的 连续对称方波信号。
- 若N为奇数,输出波形 为 (N+l)/2CLK 周 期 正 脉 冲 , (N-1)/2CLK 负 脉冲。
见图142
方式4
- 软件启动,不自动重复计数。
- 计数结束输出一个CLK宽度的 低电平
见图143
方式5
- 硬件启动,不自动重复计数
- 波形与方式4相同
见图144
工作方式小结
- 需要两个写脉冲——两次写操作
- 第1个写脉冲写入控制字
- 第2个写脉冲写入计数初值
- 不同的工作方式,有不同的计数启动方法。
- 可根据对输出波形的要求,选择不同的工作方式
- 能输出连续波形的只有方式2和方式3。
4.控制字
- 用于设定各计数器的工作方式
见图145
- 最大16位BCD数:9999
- 最大16位二进制数:FFFF
- 8253为减法计数器,最大计数初值:0
5.8253的应用
- 硬件设计
- 与系统的连接
- 软件设计
- 初始化程序设计
- 写入控制字
- 置计数初值
- 初始化程序设计
与系统的连接示意
见图146
应用中的注意点
每一次启动计数,需有两次写操作:
- 写控制字
- 写计数器初值
- 如果初值为8位字长,则一次写入;若初值为16位字长,则需两次写入
每个计数器的控制命令字均送入控制寄存器
各计数器的计数初值送到该计数器的计数寄存器及初值寄 存器。
初始化流程
见图147
- 当有两个以上计数器被应用时的初始化程序设计流程:
见图148
见图149
8253应用例
采用8253作定时/计数器,其接口地址为0120H~0123H。
输入8253的时钟频率为2MH。要求:
- CNT0每10ms输出一个CLK周期宽的负脉冲
- CNT1输出10KHz的连续方波信号
- CNT2在定时5ms后产生输出高电平
得出:
- 工作的计数器、工作方式、计数初值、计数脉冲频率
画线路连接图,并编写初始化程序
计算计数初值
CNT0:10ms/0.5us=20000
CNT1:2 MHz/10KHz=200
CNT2: 5ms/0.5us=10000
确定控制字
CNT0:方式2,16位计数值 → 00110100
CNT1:方式3,低8位计数值 → 01010110
CNT2:方式0,16位计数值 → 10110000
见图150
初始化程序
1
2
3
4
5
6
7
8
9
10
11
12
13CNT0:
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:
...8523接口
可编程8bit并行接口
- 通过软件初始化控制其工作方式和计数/ 定时时长
实现对外部设备的定时/计数控制
- 减法计数器
可编程并行接口8255
1.并行接口8255的特点
通道型接口
- 主要用于数据的输入或输出
含3个独立的8位并行输入/输出端口
- 2个为8位端口(PA,PB)
- 1个可拆分为两个4位端口(PC口)
各端口均具有数据的控制和锁存能力
- 既可作为输入端口,也可以作输出端口。
可通过编程,设置各端口工作在某一确定状态下。
见图151
2.结构
见图152
3.引线
- 连接系统端的主要引线:
- D0——D7
- #CS
- #RD
- #WR
- A0,A1
- REAST
A1 | A0 | |
---|---|---|
0 | 0 | A端口 |
0 | 1 | B端口 |
1 | 0 | C端口 |
1 | 1 | 控制寄存器 |
连接外设端的引脚:
- PA0——PA7
- PB0——PB7
- PC0——PC7
以上三种分别对应A、B、C三个端口
8255与系统的连接示意图
见图153
4.工作方式
- 基本输入/输出方式(方式0)
- 选通工作方式(方式1)
- 双向传送方式(方式2)
方式0:
- 相当于三个独立的8位简单接口
- 各端口既可设置为输入口,也可设置为输出口,但不能 同时实现输入及输出
- C端口可以是一个8位的简单接口,也可以分为两个独立 的4位端口
- 常用于连接简单外设,适于无条件或查询方式
方式0的应用:
- 习惯上:
- A端口和B端口作为8位数据的输入或输出口
- C口的某些位作为状态输入
- 注:
- 若使C端口低4位中某一位作为输入口,则低4位中其他位都应作 为输入口。同时可设高4位作为输出。
8255工作于方式0的连接示意图
见图154
方式1:
- 利用一组选通控制信号控制A端口和B端口的数 据输入输出
- A口、B口作输入或输出口,C口的部分位用作 选通控制信号
- A口、B口在作为输入和输出时的选通信号不同
方式1的应用:
- 方式1主要用于中断控制方式下的输入输出
- C口的8位除用作选通信号外,其余位可工作 于方式0下,作为输入或输出口。
方式2:
- 双向输入输出方式
- 可以既作为输入口,又作为输出口。
- 只有A端口可工作在方式2下
方式2的应用:
- 可使A端口作为双向端口所有
- 用于中断控制方式
- 当A口工作于方式2时:
- B口可工作于方式1
- 此时C口的所有位都用作选通控制信号的输入输出
- B口也可工作于方式0
- 此时C口的剩余位也可工作于方式0
- B口可工作于方式1
4.方式控制字及位控制字
- 方式控制字:
- 用于确定3个端口的工作方式及数据传送方向;
- 位控制字
- 仅用于C端口
- 可设置C口某位的初始状态(为高电平或低电平)
- 当其工作于方式0下且作为输出口时,一般需要对作为输出的 位设置初始状态(即初始化)
5.8255芯片的应用
- 芯片与系统的连接
- 芯片的初始化
- 相应的控制程序
8255应用例:
8086CPU通过8255实施监控。8255端口地址为1020H-1023H,启动操作由端 口B的PB7控制(高电平有效),端口A输入8个监控点的状态(每个引脚接 一个监控点),只要其中任一路出现异常情况(高电平),系统就通过与 PC0相连的信号灯报警(高电平灯亮),要求信号灯亮灭3次。要求:
- 设计系统线路图,要求用138译码器设计译码电路;
- 编写8255初始化程序及启动、测试和报警控制程序
地址范围:
- 0001 0000 0010 00XX
见图155
控制流程
见图156
控制程序
1 | MOV DX,1023H |
- 利用8255和8253构造报警系统:
见图157
8255应用要求
- 主要引线功能及结构
- 3种工作方式及其特点
- 应用
- 芯片与系统的连接
- 芯片的初始化编程
- 数据输入/输出控制程序设计
可编程并行数字接口小结
学习要求
了解什么是可编程
可编程定时/计数器
- 启动方式
- 不同工作方式下的输出波形特点
- 初始化编程
- 与系统的连接
根据需要选择相应的工作方式
可编程并行数字接口
- 不同工作方式的适应场合
- 与系统的连接
- 初始化编程
- 相关控制程序
利用可编程定时计数器8253、可编程并行接口8255设计需要的I/O接口控制系统
可编程并行数字接口应用例
利用8255和8253构造报警系统
- 设计一个简易的安全报警系统,外部时钟频率18.9KHz。系统功能要求如下:
- 在房间门窗等8个入口处安装探测器,PC7控制警报灯的亮或灭,PC6控制8253通道0的启动。正常情况下,探测器输出为低电平,当探测到有异常时,探测器输出为高电平。
- 利用8253通道0产生100Hz频率的方波,使警铃发出警报声。
- 系统启动后,在初始状态下,警铃不响,警灯不亮。系统不断检测各探测器的输出电平,如果检测到有任意一个探测器的输出为高电平,并且在随后的5次连续检测中,读入的探测器状态均不为0,则启动报警,使报警灯亮( PC6 、PC7输出高电平),警铃发出100Hz的报警声。
系统连接图
见图158
系统软件设计
见图159