微机原理与接口技术上海交大课件第8-9章
- 格式:pdf
- 大小:909.18 KB
- 文档页数:83
第8章 可编程计数器/定时器 8253及其应用8.0 计数/定时方法简介 8.1 8253的工作原理 8.2 8253的应用举例8.0 计数/定时方法简介软件定时(软件延时) CPU执行指令需要花费固定的时间,执行一段没有目的的指令 可以达到定时的效果。
灵活方便,节省费用。
CPU利用率低。
不可编程硬件定时 以逻辑门配合RC组成定时电路,如555等。
通过改变RC值,调 整定时时间。
定时精度不高。
RC值容易随外部环境变化而变化 可编程硬件计数/定时 利用晶体振荡器产生高频时间基准,送至可编程硬件进行分频 后,通过指令设定定时初值,到达预定时间后,自动形成一个 输出信号到CPU的中断引脚,提出中断请求。
CPU占用率低, 定时时间可设。
注:将晶体振荡器输出改为外部脉冲输出,则可实现计数功能。
8.1 8253的工作原理8253基本原理图D0 D7 ~8253内部结构及引脚数据 总线 缓冲器 计数器 0 CLK0 GATE0 OUT0计数器 0计数初值寄存器 高8 低8 执行部件 D0 D7 输出锁存寄存器 ~ RD WR A0 A1 CSO O 读/写控制逻辑 O 控制 寄存器计数器 1CLK1 GATE1 OUT1计数器 2CLK2 GATE2 OUT2一、8253作用 定时软件定时:让机器执行一段程序,安排循环来实现定 时,容易实现,定时时间调整方便,定时不精确,占用 了CPU资源,降低了CPU的利用率。
硬件定时:可编程定时/计数硬件芯片,定时值、定时范 围可以很容易的由软件改变,具有使用灵活、功能较强 等特点。
外部事件计数外部事件计数就是对外部脉冲信号计数。
产生脉冲信号 的外部原因就是外部事件。
如高速公路入口处一个专用计算机检测系统,它可以自 动对进入高速公路的车辆进行计数8253/8254定时计数器 3个独立的16位计数器通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数8254是8253的改进型8253定时/计数器的工作原理 定时/计数器的核心部件为可预置初值计数 器。
预置初值后开始计数, CLK 信号每输入一个脉 冲,计数值减 1 ,一直减到 0 ,并且 OUT 脚同时产生 相应输出信号,该信号可用作中断请求。
要注意定时器 的容量即位数GATE门控 信号 计数脉冲 CLK 输入 可预置初值计数器OUT 输出计数初值四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器 以及三个独立的16位的计数器通道。
这三个计数器分别是计数器 0通道、计数器1通道和计数器2通道。
(1)数据总线缓冲器:8位的双向三态缓冲器。
用于暂存数据, 使用在以下几个方面: ①CPU在初始化编程时,向8253写入控制字。
②CPU向某一通道写计数初值。
③CPU从某一通道读计数初值。
(2)读/写控制逻辑电路:接受输入的RD、WR、CS、A1、A0等信 号组合产生出对8253要执行的操作,见操作表。
(3)控制字寄存器:只能写入,不能读出。
8初始化编程时,写 入控制字决定通道的工作方式。
(4)3个计数器:分别为0、1和2,是3个独立的计数/定时通 道,都可按不同的方式工作。
每个计数器内部都包含一个16位的 预置初始值寄存器。
一个可预置数减法计数器和一个锁存器。
数据总线缓冲器双向三态的8位数据缓冲器,实现8253和 CPU之间的数据接口读/写控制电路片选信号 CS A1A0的组合 :选择三个通道一个控制寄存 器,共4个端口 读信号 RD 和写信号 WR 由CPU提供,低电平 有效。
计数器 通道0、通道1和通道2 CLK:计数器的脉冲输入端,GATE: 计数器的门控 信号,OUT: 计数器的输出信号,一般与计数溢出 有关。
8253计数器工作在减1状态,每输入一个计数脉 冲,计数器值减l, OUT CLK 当计数器计数到零时, 16位计数器 OUT信号有效通知外 设计数器产生溢出 GATE计数器的使用计数器:将要计数的次数预置到该通道计数器中 定时器:从CLK输入一固定频率的时钟脉冲,再根 据要求定时的时间计算出定时所需的计数值或称 时间常数,并预置到计数器中 计数值=定时时间/时钟脉冲周期写 8253的控制字,写入控制寄存器(A1,A0 = 11) 写入计数值,写到相应的计数器。
8253控制寄存器格式D7 SC1 D6 SC0 D5 D4 RW1 RW0 D3 M3 D2 M2 D1 M1 D0 BCD计数器选择 00:计数器0 01:计数器1 10:计数器2 11:*8254读回计数值写入顺序 00:读计数值(锁存) 01:写低8位,高8位为0 10:写高8位,低8位为0 11:先写低8位,后写高8位工作方式选择 000:方式0 001:方式1 010:方式2 101:方式5计数值形式 0:二进制 1:BCD码......二、 初始化编程步骤和门控信号的功能 8253初始化通过8253的控制端口向控制字寄存器写入相应通道的 控制字,控制字包括如下信息:指定通道的工作方式, 对通道计数器的读写方式,通道计数器计数时所采用的 数制; 通过8253的通道端口向相应的通道计数器写入初始计 数值。
如果在控制字中已确定16位的读写方式,则要对 通道端口写操作两次,第一次写初始计数值的低8位, 第二次写高8位。
8253的编程 控制字分为4部分,通道选择、计数器读/写方式、 工作方式和计数码的选择。
计数器选择(SC1、SC0)计数器读/写方式(RLl、RL0)计数器的锁存操作8253一旦初始化后,就不需要CPU参与而自动计数。
为 了读出计数值时不干扰实际计数过程,同时读出的值又 是稳定的,就要求对通道计数器中的计数值进行锁存。
先读低8位,后读取高8位(不锁存): 1000H 0F00H硬件锁存暂停计数 软件控制命令锁存GATE暂停计数每一个通道都有一个输出锁存器(16位),平时它的值随通道计数 器的值变化,当向通道写入锁存的控制命令时,它把计数器的现 行值锁存而计数器的计数过程照样进行。
这样,CPU读取的是锁 存器中的值。
当重新写入一个命令字或CPU读取计数值后,计数 通道会自动解除锁存状态。
锁存控制字: 0000XXXXB工作方式选择(M2、M1、M0)控制字的D5D4为00,表示的是锁 存命令。
这时控制字中的低4位无 效BCD计数制:写入初值范围为0000到 9999,而0000是最大值,代表10000 二进制计数制:写入初值范围为0000 到FFFFH,其中0000为最大值,代表 65536。
8253的工作方式方式0——计数结束中断方式 方式1——可编程序的单独负脉冲 方式2——速率发生器 方式3——方波发生器 方式4——软件触发方式 方式5——硬件触发方式方式0——计数结束中断方式方式0的作用用户可以在设定时间上产生中断信号工作方式0特点:门控信号GATE必须为1,计数器才能计数; 计数时通道输出端OUT一直为0; 通道计数器计数到0后,OUT由0到1,同时计数器停止工作。
OUT输出的从低到高的正跳变或高电平可作为中断请求信号INTR,向 CPU发出中断请求。
在计数过程中,GATE信号为低电平时,停止计数,一旦GATE变高,则 继续计数.INT 8086 家庭厨房系统 …… MOV AL,10011010B ;置8255A方式控制字 OUT 8255控制口,AL MOV AL,00H ;8255A置位/复位控制字,使PC0=0 OUT 8255控制口,AL MOV AL,30H ;置8253通道0方式控制字 OUT 8253控制口,AL MOV AL,40H ;置8253通道0时间常数 OUT 通道0端口,AL MOV AL,38H OUT 通道0端口,AL …… 中断程序中有关程序段如下: …… MOV AL,00000001B ;8255置位/复位控制字,使PC0=1 OUT 8255控制口,AL ……方式1——可编程序的单稳态输出方式单稳电路在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低 于规定的最小宽度的脉冲后,单稳电路就输出一个用户事先设定宽 度的脉冲。
8253的方式1就是一个可编程单稳电路方式1工作过程门控信号GATE是触发信号,上升沿有效。
即开始计数是由GATE的 上升沿触发的; 触发后,通道计数器开始计数,输出端OUT由高变低; 计数器计数到0,OUT再由低变高。
PW:输出的负脉冲宽度 ;N:初始计数值,Tclk:CLK端的脉冲周期PW=N×Tclk方式2——比率发生器方式2是一个可编程的分频电路,它把输入信号CLK分频 后以脉冲的形式由OUT输出,而分频系数就是用户事先对 通道计数器写入的初始计数值 工作方式 (OUT初始为高电平)GATE门为1,计数器才能工作,对CLK 端上的脉冲进行计数; 当计数器“减”计数到1时,输出端由 高变低,再经过一个CLK周期,即计 数器计数到0时,输出端OUT又跳变 为高。
所以方式2输出周期性负脉冲信 号,其宽度固定为一个CLK周期; 当计数器的值减为0时,自动重新装入 计数初值,实现循环计数方式2计数初值重载在计数过程中,如果GATE信号为低电平,则停止计数,待GATE信号变为高电平后,从初始值开始重新计数。
方式2定时波形图方式3——方波发生器工作方式:Z当控制字写入控制寄存器后,输出端OUT变高。
Z当计数初值写入通道,且GATE为高电平时计数器开始计数,OUT保持高电平。
Z若计数初值n为偶数,则当计数值减到n/2时,输出端OUT变为低电平。
然后此低电平一直保持到计数值减为0,OUT再次变为高电平。
当计数值减到0时计数器重新装入计数值,实现循环计数。
Z当计数值N为偶数时,输出端OUT输出重复周期为N×CLK,占空比为1:1的方波。
Z当计数初值N为奇数,输出重复周期为N×CLK,但占空比为[(N+1)/2]/[(N-1)/2],因而输出是近似方波。
方式4——软件触发方式软件触发方式:CPU通过指令触发一个选通信号给外部设备,选通信号在触发后设定时间点上发出。
选通信号作用:锁存器STB,打印机STBCPU通过触发8253的某个通道,定时启动一个事件或工作过程,或CPU启动某个事件的命令延迟了设定时间后才执行。
方式4中,当写入控制字后,输出端OUT变为高电平。
当计数初值写入通道后,CPU就完成了对通道的触发。
当计数器计数到0时,通道的OUT端就输出负脉冲。
方式4工作过程Z门控信号GATE为高电平,计数器开始减1计数,OUT维持高电平;Z当计数器减到0,输出端OUT变低,再经过一个CLK输入时钟周期,OUT 输出又变高。
Z所以输出端OUT在计数器溢出时产生一个宽度为1个CLK周期的负脉冲。