资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第八章第八章 可编程计数器可编程计数器/ /定时器定时器82538253 8-1 82538-1 8253简介简介 8-2 82538-2 8253应用举例应用举例一、8253构造及引脚功能二、8253工作方式三、8253初始化8-1 82538-1 8253简介简介定时/计数器的作用消费线上统计产品的数目-计数器系统的动态存储器刷新-定时器系统时钟计时-定时器扬声器的频率源-定时器如何定时软件定时,由CPU执行指令序列所花费的时间来构成一定的时间间隔,从而到达定时的目的。优点是节省硬件;缺点是执行程序期间CPU一直被占 用,降低了CPU效率。 例如:MOV CX , H HERE: LOOP HERE硬件定时,要用额外的硬件计数/定时器,但可进步CPU的利用率。一、8253构造及引脚功能1.构造:由四部分组成。数据总线缓冲器8D0D7内部总线CLK0计数器0GATE0OUT0计数器1CLK1GATE1OUT1计数器2CLK2GATE2OUT2读/写逻辑A0A1WRRDCS控制字寄存器1 数据总线缓冲器这是8253与CPU的数据总线(DD)连接的8位双向三态缓冲器。 CPU用输入输出指令对8253进展读写操作时的所有信息都通过这个缓冲器传送。2 读/写逻辑 这是8253内部操作的控制电路,它从系统控制总线上接收输入信号,然后转换成8253内部操作的各种控制信号。3控制字存放器当地址信号A1和A0都为1时,访问控制字存放器。控制字存放器从数据总线上接收CPU送来的控制字,并由控制字的D7、D6两位的编码决定控制字写入哪个通道的控制存放器中去。由存放在每个通道内的控制存放器的内容决定该通道的工作方式,选择计数器是按二进制还是BCD数计数,并确定每个计数器初值的写入顺序。4 计数器0、计数器1、计数器2这是三个计数器/定时器通道,每一个都由16位的可设置计数初值的减法计数器构成。三个通道的操作是完全独立的。每个通道都有两个输入引脚CLK和GATE以及一个输出引脚OUT。每个通道计数器是16位二进制计数器,每个计数器中有3个存放器。1初值存放器:初始化时写入该计数器的初始值。2减一计数器:初值存放器写入减一计数器,减1到0为止。3计数值锁存器:在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存计数值,供CPU读取,读取完毕之后,输出锁存器又跟随减1计数器变化。 &CLKGATE16位当前计数值锁存器16位减一计数器16位计数初值寄存器OUT(减1至0时)MSBLSB装入初值LSBMSB锁存后读出当前值u因8253是减计数器,故计数初值越大,那么计数减至0所用时间即定时时间就越长,但由于8253是先减1,再判是否到0,故最长的定时时间是设置计数初值为0,代表65536。u十进制计数时范围是000110000,其中当计数初值存放器为0000H代表十进制数10000。 u计数取值范围在二进制计数时是0001H10000H,其中10000H代表65536,在计数初值存放器中的值是0000H。 u可以从8253中读出当前计数值,但其读出过程是:先将当前计数初值写入到输出锁存器,然后再从输出锁存器中读出,同时,8253还在不停地进展减计数,虽然输出锁存器中的值不变,但减计数单元却在不断地减计数,因此,从输出锁存器中读出的值并不一定是真正的当前计数值。2.引脚3.功能 (1)具有三个独立的16位计数通道; (2)每个计数通道可按二进制或二十进制计数; (3)具有计数和定时功能,基于减1计数工作; (4)定时器减为0后,可自动装入定时常数初值,并产生输出信号; (5)每个计数通道有六种工作方式; (6)8253本质上是计数器,但计数器的脉冲输入端假设送定时脉冲就可以做定时器用。作为计数器时减到0之后输出一个信号,此时计数过程完毕;作为定时器时,减到0后输出一个信号接着自动装入计数初值并开始下一个周期的计时。二、初始化在使用8253时都要由CPU对8253写入控制字,以确定8253的工作方式,这个设置过程称为初始化。初始化有两个控制命令字:方式选择控制字和计数常数字。方式选择字写入控制口,计数常数字写入相应通道内。例1:将计数器2初始化为工作方式3,计数初值为533H,为二进制计数方式,设存放器地址为40H-43H。控制字:10110110 B6H MOV AL,0B6H ;计数器2,先低后高字节 OUT 43H,AL;写命令字 MOV AX,533H ;计数初值 OUT 42H,AL;写计数值低位 MOV AL,AH OUT 42H,AL;写计数值高位例2:8253工作为计数器1,方式3,初值为4020D,设存放器地址为40H-43H。控制字:01110111 77H MOV AL,77H OUT 43H,AL ;写计数器 1 的控制字 MOV AL,20H OUT 41H,AL ;写计数器 1 的低 8 位初值 MOV AL,40H OUT 41H,AL ;写计数器 1 的高 8 位初值例3:计数器0,工作在形式2,计数初值和输出锁存器仅使用低8位,初值为100,计数值为二进制格式,设存放器地址为70H-73H。 MOV AL,00010100B ;控制字 OUT 73H,AL MOV AL,100 ;计数初值 OUT 70H,AL 例4:计数器1,工作在形式1,初值为1234,先写入低8位,再写高8位,计数值为二进制,设存放器地址为70H-73H。 MOV AL,01110010B;控制字 OUT 73H,AL MOV AX,1234H ;1234装入AX转换二进制 OUT 71H,AL ;计数初值低8位 MOV AL,AH OUT 71H,AL ;计数初值高8位 例5:读取8253通道中的计数值 8253可用控制命令来读取相应通道的计数值,由于计数值是16位的,而读取的瞬时值,要分两次读取,所以在读取计数值之前,要用锁存命令,将相应通道的计数值锁存在锁存器中,然后分两次读入,先读低字节,后读高字节。 当控制字中,D5、D4=00时,控制字的作用是将相应通道的计数值锁存的命令,锁存计数值在读取完成之后,自动解锁。 如要读通道1的16位计数器,编程如下:地址F8HFEH。 MOV AL,40H; OUT 0FEH,AL ;锁存计数值 IN AL,0FAH MOV CL,AL;低八位 IN AL,0FAH; MOV CH,AL;高八位三、工作方式8253输出软件控制方式1:重复触发的单稳输出硬件控制方式2:分频器软件控制方式3:方波发生器软件控制方式4:选通信号发生器软件触发方式5:选通信号发生器硬件触发 图图 8253 8253的的6 6种工作方式时序图种工作方式时序图1.1.方式方式2 2:分频器:分频器计数器减到计数器减到1 1时,时,OUTOUT仅输出一个仅输出一个CLKCLK脉宽的低电平,然后自脉宽的低电平,然后自动装入重新计数。动装入重新计数。GATEGATE由低变高会重新装入初值。由低变高会重新装入初值。新初值在下次计数才起作用。新初值在下次计数才起作用。特点:特点:1 1不用重新设置计数值,通道可以连续工作。不用重新设置计数值,通道可以连续工作。 2 2以以GATEGATE信号停顿计数。在信号停顿计数。在GATEGATE变成高电平后的下一个变成高电平后的下一个CLKCLK脉冲,计数器恢复原来的初值,重新计数。脉冲,计数器恢复原来的初值,重新计数。 3 3改变计数值不是立即有效,只有当计数值减至改变计数值不是立即有效,只有当计数值减至0 0时,下一时,下一轮计数过程按新初值进展。轮计数过程按新初值进展。方式2的初始化:设计数器工作于方式2,二进制计数,计数初值0304H。端口地址0E0H0E3H。MOVMOV ALAL,0B4H0B4H;控制字;控制字OUTOUT0E3H0E3H,ALALMOVMOV ALAL,04H04H;计数器低字节;计数器低字节OUTOUT0E2H0E2H,ALALMOVMOV ALAL,03H03H;计数器高字节;计数器高字节OUT 0E2HOUT 0E2H,ALAL2.方式3:方波发生器与方式2类似,但其输出方波或准方波。计数值完成一半时,使OUT变低,直到计数任务全部完成为止,OUT恢复为高。初值为偶数时,每次减1,直至n/2时OUT输出变为低电平,然后又从初值开始,每次减1,直至n/2时OUT输出变为高电平。初值为奇数时,每次减1,减(n+1)/2次时, OUT输出变为低电平,然后从(N-1)/2开始,每次减1,直至为0,所以有(N+1)/2个脉宽的高电平,(N-1)/2个脉宽的低电平。GATE由低变高时,重新开始计数。特点:1GATE信号由低变高可以使计数过程重新开始。 2改变计数初值并不影响现行的计数过程。 方式3的初始化:计数器0工作于方式3,二进制计数,初值为4。端口地址为0E0H0E3H。MOV AL,16H;控制字OUT0E3H,ALMOV AL,4;初值OUT0E0H,AL方式2与方式3的比较波形输出 一样点均输出连续周期波形,预置初值可自动重装入 不同点方式 2 输出连续负脉冲周期波形方式 3 输出连续方波周期波形方式3方式2用通道0产生周期为1ms的方波,其时钟输入端输入1MHz的方波脉冲信号。设8253端口地址为210H-213H,写出初始化程序段。CLK0计数脉冲的周期为1/1MHz=1s计数值=1ms/1s=1000初始化程序:MOV AL, 00110110BMOV DX, 213HOUT DX, ALMOV AX, 1000MOV DX, 210HOUT DX, ALMOV AL, AHOUT DX, AL电子钟8253初始化程序段:MOV AL,00100111BMOV DX,113HOUT DX,ALMOV AL,40HMOV DX,110HOUT DX,ALMOV AL,01100101BMOV DX,113HOUT DX,ALMOV AL,10HMOV DX,111HOUT DX,AL电子钟中断子程序:MOV AL,MAXADD AL,1DAAMOV MAX,ALCMP AL,60HJNZ NEXTMOV BYTE PTR MAX,0MOV AL,MAX+1ADD AL,1DAAMOV MAX+1,ALCMP AL,60HJNZ NEXTMOV BYTE PTR MAX+1,0MOV AL,MAX+2ADD AL,1DAAMOV MAX+2,ALCMP AL,24HJNZ NEXTMOV BYTE PTR MAX+2,0NEXT:MOV AL,20HOUT 20H,ALIRET
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号