1、苗付友20010.12可编程定时/计数器825328253作用作用v定时定时软件定时:让机器执行一段程序,安排循环来实现定时,软件定时:让机器执行一段程序,安排循环来实现定时,容易实现,定时时间调整方便,定时精确,占用了容易实现,定时时间调整方便,定时精确,占用了CPU资源,降低了资源,降低了CPU的利用率。的利用率。硬件定时:可编程定时硬件定时:可编程定时/计数硬件芯片,定时值、定时范计数硬件芯片,定时值、定时范围可以很容易的由软件改变,具有使用灵活、功能较强围可以很容易的由软件改变,具有使用灵活、功能较强等特点。等特点。v外部事件计数外部事件计数 外部事件计数就是对外部脉冲信号计数。产生脉
2、冲信号外部事件计数就是对外部脉冲信号计数。产生脉冲信号的外部原因就是外部事件。的外部原因就是外部事件。如高速公路入口处一个专用计算机检测系统,它可以自如高速公路入口处一个专用计算机检测系统,它可以自动对进入高速公路的车辆进行计数动对进入高速公路的车辆进行计数 20010.12可编程定时/计数器825338253的内部结构的内部结构 8253内部有内部有3个独立的个独立的16位定时位定时计数器通道。计数器通道。计数器可按照二进制或十进制计数,计数器可按照二进制或十进制计数,计数和定时范围可在计数和定时范围可在165535之间之间改变,改变,每个通道有每个通道有6种工作方式,计数频率种工作方式,计
3、数频率可高达可高达2MHz以上。以上。3个计数通道个计数通道通道控制寄存器通道控制寄存器 数据总线缓冲器数据总线缓冲器 读写控制电路读写控制电路 20010.12可编程定时/计数器82534计数通道计数通道v通道通道0、通道、通道1和通道和通道2 vCLK:计数器的脉冲输入端,:计数器的脉冲输入端,GATE:计数器的门控计数器的门控信号,信号,OUT:计数器的输出信号,一般与计数溢出计数器的输出信号,一般与计数溢出有关。有关。v工作原理:工作原理:8253计数器工作在减计数器工作在减1状态,每输入一个计数脉冲,计数状态,每输入一个计数脉冲,计数器值减器值减1,当计数器,当计数器 计数到零时,计
4、数到零时,OUT信信 号有效,通知外设计号有效,通知外设计 数器产生溢出数器产生溢出 16位计数器GATECLKOUT20010.12可编程定时/计数器82535v通道的使用通道的使用计数器:将要计数的次数预置到该通道计数器中计数器:将要计数的次数预置到该通道计数器中定时器:从定时器:从CLK输入一固定频率的时钟脉冲,再输入一固定频率的时钟脉冲,再根据要求定时的时间计算出定时所需的计数值或根据要求定时的时间计算出定时所需的计数值或称时间常数,并预置到计数器中称时间常数,并预置到计数器中 计数值定时时间计数值定时时间/时钟脉冲周期时钟脉冲周期20010.12可编程定时/计数器82536通道控制寄
5、存器通道控制寄存器 v一个通道控制寄存器一个通道控制寄存器vCPU通过对控制寄存器的读写,可以分别对通过对控制寄存器的读写,可以分别对三个计数通道的工作方式进行设置三个计数通道的工作方式进行设置v只能写不能读只能写不能读20010.12可编程定时/计数器82537数据总线缓冲器数据总线缓冲器v双向三态的双向三态的8位数据缓冲器,实现位数据缓冲器,实现8253和和CPU之间的数据接口之间的数据接口 读写控制电读写控制电路路v片选信号片选信号 CSvA1A0的组合的组合:选择三个通道、一个控制寄:选择三个通道、一个控制寄存器,共存器,共4个端口个端口v读信号读信号 和写信号和写信号 由由CPU提供
6、,低电平提供,低电平有效。有效。RDWR20010.12可编程定时/计数器825388253的管脚分配的管脚分配 v通道管脚通道管脚 vCLKn:通道:通道n的脉冲输入管脚外部事件的脉冲输入管脚外部事件 或定时脉冲由这三个管脚输入;或定时脉冲由这三个管脚输入;vOUTn:通道:通道n的输出管脚,当计数值减的输出管脚,当计数值减 到到0v 在在OUT管脚上输出,输出波形取决于管脚上输出,输出波形取决于 8253通道的工作方式;通道的工作方式;vGATEn:门控信号输入管脚:门控信号输入管脚 WRRDCS8253的管脚包括数据线的管脚包括数据线D7D0,读写控制线,读写控制线 以及和以及和CPU地
7、址线相连接的片选地址线相连接的片选信号信号 20010.12可编程定时/计数器825398253的编程的编程v控制字控制字 分为分为4部分,通道选择、计数器读部分,通道选择、计数器读/写方式、工作方式和计写方式、工作方式和计数码的选择数码的选择。计数器选择(计数器选择(SC1、SC0)计数器读计数器读/写方式(写方式(RLl、RL0)20010.12可编程定时/计数器825310v计数器的锁存操作计数器的锁存操作 8253一旦初始化后,就不需要一旦初始化后,就不需要CPU参与而自动计数。为参与而自动计数。为了读出计数值时不干扰实际计数过程,同时读出的值又了读出计数值时不干扰实际计数过程,同时读
8、出的值又是稳定的,就要求对通道计数器中的计数值进行锁存。是稳定的,就要求对通道计数器中的计数值进行锁存。硬件锁存暂停计数硬件锁存暂停计数 GATE 暂停计数暂停计数软件控制命令锁存软件控制命令锁存 v每一个通道都有一个输出锁存器(16位),平时它的值随通道计数器的值变化,当向通道写入锁存的控制命令时,它把计数器的现行值锁存而计数器的计数过程照样进行。这样,CPU读取的是锁存器中的值。当重新写入一个命令字或CPU读取计数值后,计数通道会自动解除锁存状态。锁存控制字:锁存控制字:0000XXXXB 先读取低8位,后读取高8位(不锁存):10 00H 0F 00H20010.12可编程定时/计数器8
9、25311 工作方式选择(M2、M1、M0)BCD计数制:写入初值范围为0000到9999,而0000是最大值,代表10000二进制计数制:写入初值范围为0000到FFFFH,其中0000为最大值,代表65536。控制字的D5D4为00,表示的是锁存命令。这时控制字中的低4位无效 20010.12可编程定时/计数器8253128253的工作方式的工作方式 v方式方式0计数结束中断方式计数结束中断方式 v方式方式1可编程序的单独负脉冲可编程序的单独负脉冲 v方式方式2速率发生器速率发生器v方式方式3方波发生器方波发生器 v方式方式4软件触发方式软件触发方式v方式方式5硬件触发方式硬件触发方式20
10、010.12可编程定时/计数器825313方式方式0计数结束中断方式计数结束中断方式v方式方式0的作用的作用 用户可以在设定时间上产生中断信号用户可以在设定时间上产生中断信号 v工作方式工作方式0特点:特点:门控信号门控信号GATE必须为必须为1,计数器才能计数;,计数器才能计数;计数时通道输出端计数时通道输出端OUT一直为一直为0;通道计数器计数到通道计数器计数到0后,后,OUT由由0到到1,同时计数器停止工作。,同时计数器停止工作。vOUT输出的从低到高的正跳变或高电平可作为中断请求信号输出的从低到高的正跳变或高电平可作为中断请求信号INTR,向,向CPU发出中断请求。发出中断请求。v在计
11、数过程中,在计数过程中,GATE信号为低电平时,停止计数,一旦信号为低电平时,停止计数,一旦GATE变高,则变高,则继续计数继续计数 20010.12可编程定时/计数器825314INT8086第一次写初始计数值的第一次写初始计数值的低低8位位,第二次写第二次写高高8位位。3840H=14400秒秒=4小时小时家庭厨房系统20010.12可编程定时/计数器825315方式方式1可编程序的单独负脉冲可编程序的单独负脉冲v单稳电路单稳电路在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低于规定的最小宽度的脉冲后,单稳电路就输出一个用
12、户事先设定宽于规定的最小宽度的脉冲后,单稳电路就输出一个用户事先设定宽度的脉冲。度的脉冲。8253的方式的方式1就是一个可编程单稳电路就是一个可编程单稳电路 v方式方式1工作过程工作过程门控信号门控信号GATE是触发信号,是触发信号,上升沿有效上升沿有效。即开始计数是由。即开始计数是由GATE的的上升沿触发的;上升沿触发的;触发后,通道计数器开始计数,输出端触发后,通道计数器开始计数,输出端OUT由高变低;由高变低;计数器计数到计数器计数到0,OUT再由低变高。再由低变高。PWNTclkPW:输出的负脉冲宽度:输出的负脉冲宽度;N:初始计数值,:初始计数值,Tclk:CLK端的脉冲周期端的脉冲
13、周期 20010.12可编程定时/计数器825316车辆统计车辆统计不同车辆间隔T3不能太小;(PW)同一车辆的不同车厢间距离不能太大;(21611000000100000011SSNSS1210000001000 1000NNN20010.12可编程定时/计数器825333O U T0G A T E0C L K01 M H z8 2 5 3 通 道 0 5 VO U T1G A T E1C L K11 K H z8 2 5 3 通 道 1(4)初始化:初始化:通道通道0:工作方式工作方式2,BCD计数;计数;通道通道1:工作方式工作方式3,二进制计数,二进制计数20010.12可编程定时/计
14、数器825334MOV AL,00110101B;通道;通道0控制字控制字OUT 86H,ALMOV AL,00;通道;通道0初始计数值初始计数值OUT 80H,ALMOV AL,10HOUT 80H,ALMOV AL,01110110B;通道;通道1控制字控制字OUT 86H,ALMOV AL,0E0H;通道;通道1初始计数值,初始计数值,3E8H=1000 BCDOUT 82H,ALMOV AL,03HOUT 82H,AL20010.12可编程定时/计数器82533520010.12可编程定时/计数器825336GATE0CLK0OUT0+5V1KHzPC08253825520010.12
15、可编程定时/计数器82533720010.12可编程定时/计数器825338MOV AL,10011011B;A、B、C为输入OUT 8255_CTRL,ALDELAY1SPROCMOV AL,00110001B;通道0工作在方式方式0,;16位读写,BCD计数OUT 8253_CTRL,ALMOV AL,0OUT COUNTER0,ALMOV AL,10HOUT COUNTER0,ALAGAIN:IN AL,8255_C ;检测是否由OUT端输出1TEST AL,01JZ AGAINRETDELAY1SENDP20010.12可编程定时/计数器825339作业:作业:vP202 1、3、5、6