1、第五章定时第五章定时/计数器计数器第五章定时第五章定时/计数器计数器第五章定时第五章定时/计数器计数器5.1 5.1 定时定时/计数器功能计数器功能 5.2 5.2 定定时时和和计计数器硬件数器硬件结结构构 5.3 5.3 定时定时/计数器工作方式计数器工作方式 5.4 5.4 定定时时/计计数器数器编编程程 第五章定时第五章定时/计数器计数器5.1定时定时/计数器功能计数器功能5.1定时定时/计数器功能计数器功能541定时功能定时功能 所谓定时功能就是通过来自单片机内部的时钟脉所谓定时功能就是通过来自单片机内部的时钟脉冲作计数脉冲,使计数器计数,即每个机器周期计数冲作计数脉冲,使计数器计数,
2、即每个机器周期计数器加器加1,计数值达到予置值后,定时,计数值达到予置值后,定时/计数模块产生溢计数模块产生溢出。出。542计数器功能计数器功能 所谓计数是指对外部事件进行计数。外部事件的所谓计数是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。来脉冲进行计数。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2定时和计数器硬件结构定时和计数器硬件结构 PIC16F877PIC16F877单片机配置了单片机配置了3 3个定时器个定时器/计数器模块,分别为计数器模块,分别
3、为TMR0TMR0、TMR1TMR1和和TMR2TMR2。共同点:它们的核心部分都是一个由时钟信号触发,按递增共同点:它们的核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;从预先设定的某一初始值开始累方式累加工作的循环计数器;从预先设定的某一初始值开始累计,在累计到计数器产生溢出,并同时建立一个相应的溢出中计,在累计到计数器产生溢出,并同时建立一个相应的溢出中断标志。断标志。三者的不同点:三者的不同点:TMR0TMR0为为8 8位宽,有一个可选的预分频器,用于位宽,有一个可选的预分频器,用于通用目的,可用于定时和计数;通用目的,可用于定时和计数;TMR1TMR1为为1616位宽
4、,附带一个可编位宽,附带一个可编程的预分频器和一个可选的低频时基振荡器,适合与程的预分频器和一个可选的低频时基振荡器,适合与CCPCCP(捕捉(捕捉/比较脉宽调制)模块配合使用来实现输入捕捉或输出比较功能,比较脉宽调制)模块配合使用来实现输入捕捉或输出比较功能,也可用于定时和计数;也可用于定时和计数;TMR2TMR2为为8 8位宽,附带一个配合使用来实现位宽,附带一个配合使用来实现PWMPWM脉冲宽度调制信号的产生,只能用于定时。脉冲宽度调制信号的产生,只能用于定时。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构 5.2定时和计数器硬件结构定时和计数器硬件结构
5、5.2.1定时器定时器/计数器计数器TMR0的硬件结构的硬件结构1.定时器定时器/计数器计数器TMR0具有以下特点具有以下特点(1 1)TMR0TMR0是是一一个个8 8位位宽宽的的由由时时钟钟信信号号上上升升沿沿触触发发的的循循环环累加计数寄存器。累加计数寄存器。(2 2)有一个专用的外部触发信号输入端(有一个专用的外部触发信号输入端(T0CKI)。)。(3 3)TMR0TMR0也也是是一一个个在在文文件件寄寄存存器器区区域域内内统统一一编编址址的的寄寄存存器器,地地址址为为01H01H或或101H101H,用用户户用用软软件件方方式式可可直直接接读读/写写计计数数器器的的内容。内容。(4
6、4)具有一个软件可编程的具有一个软件可编程的8 8位预分频器。位预分频器。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2定时和计数器硬件结构定时和计数器硬件结构5.2.1定时器定时器/计数器计数器TMR0的硬件结构的硬件结构1.定时器定时器/计数器计数器TMR0具有以下特点具有以下特点(5 5)当当使使用用内内部部触触发发信信号号,即即指指令令周周期期作作为为时时钟钟信信号号源源时时,模模块块TMR0工工作作于于定定时时方方式式,触触发发方方式式为为固固定定上上升升沿沿触触发发有有效效。在在计计数数器器溢溢出出时时,相相应应的的溢溢出出中中断断标标志志T
7、01FT01F自自动动置置位,并可产生溢出中断。位,并可产生溢出中断。(6 6)当外部时钟信号源时,模块当外部时钟信号源时,模块TMR0工作于计数方工作于计数方式,触发方式可由程序设置位上升沿触发或下降触发有效。式,触发方式可由程序设置位上升沿触发或下降触发有效。在计数器溢出时,也可产生溢出中断。在计数器溢出时,也可产生溢出中断。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2定时和计数器硬件结构定时和计数器硬件结构5.2.1定时器定时器/计数器计数器TMR0的硬件结构的硬件结构2与定时器与定时器/计数器计数器TMR0模块相关的寄存器模块相关的寄存器(1)
8、选项寄存器)选项寄存器OPTION_REG(2)中断控制寄存器)中断控制寄存器INTCON第五章定时第五章定时/计数器计数器表5-1 与TMR0模块相关的寄存器寄存器的名称和符号寄存器地址寄存器内容Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0定时器/计数器TMR001H/101H8位累加计数寄存器选项寄存器OPTION_REG81H/181HRBPUINTEDGT0CST0SEPSAPS2PS1PS0中断控制寄存器INTCON0BH/8BH/10B/H/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF端口RA方向寄存器TRISA85HTRISA5TRI
9、SA4TRISA3TRISA2TRISA1TRISA0第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构 PS2 PS1 PS0TMR0比率WDT比率0001:21:10011:41:20101:81:40111:161:81001:321:161011:641:321101:1281:641111:2561:128第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构3定时器定时器/计数器计数器TMR0模块的电路结构和工作原理模块的电路结构和工作原理第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构4.4.
10、分频器分频器 分频器实际上也是一个分频器实际上也是一个8位累加计数器,它只能配合位累加计数器,它只能配合TMR0或或WDT输出的时钟由输出的时钟由PS2PS0设定分额比,这个分频比由设定分额比,这个分频比由OPTION_REG寄存器中的寄存器中的PS2PS0决定。决定。5.TMR0累加计数寄存器累加计数寄存器TMR0有定时器和计数器两种工作模式。这两种模式之间的有定时器和计数器两种工作模式。这两种模式之间的差异是触发信号的来源不同。差异是触发信号的来源不同。TMR0的工作模式由的工作模式由T0CS位(选位(选项寄存器项寄存器OPTION_REG)决定)决定表53 TMR0的工作模式T0CSTM
11、R0工作模式触发信号的来源0定时器计数器的触发信号取自内部指令周期1计数器计数器的触发信号取自外部引脚T0CKI电平的上升沿/下降沿第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构 定定时时器器/计计数数器器TMR1TMR1不不仅仅可可作作通通用用的的定定时时器器和和计计数数器器;而而且且利利用用内内置置的的低低频频时时基基振振荡荡器器,还还可可实实现现实实时时时时钟钟RTCRTC功功能能;通通过过TMR1TMR1与与CCPCCP模模块块配配合合使使用用,定定时时器器/计计数数器器TMR1TMR1又
12、又可可实实现现输输入入捕捕捉和输出比较功能。捉和输出比较功能。定时器定时器/计数器计数器TMR1TMR1是一个是一个1616位的可读可写的计数寄存器,位的可读可写的计数寄存器,由高低两字节组成(由高低两字节组成(TMR1HTMR1H和和TMR1LTMR1L)1616位寄存器从位寄存器从0000H0000H到到FFFFHFFFFH加加1 1计数,然后回到计数,然后回到0000H0000H。在从。在从FFFFHFFFFH到到0000H0000H的过程中,的过程中,置位中断标志位置位中断标志位TMR1IFTMR1IF。定时器。定时器/计数器计数器TMR1TMR1还带有一个还带有一个3 3位的位的可编
13、程预分频器和一个内置的低功耗低频时基振荡器。可编程预分频器和一个内置的低功耗低频时基振荡器。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构1定时器定时器/计数器计数器TMR1模块具有的特点模块具有的特点(1 1)一一个个1616位位的的由由时时钟钟信信号号上上升升沿沿触触发发的的累累加加计计数数寄寄存存器器对对TMR1HTMR1H:TMR1LTMR1L;(2 2)TMR1HTMR1H和和TMR1LTMR1L是是在在RAMRAM中中统统一一编编址址的的寄寄存存器器对对,地地址址为为0EH0EH和和0
14、FH0FH,可用软件方式读,可用软件方式读/写写TMR1TMR1寄存器对的内容;寄存器对的内容;(3 3)一个可一个可选选用的用的3位可位可编编程的程的预预分分频频器;器;第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构1定时器定时器/计数器计数器TMR1模块具有的特点模块具有的特点(4 4)累累加加计计数数的的信信号号源源可可选选择择内内部部系系统统时时钟钟、外外部部触触发发信号或自带时基振荡器信号;信号或自带时基振荡器信号;(5 5)既既可可工工作作于于定定时时器器模模式式,又又可可工工作作于于
15、计计数数器器模模式式,还可用作实时时钟还可用作实时时钟RTCRTC;(6 6)在在计计数数器器溢溢出出时时,相相应应的的溢溢出出中中断断标标志志自自动动置置位位,并可产生溢出中断。并可产生溢出中断。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构2与定时器与定时器/计数器计数器TMR1模块相关的寄存器模块相关的寄存器表5-4 与TMR1模块相关的寄存器寄存器的名称和符号寄存器地址寄存器内容Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0中断控制寄存器INTCON0BH/8BH/10B
16、H/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF第一外设中断使能寄存器PIR1OCPSPIFADIFRCIFTXIFSSPIFCCP1IFTMR2IFTMR1IF第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构2与定时器与定时器/计数器计数器TMR1模块相关的寄存器模块相关的寄存器PIE18CHPSPIEADIERCIETXIESSPIECCP1IETMR2IETMR1IETMR1L0EH16位TMR1计数寄存器低字节寄存器TMR1H0FH16位TMR1计数寄存器高字节寄存
17、器T1CON10HT1CKPS1T1CKPS0T1OSCENT1SYNCTMR1CSTMR1ON第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构3定时器定时器/计数器计数器TMR1模块的电路结构和原理模块的电路结构和原理第五章定时第五章定时/计数器计数器0:表 示 选 择 内 部 时 钟 源(fcsc/4=Tcyc指令周期);1:表示选择外部时钟源,即时钟信号来源于外部引脚或者自带振荡器。0:表示TMR1外部输入时钟与系统时钟保持同步;1:表示TMR1外部输入时钟与系统时钟不保持同步。0:表示禁止T
18、MR1振荡器起振,使“非”门的输出端呈高阻状态;1:表示使能TMR1发振荡器起振。T1CKPS1 T1CKTS0 分频比0 0 1:10 1 1:21 0 1:41 1 1:8B7B6B5B4B3B2B1B0T1CKPST1CKPS0T1OSCET1SYNCTMR1CSTMR1ON第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构 TMR1TMR1有有两两种种工工作作方方式式:定定时时器器方方式式和和计计数数器器方方式式,其其中中计计数数器器方方式式又又分分为为同同步步计计数数器器工工作作方方式式和和异异步步计计数数器器工工作作方方式式。TMR1TMR1的时钟信号
19、或触发信号共有的时钟信号或触发信号共有4 4种获取方式:种获取方式:(1 1)由内部系统时钟由内部系统时钟4 4分频后获取,即取自指令周期;分频后获取,即取自指令周期;(2 2)从从RC0/T1OSO/T1CKIRC0/T1OSO/T1CKI引脚获取;引脚获取;(3 3)从从RC1/T1OSI/CCP2RC1/T1OSI/CCP2引脚获取;引脚获取;(4 4)自带振荡器产生。自带振荡器产生。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构4定时器定时器TMR1应注意的问题应注意的问题(1 1)当当对对的的寄寄存存器器TMR1HTMR1H或或TMR1LTMR1L进
20、进行行初初始始化化时时,预预分分频频器将会自动清器将会自动清0 0。(2 2)在在寄寄存存器器对对TMR1HTMR1H:TMR1LTMR1L进进行行写写操操作作时时,可可以以使使预预分分频频器器清清0 0。当当TMR1TMR1处处于于运运行行状状态态时时,对对于于寄寄存存器器TMR1HTMR1H或或TMR1LTMR1L值进行的写操作,可能会写入不希望的值。值进行的写操作,可能会写入不希望的值。(3 3)TMR1TMR1工工作作于于异异步步计计数数器器方方式式时时,不不能能作作为为CCPCCP模模块块的输入捕捉或输出比较的时间基准。的输入捕捉或输出比较的时间基准。第五章定时第五章定时/计数器计数
21、器5.2定时和计数器硬件结构定时和计数器硬件结构4定时器定时器TMR1应注意的问题应注意的问题(4 4)在上电复位(在上电复位(PORPOR)或者其他复位时,)或者其他复位时,TMR1HTMR1H:TMR1LTMR1L的内容保持原有数值,不会复位到的内容保持原有数值,不会复位到0000H0000H。(5 5)在在上上电电复复位位或或者者掉掉电电复复位位时时,控控制制寄寄存存器器T1CONT1CON的的内内容容将将回回到到00H00H,并并关关闭闭TMR1TMR1,且且预预分分频频器器的的分分频频比比设设定定为为缺缺省省值值1 1:1 1。在所有的其他复位时,均不会影响。在所有的其他复位时,均不
22、会影响T1CONT1CON寄存器的值。寄存器的值。(6 6)如果在复位时需要将)如果在复位时需要将TMR1HTMR1H和和TMR1LTMR1L的内容回到的内容回到00H00H,可以,可以用程序实现,即先半用程序实现,即先半TMR1TMR1关闭,然后分别将寄存器关闭,然后分别将寄存器TMR1HTMR1H和和TMR1LTMR1L清清0 0。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.3定时器定时器TMR2的硬件结构的硬件结构定定时时器器TMR2模块是一个模块是一个8位定时器,带一个位定时器,带一个4位位宽的可编程预分频器、一个宽的可编程预分频器、一个4位
23、宽的可编程后分频器和位宽的可编程后分频器和一个可编程一个可编程8位周期寄存器位周期寄存器PR2。但是。但是定定时时器器/计计数器数器TMR2只能工作于定时器模式;因此它不仅可以为主只能工作于定时器模式;因此它不仅可以为主同步串行端口同步串行端口MSSP模块(模块(SPI模式)提供波特率时钟;模式)提供波特率时钟;还可以与还可以与CCP模块配合使用,提供脉宽调制模块配合使用,提供脉宽调制PWM功能功能的时基信号。的时基信号。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.3定时器定时器TMR2的硬件结构的硬件结构1定时器定时器TMR2的特点的特点(1 1)
24、TMR2是一个是一个8位宽的累加计数寄存器;位宽的累加计数寄存器;(2 2)TMR2在在RAM空间内统一编址,地址为空间内统一编址,地址为011H;(3 3)可用软件方式直接读可用软件方式直接读/写写TMR2的内容;的内容;(4 4)具具有有可可编编程程的的4位位预预分分频频器器,有有1:1、1:4、1:16,共共3种分频比;种分频比;(5 5)具有可编程的具有可编程的4位后分频器位后分频器,有有16种分频比;种分频比;第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构 5.2.3定时器定时器TMR2的硬件结构的硬件结构(6 6)带带有有一一个个8位位周周期期寄寄
25、存存器器PR2,这这个个寄寄存存器器的的值值由由用用户设置户设置;(7 7)只只能能由由内内部部系系统统时时钟钟来来触触发发定定时时器器的的增增量量,因因此此只只工作于定时器模式;工作于定时器模式;(8 8)具有溢出次数经过分频的溢出中断功能;具有溢出次数经过分频的溢出中断功能;(9 9)不不管管哪哪种种复复位位,都都会会将将TMR2清清0。但但TMR0和和TMR1寄存器的内容不受复位的影响;寄存器的内容不受复位的影响;(1010)TMR2可以被软件关闭。可以被软件关闭。第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.3定时器定时器TMR2的硬件结构的硬
26、件结构2与定时器与定时器TMR2模块相关的寄存器模块相关的寄存器表510 与TMR2模块相关的寄存器寄存器的名称和符号寄存器地址寄存器内容Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0中断控制寄存器INTCON0BH/8BH/10BH/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF第二外设中断使能寄存器PIE28DH-保留-EEIEBCLIE-CCP2IE第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构5.2.3定时器定时器TMR2的硬件结构的硬件结构2与定时器与定时器TMR2模块相关的寄存器模块相关的寄存器第二外设中断
27、标志寄存器PIR20DH-保留-EEIFBCLIF-CCP2IF工作寄存器TMR211H8位TMR2计时寄存器控制寄存器T2CON12HTOUTPS3TOUTPS2TOUTPS1TOUTPS0TMR2ONT2CKPS1T2CKPSO周期寄存器PR292HTMR2定时周期寄存器第五章定时第五章定时/计数器计数器5.2定时和计数器硬件结构定时和计数器硬件结构3定时器定时器TMR2模块的电路结构模块的电路结构第五章定时第五章定时/计数器计数器0:表示关闭TMR2,可以降低功耗;1:表示启用TMR2。TOUTPS3TOUTPS0 后分频器分频比0000 1:10001 1:20010 1:30011
28、1:4111 1 1:16T2CKPS1T2CKPS0预分频器分频比0 0 1:10 1 1:41 0 1:161 1 1:16B7B6B5B4B3B2B1B0TOUTPS3TOUTPS2TOUTPS1TOUTPS0TMR2ON T2CKPS1T2CKPSO第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3.1定时工作方式定时工作方式1定时器定时器/计数器计数器TMR0模块的定时工作方式模块的定时工作方式当当T0CS(OPTION_REG)=0时,时,TMR0模块被设置为定时器模块被设置为定时器模式,触发信号为片内的指令周期信号。当计数寄存器写入初模式,触发信
29、号为片内的指令周期信号。当计数寄存器写入初始值时,始值时,TMR0便开始或重新启动累加计数。若没有使用分频便开始或重新启动累加计数。若没有使用分频器,器,TMR0会在每个指令周期信号(时钟周期的会在每个指令周期信号(时钟周期的4倍)到来时自倍)到来时自动加动加1。若使用分频器,。若使用分频器,TMR0会在指令周期信号分频某个倍数会在指令周期信号分频某个倍数后产生的信号时自动加后产生的信号时自动加1,这时,这时TMR0最长固有定时时间将达到最长固有定时时间将达到65535us。第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3定时定时/计数器工作方式计数器工作方
30、式5.3.1定时工作方式定时工作方式1定时器定时器/计数器计数器TMR0模块的定时工作方式模块的定时工作方式对对8位位定定时时器器TMR0来来说说,不不使使用用分分频频器器时时,定定时时时时间间的的计计算算公公式为:式为:(28计数初值计数初值)指令周期,指令周期,使用分频器时,定时时间的计算公式为:使用分频器时,定时时间的计算公式为:分频比分频比(28计数初值计数初值)指令周期指令周期分频比取值为分频比取值为2、4、8256。第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3定时定时/计数器工作方式计数器工作方式5.3.1定时工作方式定时工作方式1定时器定时
31、器/计数器计数器TMR0模块的定时工作方式模块的定时工作方式若若晶晶振振频频率率为为4MHz,则则机机器器周周期期为为1 s,定定时时器器TMR0最最小小定定时时间为:时时间为:28(281)1=1 s定时器定时器TMR0最大定时时间为:最大定时时间为:(280)1256=65536 s如如设设定定定定时时时时间间为为t,指指令令周周期期为为T,分分频频比比为为P,不不使使用用分分频频器器时,计数寄存器写入的初始值时,计数寄存器写入的初始值X为:为:X=X=28 t/T t/T使用分频器时,那么计数寄存器写入的初始值使用分频器时,那么计数寄存器写入的初始值X为:为:X=28t/(TP)第五章定
32、时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式 5.3定时定时/计数器工作方式计数器工作方式5.3.1定时工作方式定时工作方式2定时器定时器/计数器计数器TMR1模块的定时工作方式模块的定时工作方式首首先先强强调调的的是是TMR1TMR1可可以以被被禁禁止止工工作作,以以降降低低能能耗耗。要要关关闭闭定定时时/计计数数模模块块TMR1TMR1只只要要将将TMR1TMR1使使能能位位TMR1ONTMR1ON清清0 0,“与与”门门G1G1的的一一个个引引脚脚被低电平封锁,就使得累加计数器保持静止状态。被低电平封锁,就使得累加计数器保持静止状态。对对16位位定定时时器器TM
33、R1来来说说,如如选选择择内内部部时时钟钟源源,则则定定时时时时间间的的计计算公式为:算公式为:分频比分频比(216计数初值计数初值)指令周期。指令周期。分频比取值为分频比取值为1、2、4、8。第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3定时定时/计数器工作方式计数器工作方式5.3.1定时工作方式定时工作方式2定时器定时器/计数器计数器TMR1模块的定时工作方式模块的定时工作方式若若晶晶振振频频率率为为4MHz,则则机机器器周周期期为为1s,定定时时器器TMR1最最小小定定时时间为:时时间为:216(2161)11=1s定时器定时器TMR1最大定时时间为
34、:最大定时时间为:8 8(2160)1=524288s0.5s如如设设定定定定时时时时间间为为t,指指令令周周期期为为T,分分频频比比率率为为P,那那么么预预置置的的计数初值计数初值X为:为:X=X=216t/t/(T TP P)第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3定时定时/计数器工作方式计数器工作方式5.3.1定时工作方式定时工作方式3定时器定时器TMR2模块的定时工作方式模块的定时工作方式定时器定时器TMR2TMR2模块只有一种工作方式模块只有一种工作方式,即定时器工作方式即定时器工作方式.时钟信时钟信号由内部系统时钟号由内部系统时钟4 4分
35、频后获取分频后获取,即取自指令周期信号即取自指令周期信号.(1 1)用作周期可调的时基发生器)用作周期可调的时基发生器 如如指指令令周周期期为为T,分分频频比比为为P1,周周期期寄寄存存器器预预赋赋值值为为PR2,则该周期的计算式为,则该周期的计算式为T TTMR2TMR2=T=TP1P1(PR2+1)(PR2+1)第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3定时定时/计数器工作方式计数器工作方式5.3.1定时工作方式定时工作方式3定时器定时器TMR2模块的定时工作方式模块的定时工作方式(2)用作延时可调的周期性定时器)用作延时可调的周期性定时器如如指指
36、令令周周期期为为T,预预分分频频比比为为P,周周期期寄寄存存器器预预赋赋值值为为PR2,后后分频比为分频比为P2,则该超时溢出周期为,则该超时溢出周期为T TTMR2IFTMR2IF=T=TP1P1(PR2+1PR2+1)P2P2(3 3)用作普通定时器)用作普通定时器 如指令周期为如指令周期为T,预分频比为,预分频比为P1,则定时时间为则定时时间为P1P1(2 28 8-X-X)T T第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式 第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3.2计数器工作方式计数器工作方式1定时器定时器
37、/计数器计数器TMR0模块的计数器模式模块的计数器模式对对8位定时器位定时器TMR0来说,不使用分频器时,计数范围为:来说,不使用分频器时,计数范围为:(28计数初值计数初值)使用分频器时,定时时间的计算公式为:使用分频器时,定时时间的计算公式为:分频比分频比(28计数初值计数初值)分频比取值为分频比取值为2、4、8256。第五章定时第五章定时/计数器计数器5.3定时定时/计数器工作方式计数器工作方式5.3.2计数器工作方式计数器工作方式2定时器定时器/计数器计数器TMR1模块的计数器工作方式模块的计数器工作方式 当当TMR1CSTMR1CS控制位置时,控制位置时,TMR1TMR1工作于计数器
38、方式,时钟来自于工作于计数器方式,时钟来自于外部引脚或自带低频振荡器。当外部引脚或自带低频振荡器。当TMR1TMR1设定为计数器方式时,在设定为计数器方式时,在其开始增量之前,必须有一个下降沿。当其开始增量之前,必须有一个下降沿。当TMR1TMR1随着外部触发信随着外部触发信号递增时,发生在上升沿号递增时,发生在上升沿第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程5.4.1定时实例定时实例【5-35-3】用用定定时时器器TMR1TMR1产产生生一一个个50HZ50HZ的的方方波波,由由RC.0RC.0输输出出,设设晶晶振频率为振频率为4MHz。解解:由由题题意意知知,方
39、方波波的的周周期期T=1/50=0.02s=20ms,T=1/50=0.02s=20ms,用用TMR1TMR1定定时时t=10mst=10ms,设分频比,设分频比P取值为取值为8,指令周期为,指令周期为1s,则计数初值,则计数初值X X为为X=X=216t/t/(T TP P)=21610000/10000/(1 18 8)=FF83=FF83程序清单如下:程序清单如下:第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程 LISTP=16F873LISTP=16F873INCLUDEP16F873.incINCLUDEP16F873.incORG000H;ORG000H;程
40、序起始地址程序起始地址NOP;ICDNOP;ICD必需的空操作必需的空操作BSFSTATUS,RP0;BSFSTATUS,RP0;选择寄存器体选择寄存器体1 1CLRFTRISC;CLRFTRISC;设置设置C C口为输出口为输出BCFSTATUS,RP0;BCFSTATUS,RP0;选择寄存器体选择寄存器体0 0CLRFPORTC;CLRFPORTC;清清C C口口LOOPLOOPMOVLWMOVLW0FBH0FBHMOVWFMOVWFTMR1H;TMR1H;设定设定TMR1TMR1高位初值高位初值MOVLW1EHMOVLW1EH第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计
41、数器编程 MOVWFMOVWF TMR1L;TMR1L;设定设定TMR1TMR1低位初值低位初值MOVLWMOVLWB11110000;B11110000;设置定时器工作方式设置定时器工作方式,MOVWFMOVWFT1CONT1CON分频比为分频比为1 1:8 8BSFBSFT1CON,TMR1ONT1CON,TMR1ON;启动定时器启动定时器TMR1TMR1LOOP1BTFSSLOOP1BTFSSPIR1,TMR1IFPIR1,TMR1IF;是否溢出?是否溢出?GOTOGOTOLOOP1LOOP1;未溢出未溢出,等待等待BCFBCFPIR1,TMR1IFPIR1,TMR1IF;溢出溢出,清溢
42、出标志清溢出标志MOVLWB00000001MOVLWB00000001;对对RC0RC0求反求反XORWFPORTC,1XORWFPORTC,1GOTOGOTOLOOPLOOP;循环循环ENDEND第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程5.4.2计数器实例计数器实例【5-5】试试用用定定时时器器TMR0TMR0作作外外部部工工件件计计数数器器,外外部部工工件件信信号号由由T0CKIT0CKI端端引引入入,TMR2TMR2作作定定时时器器,每每隔隔一一秒秒钟钟检检测测一一次次TMR0TMR0的的计计数数值值,当当检检测测到到100100个个工工件件时时使使RC.
43、0RC.0端端输输出出信信号号反反相相,程程序序不不断断循循环控制环控制RC.0RC.0端的输出端的输出.解解:外外部部工工件件信信号号由由T0CKIT0CKI端端引引入入单单片片机机,设设置置TMR0TMR0为为计计数数工工作作方方式式,TMR2TMR2为为定定时时工工作作方方式式,定定时时时时间间与与软软件件一一起起实实现现为为1 1秒秒。定时器定时器TMR0TMR0的计数初值为(取分频比的计数初值为(取分频比P为为1)计数初值计数初值=28100=156=9CH将将TMR2TMR2设设计计成成定定时时4ms4ms秒秒,设设预预分分频频比比P取取值值为为16,指指令令周周期期为为1s,则,
44、则TMR2TMR2的计数初值的计数初值X X为为X=2X=28 8-t/P-t/PT=256-4000/16=06HT=256-4000/16=06H寄存器的计数值为寄存器的计数值为250250,即十六进制的,即十六进制的FAHFAH。第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程程序清单如下程序清单如下:COUNTCOUNTEQUEQU20H20HSTATUSSTATUS EQUEQU03H03HZ ZEQUEQU02H02HPR0PR0EQUEQU0505PR1PR1EQUEQU0606OPTION_REGOPTION_REGEQUEQU81H81HINTCONIN
45、TCON EQUEQU0BH0BHPIR2PIR2EQUEQUODHODHPIE2PIE2EQUEQU8DH8DHTMR2TMR2EQUEQU0EH0EHTMR0TMR0EQUEQU01H01HT1CONT1CONEQUEQU10H10HTRISATRISAEQUEQU85H85H第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程CLRFCLRFPORTAPORTA;清;清A A、C C口口CLRFCLRFPORTCPORTCCLRFCLRFT2CONT2CON;停止;停止TMR2TMR2工作工作CLRFCLRFTMR0TMR0;清;清TMR0TMR0、TMR2TMR2寄存
46、器寄存器CLRFCLRFTMR2TMR2CLRFCLRFINTCONINTCON;关中断;关中断BSFBSFSTATUSSTATUS,RP0RP0;选择存储体;选择存储体1 1CLRFCLRFOPTION_REGOPTION_REG;停止;停止TMR0TMR0BSFBSFTRISATRISA,4 4;设置;设置RA4RA4为输入口、为输入口、RC0RC0为输出口为输出口BCFBCFTRISCTRISC,0 0第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程CLRFCLRFPIE1PIE1;关外围中断;关外围中断CLRFCLRFPIE2PIE2BCFBCFSTATUSSTA
47、TUS,RP0RP0;选择存储体;选择存储体0 0CLRFCLRFPIR1PIR1;清标志位;清标志位MOVLWMOVLW 0FAH0FAH;计数寄存器赋值;计数寄存器赋值500500MOVWFMOVWF COUNTCOUNTMOVLWMOVLW F4HF4H;设置;设置TMR0TMR0为外部输入计数器状态为外部输入计数器状态MOVWFMOVWF OPTION_REGOPTION_REGMOVLWMOVLW 03H03H;设置;设置TMR2TMR2为普通定时器为普通定时器MOVWFMOVWF T2CONT2CONMOVLWMOVLW 06H06H;TMR2TMR2赋初值赋初值MOVWFMOVW
48、F TMR2TMR2第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程LOOP1 BSFLOOP1 BSF T2CONT2CON,2 2;启动;启动TMR2TMR2LOOP2 BTFSSLOOP2 BTFSSPIR1PIR1,1 1;TMR2TMR2是否溢出?是否溢出?GOTOGOTOLOOP2LOOP2;否,等待;否,等待MOVLWMOVLW 06H06H;重新给;重新给TMR2TMR2赋初值赋初值MOVWFMOVWF TMR2TMR2DECFSZDECFSZCOUNTCOUNT;1 1秒定时是否到?秒定时是否到?1 1秒未到转秒未到转GOTOGOTOLOOP1LOOP1
49、;1 1秒未到再次启动秒未到再次启动TMR2TMR2MOVLWMOVLW 0FAH0FAH;重新给计数寄存器赋值;重新给计数寄存器赋值500500MOVWFMOVWF COUNTCOUNTBTFSSBTFSS INTCONINTCON,2 2;TMR0TMR0是否溢出?是否溢出?第五章定时第五章定时/计数器计数器5.4定时定时/计数器编程计数器编程GOTOGOTOLOOP1LOOP1;继续下一次检测;继续下一次检测BTFSSBTFSS PORTCPORTC,0 0;对;对RC0RC0求反求反GOTOGOTOCBCBBCFBCFPORTCPORTC,0 0GOTOGOTOABABCB BSFCB
50、 BSFPORTCPORTC,0 0AB GOTOAB GOTOLOOP1LOOP1;返回循环。;返回循环。第五章定时第五章定时/计数器计数器本章小节1 1、熟悉、熟悉PIC16F87XPIC16F87X单片机的定时单片机的定时/计数器功能计数器功能PIC16F87XPIC16F87X单单片片机机有有3 3个个定定时时器器/计计数数器器模模块块,它它们们的的共共同同点点是是其其核核心心部部分分都都是是一一个个由由时时钟钟信信号号触触发发,按按递递增增方方式式累累加加工工作作的的循循环环计计数数器器;从从预预先先设设定定的的某某一一初初始始值值开开始始累累计计,在在累累计计到到计计数数器器产产生
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922