定时计数器

上传人:德****1 文档编号:1093974 上传时间:2017-05-27 格式:PDF 页数:10 大小:270.34KB
返回 下载 相关 举报
定时计数器_第1页
第1页 / 共10页
定时计数器_第2页
第2页 / 共10页
定时计数器_第3页
第3页 / 共10页
定时计数器_第4页
第4页 / 共10页
定时计数器_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《定时计数器》由会员分享,可在线阅读,更多相关《定时计数器(10页珍藏版)》请在金锄头文库上搜索。

1、第6章定时计数器第六章 定时/计数器第一节MCS51的CTC结构第二节定时/计数器的方式和控制寄存器第三节定时/计数器的工作方式第四节定时/计数器应用举例第五节定时/计数量程的扩展第6章定时计数器在实际的控制系统中常要求有外部实时时钟,以实现定时或延时控制;还要求有外部计数器,以实现对外界事件进行计数。例如:在单片机控制的电力拖动系统中,控制的对象为电动机,为了实现闭环控制,就需要定时地对转速进行采样。若采用光电脉冲发生器作为检测元件,则先应对每个采样周期中光电脉冲发生器发出的脉冲进行计数,然后再通过实时计算求得对应的转速。第6章定时计数器对于定时/计数器来说,不管是独立的定时器芯片还是单片机

2、内的定时器,大都有以下特点: (1)定时/计数器有多种工作方式,可以是计数方式也可以是定时方式。 (2)定时/计数器的计数值是可变的,当然对计数的最大值有一定限制,这取决于计数器的位数。计数的最大值也就限制了定时的最大值。 (3)可以按照规定的定时或计数值,在定时时间到或者计数终止时,发出中断申请,以便实现定时控制。第6章定时计数器6.1 定时/计数器的结构及工作原理MCS-51单片机的定时/计数器(以下简称T/C)的结构如图所示。由图可见T/C的核心是1个加1计数器,它的输入脉冲有两个来源:一个是外部脉冲源,另一个是系统机器周期(时钟振荡器经12分频以后的脉冲信号)。第6章定时计数器定时/计

3、数器的结构框图第6章定时计数器当T/C处于定时方式时,加1计数器在每个机器周期加1,因此,也可以把它看作在累计机器周期。由于一个机器周期包含12个振荡周期,所以它的计数速率是振荡频率的1/12。图中有2个模拟的位开关,前者决定了T/C的工作状态:当开关处于上方时为定时状态,处于下方时为计数状态。工作状态的选择由特殊功能寄存器TMOD的C/T位来决定。第6章定时计数器16位的加1计数器由两个8位的特殊功能寄存器THx或TLx组成(X=0、1)。它们可被程控为不同的组合状态。(13位、16位、两个分开的8位等),从而形成T/C不同的4种工作方式,这只要用指令改变TMOD(工作方式控制寄存器)的相应

4、位即可。单片机中微处理器p、特殊功能寄存器TCON和TMOD与定时/计数器T0、T1之间的关系如图所示,它反映了T/C在单片机中的位置和总体结构。第6章定时计数器定时/计数器与TMOD、TCON的结构框图第6章定时计数器 6.2 定时/计数器的方式和控制寄存器 MCS-51单片机有2个特殊功能寄存器TMOD和TCON:TMOD用于设置T/C的工作方式;TCON用于控制定时器T0、T1的启动与停止,并包含了定时器的状态。 1.定时器工作方式寄存器TMOD定时器工作方式寄存器TMOD用于选择定时器的工作方式,它的高4位控制定时器T1,低4位控制定时器T0。TMOD中各位的定义如下:M0M1C/TG

5、ATEM0M1C/TGATET1 T0TMOD 89H 第6章定时计数器其中:T/C功能选择位,当=1时为计数方式;当=0时为定时方式。 M1M0:T/C工作方式定义位,其具体定义方式如下所示:/CT /CT/CT第6章定时计数器定时/计数器工作方式第6章定时计数器 GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。 GATE=0时,与外部中断无关,由TCON寄存器中的TRx位控制启动。 GATE=1时,由控制位TRx和引脚共同控制启动,只有在没有外部中断请求信号的情况下(即外部中断引脚=1时),允许CTC启动。INTxINTx第6章定时计数器 2.定时器控制寄存器TCON

6、TCON控制寄存器各位的定义如下:IT0IE0IT1IE1TR0TF0TR1TF1D7 D6 D5 D4 D3 D2 D1 D0 T C O N 88H 第6章定时计数器 TF0(TF1):为T0(T1)定时器溢出中断标志位。当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况下,发出中断请求信号。当CPU响应中断转向中断服务程序时,由硬件自动将该位清0。 TR0(TR1):为T0(T1)运行控制位。当TR0(TR1)=1时启动T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行设置。 TCON的低4位与外部中断有关,可参阅中断一节的有关内容。 TCON寄存器在复位时也被清

7、0。第6章定时计数器 6.3 定时/计数器的工作方式 MCS-51单片机的T/C有4种工作方式,分别由TMOD寄存器中的M1、M0两位的二进制编码所决定。 1.方式0当M1M0=00时,T/C设定为工作方式0,构成13位的T/C。其逻辑结构如下图所示。此时T/C构成一个13位的计数器,由THx的8位和TLx的低5位组成,TLx的高3位未用,满计数值为213。 T/C启动后立即加1计数,当TLx的低5位计数溢出时向THx进位,THx计数溢出则对相应的溢出标志位TFx置位,以此作为定时器溢出中断标志。当单片机进入中断服务程序时,由内部硬件自动清除该标志。第6章定时计数器T/C方式0的逻辑结构图第6

8、章定时计数器 2. 方式1当M1M0=01时,T/C设定为工作方式1,构成16位定时/计数器。其中THx作为高8位,TLx作为低8位,满计数值为216,其余同方式0类似。第6章定时计数器T/C方式1的逻辑结构图第6章定时计数器 3.方式2当M1M0=10时,T/C工作在方式2,构成1个自动重装载的T/C,满计数值为28。在方式0和方式1中,当计数满后,若要进行下一次定时/计数,需用软件向THx和TLx重新予置计数初值。在方式2中THx和TLx被当作两个8位计数器,计数过程中,THx寄存8位初值并保持不变,由TLx进行8位计数。计数溢出时,除产生溢出中断请求外,还自动将THx中的初值重新装到TL

9、x中去,即重装载。除此之外,方式2也同方式0类似。第6章定时计数器T/C方式2的逻辑结构图第6章定时计数器 4.方式3方式3只适用于定时器T0。当定时器T1处于方式3时相当于TR1=0,停止计数。当T0工作在方式3时,TH0和TL0被拆成2个独立的8位计数器。这时,TL0既可作为定时器使用,也可作为计数器使用,它占用了定时器T0所使用的控制位(C/T、GATE、TR0、TF0),其功能和操作与方式0或方式1完全相同.而TH0只能作定时器用,并且占据了定时器T1的两个控制信号TR1和TF1。在这种情况下,定时器T1虽仍可用于方式0、1、2,但不能使用中断方式。第6章定时计数器T/C方式3的逻辑结

10、构图第6章定时计数器 6.4 定时/计数器应用举例由于MCS-51单片机的定时/计数器是可编程的,因此在使用之前需要进行初始化。在编程时主要注意两点:第一要能正确写入控制字;第二能进行计数初值的计算。一般情况下,包括以下几个步骤: (1)确定工作方式,即对TMOD寄存器进行赋值。 (2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中。 (3)根据需要,置位ETx允许T/C中断。 (4)置位EA使CPU开中断(需要时)。 (5)置位TRx启动计数。第6章定时计数器计数初值的计算方法如下:由于定时/计数器是以加1的方式计数,因此同常用的减1计数器的算法不同。在定时方式下:假定时间常数为

11、Tc,定时时间为T,而T=TcTp,则时间常数为cpTTT=其中Tp为机器周期,即12/晶振频率。应装入定时/计数器的初值为X=2n-Tc (n为计数器的位数)第6章定时计数器例1:若晶振频率为6MHz,试计算MCS-51单片机定时/计数器的最小定时时间和最大定时时间。解:先确定机器周期:计算最小定时时间:对于定时器的几种工作方式来说,最小定时时间都是一样的,即Tmin=TcTp=12s=2s 在计数方式下:假定计数值为N,则应装入的计数初值为X=2n-N (n同上)12 1226pTusMHz=晶振频率第6章定时计数器计算最大定时时间:当T/C工作在方式1下的定时时间最长,则最大定时时间为:

12、 Tmax=TcTp=2162s=131072s=131ms例2:若单片机的晶振频率为6MHz,要求定时/计数器T0产生100ms的定时,试确定计数初值以及TMOD寄存器的内容。解:当晶振频率为6MHz时,产生100ms的定时接近最大值(131ms),故只能采用方式1(16位定时器)。第6章定时计数器12 1226pTusMHz=晶振频率时间常数为:346100 10510210cpTsT= =计数初值为:16 42251065536 5000 1553630ncXTCB H=机器周期为:第6章定时计数器设置TMOD方式字:对于T0来说:M1M0=01、= 0 、GATE=0。由于T1不用,可

13、任意设置,现取为全0,因此,TMOD寄存器的内容为: TMOD=00000001B=01H/CT第6章定时计数器例3:利用定时/计数器T0通过P1.0引脚输出周期为2ms的方波,设晶振频率为12MHz。试确定计数初值、TMOD内容及编制相应程序。解:若要产生周期为2ms的方波,只要每1ms将信号的幅值由0变到1或由1变到0即可,可采用取反指令CPL来实现。为了提高CPU的效率,可采用定时中断的方式,每1ms产生一次中断,在中断服务程序中将输出信号取反即可。定时器T0的中断入口地址为000BH。计算计数初值:对于定时1ms来说,用定时器方式0(13位定时器)就可实现。第6章定时计数器机器周期为:

14、时间常数为:361101000110cpTsT= =计数初值为:132 2 1000 8192 1000 71921110000011000ncXTB= = =则其高8位为E0H,低5位为18H,故TH0=E0H(高8位),TL0=18H(低5位)。sMHzTp11212=sMHzTp11212=sMHzfTp 1121212=第6章定时计数器确定TMOD方式字:对于定时器T0来说,M1M0=00H、=0、GATE=0。定时器T1不用,取为全0。于是 TMOD=00000000B=00H 程序设计: ORG 000BH ;T0中断服务程序入口 LJMP INT ;转至INT处 ORG 2000

15、H ;主程序 MOV TMOD,00H ;置T0为定时方式0 MOV TH0,0E0H ;设置计数初值/CT第6章定时计数器 MOV TL0,18H SETB EA ;CPU开中断 SETB ET0 ;允许T0中断 SETB TR0 ;启动T0 HALT: SJMP $ ;暂停,等待中断 INT: CPL P1.0 ;输出方波 MOV TH0,0E0H ;重新装计数初值 MOV TL0,18H RETI ;中断返回 END第6章定时计数器特别说明:以上程序在定时器初始化之后,即进入虚拟的主程序,暂停等待定时器溢出中断。这种主程序处于暂停状态等待中断的方法一般只用于例题程序,而在实际系统中则很少采用,因为这涉及到CPU的效率。特别注意:当采用方式0、1、3时,只要不关闭定时/计数器,那么每当计数器回0溢出时,都需要重新装入计数初值,以保证计数值不变。第6章定时计数器例4:用查询方式产生例3中所要求的方波。解:程序和例3很相似,不同之处为不需要中断和中断服务程序。查询的对象是定时器T0的溢出标志TF0,在计数过程中,TF0为0;当定时时间到,计数器溢出使TF0置1。由于未采用中断,TF0置1后不会自动复位为0,故需用指令使TF0复位为0。计数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号