第八章定时器计数器优秀课件.ppt
第八章定时器计数器第1页,本讲稿共124页定时器/计数器的正常工作一般表现为计数累计功能,通常是由时钟脉冲来驱动。该时钟可以是单片机本身的工作时钟,即使用内部时钟,称之为定时器;也可以是外部引脚输入的时钟,即使用外部的时钟输入来累计,则称之为计数器。第2页,本讲稿共124页不论使用哪一种时钟,定时器的累计都是靠时序脉冲来触发的。触发的方式有:下降沿触发、上升沿触发或是2个边沿都触发,这取决于定时器的内部结构。累计的方式可以是递增方式、递减方式或两者混合方式。PIC单片机中仅有递增的累计方式。第3页,本讲稿共124页定时器/计数器还有位数的区别,体现为累计次数的上限值。当累计达到上限值时,就会发生溢出,定时器/计数器的位数越多,在溢出前所能累计的次数就越多,也就是基本的定时/计数越长。第4页,本讲稿共124页PIC系列单片机还配有一个预(后)分频器来增加每一次累计的时间间隔,使得可以在相同的累计次数中得到较长的累计时间。这是在没有增加定时器位数的情况下,延长计时时间的一种有效方法。第5页,本讲稿共124页PIC16F877单片机配置3个定时器/计数器,分别是:定时器/计数器0(TMR0)8位 定时器/计数器1(TMR1)16位 定时器2(TMR2)8位第6页,本讲稿共124页三者的共同点:它们的核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;从预先设定的某一初始值开始累计,在累计到计数器产生溢出,并且同时会建立一个相应的溢出中断标志。第7页,本讲稿共124页8.1 定时器/计数器TMR0TMR0是3个定时器/计数器模块中最常用的器件,可读可写,8位宽。时钟源可以是内部系统时钟(Fosc/4),也可以是外部时钟。当以Fosc/4作为TMR0的触发信号进行计数时即为定时器;第8页,本讲稿共124页同时它有一个专用的外部触发信号输入端(RA4/T0CKI),以T0CKI作为TMR0的触发信号对外部脉冲进行计数时就作为计数器使用。当使用外部时钟时,可以选择用脉冲的上升沿或下降沿来触发,进行加1计数(增量)。第9页,本讲稿共124页为了扩大定时或计数的范围,在TMR0中设计了一个可编程分频器。这个分频器可以用于TMR0,也可以用于监视定时器WDT。第10页,本讲稿共124页1、定时器/计数器TMR0的功能作为通用的定时器/计数器TMR0,如果考虑预分频器的效果,其固有定时为65ms,可实现常规的定时功能。如果作为通用计数器,可采用外部T0CKI作为计数触发信号。8.1.1 TMR0模块的功能和特性第11页,本讲稿共124页2、定时器/计数器TMR0的特性TMR0的定时/计数功能主要是基于一个8位累加定时器/计数器TMR0,采用时钟信号上升沿、下降沿触发计数方式。TMR0在RAM数据存储器中具有特定的地址001H和101H,可通过软件指令进行读/写操作。第12页,本讲稿共124页另外,TMR0带有一个可编程预分频器,可达到定时/计数的扩展效果。在TMR0计数溢出时,相应的溢出中断标志(T0IF)自动置位,可 通 过 设 置 TMR0中 断 使 能 状 态(T0IE)而产生溢出中断。第13页,本讲稿共124页8.1.2 与TMR0相关的寄存器定时器/计数器TMR0主要涉及有4个寄存器,见表8-2。定时器/计数器TMR0:在RAM数据存储器中具有特定的地址001H和101H,8位定时/计数的核心部件,当赋予初始时间常数,便自动进入计数状态;第14页,本讲稿共124页选 项 寄 存 器 OPTION_REG:选 择TMR0时钟源、边缘触发状态、预分频器的分配情况;中断控制寄存器INTCON:各类中断使能状况;方向寄存器TRISA:外部触发信号输入端的激活定义(RA4/T0CKI)。第15页,本讲稿共124页1.定时器/计数器(TMR0)定时器/计数器TMR0是一个专用8位特殊功能寄存器,一般用于存放定时/计数的初始值,即时间常数。当向TMR0送入时间常数后,TMR0便在该时间常数的基础上开始或重新启动累加计数,时间常数取值越大则定时越短;反之则定时越长。第16页,本讲稿共124页TMR0在FF后再输入一个触发脉冲就将产生溢出,此时中断标志位T0IF将无条件置位。将仅仅由TMR0计数产生的定时长短(不计分频器的影响)称为固有定时时间。第17页,本讲稿共124页假定系统的时钟振荡频率为4MHz,TMR0计数触发信号就是指令周期。那么理论上可设置的最短定时为1s(时间常数设置为0FFH);最长定时为 256s(时间常数设置为00H)。第18页,本讲稿共124页0 0 0 0 0 0 0 0TMR01 2 3 4 5 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。第19页,本讲稿共124页0 0 0 0 0 0 0 1TMR02 33 4 5 6 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。第20页,本讲稿共124页0 0 0 0 0 0 1 0TMR03 44 5 6 7 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。第21页,本讲稿共124页0 0 0 0 0 0 1 1TMR04 55 6 7 8 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。第22页,本讲稿共124页0 0 0 0 0 1 0 0TMR05 66 7 8 9 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。第23页,本讲稿共124页0 0 0 0 0 1 0 1TMR06 77 8 9 10 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。第24页,本讲稿共124页1 1 1 1 1 1 1 1TMR0256 256 257 257 258 258 259 259 260 260 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。第25页,本讲稿共124页 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。0 0 0 0 0 0 0 0TMR0257 257 258 258 259 259 260 260 261 261再工作一次11第26页,本讲稿共124页 TMR0是3个定时计数器中应用最广的器件可作为一般定时计数功能。0 0 0 0 0 0 0 0TMR0257 257 258 258 259 259 260 260 261 261再工作一次11T0IF第27页,本讲稿共124页2.选项寄存器OPTION_REG是一个可读/写的8位寄存器,在RAM数据存储器中的地址81H(体1)和181H(体3)。PS0 PS1 PS2 PSA T0SE T0CS INTEDG RBPUD0 D1 D2 D3 D4 D5 D6 D7第28页,本讲稿共124页PS2PS0(D2D0):分频器分频比选择位,主动参数,如表83所示。TMR0所带的分频器,既可以自己使用,也能够分配给WDT(看门狗)。PSA(D3):前后分频器分配位,主动参数。它是通过开关设置给定时器0(TMR0)和看门狗WDT分时复用。第29页,本讲稿共124页0:分频器分配给TMR0,作为TMR0的前分频器;1:分频器分配给WDT,作为WDT的后分频器。第30页,本讲稿共124页分频器位值TMR0倍率 WDT倍率000 1:2 1:1001 1:4 1:2010 1:8 1:401 1 1:16 1:8100 1:32 1:16101 1:64 1:321 10 1:128 1:641 1 1 1:256 1:128第31页,本讲稿共124页T0SE(D4):TMR0用于计数器时,外部时钟信号的边沿选择位,主动参数。如果TMR0工作于定时模式,将与该位设置无关。0:计数方式,RA4/T0CKI引脚上的信号上升沿有效(增量);1:计数方式,RA4/T0CKI引脚上的信号下降沿有效(增量)。第32页,本讲稿共124页T0CS(D5):TMR0的时钟信号源选择位,主动参数。此位可以认为是用来确定TMR0工作于定时方式还是计数方式。0:由Fosc/4作为TMR0的触发脉冲,定时方式;1:用RA4/T0CKI引脚上的外部时钟作为TMR0的触发脉冲,计数方式。第33页,本讲稿共124页 定时时间的计算:T(256X)K TCY其中:K为分频比 TCY为机器指令周期,在FOSC4MHz时,TCY 1s X为定时的初始值。第34页,本讲稿共124页例:当X6,K256时:T=250 256 164000 s64ms最大定时X=0,K=256:T=256 256 165536 s65.536ms第35页,本讲稿共124页定时器/计数器从其内部工作方式分析一般表现为计数累计功能,通常是由特定的时钟脉冲来驱动。而当该时钟采用单片机本身的工作时钟,即使用内部时钟,则称之为承担定时器功能;也可以由外部引脚输入的时钟,即使用外部的时钟输入进行触发计数,则称之为承担计数器功能。第36页,本讲稿共124页 设置定时模式当T0CS=0时,TMR0模块被设置为定时模式,计数触发信号来源于系统时钟Fosc/4,即内部的指令周期信号。第37页,本讲稿共124页定时的长短主要取决于3种因素:一是初始时间常数,其数值设置越小,定时越长;二是系统振荡频率,PIC单片机时钟振荡频率的范围为020MHz,频率越高,指令周期越短,相同条件下的定时就越短;三是预分频器,可在一定范围内大幅调整定时的长短。第38页,本讲稿共124页 设置计数模式当T0CS=1时,TMR0模块被设置为计数模式,计数触发信号来源于I/O端口RA引脚T0CKI信号。只有处于计数模式下,T0SE位才有效,将用来进一步确定 T0CKI信号触发TMR0模块计数的边沿效能:第39页,本讲稿共124页 T0SE=0,上升沿触发计数;T0SE=1,下降沿触发计数。一般对T0CKI信号并没有什么特别的限制,既可以是标准的周期脉冲信号,也可以是无规则的时序脉冲信号。因此,计数和定时不同,TMR0模块计数的长短一般并不能确定定时的长短。第40页,本讲稿共124页3.中断控制寄存器 INTCON 中断控制寄存器,可读写,8位 用于中断使能设置和提供中断标志位 地址:0BH/8BH/10BH/18BHRBIF INTF T0IF RBIE INTE T0IE PEIE GIED0 D1 D2 D3 D4 D5 D6 D7第41页,本讲稿共124页T0IF(D2):TMR0溢出中断标志位,被动参数。只要发生TMR0计数溢出,就将使T0IF置位,而与是否处于中断使能无关。0:TMR0未发生计数溢出中断申请;1:TMR0已经发生计数溢出中断申请,必需由软件复位。第42页,本讲稿共124页T0IE(D5):TMR0溢出中断使能位,主动参数。0:禁止TMR0计数溢出中断;1:使能TMR0计数溢出中断。GIE(D7):总中断使能位,主动参数。0:禁止所有中断源模块(14个中断源)的中断请求;1:使能所有中断源模块(14个中断源)的中断请求。第43页,本讲稿共124页4.端口A方向寄存器TRISATRISA(D4):当TMR0工作于计数器模式时,要求外部信号 T0CKI担任TMR0的触发计数功能,此时该引脚必须设定为输入模式。0:端口A中RA4作为一般的输出引脚;1:端口 A中 RA4设定为输入引脚,为T0CKI提供一个输入通道。第44页,本讲稿共124页定时器/计数器TMRO的特点:1、一个8位宽由时钟信号上升沿触发的循环累加计数寄存器;2、TMR0本身也是一个在文件寄存器区中的特殊功能寄存器;3、具有一个软件可编程的8位预分频器;第45页,本讲稿共124页4、既可工作于定时器模式,又可工作于计数器模式。用内部触发信号,指令周期作为时钟信号源时(定时);用外部触发信号,可定义触发上下沿(计数)。5、在计数器溢出时,相应的溢出中断标志(T0IF)自动置位,并可产生溢出中断。第46页,本讲稿共124页8.1.3 TMR0应用实例2种应用方式:查询和中断例8-1计数灯程序设计,RC口接8只发光二极管,从低位到高位按照二进制计数方式有序点亮,点亮时间间隔为0.5s,假定时钟振荡频率为4MHz。第47页,本讲稿共124页 解题分析:设TMR0定时50ms,分频比设为1:256 由T(256X)K TCY,则 5010-3(256X)256110-6 50103/256=256X得:X=256 50103/256=195.3125 取X=60,即3CH第48页,本讲稿共124页TMR0一次溢出时间 50ms,10次就是500ms即0.5s。采用中断方式,在中断服务程序中对中断次数进行计数,计满10次即达到0.5s。第49页,本讲稿共124页第50页,本讲稿共124页第51页,本讲稿共124页第52页,本讲稿共124页8.2 定时器/计数器1 TMR1TMR1是一个16位定时/计数器,由两个可读/写的寄存器组成。TMR1可 以 从 0000H开 始 加 1计 数,到FFFFH后,再加1计数溢出,产生溢出中断,同时计数值回到0000H。第53页,本讲稿共124页时钟源可以是内部系统时钟(Fosc/4),也可以是外部时钟。当对内部系统时钟的标准脉冲序列进行计数时即为定时器;对外部脉冲进行计数时就作为计数器使用。第54页,本讲稿共124页定时/计数器1是一个可读/写的16位寄存器,由 高 低 两 字 节 组 成(TMR1H:TMR1L)。TMR1L:0EH(体0)TMR1H:0FH(体0)第55页,本讲稿共124页16位寄存器从0000H到FFFFH加1计数,然后回到0000H。在从FFFFH到0000H的过程中,置位中断标志位TMR1IF。如果中断允许,将产生中断请求。中断的允许与禁止,由中断允许寄存器1(PIE1)使能位TMR1IE设置。第56页,本讲稿共124页8.2.1 TMR1模块的功能和特性16位累加计数寄存器对 TMR1H:TMR1L带可编程预分频器内置低频时钟振荡器可实现定时或计数溢出中断第57页,本讲稿共124页定时器/计数器1可以由软件设置允许/禁止工 作,这 通 过 T1CON寄 存 器 的 D0位TMR1ON设置。当TMR1ON=1,允许定时/计数器1工作;当TMR1ON0,禁止定时/计数器1工作。第58页,本讲稿共124页TMR1定时/计数功能的实现,主要是基于一个 16位 累 加 定 时/计 数 寄 存 器 对TMR1H:TMR1L,采用时钟信号上升沿触发计数方式。特殊功能寄存器TMR1H和TMR1L在RAM数据存储器中具有特定的地址00EH和00FH,可通过软件指令对计数内容进行读/写操作。第59页,本讲稿共124页TMR1定时/计数寄存器带有一个可编程预分频器,可形成4种分频比(1:1、1:2、1:4、1:8),可达到定时/计数的扩展效果,例如最大定时时间可达到520ms。累加计数的触发信号,既可采用内部系统时钟(设置为定时方式),也可采用外部触发信号(设置为计数方式)。第60页,本讲稿共124页对外部时钟计数,可以选择与芯片同步工作,也可选择与芯片异步工作。在异步工作方式下,TMR1可以在CPU休眠状态时工作。TMR1可以配合捕捉/比较/PWM(CCP1或CCP2)工作,作为16位捕捉器或16位比较器的时基。第61页,本讲稿共124页8.2.2 TMR1有关的寄存器 TMR1主要涉及6个寄存器:INTCON 中断控制寄存器PIE1 第一外围中断使能寄存器PIR1 第一外围中断标志寄存器TMR1L TMR1低字节TMR1H TMR1高字节T1CON TMR1控制寄存器 第62页,本讲稿共124页RBIF INTF T0IF RBIE INTE T0IE PEIE GIED0 D1 D2 D3 D4 D5 D6 D7 INTCON 中断控制寄存器 0BH/8BH/10BH/18BH 只有D7和D6位与TMR1有关第63页,本讲稿共124页TMR1IE TMR2IE CCP1IE SSPIE TXIE RCIE ADIE PSPIED0 D1 D2 D3 D4 D5 D6 D7PIE1 第一外围中断使能寄存器 8CH 只有D0位与TMR1有关第64页,本讲稿共124页TMR1IFTMR2IF CCP1IF SSPIF TXIF RCIF ADIF PSPIFD0 D1 D2 D3 D4 D5 D6 D7PIR1 第一外围中断标志寄存器 0CH 只有D0位与TMR1有关第65页,本讲稿共124页