第十周 可编程数字接口电路
大家好,又是我,沉迷学习无法自拔的小笨蛋康sir。
这个文集(点我)将会同步更新我观看吴宁老师的《微机原理与接口技术》教学视频写的笔记,学习笔记,大概每周一章。
有问题大家可以在评论下面留言讨论,欢迎纠错!
欢迎收藏阅读,动动小手给个硬币点个赞。
——@正能量的康sir
也可移步我的博客(https://blog.csdn.net/qq_33956508)会更新一些其它技术类文章。

第十周 可编程数字接口电路
内容提要:
两种可编程并行接口芯片的应用
可编程芯片:可以通过软件命令,控制芯片的工作方式
数据传输方向
输入/输出方式
可编程定时计数器8253
可编程并行接口8255
第51讲 可编程定时计数器8253
计数与定时
定时/计算器的工作基准是时钟脉冲

计数脉冲周期恒定——定时
定时的时间长度取决于时钟脉冲的周期及脉冲数
要求定时100秒——计数脉冲数:100
计数初值
由需求和条件决定
8253芯片特点
可编程的逻辑器件;
非通道型的接口,具有特定功能;
可实现计数和定时;
工作方式:
减法计数
计数值减为0时输出相应控制信号
输出控制信号的形式可通过软件设置
① 外部主要引脚信号功能及内部结构
② 计数启动方式
③ 工作方式
④ 控制命令字格式
⑤ 应用
1. 外部引线及内部结构
连接系统端的主要引线:
D0----D7
#CS
#RD
#WR
A0,A1
连接外设端的主要引线
CLK ----------- 时钟脉冲输入
GATE ---------- 门控信号输入
OUT ------------ 定时输出

内部结构特点
具有三个完全相同的、独立的计数/定时器

控制寄存器存放控制命令字
每个计数器占用1个端口地址
(3个计数器、一个控制寄存器所以占四个端口 A1A0是片内地址)
结构特点
内部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
软件启动,不自动重复计数;
计数结束输出高电平。

方式1
硬件启动,不自动重复计数;
计数开始输出低电平,结束后又变高。

① 计数一旦启动,GATE端既使变低也不会影响计数。
② 可重复触发。当计数到0后,不用再次写入计数初值,只要再次出现GATE上升沿,即可产生一个同样宽度的负脉冲
方式2
软、硬件启动,自动重复计数。
计数到最后一个脉冲时输出低电平

① 可输出频率为(1/N)CLK脉冲频率的连续方波信号。
② 每1个OUT端脉冲包含(N-1)*CLK的正脉冲,1CLK的负脉冲。
方式3
软、硬件启动,自动重复计数。
输出对称方波

① 若N为偶数,输出频率为(1/N)CLK频率的连续对称方波信号。
② 若N为奇数,输出波形为 (N+l)/2CLK 周 期 正脉 冲 , (N-1)/2CLK 负脉冲。
方式4
软件启动,不自动重复计数。
计数结束输出一个CLK宽度的低电平

方式5
硬件启动,不自动重复计数
波形与方式4相同

工作方式小结
需要两个写脉冲——两次写操作
第1个写脉冲写入控制字
第2个写脉冲写入计数初值
不同的工作方式,有不同的计数启动方法。
可根据对输出波形的要求,选择不同的工作方式。
能输出连续波形的只有方式2和方式3。
4. 控制字
用于设定各计数器的工作方式

最大16位BCD数:9999
最大16位二进制数:FFFF
8253为减法计数器
最大计数初值:0(1000000000000000)
5. 8253的应用
硬件设计:与系统的连接
软件设计
初始化程序设计
写入控制字
置计数初值
与系统的连接示意

应用中的注意点
每一次启动计数,需有两次写操作:
写控制字
写计数器初值:如果初值为8位字长,则一次写入;若初值为16位字长,则需两次写入
每个计数器的控制命令字均送入控制寄存器
各计数器的计数初值送到该计数器的计数寄存器及初值寄存器
初始化程序流程

当有两个以上计数器被应用时的初始化程序设计流程:


原则:先写入控制字,后写入计数初值
8253应用例:
采用8253作定时/计数器,其接口地址为0120H~0123H。
输入8253的时钟频率为2MH。要求:
CNT0每10ms输出一个CLK周期宽的负脉冲
CNT1输出10KHz的连续方波信号
CNT2在定时5ms后产生输出高电平
画线路连接图,并编写初始化程序.
工作的计数器
工作方式
计数初值
启动方式
计数脉冲频率
计算计数初值:
CNT0:10ms/0.5us=20000 (可有2MH推出周期0.5us)
CNT1:2 MHz/10KHz=200
CNT2: 5ms/0.5us=10000
确定控制字:
CNT0:方式2,16位计数值 控制字00110100
CNT1:方式3,低8位计数值 控制字01010110
CNT2:方式0,16位计数值 控制字10110000

初始化程序
CNT0:
MOV DX,0123H;控制器的地址
MOV AL,34H;计数器0的控制字
OUT DX,AL
MOV DX,0120H;计数器0的位置
MOV AX,20000
OUT DX,AL;写低8位
MOV AL,AH
OUT DX,AL;写高8位(OUT的操作数不能直接是AH)
CNT1:
……
CNT2:
……
8253接口
可编程8bit并行接口(但是内部计数器是16位的)。通过软件初始化控制其工作方式和计数/ 定时时长
实现对外部设备的定时/计数控制。
减法计数器。
第52讲 可编程并行接口8255
补充知识:并行通信和串行通信
在通信过程中,如果能够同时传送数据的所有位(位数山机器的字长决定)就称为并行通信;如果数据是逐位顺序传送,则称为串行通信
1. 并行接口8255的特点:
通道型接口
主要用于数据的输入或输出
含3个独立的8位并行输入/输出端口
2个为8位端口(PA,PB);
1个可拆分为两个4位端口(PC口)
各端口均具有数据的控制和锁存能力
既可作为输入端口,也可以作输出端口。
可通过编程,设置各端口工作在某一确定状态下。

2. 结构
A组控制:A端口,C口高4位
B组控制: B端口,C口低4位
针对A、B组的控制字存放在控制寄存器中

3. 引线
连接系统端的主要引线:
D0----D7
#CS
#RD
#WR
A0,A1
REAST

连接外设端的引脚:
PA0 —— PA7
PB0 —— PB7
PC0 —— PC7
分别对应ABC三个端口
8255与系统的连接示意图

4. 工作方式
基本输入/输出方式(方式0)
选通工作方式(方式1)
双向传送方式(方式2)
方式0:
相当于三个独立的8位简单接口
各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出
C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口
常用于连接简单外设,适于无条件或查询方式
方式0的应用:
习惯上:
A端口和B端口作为8位数据的输入或输出口
C口的某些位作为状态输入
注:
若使C端口低4位中某一位作为输入口,则低4位中其他位都应作为输入口。同时可设高4位作为输出。

方式1:
利用一组选通控制信号控制A端口和B端口的数据输入输出
A口、B口作输入或输出口,C口的部分位用作选通控制信号
A口、B口在作为输入和输出时的选通信号不同
方式1下A、B端口作为输出的选通控制信号和输出波形


方式1下A、B端口作为输入的选通控制信号和输出波形


方式1的应用:
方式1主要用于中断控制方式下的输入输出
C口的8位除用作选通信号外,其余位可工作于方式0下,作为输入或输出口。
方式2:
双向输入输出方式。可以既作为输入口,又作为输出口。
只有A端口可工作在方式2下
方式2下A端口的选通控制信号和输出波形

方式2的应用:
可使A端口作为双向端口所有
用于中断控制方式
当A口工作于方式2时:
B口可工作于方式1,此时C口的所有位都用作选通控制信号的输入输出
B口也可工作于方式0,此时C口的剩余位也可工作于方式0
4. 方式控制字及位控制字
方式控制字:
用于确定3个端口的工作方式及数据传送方向;
位控制字
仅用于C端口
可设置C口某位的初始状态(为高电平或低电平)
当其工作于方式0下且作为输出口时,一般需要对作为输出的位设置初始状态(即初始化)
8255控制字

5. 8255芯片的应用
芯片与系统的连接
芯片的初始化
相应的控制程序
8255应用例:
8086CPU通过8255实施监控。8255端口地址为1020H-1023H,启动操作由端口B的PB7控制(高电平有效),端口A输入8个监控点的状态(每个引脚接一个监控点),只要其中任一路出现异常情况(高电平),系统就通过与PC0相连的信号灯报警(高电平灯亮),要求信号灯亮灭3次。要求:
设计系统线路图,要求用138译码器设计译码电路;
编写8255初始化程序及启动、测试和报警控制程序
地址范围0001 0000 0010 00XX

控制流程

控制程序
MOV DX,1023H;控制寄存器地址
MOV AL,10010000B;方式控制字
OUT DX,AL
MOV AL,0;位控制字
OUT DX,AL
MOV DX,1021H
MOV AL,80H;PB7输出高电平,启动布防
OUT DX,AL
A:MOV DX,1020H;这里的四句是监控程序
IN AL,DX
CMP AL,0
JZ A
MOV CX,3
MOV DX,1022H;C端口
MOV AL,1;PC0位输出1(高电平)
B: OUT DX,AL
CALL DELAY
NOT AL;按位取反 C0位变换亮灭(高低电平)
CALL DELAY
LOOP B
JMP A
8255应用要求
主要引线功能及结构
3种工作方式及其特点
应用:
芯片与系统的连接
芯片的初始化编程
数据输入/输出控制程序设计
可编程数字接口小结
学习要求
了解什么是可编程
可编程定时/计数器8253
启动方式
不同工作方式下的输出波形
初始化编程
与系统的连接
还要注意根据需要选择相应的工作方式
可编程并行数字接口8255
不同工作方式适应场合
与系统的连接
初始化编程
相关控制程序
利用8255和8253构造报警系统
(略)