740 likes | 891 Views
第七章 外围接口器件及应用. 1. 计数/定时器825 4 编程结构和工作原理 2. 825 4 控制寄存器的格式和编程 3. 825 4 的典型工作模式及其使用. 1. 并行接口芯片 8255A 与 CPU 信号连接 2. 并行接口芯片 8255A 与 外设信号连接 3. 8255A 的三种工作方式和设置方法. 1. 串行通信的 基本概念 2. 串行通信的几种工作方式. 可编程定时 / 计数器 8254. 可编程并行接口芯片 8255 A. 可编程串行接口芯片 8251 A. 本章重点. 1. 4. 2. 3.
E N D
1. 计数/定时器8254编程结构和工作原理2. 8254控制寄存器的格式和编程 3. 8254的典型工作模式及其使用 1. 并行接口芯片8255A与CPU信号连接 2. 并行接口芯片8255A与外设信号连接 3. 8255A的三种工作方式和设置方法 1. 串行通信的基本概念 2. 串行通信的几种工作方式 可编程定时/计数器8254 可编程并行接口芯片8255A 可编程串行接口芯片8251A 本章重点
1 4 2 3 7.1 可编程定时器/计数器8254 计数/定时器8254的编程结构 8254工作原理 8254控制寄存器的格式和编程 8254工作模式及应用举例
定时信号的获取方法 (1)软件方法 使用延迟子程序 (2)硬件方法 使用计数器/定时器
7.1.1 8054的内部结构 • 1.公共控制模块 • ① 数据总线缓冲器 • 8位双向三态缓冲器,与数据总线接口。 • 功能: 往计数器设置初值 从计数器读取计数值 往控制寄存器设置控制字
7.1.1 8054的内部结构 ② 读写控制逻辑电路 片选信号CS有效的条件下,进行读写操作。 A1、A0对计数器和控制寄存器寻址 RD 读信号 WR 写信号 CS 片选信号 ③控制字寄存器 寄存初始化编程时的命令字,只写。
1.公共控制模块 数据缓冲器 读写控制逻辑电路 控制寄存器 寄存初始化编程时的命令字,只写。 8位双向三态缓冲器,与数据总线接口 功能: 1. 往计数器设置初值2. 从计数器读取计数值 3. 往控制寄存器设置控制字 片选信号CS有效的条件下,进行读写操作。 A1、A0对计数器和控制寄存器寻址 RD 读信号 WR 写信号 CS 片选信号
2.计数器(3个) • 8254内部有3个结构相同彼此独立 的计数器——计数器0,1,2。 • 计数频率可高达10MHz。16位长度。 • 每个计数器对外有3个引脚: —GATE为门控信号, —CLK为计数脉冲输入, —OUT为计数器输出端。
6.1.2 8254的引脚功能 • 24引脚,双列直插式封装,+5V电源。 • 3个计数器,每个计数器内部有: — 8位的控制寄存器 — 16位的计数初值寄存器 —计数执行部件 —输出锁存器
7.1.3 8254的工作方式 六种工作方式 • 方式0——计数结束产生中断 • 方式1——可重复触发的单稳态触发器 • 方式2——分频器 • 方式3——方波发生器 • 方式4——选通信号发生器 • 方式5——
1.方式0——事件计数器(计数结束产生中断)1.方式0——事件计数器(计数结束产生中断) a、门控信号GATE必须为1,计数器才能计数; b、计数时通道输出端OUT一直为0; c、通道计数器计数到0后,OUT由0到1,同时计数器停止工作。
2.方式1——硬件启动的单脉冲发生器(可重复触发的单稳态触发器)2.方式1——硬件启动的单脉冲发生器(可重复触发的单稳态触发器) a、门控信号GATE是触发信号,上升沿有效。即开始计数是由GATE的上升沿触发的; b、触发后,通道计数器开始计数,输出端OUT由高变低; c、计数器计数到0,OUT再由低变高。
3.方式2——脉冲发生器(分频器) a、GATE门为1,计数器才能工作,对CLK端上的脉冲进行计数; b、当计数器“减”计数到1时,输出端由高变低,再经过一个CLK周期,即计数器计数到0时,输出端OUT又跳变为高。所以方式2输出周期性负脉冲信号,其宽度固定为一个CLK周期; c、当计数器的值减为0时,自动重新装入计数初值,实现循环计数。
4. 方式3——方波发生器 • 方式2虽然可以作分频电路,但其输出是窄脉冲,如果是方波,就只有选方式3
5. 方式4——软件启动的单脉冲发生器 a、门控信号GATE为高电平,计数器开始减1计数,OUT维持高电平; b、当计数器减到0,输出端OUT变低,再经过一个CLK输入时钟周期,OUT输出又变高。
6. 方式5——硬件触发的单脉冲发生器 a、用门控上升沿触发即硬件触发 b、计数到0时,输出端一个宽度为1个时钟周期的负脉冲,然后又自动变为高电平。
6.1.4 8254的命令字与初始化编程 • 1.控制字
6.1.4 8254的命令字与初始化编程 • 2. 8254的编程命令 编程原则: ① 设置初值前必须先写控制字 ② 初值设置要符合控制字中的格式规定 编程命令有两类: ① 读出命令 ② 写入命令 设置控制字命令 设置初始值命令 锁存命令
6.1.5 8254应用举例 例1 设8254口地址为200H~203H,GATE0为高电平,CLK0接2MHz方波,要求OUT0端输出500Hz的连续脉冲。 分析:0号计数器,地址:200H 控制寄存器地址:203H 先写计数值低8位,再写高8位 工作方式2 二进制或BCD码均可 计数值设定:2MHz/500Hz=4000 控制字:00110100B
MOV DX,203H ;控制端口 MOV AL,00110100B ;二进制 OUT DX,AL MOV DX,200H ;计数器0 MOV AX,4000 OUT DX,AL MOV AL,AH • OUT DX,AL
例2 编程时系统扬声器发出800Hz的音箱,当主机键盘按下任意键时停止。 电路条件: PC机分配给8254的地址:40H~43H CLK0~CLK2频率:1.193182MHz GATE0, GATE1接+5V 系统外接还有8255A
例3 下图为8253用作方波发生器与8088总线的接口方法。图中仅用了A7~A2作为8253片选地址线,产生片选信号Y1与8253的CS端相连。要求计数器2用作方波发生器产生40KHz方波输出。已知CLK2时钟端输入信号频率为2MHz。
【例】 现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为1MHz。要求利用8253做一个秒信号发生器,其输出接一发光二极管,以0.5秒点亮,0.5秒熄灭的方式闪烁指示。设8253的通道地址为80H~86H(偶地址) 解:1、时间常数计算 这个例子要求用8253作一个分频电路,而且其输出应该是方波,否则发光二极管不可能等间隔闪烁指示。频率为1MHz信号的周期为1微秒,而1Hz信号的周期为1秒,所以分频系数N可按下式进行计算:
8253通道0 8253通道1 1MHz 1KHz OUT CLK OUT CLK 0 0 1 1 GATE GATE 0 1 +5V 【例】 由于8253一个通道最大的计数值是65536,所以对于N=1000000这样的大数,一个通道是不可能完成上述分频要求的。由于 即取两个计数器,采用级联方式。 2、电路
【例】 3、工作方式选择 由于通道1要输出方波信号推动发光二极管,所以通道1应选工作方式3。对于通道0,只要能起分频作用就行,对输出波形不做要求,所以方式2和方式3都可以选用。 这样对于通道0,我们取工作方式2,BCD计数;对于通道1,我们取工作方式3,二进制计数(当然也可选BCD计数)
【例】 4、程序 mov al,00110101b ;通道0控制字 out 86h,al mov al,00 ;通道0初始计数值 out 80h,al mov al,10h out 80h,al mov al,01110110b;通道1控制字 out 86h,al mov al,0e0h ;通道1初始计数值,03E8H=1000BCD out 82h,al mov al,03h out 82h,al
【例】 例4 计件系统。计件系统的功能就是记录 脉冲的个数。 一个脉冲代表一个事件,比如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上已加工好的工件。要求在计件过程中,PC机可以显示当前计数器的内容,当完成10000个工件记录后,系统发出1KHz信号推动喇叭发音通知用户。 解:1、电路。 需要两个通道,一个作为计数,选用通道0。另一个产生1KHz信号,选用通道1。工作原理如下,传感器电路把物理事件转换为脉冲信号输入到通道0计数,当记录10000个事件后,通道0计数器溢出,GATE端输出高电平,这时通道1开始工作,产生1KHz信号推动喇叭发音
1MHz 8253通道0 8253通道1 驱动 OUT CLK OUT CLK 0 0 1 1 放大 计件 GATE GATE 0 1 脉冲 +5V
【例】 2、工作方式选择 对于通道1,由于要产生1KHz信号,故选用工作方式3。对于通道0,要求初始计数值写入计数通道后,计数器就可以工作,则通道0的启动方式应是软件启动。另外由于要求计数溢出后产生一个信号来启动一个事件,即喇叭发音,故可选的工作方式为方式0和方式4,对于图所示方案,通道1的GATE信号由通道0的OUT信号产生,这个OUT信号应该是电平型的,所以通道0应选用方式0。
【例】 3、时间常数 N0=1000
1 4 2 3 7.2 可编程并行接口芯片8255A 8255A与CPU接口的信号连接 8255A与外设的信号连接 8255A三种工作方式和设置 应用举例
并行接口芯片8255A特点 传输速度快 信息率高 用电缆多
6.2.1 8255A的内部结构与外部引脚 下图为典型的并行接口和外设连接的示意图
1. 数据端口A、B、C 端口A、B、C每一个对应 1个8位数据输入锁存器 1个8位输出锁存器/缓冲器 通常使用方法: 端口A、B作为独立的输入或者输出端口 端口C配合端口A、B
2. A组控制和B组控制 (1)A组控制电路 控制端口A和端口C的高4位的工作方式和读写操作。 (2)B组控制电路 控制端口B和端口C的低4位的工作方式和读写操作。
4. 与外设一侧相连的信号 PA7~PA0——A组数据信号; PB7~PB0——B组数据信号; PC7~PC0——C组数据信号。
5. 与CPU一侧相连的信号 RESET 复位信号,高电平有效 。 D7~D0 数据线 。 CS 片选信号。 RD 读出信号。 WR 写入信号。 A1、A0 端口选择信号。
8255工作方式 8255A方式选择注意: 有三种基本工作方式: 方式0——基本的输入输出方式 方式1——选通的输入输出方式 方式2——双向传输方式 只有端口A能工作在方式2 同一组的两端口可分别工作在输入和输出方式
1. 方式0—基本型输入输出方式 方式0的工作特点 端口可作为输入口,也可作为输出口。 可以有16种不同的组合
2. 方式1—选通型输入输出 方式1的特点 端口A、B可分别工作在方式1。 端口C配合方式1
控制字工作方式1 信号说明 上图控制信号说明: STB 选通信号 IBF 缓冲器满信号 INTR 送往CPU的中断请求信号 INTE 中断允许信号 下图为方式1的输入时序 方式1输出时序 OBF 输出缓冲器满信号 ACK 外设响应信号 INTR 中断请求信号 INTE 中断允许信号
3. 方式2 ---双向数据传输 方式2的特点 只适用于端口A。 端口C用5个数位提供控制和状态信号。 方式2的使用场合 一个并行外设既可以作为输入又可以作为输出 输入输出动作不会同时进行