可编程定时计数器8253.ppt

上传人:本田雅阁 文档编号:3337654 上传时间:2019-08-13 格式:PPT 页数:39 大小:599.57KB
返回 下载 相关 举报
可编程定时计数器8253.ppt_第1页
第1页 / 共39页
可编程定时计数器8253.ppt_第2页
第2页 / 共39页
可编程定时计数器8253.ppt_第3页
第3页 / 共39页
可编程定时计数器8253.ppt_第4页
第4页 / 共39页
可编程定时计数器8253.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《可编程定时计数器8253.ppt》由会员分享,可在线阅读,更多相关《可编程定时计数器8253.ppt(39页珍藏版)》请在三一文库上搜索。

1、可编程定时/计数器8253,苗付友 ,20010.12,可编程定时/计数器8253,2,8253作用,定时 软件定时:让机器执行一段程序,安排循环来实现定时,容易实现,定时时间调整方便,定时精确,占用了CPU资源,降低了CPU的利用率。 硬件定时:可编程定时/计数硬件芯片,定时值、定时范围可以很容易的由软件改变,具有使用灵活、功能较强等特点。 外部事件计数 外部事件计数就是对外部脉冲信号计数。产生脉冲信号的外部原因就是外部事件。 如高速公路入口处一个专用计算机检测系统,它可以自动对进入高速公路的车辆进行计数,20010.12,可编程定时/计数器8253,3,8253的内部结构,8253内部有3

2、个独立的16位定时计数器通道。 计数器可按照二进制或十进制计数,计数和定时范围可在165535之间改变, 每个通道有6种工作方式,计数频率可高达2MHz以上。,3个计数通道 通道控制寄存器 数据总线缓冲器 读写控制电路,20010.12,可编程定时/计数器8253,4,计数通道,通道0、通道1和通道2 CLK:计数器的脉冲输入端,GATE: 计数器的门控信号,OUT: 计数器的输出信号,一般与计数溢出有关。 工作原理: 8253计数器工作在减1状态,每输入一个计数脉冲,计数器值减1,当计数器 计数到零时,OUT信 号有效,通知外设计 数器产生溢出,20010.12,可编程定时/计数器8253,

3、5,通道的使用 计数器:将要计数的次数预置到该通道计数器中 定时器:从CLK输入一固定频率的时钟脉冲,再根据要求定时的时间计算出定时所需的计数值或称时间常数,并预置到计数器中 计数值定时时间/时钟脉冲周期,20010.12,可编程定时/计数器8253,6,通道控制寄存器,一个通道控制寄存器 CPU通过对控制寄存器的读写,可以分别对三个计数通道的工作方式进行设置 只能写不能读,20010.12,可编程定时/计数器8253,7,数据总线缓冲器,双向三态的8位数据缓冲器,实现8253和CPU之间的数据接口,读写控制电路,片选信号 CS A1A0的组合 :选择三个通道、一个控制寄存器,共4个端口 读信

4、号 和写信号 由CPU提供,低电平有效。,20010.12,可编程定时/计数器8253,8,8253的管脚分配,通道管脚 CLKn:通道n的脉冲输入管脚外部事件 或定时脉冲由这三个管脚输入; OUTn:通道n的输出管脚,当计数值减 到0 在OUT管脚上输出,输出波形取决于 8253通道的工作方式; GATEn:门控信号输入管脚,8253的管脚包括数据线D7D0,读写控制线,以及和CPU地址线相连接的片选信号,20010.12,可编程定时/计数器8253,9,8253的编程,控制字 分为4部分,通道选择、计数器读/写方式、工作方式和计数码的选择。,计数器选择(SC1、SC0),计数器读/写方式(

5、RLl、RL0),20010.12,可编程定时/计数器8253,10,计数器的锁存操作 8253一旦初始化后,就不需要CPU参与而自动计数。为了读出计数值时不干扰实际计数过程,同时读出的值又是稳定的,就要求对通道计数器中的计数值进行锁存。 硬件锁存暂停计数 GATE 暂停计数 软件控制命令锁存 每一个通道都有一个输出锁存器(16位),平时它的值随通道计数器的值变化,当向通道写入锁存的控制命令时,它把计数器的现行值锁存而计数器的计数过程照样进行。这样,CPU读取的是锁存器中的值。当重新写入一个命令字或CPU读取计数值后,计数通道会自动解除锁存状态。 锁存控制字: 0000XXXXB,先读取低8位

6、,后读取高8位(不锁存): 10 00H 0F 00H,20010.12,可编程定时/计数器8253,11,工作方式选择(M2、M1、M0),BCD计数制:写入初值范围为0000到9999,而0000是最大值,代表10000 二进制计数制:写入初值范围为0000到FFFFH,其中0000为最大值,代表65536。,控制字的D5D4为00,表示的是锁存命令。这时控制字中的低4位无效,20010.12,可编程定时/计数器8253,12,8253的工作方式,方式0计数结束中断方式 方式1可编程序的单独负脉冲 方式2速率发生器 方式3方波发生器 方式4软件触发方式 方式5硬件触发方式,20010.12

7、,可编程定时/计数器8253,13,方式0计数结束中断方式,方式0的作用 用户可以在设定时间上产生中断信号 工作方式0特点: 门控信号GATE必须为1,计数器才能计数; 计数时通道输出端OUT一直为0; 通道计数器计数到0后,OUT由0到1,同时计数器停止工作。 OUT输出的从低到高的正跳变或高电平可作为中断请求信号INTR,向CPU发出中断请求。 在计数过程中,GATE信号为低电平时,停止计数,一旦GATE变高,则继续计数,20010.12,可编程定时/计数器8253,14,INT,8086, MOV AL,10011010B ;置8255A方式控制字 OUT 8255控制口,AL MOV

8、AL,00H ;8255A置位/复位控制字,使PC00 OUT 8255控制口,AL MOV AL, 00110000B ;置8253通道0方式控制字30H OUT 8253控制口,AL MOV AL,40H ;置8253通道0时间常数, OUT 通道0端口,AL ; 第一次写初始计数值的低8位, MOV AL,38H ; 第二次写高8位。3840H=14400秒=4小时 OUT 通道0端口,AL 中断程序中有关程序段如下: MOV AL,00000001B ;8255置位/复位控制字,使PC01 OUT 8255控制口,AL ,家庭厨房系统,20010.12,可编程定时/计数器8253,15

9、,方式1可编程序的单独负脉冲,单稳电路 在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低于规定的最小宽度的脉冲后,单稳电路就输出一个用户事先设定宽度的脉冲。 8253的方式1就是一个可编程单稳电路 方式1工作过程 门控信号GATE是触发信号,上升沿有效。即开始计数是由GATE的上升沿触发的; 触发后,通道计数器开始计数,输出端OUT由高变低; 计数器计数到0,OUT再由低变高。 PWNTclk PW:输出的负脉冲宽度 ;N:初始计数值,Tclk:CLK端的脉冲周期,20010.12,可编程定时/计数器8253,16,车辆统计,不同车辆间隔T3不能太小;(PW) 同一车辆的不同车厢间距

10、离不能太大;(PW),20010.12,可编程定时/计数器8253,17,方式2速率发生器,方式2是一个可编程的分频电路,它把输入信号CLK分频后以脉冲的形式由OUT输出,而分频系数就是用户事先对通道计数器写入的初始计数值 工作方式 (OUT初始为高电平) GATE门为1,计数器才能工作,对CLK 端上的脉冲进行计数; 当计数器“减”计数到1时,输出端由 高变低,再经过一个CLK周期,即计 数器计数到0时,输出端OUT又跳变 为高。所以方式2输出周期性负脉冲信 号,其宽度固定为一个CLK周期; 当计数器的值减为0时,自动重新装入 计数初值,实现循环计数,方式2计数初值重载,20010.12,可

11、编程定时/计数器8253,18,在计数过程中,如果GATE信号为低电平,则停止计数,待GATE信号变为高电平后,从初始值开始重新计数。,方式2定时波形图,20010.12,可编程定时/计数器8253,19,方式3方波发生器,工作方式: 当控制字写入控制寄存器后,输出端OUT变高。 当计数初值写入通道,且GATE为高电平时计数器开始计数,OUT保持高电平。 若计数初值n为偶数,则当计数值减到n2时,输出端OUT变为低电平。然后此 低电平一直保持到计数值减为0,OUT再次变为高电平。 当计数值减到0时计数器重新装入计数值,实现循环计数。 当计数值N为偶数时,输出端OUT输出重复周期为NCLK,占空

12、比为1:1的方波。 当计数初值N为奇数,输出重复周期为NCLK,但占空比为(N+1)/2(N-1)/2,因而输出是近似方波。,20010.12,可编程定时/计数器8253,20,若在计数期间写入一个新的计数值,并不立即影响现行计数过程,等到计数值减到0后,重新装入新的计数值,开始以新的速率输出方波。,图7.35 方式3定时波形图,20010.12,可编程定时/计数器8253,21, 8253的通道0,实时中断。用于产生固定频率的时钟节拍,故设定工作在方式3,初值为0,所以从OUT0管脚的输出方波频率为1.19MHz/216 =18.2Hz,通道0的控制字为36H;, 8253的通道l,动态RA

13、M刷新。用于固定频率的刷新信号,故设定工作在方式2,计数值为12H18,速率输出频率为1.19M/1866.1kHz,即定时时间为15.13s,通道1的控制字为54H;, 8253的通道2,用于产生频率信号。故取工作在方式3,计数值为6A4H1190,方波输出频率为1.19MHz/11901kHz。此信号频率决定扬声器的音调,通道2的控制字为0B6H。,PC/XT机中8253电路连接图,20010.12,可编程定时/计数器8253,22,方式4软件触发方式,软件触发方式:CPU通过指令触发一个选通信号给外部设备,选通信号在触发后设定时间点上发出。 选通信号作用:锁存器STB,打印机STB CP

14、U通过触发8253的某个通道,定时启动一个事件或工作过程,或CPU启动某个事件的命令延迟了设定时间后才执行。 方式4中,当写入控制字后,输出端OUT变为高电平。当计数初值写入通道后,CPU就完成了对通道的触发。当计数器计数到0时,通道的OUT端就输出负脉冲。,20010.12,可编程定时/计数器8253,23,方式4工作过程 门控信号GATE为高电平,计数器开始减1计数,OUT维持高电平; 当计数器减到0,输出端OUT变低,再经过一个CLK输入时钟周期,OUT输出又变高。 所以输出端OUT在计数器溢出时产生一个宽度为1个CLK周期的负脉冲。而这个负脉冲就可以做为外设的选通信号。,若在计数过程中

15、,GATE信号变低,则停止计数;到GATE信号变高,重新开始从初值减1计数。,20010.12,可编程定时/计数器8253,24,方式4下的家庭厨房系统,早晨启动你的计算机,在8点钟执行对8253通道0的初始化程序 ,关掉CPU,20010.12,可编程定时/计数器8253,25,方式5硬件触发方式,硬件触发方式 外部通过一个有效沿触发信号启动一个选通信号给外部设备,选通信号在触发后设定时间点上发出。 工作过程 当控制字写入控制寄存器后,输出端OUT变高; 当计数值写入通道计数器后,不立即开始计数; 只有当GATE信号的上升沿触发通道后,通道计数器才开始计数(所以方式5称硬件触发); 当计数值

16、减到0,输出端OUT变低,再经过一个CLK时钟周期,OUT端输出又变高。(输出端OUT输出的也是一个宽度固定为1个CLK周期的负脉冲 ),20010.12,可编程定时/计数器8253,26,计数器的计数值减到0后,将自动重新装入计数值,但并不开始计数,待到再一次有GATE的上升沿触发才开始计数。,早晨8点前的任何一个时刻启动你的计算机 ,对8253通道0的初始化程序 ,关掉CPU在8点时,按下开关,计数开始计数,20010.12,可编程定时/计数器8253,27,8253的工作方式小节,与频率发生器有关的工作方式 与计数器有关的工作方式,20010.12,可编程定时/计数器8253,28,与频

17、率发生器有关的工作方式 8253有两种方式与频率发生器有关,即方式2和发生3。 对OUT端,方式2提供给用户的是负脉冲,方式3提供给用户的是方波。 在这个两种方式下,GATE信号要始终保持为高。,20010.12,可编程定时/计数器8253,29,与计数器有关的工作方式 对于计数器类,有方式0、1和方式4、5。启动计数器的方式有两种。 一种是CPU把时间常数写入相应通道后,计数器就开始工作,我们可以称之为软件启动方式,在这种启动方式下,GATE要始终保持为高电平,所以方式0和方式4可以称为软件启动方式。 另一种是硬件启动计数器,即CPU把时间常数写入计数器后,即使GATE为高电平,计数器并不工

18、作。只有GATE发生跳变,其上升沿启动计数器工作, 所以方式1和方式5就可以称为硬件启动方式,20010.12,可编程定时/计数器8253,30,计数器溢出时,OUT有两种输出形式,要么是电平,要么是负脉冲。前者有方式0方式1,后者有方式4和方式5。,20010.12,可编程定时/计数器8253,31,8253应用举例,8253初始化 通过8253的控制端口向控制字寄存器写入相应通道的控制字,控制字包括如下信息:指定通道的工作方式,对通道计数器的读写方式,通道计数器计数时所采用的数制; 通过8253的通道端口向相应的通道计数器写入初始计数值。如果在控制字中已确定16位的读写方式,则要对通道端口

19、写操作两次,第一次写初始计数值的低8位,第二次写高8位。,20010.12,可编程定时/计数器8253,32,例题: 现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为1MHz。要求利用8253做一个秒信号发生器,其输出接一发光二极管,以0.5秒点亮,0.5秒熄灭的方式闪烁指示。设8253的通道地址为80H86H(偶地址) 解答: (1) 8253作一个分频电路,而且其输出应该是方波 (2)分频系数N : 216,通道计数器级联实现分频系数超过216的分频要求,20010.12,可编程定时/计数器8253,33,通道0首先把1MHz信号1000分频,产生1KHz的信号,通道1再把1KHz信号

20、1000分频,结果就得到的1Hz信号,(3)通道1要输出方波信号推动发光二极管,所以通道1应选工作方式3。对于通道0,只要能起分频作用就行,对输出波形不做要求,所以方式2和方式3都可以选用。,(4) 初始化: 通道0: 工作方式2,BCD计数; 通道1: 工作方式3,二进制计数,20010.12,可编程定时/计数器8253,34,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,0E

21、0H ;通道1初始计数值,3E8H=1000 BCD OUT 82H,AL MOV AL,03H OUT 82H,AL,20010.12,可编程定时/计数器8253,35,例2:延时程序,设8253的通道地址为80H86H,8255的地址为88H 8EH (偶地址) 解:1、电路 这个例子要求用8253,8255作一个延时系统。,20010.12,可编程定时/计数器8253,36,GATE0,CLK0,OUT0,+5V,1KHz,PC0,8253,8255,20010.12,可编程定时/计数器8253,37,2、时间常数计算 如果8253的CLK输入1KHz信号,延时时间为1S,则时间常数为

22、N1/0.001=1000D=03E8H 3、工作方式选择 4、程序,20010.12,可编程定时/计数器8253,38,MOV AL,10011011B ;A、B、C为输入 OUT 8255_CTRL,AL DELAY1S PROC MOV AL,00110001B ;通道0工作在方式0, ;16位读写,BCD计数 OUT 8253_CTRL,AL MOV AL,0 OUT COUNTER0,AL MOV AL,10H OUT COUNTER0,AL AGAIN: IN AL,8255_C ;检测是否由OUT端输出1 TEST AL,01 JZ AGAIN RET DELAY1S ENDP,20010.12,可编程定时/计数器8253,39,作业:,P202 1、3、5、6,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1