《可编程定时计数器853》由会员分享,可在线阅读,更多相关《可编程定时计数器853(39页珍藏版)》请在金锄头文库上搜索。
1、可编程定时/计数器8253苗付友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信信 号有效,通知外设计号有效,通知外设计 数器产生溢出数器产生溢出 20010.12可编程定时/计数器82535v通道的使用通道的使用计数器:将要计数的次数预置到该通道计数器中计数器:将要计数的次数预置到该通道计数器中定时器:从定时器:从CLK输入一固定频率的时钟脉冲,再输入一固定频率的时钟脉冲,再根据要求定时的时间计算出定时所需的计数值或根据要求定时的时间计算出定时所需的计数值或称时间常数,并预置到计数器中称时间常数,并预置到计数器中 计数值定时时间计数值定时时间/时钟脉冲周期时钟脉冲周期20010.12可编程定时/计数器82536通道控制寄
5、存器通道控制寄存器 v一个通道控制寄存器一个通道控制寄存器vCPU通过对控制寄存器的读写,可以分别对通过对控制寄存器的读写,可以分别对三个计数通道的工作方式进行设置三个计数通道的工作方式进行设置v只能写不能读只能写不能读20010.12可编程定时/计数器82537数据总线缓冲器数据总线缓冲器v双向三态的双向三态的8位数据缓冲器,实现位数据缓冲器,实现8253和和CPU之间的数据接口之间的数据接口 读写控制电路读写控制电路v片选信号片选信号 CSvA1A0的组合的组合 :选择三个通道、一个控制寄:选择三个通道、一个控制寄存器,共存器,共4个端口个端口v读信号读信号 和写信号和写信号 由由CPU提
6、供,低电平提供,低电平有效。有效。 20010.12可编程定时/计数器825388253的管脚分配的管脚分配 v通道管脚通道管脚 vCLKn:通道:通道n的脉冲输入管脚外部事件的脉冲输入管脚外部事件 或定时脉冲由这三个管脚输入;或定时脉冲由这三个管脚输入;vOUTn:通道:通道n的输出管脚,当计数值减的输出管脚,当计数值减 到到0v 在在OUT管脚上输出,输出波形取决于管脚上输出,输出波形取决于 8253通道的工作方式;通道的工作方式;vGATEn:门控信号输入管脚:门控信号输入管脚 8253的管脚包括数据的管脚包括数据线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可编程定时/计数器825311 工作方式选
9、择(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硬件触发方式硬件触发方式20010.12可编程
10、定时/计数器825313方式方式0计数结束中断方式计数结束中断方式v方式方式0的作用的作用 用户可以在设定时间上产生中断信号用户可以在设定时间上产生中断信号 v工作方式工作方式0特点:特点:门控信号门控信号GATE必须为必须为1,计数器才能计数;,计数器才能计数;计数时通道输出端计数时通道输出端OUT一直为一直为0;通道计数器计数到通道计数器计数到0后,后,OUT由由0到到1,同时计数器停止工作。,同时计数器停止工作。vOUT输出的从低到高的正跳变或高电平可作为中断请求信号输出的从低到高的正跳变或高电平可作为中断请求信号INTR,向,向CPU发出中断请求。发出中断请求。 v在计数过程中,在计数
11、过程中,GATE信号为低电平时,停止计数,一旦信号为低电平时,停止计数,一旦GATE变高,则变高,则继续计数继续计数 20010.12可编程定时/计数器825314INT8086MOV AL,10011010BMOV AL,10011010B;置;置8255A8255A方式控制字方式控制字OUT 8255OUT 8255控制口,控制口,ALALMOV AL,00HMOV AL,00H;8255A8255A置位置位/ /复位控制字复位控制字, ,使使PC0PC00 0OUT 8255OUT 8255控制口,控制口,ALALMOV AL, 00110000B MOV AL, 00110000B ;
12、置;置82538253通道通道0 0方式控制字方式控制字30H30HOUT 8253OUT 8253控制口,控制口,ALALMOV ALMOV AL,40H40H;置;置82538253通道通道0 0时间常数时间常数, ,OUT OUT 通道通道0 0端口,端口,AL ; AL ; 第一次写初始计数值的第一次写初始计数值的低低8位位,MOV ALMOV AL,38H ; 38H ; 第二次写第二次写高高8位位。3840H=14400秒秒=4小时小时OUT OUT 通道通道0 0端口,端口,ALAL中断程序中有关程序段如下:中断程序中有关程序段如下:MOV AL,00000001BMOV AL,
13、00000001B;82558255置位置位/ /复位控制字,使复位控制字,使PC0PC01 1OUT 8255OUT 8255控制口,控制口,ALAL家庭厨房系统20010.12可编程定时/计数器825315方式方式1可编程序的单独负脉冲可编程序的单独负脉冲v单稳电路单稳电路在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低于在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低于规定的最小宽度的脉冲后,单稳电路就输出一个用户事先设定宽度规定的最小宽度的脉冲后,单稳电路就输出一个用户事先设定宽度的脉冲。的脉冲。8253的方式的方式1就是一个可编程单稳电路就是一个可编程单稳电路 v
14、方式方式1工作过程工作过程门控信号门控信号GATE是触发信号,是触发信号,上升沿有效上升沿有效。即开始计数是由。即开始计数是由GATE的的上升沿触发的;上升沿触发的;触发后,通道计数器开始计数,输出端触发后,通道计数器开始计数,输出端OUT由高变低;由高变低;计数器计数到计数器计数到0,OUT再由低变高。再由低变高。 PWNTclkPW:输出的负脉冲宽度:输出的负脉冲宽度 ;N:初始计数值,:初始计数值,Tclk:CLK端的脉冲周期端的脉冲周期 20010.12可编程定时/计数器825316车辆统计车辆统计不同车辆间隔T3不能太小;(PW)同一车辆的不同车厢间距离不能太大;(21620010.
15、12可编程定时/计数器825333通道通道通道通道0 0首先把首先把首先把首先把1MHz1MHz信号信号信号信号10001000分频,产生分频,产生分频,产生分频,产生1KHz1KHz的信号,通道的信号,通道的信号,通道的信号,通道1 1再把再把再把再把1KHz1KHz信号信号信号信号10001000分频,结果就得到的分频,结果就得到的分频,结果就得到的分频,结果就得到的1Hz1Hz信号信号信号信号(3 3)通道)通道)通道)通道1 1要输出方波信号推动发光二极管,所以通道要输出方波信号推动发光二极管,所以通道要输出方波信号推动发光二极管,所以通道要输出方波信号推动发光二极管,所以通道1 1应
16、选工作方式应选工作方式应选工作方式应选工作方式3 3。对于通道。对于通道。对于通道。对于通道0 0,只要能起分频作用就行,对,只要能起分频作用就行,对,只要能起分频作用就行,对,只要能起分频作用就行,对输出波形不做要求,所以方式输出波形不做要求,所以方式输出波形不做要求,所以方式输出波形不做要求,所以方式2 2和方式和方式和方式和方式3 3都可以选用。都可以选用。都可以选用。都可以选用。(4) 初始化:初始化: 通道通道0: 工作方式工作方式2,BCD计数;计数; 通道通道1: 工作方式工作方式3,二进制计数,二进制计数20010.12可编程定时/计数器825334MOV AL,0011010
17、1B;通道;通道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可编程定时/计数器825335 例例2 2:延时程序,:延时程序,设82538253的通道地址的通道地址为80H80H86H86H,82558255的地址为的地址为88H 88H 8 8E EH H
18、 (偶地址)(偶地址)解:解:1 1、电路、电路 这个例子要求用这个例子要求用82538253,82558255作一个延时作一个延时系统。系统。20010.12可编程定时/计数器825336GATE0CLK0OUT0+5V1KHzPC08253825520010.12可编程定时/计数器825337 2 2、时间常数计算、时间常数计算 如果如果82538253的的CLKCLK输入输入1KHz1KHz信号,延时信号,延时时间为时间为1S1S,则时间常数为,则时间常数为 N N1/0.001=1000D=03E8H1/0.001=1000D=03E8H3 3、工作方式选择、工作方式选择4 4、程序、程序20010.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