收藏 分享(赏)

修改_计数器.ppt

上传人:gnk289057 文档编号:8291794 上传时间:2019-06-18 格式:PPT 页数:40 大小:1.06MB
下载 相关 举报
修改_计数器.ppt_第1页
第1页 / 共40页
修改_计数器.ppt_第2页
第2页 / 共40页
修改_计数器.ppt_第3页
第3页 / 共40页
修改_计数器.ppt_第4页
第4页 / 共40页
修改_计数器.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、第 10章,第10章 定时计数控制接口,教学重点 1、8253的引脚和6种工作方式 2、8253的编程,定时器和计数器,定时控制在微机系统中极为重要 1、定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔 2、计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器,定时功能的实现方法,1、软件延时利用微处理器执行一个延时程序段实现 2、不可编程的硬件定时采用分频器、单稳电路或简易定时电路控制定时时间 3、可编程的硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,8253的内部结

2、构(1),8253的编程结构,8253的主要性能(1),(1) 采用NMOS工艺,用单一的+5V电源供电: (2)每个计数器包括:计数初值寄存器、计数执行部件、输出锁存器。 (3) 计数频率为05MHz (4) 两种计数方式,即二进制和BCD方式计数: (5) 六种工作方式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。可由软件或硬件控制开始计数或停止计数。,计数器的功能原理图,8253的内部结构(1),数据总线缓冲器 (1)数据总线缓冲器是8253与CPU数据总线连接的8位双 向三态缓冲器。 (2)主要功能:向8253写入确定8253工作方式的命令;向 8253计 数寄存器装入计数

3、值;读出计数值。,8253的内部结构(2),2、读/写控制逻辑 (1)它接收来自系统总线的信息,产生控制整个芯片工作 的控制信号。(2)由CS*信号决定读/写逻辑的工作。当CS*为高电平(无效)时,禁止读/写逻辑工作;当CS*为低电平(有效)时,允许读/写逻辑工作。,8253的内部结构(3),3、控制寄存器 在8253初始化编程时,CPU写入芯片的控制字就存放在控制寄存器中,以决定通道的工作方式。控制寄存器只能写入,不能读出。,8253的内部结构(4),4、计数器0、1、2 (1)计数器0、1、2是3个完全独立的定时/计数器通道, 各自可按不同的方式工作。(2)每个计数器内部都包含一个16位初

4、始值寄存器,一个可预置数减法计数器和一个锁存器。 (3)可预置数减法计数器从初始值寄存器处得到初值后开始进行减1操作,此时锁存器跟随可预置数减法计数器的内容而变化。当有一个锁存命令出现后,锁存器便锁定当前计数,直到被CPU读走,它又随可预置数减法计数器的变化而变化。 (4)计数器采用二进制和BCD码格式计数。(5)每个计数器都有六种工作方式。,8253引脚和功能 (1),1、D7D0数据总线 :8253与CPU接口数据线,供CPU向8253进行读写数据、命令和状态信息。 2、 读信号 :输入信号,低电平有效。该信号有效时,表示CPU正在对8253的一个计数器进行读计数当前值的操作。 3、 写信

5、号写信号,输入,低电平有效。该信号有效时,表示CPU正在向8253的控制寄存器写入控制字或向一个计数器置计数初值。 4、 片选信号输入,低电平有效。只有该信号有效,才说明系统选中该芯片。,图10-3 8253的引脚定义,8253引脚和功能 (2),5、A1、A0地址码 :A1、A0地址码,输入,与CPU的地址总线相连。当片选信号有效时,地址码用来对3个计数器和控制寄存器寻址 。,8253引脚和功能 (3),6、CLK0、CLK2时钟信号:计数器0、1、2的时钟输入。 7、GATE0、GATE1、GATE2门控信号:计数器0、1、2的门控输入,控制启动定时或计数工作的开始。 8、OUT0、OUT

6、1、OUT2计数器输出信号:计数器0、1、2的输出信号。其输出波形取决于工作方式。,8253 的编程 (1),8253的编程主要包括 设置控制字 赋初值 发锁存命令 读计数值。,8253 的编程 (2),1. 设置控制字,(1) SC1、SC0选择计数器 SC1、SC0用于指明送给哪一个计数器的控制字。 00选择计数器0; 01选择计数器1; 10选择计数器2; 11无意义。 (2) RW1、RW0计数器读/写格式选择 00使锁存器的输出锁定为计数器的当前计数值; 01只选计数器的低八位字节(LSB)进行读/写; 10只选计数器的高八位字节(MLB)进行读/写; 11先读/写低8位字节,再读/

7、写高8位字节。,8253 的编程 (3),(3)M2、M1、MO设定计数器的工作方式 8253的每个计数器都有6种工作方式可供选择。 0 0 0方式0; 0 0 1方式1; 0 1 0方式2; 0 1 1方式3; 1 0 0方式4; 1 0 1方式5。 (4) BCD计数方式选择可采用二进制计数或二十进制(BCD码)计数,即“0”表示二进制计数;“1”表示二十进制计数。,8253 的编程 (3),2. 赋初值 (1)若初值的高8位为0,低8位不为0,则可令控制字的D5D4=01,这样,只写入低8位,而高8位自动置0; (2)若初值的高8位不为0,低8位为0,则可令D5D4=10,即只写入高8位

8、,而低8位自动置0; (3)若初值的高、低位均不为0,则应使D5D4=11,即先写入低8位,再写入高8位。 (4)在二进制计数时,初值的范围为0000HFFFFH。其中,0000H为最大数,表示216=65536;而在十进制计数时,初值可在(0000)BCD(9999)BCD之间选择,其中,(0000)BCD为最大数,表示104=10000。,8253 的编程 (4),3、锁存命令 (1)计数器的计数执行部件从初值寄存器中获得计数初值,它在CLK输入端的脉冲信号作用下进行减1计数;同时锁存器的输出会随计数执行部件的内容而变化 。 (2)当计数器收到一个锁存命令时,锁存器的输出将保持当前的计数值

9、不再发生变化 ,当CPU读取计数值后,锁存器的输出将再次随计数执行部件而变。 (3)所谓发锁存命令就是向控制字寄存器中写入一个如下格式的专用控制字。使SC1、SC0用来指示具体的计数器 ,D5D4=00,表明要进行锁存器输出锁定操作。,8253 的编程 (5),4、读计数值读计数值即CPU通过执行输入指令来获取指定计数器的当前计数值。读计数值时,必须符合控制字的有关规定,即只读低位字节还是只读高位字节或高低位字节都读。,8253的工作方式 (1),方式0:计数结束时中断,CLK,GATE,OUT,4,3,1,0,2,CW,N=4,方式0的波形,1、方式0是一种软件启动,不能自动重复的计数方式

10、2、对计数器写入方式0的控制字CW后,其输出端OUT变低。再写入计数初值,在写信号WR以后经过CLK的一个上升沿和一个下降沿,初值进入计数器计数。,8253的工作方式 (2),3、计数器减到零后,OUT成为高电平。 4、在整个计数过程中,GATE始终应保持为高电平。若GATE=0则暂停计数,待GATE=1后,从暂停时的计数值继续往下递减。 5、在方式0,每赋一次初值,只计数一个周期。OUT端在计数结束后维持高电平,直至赋以新的初值。 6、在计数过程中,随时可以写入新计数初值,即使原来的计数过程尚未结束,计数器也用新的初值重新计数(若新初值是16位,则在送完第一字节后中止现行计数,送完第二字节后

11、才更新计数)。,WR,CLK,GATE,OUT,CW,N=3,3,2,2,2,1,0,图10-5 方式0时GATE信号的作用,8253的工作方式 (3),方式1:可编程单脉冲 1、方式1是一种硬件启动,不自动重复的计数方式。 2、在写入方式1的控制字后OUT成为高电平,待写入计数初值后,要等GATE信号出现正跳变才启动计数。 3、计数启动后OUT端立即变低,直至计数器减到零才回到高,其间隔为计数初值N乘以CLK的周期TCLK,即OUT端产生一个宽度为N * TCLK的负脉冲,其中N为编程的计数初值,所以称之为可编程单脉冲。,WR,CLK,GATE,OUT,CW,N=2,2,1,0,2,1,0,

12、方式1的波形,8253的工作方式 (4),4、在计数过程启动之后而完成之前,若GATE又发生正跳变,则计数过程又从初值启动,OUT端的低电位不变,两次的计数过程合在一起,OUT输出的负脉冲加宽了。 5、计数过程中若写入新计数初值,只是写到初值寄存器中,并不马上影响当前计数过程。同样要等到下一个GATE的启动信号,计数器才开始接收新初值的工作。,8253的工作方式 (5),方式2:速率发生器 1、计数既可以用软件启动,也可以用硬件启动。若先有GATE=1,则由写入计数初值启动;若送初值时GATE信号为低电平,则等GATE信号由低变高启动。两个必备条件中,后满足要求的一个作启动信号。 2、方式2一

13、旦启动后,计数器可以自动重复工作。 3、在写入方式2的控制字后,OUT变高。 4、设先有GATE=1,写入计数初值后,计数器即对CLK计数。假设计数初值为N,当计数到(N1)个CLK信号时,计数器的值为1,OUT变低。最后一个CLK信号输入后,计数器减至零,OUT回到高,计数器又自动从初值开始计数。 5、方式2在计数过程中需要GATE信号保持高电位。GATE=0则计数中止。在GATE再变高后,计数器又被置入初值重新计数,以后的情况和软件启动的相同。,8253的工作方式 (6),说明:方式2在计数过程中若写入新的计数初值,也同方式1一样只写到初值寄存器中,不影响当前计数过程。本次计数结束,下一周

14、期开始时使用新计数初值。,WR,CLK,GATE,OUT,CW,N=3,3,3,2,1,2,1,3,方式2的波形,8253的工作方式 (7),方式3:方波发生器 1、方式3也兼有两种启动方式,而且计数也能自动重复 2、在写入方式3的控制字后,计数器OUT端立即变高。若GATE信号为高,在写完计数初值N后,开始对CLK信号计数。 3、计到N/2时,OUT端变低,计完余下的N/2,OUT又变回高,如此自动重复,OUT端产生周期为N TCLK的方波。 4、若计数初值为奇数,计数的前半周期为(N+1)/2,后半周期为(N-1)/2。 5、在写入计数初值时,如果GATE信号为低,计数器并不开始计数。当G

15、ATE变成高后,才启动计数过程。,8253的工作方式 (8),说明: 1、在计数过程中,应始终使GATE=1。若GATE=0,不仅中止计数,而且OUT端马上变高。当恢复GATE=1时,产生硬件启动,计数器又从头开始计数。 2、在方式3计数过程中,对计数器写入新计数初值,不影响当前半周期的计数。在当前的半个周期结束(OUT电位发生变化)时,启用新初值。,CW,N=4,4,2,4,2,4,2,4,2,方式3的波形,8253的工作方式 (9),方式4:软件触发选通 1、一种软件启动、不自动重复的计数方式 。 2、在写入方式4控制字后,OUT变高。 3、若GATE信号为高,写完计数初值后的第一个CLK

16、信号将初值N置入计数器。第二个CLK信号开始作减法,(N+1)个CLK信号后减到零,OUT变低。第(N+2)个CLK信号使OUT又回到高而停止,形成一个TCLK的负脉冲。因此从写入计数初值算起整个过程为(N+2)TCLK 。,8253的工作方式 (10),说明: 1、GATE信号可控制计数过程是否进行下去。一般而言,在计数过程中,应保持GATE=1。 2、若出现GATE=0,则立即中止计数,当恢复GATE=1后,又继续原来的计数过程直至结束。 3、方式4的计数过程中,写入新的计数初值,,下一周期开始时才使用。,方式4的波形,8253的工作方式 (11),方式5:硬件触发选通 1、硬件启动,不自

17、动重复的计数方式。 2、在写入方式5控制字后,OUT变高,写入计数初值时即使GATE信号原来为高,计数过程也仍不启动,而是要求GATE信号出现一个由“0”到“1”的上升沿,下一个CLK信号才开始计数。 3、计数器减到零时,OUT变低,经一个CLK信号后变高且一直保持。,8253的工作方式 (12),说明: 1、式5是由GATE的上升沿启动计数,同方式1一样,启动后,即使GATE变成低电平,也不影响计数过程的进行。 2、若GATE信号又产生了正跳变,则不论计数是否完成,又将给计数器置入初值,重新开始一轮计数。 3、在计数过程中给计数器写入新初值,只写入到初值寄存器中,不影响当前计数,当GATE信

18、号重新启动之后才置入计数器使用。,方式5的波形,WR,CLK,GATE,OUT,CW,N=4,4,3,2,1,0,8253的应用(1),1、将8253的计数器1作为5ms定时器,设输入时钟频率为200kHz,试编写8253的初始化程序。 计数初值N计算时钟周期为T=1/f=1/200kHz=5us N=5ms/T=1000 (2) 确定控制字计数器1,按BCD码计数,工作于方式0,由于计数初值N=1000,控制字D5D4应为11,于是8253的控制字为:01110001B=71H。 (3) 选择8253各端口地址设计数器1的端口地址为3F82H,控制口地址为3F86H。,8253的应用(2),

19、(4) 初始化程序如下 MOV AL,71H ;控制字 MOV DX,3F86H ;控制口地址 OUT DX,AL ;控制字送8253控制寄存器 MOV DX,3F82H ;计数器1端口地址 MOV AL,00 ;将计数初值N=1000的低8位写入计数器1 OUT DX,AL MOV AL,10 ;将N的高8位写入计数器1 OUT DX,AL,8253的应用(3),2、若8253的CLK0计数频率为2MHz,试问 (1)一个计数器的最大定时时间是多少? (2)若用0#计数器周期性地产生5ms的定时中断,试对其进行初始化编程(口地址合理假设) (3)若要定时产生1秒种的中断,写出实现方法(硬件连

20、接、工作方式、计数值,可不编程),8253的应用(4),(1)计数周期t=1/2000000=0.5us 0.5us*65536=32768us=32.768ms (2)假设 8253 控制寄存器的端口地址为86H,0#计数器的 初值寄存器端口地址为80H ,计数初值为10000,采用方式2初始化程序为: MOV AL,35H OUT 86H,AL MOV AX,10000 OUT 80H,AL ;先写低字节 MOV AL,AH OUT 80H,AL ;后写高字节,8253的应用(5),(3)可以采用计数器级连的方式实现 即计数器0工作于方式2,且每次定时5毫秒,但其输出OUT0连接到计数器1

21、的CLK1上,作为计数器1的计数时钟,其周期为5ms。计数器1工作于方式0,计数初值为200,其OUT1连接到8259申请中断,则启动计数器后,经过1秒钟,OUT1申请中断。,8253的应用(6),3、8253 2号通道工作在方式2,按二进制计数,计数值为1110H,现要在计数过程中读取该计数器的计数值。试编程对其进行初始化和读出计数值。MOV AL,0B4H OUT 73H,AL MOV AL,10H OUT 72H,AL MOV AL,11H OUT 72H,AL MOV BH,20H W: DEC BH CMP BH,0JNZ WMOV AL,80HOUT 73H,ALIN AL,72HMOV CL,ALIN AL,72HMOV AH,ALMOV AL,CL,8253的应用(7),2、用8253/8254为A/D子系统提供采样信号,8253的应用(8),

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报