资源预览内容
第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
第9页 / 共43页
第10页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
PIC单片机技术 电子信息与电气工程系 通信教研室 1第7章 定时器计数器1.1.1.1.定定定定时时时时器器器器/ / / /计计计计数数数数器器器器模模模模块块块块是是是是大大大大部部部部分分分分单单单单片片片片机机机机都都都都内内内内置置置置的的的的一一一一项项项项重重重重要要要要功功功功能能能能,定定定定时时时时器器器器/ / / /计计计计数数数数器器器器的的的的正正正正常常常常工工工工作作作作一一一一般般般般表表表表现为计数累计功能,通常是由时钟脉冲来驱动。现为计数累计功能,通常是由时钟脉冲来驱动。现为计数累计功能,通常是由时钟脉冲来驱动。现为计数累计功能,通常是由时钟脉冲来驱动。 2.2.2.2.定定定定时时时时器器器器/ / / /计计计计数数数数器器器器模模模模块块块块一一一一般般般般适适适适用用用用于于于于以以以以下下下下3 3 3 3种种种种不不不不同同同同的的的的应用场合:应用场合:应用场合:应用场合:从从单单片机片机I/OI/O引脚上向外部引脚上向外部电电路路输输出一系列符合一定出一系列符合一定时时序序规规范的方波信号。范的方波信号。从从单单片片机机I/OI/O引引脚脚上上,检检测测外外部部电电路路输输入入的的一一系系列列方方波波信信号号的的脉脉宽宽、周周期期或或频频率,以便率,以便单单片机接收外部片机接收外部电电路的路的输输入信号或通信信号。入信号或通信信号。单单片片机机对对其其端端口口引引脚脚上上输输入入的的由由外外部部事事件件产产生生的的触触发发信信号号进进行行准准确确地地计计数数,依据计数结果来控制完成相应的动作。依据计数结果来控制完成相应的动作。 2 F877 F877单片机配置单片机配置3 3个定时器个定时器/ /计数器模块计数器模块:CCPCCPCCP:输入捕捉、输出比较和输入捕捉、输出比较和输入捕捉、输出比较和PWMPWMPWM脉冲宽度调制功能脉冲宽度调制功能脉冲宽度调制功能 低频时基振荡器低频时基振荡器低频时基振荡器 :327683276832768HzHzHz3三者的共同点: 它们的核心部分都是一个由时钟信号触发,它们的核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;从预先设定按递增方式累加工作的循环计数器;从预先设定的某一初始值开始累计,在累计到计数器产生溢的某一初始值开始累计,在累计到计数器产生溢出,并且同时会建立一个相应的溢出中断标志。出,并且同时会建立一个相应的溢出中断标志。 47.1 定时器计数器TMR0 它们的核心部分都是一个由时钟信号触发,它们的核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;按递增方式累加工作的循环计数器; 从预先设定的某一初始值开始累计,在累计从预先设定的某一初始值开始累计,在累计到计数器产生溢出,并且同时会建立一个相应的到计数器产生溢出,并且同时会建立一个相应的溢出中断标志。溢出中断标志。 引脚引脚T0CKIT0CKI 5 8 8位位宽宽 循循环环累加累加计计数数 统统一一编编址的寄存器址的寄存器 可直接可直接读读/ /写写计计数器数器 具有一个具有一个软软件可件可编编程的程的8 8位位预预分分频频器;器; 定定时时器模式器模式 计计数器模式数器模式 当使用内部触当使用内部触发发信号,即指令周期作信号,即指令周期作为时钟为时钟信号源信号源时时, 为为固定上升沿触固定上升沿触发计发计数;而当使用外部触数;而当使用外部触发发信号作信号作为时为时 钟钟信号源信号源时时,可由程序定,可由程序定义为义为上升沿或下降沿触上升沿或下降沿触发发有效;有效; 在计数器溢出时,相应的溢出中断标志自动置位,并可产生在计数器溢出时,相应的溢出中断标志自动置位,并可产生 溢出中断。溢出中断。 7.1.1 定时器定时器/计数器计数器TMRO的特点的特点 67.1.2 7.1.2 与定时器计数器与定时器计数器与定时器计数器与定时器计数器TMR0TMR0模块相关的寄存器模块相关的寄存器模块相关的寄存器模块相关的寄存器 定时器/计数器 TMR0 选项寄存器OPTION_REG 中断控制寄存器INTCON 端口RA方向控制寄存器TRISA 77.1.2 7.1.2 与定时器计数器与定时器计数器与定时器计数器与定时器计数器TMR0TMR0模块相关的寄存器模块相关的寄存器模块相关的寄存器模块相关的寄存器 1. 定时器/计数器 TMR0 定时/计数:累加 赋值启动87.1.2 7.1.2 与定时器计数器与定时器计数器与定时器计数器与定时器计数器TMR0TMR0模块相关的寄存器模块相关的寄存器模块相关的寄存器模块相关的寄存器 2.选项寄存器OPTION_REGOPTION寄存器D7D6D5D4D3D2D1D0INTEDGT0CST0SEPSAPS2PS1PS0910定定 时时 器器 / /计计 数数 器器 TMR0TMR0模模 块块 的的 电电 路路 结结 构构 和和 工工 作作 原原 理理117.1.2 7.1.2 与定时器计数器与定时器计数器与定时器计数器与定时器计数器TMR0TMR0模块相关的寄存器模块相关的寄存器模块相关的寄存器模块相关的寄存器 总结OPTIONOPTION可用于:可用于: a a、定义预分频器的预分频参数。定义预分频器的预分频参数。b b、分分配配预预分分频频器器(PrescalerPrescaler)给给TMR0TMR0或或WDTWDT。注注意意预预分分频频器器只只能能分分配配给给TMR0TMR0或或WDTWDT其其中中之之一使用,不能同时分配。一使用,不能同时分配。 c c、定义定义TMR0TMR0的信号源。的信号源。d d、定定义义TMR0TMR0信信号号源源的的触触发发沿沿(上上升升沿沿触触发发或下降沿触发)。或下降沿触发)。12补充:预分频器补充:预分频器补充:预分频器补充:预分频器PrescalerPrescalerPrescalerPrescaler 看看门门狗狗定定时时器器WDTWDT与与TMR0TMR0共共用用同同一一个个分分频频器器,但但两两者者不不能能同同时时使使用用。分分频频器器实实际际上上也也是是一一个个8 8位位累累加加计计数数器器。分分频频器器的的功功能能就就是是将将进进入入TMR0TMR0的的时时钟钟信信号号或或从从WDTWDT送送出出低低时时钟钟信信号号频频率率除除以以一一个个指指定定的的倍数,倍数,这这个倍数就是分个倍数就是分频频比。比。 预预分分频频器器的的分分配配对对象象完完全全由由程程序序控控制制。可可以以在在程序中改变预分频器分配对象。程序中改变预分频器分配对象。 当当预预分分频频器器分分配配给给TMR0TMR0后后,所所有有写写TMR0TMR0寄寄存存器器的的指指令令如如CLRF CLRF 1 1、MOVWF MOVWF 1 1等等都都会会清清除除预预分分频频器器。同同理理,分分配配给给WDTWDT时时,诸诸如如CLRWDTCLRWDT和和SLEEPSLEEP指指令令将将清清除除预预分分频频器里已有的器里已有的值值使其使其归归零。零。 13补充:预分频器补充:预分频器补充:预分频器补充:预分频器PrescalerPrescalerPrescalerPrescaler 1、从TMR0到WDT的改变 MOVLW BXXXX1XXX ; MOVWF OPTION ; 2、从WDT到TMR0的改变 CLRWDT ;清WDT及预分频器 MOVLW BXXXX0XXX ;选择RTCC MOVWF OPTION 147.1.2 7.1.2 与定时器计数器与定时器计数器与定时器计数器与定时器计数器TMR0TMR0模块相关的寄存器模块相关的寄存器模块相关的寄存器模块相关的寄存器 3. 中断控制寄存器 INTCON157.1.2 7.1.2 与定时器计数器与定时器计数器与定时器计数器与定时器计数器TMR0TMR0模块相关的寄存器模块相关的寄存器模块相关的寄存器模块相关的寄存器 4. RA方向控制寄存器TRISA 外部计数时,T0CKI为输入167.1.3 7.1.3 应用实例应用实例应用实例应用实例 TMR0的应用有两种:查询、中断例:利用TMR0进行计数,当计数溢出后,把RA0置1方法一:查询 ORG 0000H ORG 0000HMainMain BCF PORTA,0 BCF PORTA,0 MOVLW B00100001 MOVLW B00100001 MOVWF OPTION_REG MOVWF OPTION_REG BCF INTCON,T0IF BCF INTCON,T0IF MOVLW TMR0 Data ; MOVLW TMR0 Data ;赋值,启动计数赋值,启动计数 MOVWF TMR0MOVWF TMR0Loop BTFSS INTCON,T0IF ;Loop BTFSS INTCON,T0IF ;检测溢出标志位检测溢出标志位 GOTO Loop GOTO Loop BSF PORTA,0 BSF PORTA,0 BCF INTCON,T0IF BCF INTCON,T0IF END END17方法二:中断 ORG 0000HORG 0000HORG 0000HORG 0000H GOTO Main GOTO Main GOTO Main GOTO Main ORG 0004H ORG 0004H ORG 0004H ORG 0004H GOTO T0INTSub GOTO T0INTSub GOTO T0INTSub GOTO T0INTSubMain Main Main Main IO IO IO IO口方向设置口方向设置口方向设置口方向设置 MOVLW MOVLW MOVLW MOVLW B00100001B00100001 MOVWF OPTION_REG MOVWF OPTION_REG MOVWF OPTION_REG MOVWF OPTION_REGMOVLW B10100000 ;MOVLW B10100000 ;MOVLW B10100000 ;MOVLW B10100000 ;开开开开T0T0T0T0中断中断中断中断 MOVWF INTCON MOVWF INTCON MOVWF INTCON MOVWF INTCON MOVLW TMR0 Data ; MOVLW TMR0 Data ; MOVLW TMR0 Data ; MOVLW TMR0 Data ;赋值,启动计数赋值,启动计数赋值,启动计数赋值,启动计数 MOVWF TMR0MOVWF TMR0MOVWF TMR0MOVWF TMR0 do something else do something else do something else do something else (GOTO $ (GOTO $ (GOTO $ (GOTO $ ;等待中断,中断响应后返回到此处等待中断,中断响应后返回到此处等待中断,中断响应后返回到此处等待中断,中断响应后返回到此处) ) ) ) T0INTSub BSF PORTA,0T0INTSub BSF PORTA,0T0INTSub BSF PORTA,0T0INTSub BSF PORTA,0 BCF INTCON T0IF BCF INTCON T0IF BCF INTCON T0IF BCF INTCON T0IF RETFIE RETFIE RETFIE RETFIE END END END END187.2 定时器计数器TMR1定定时时器器计计数数器器TMR1TMR1是是一一个个1616位位的的计计数数寄寄存存器器,带带有有一一个个3 3位位的的可可编编程程预预分分频频器器和和一一个个内置的低功耗低频时基振荡器。内置的低功耗低频时基振荡器。 19TMR1的用途:TMR1可作通用的定时器和计数器;利用内置的低频时基振荡器,可实现实时 时钟RTC功能TMR1与CCP模块配合使用,可实现输入捕 捉和输出比较功能。20定时器/计数器TMR1的特性:1616位位 时钟信号上升沿触发的累加计数寄器时钟信号上升沿触发的累加计数寄器 TMR1L TMR1H TMR1L TMR1H TMR1L TMR1L和和TMR1HTMR1H是是RAMRAM寄存器对,可用软件方式读写寄存器对,可用软件方式读写; 一个可选用的一个可选用的3 3位可编程预分频器位可编程预分频器; 累加计数的信号源可选择累加计数的信号源可选择内部系统时钟内部系统时钟、外部触发信号外部触发信号 或或自带时基振荡器信号自带时基振荡器信号; 既可工作于定时器模式又可工作于计数器模式,还可用既可工作于定时器模式又可工作于计数器模式,还可用 作作实时时钟实时时钟RTCRTC; 在计数器溢出时,相应的溢出中断标志自动置位,并可在计数器溢出时,相应的溢出中断标志自动置位,并可 产生溢出中断。产生溢出中断。 21 定时器计数器定时器计数器TMR1TMR1模块相关的寄存器模块相关的寄存器 中断控制寄存器中断控制寄存器中断控制寄存器中断控制寄存器 INTCONINTCONINTCONINTCONTMR1TMR1TMR1TMR1控制寄存器控制寄存器控制寄存器控制寄存器T1CONT1CONT1CONT1CON第一外设中断使能寄存器第一外设中断使能寄存器第一外设中断使能寄存器第一外设中断使能寄存器 PIE1 PIE1 PIE1 PIE1第一外围中断标志寄存器第一外围中断标志寄存器第一外围中断标志寄存器第一外围中断标志寄存器 PIR1PIR1PIR1PIR1高字节低字节高字节低字节高字节低字节高字节低字节TMR1HTMR1HTMR1HTMR1H:TMR1LTMR1LTMR1LTMR1L22 TMR1控制寄存器T1CON23Bit0TMR1ON:TMR1使能控制位(而TMR0不能被关闭的),主动参数。 0: 关闭TMR1,使TMR1退出活动状态,以节省能耗; 1: 启用TMR1,使TMR1进入活动状态。Bit1TMR1CS:时钟源选择位,主动参数。 0: 选择内部时钟源(fosc/4Tcyc指令周期); 1: 选择外部时钟源,即时钟信号来源于外部引脚或者自带振荡器。Bit2T1SYNC:TMR1外部输入时钟与系统时钟同步控制位,主动参数。 当TMR1工作于计数器方式(TMR1CS1时): 0: TMR1外部输入时钟与系统时钟保持同步; 1: TMR1外部输入时钟与系统时钟不保持同步; 当TMR1工作于定时器方式(TMR1CS0时):该位不起作用。Bit3T1OSCEN:TMR1自带振荡器使能位,主动参数。 0: 禁上TMR1振荡器工作; 1: 使能TMR1振荡器工作。24Bit5-bit4T1CKPS1-T1CKPSO: 分频器的分频比选择位,主动参数。25定时器计数器TMR1模块的电路结构 26定时器计数器定时器计数器TMR1TMR1与系统时钟的协调关系与系统时钟的协调关系27TMR1TMR1定时计数方式定时计数方式 ( (T1CONT1CON的的 Bit1/TMR1CS)Bit1/TMR1CS) 定时:信号来自内部时钟定时:信号来自内部时钟( (TMR1CS=0TMR1CS=0) ) 计数:信号来自外部引脚或者自带低频振荡器计数:信号来自外部引脚或者自带低频振荡器( (TMR1CS=1TMR1CS=1) ) 当当T1OSCEN=1T1OSCEN=1时,三态门时,三态门G3G3导通,外部的低频振荡器导通,外部的低频振荡器 工作;工作; 当当T1OSCEN=1T1OSCEN=1时,三态门时,三态门G3G3导通,导通,RC1RC1引脚外加一个引脚外加一个 触发信号;触发信号; 当当T1OSCEN=0T1OSCEN=0时,三态门时,三态门G3G3截止,截止,TMR1TMR1工作于计数方工作于计数方 式,触发信号来自式,触发信号来自T1CKIT1CKI; 28例例7-37-3:利用外接低频振荡器:利用外接低频振荡器3276832768HzHz实现实现1 1s s定时。定时。LIST P=16F877LIST P=16F877INCLUDE “P16F877.INC”INCLUDE “P16F877.INC”;-;- ORG 0000H ORG 0000H NOP NOP GOTO MAIN GOTO MAIN;-;-; ;中断服务程序中断服务程序 ORG 0004HORG 0004H BCF PIR1,TMR1IF; BCF PIR1,TMR1IF;清除清除TMR1TMR1中断标志中断标志 do somethingdo something RETFIE RETFIE;-;-外接32.768kHz晶振29;-;- MAIN BANKSEL PIE1 MAIN BANKSEL PIE1 BSF PIE1,TMR1IE ;TMR1 BSF PIE1,TMR1IE ;TMR1中断使能中断使能 BANKSEL BANKSEL T1CON MOVLW B00001010 MOVLW B00001010 MOVWF T1CON ; MOVWF T1CON ;使能低频振荡器使能低频振荡器 MOVLW B11000000 MOVLW B11000000 MOVWF INTCON;MOVWF INTCON;总中断和外围中断使能总中断和外围中断使能 赋初值给赋初值给TMR1LTMR1L、TMR1HTMR1H BSF T1CON,TMR1ON;BSF T1CON,TMR1ON;启动启动TMR1TMR1定时器定时器 GOTO $ ;GOTO $ ;等待中断等待中断;-;-ENDEND30例例7-47-4:利用:利用TMR1TMR1在在RD0RD0输出变频信号。输出变频信号。RB0RB0 RB1RB1 :进行进行TMR1LTMR1L细调细调RB2RB2 RB4 RB4 : : 进行进行TMR1HTMR1H粗调粗调 ORG 0000HORG 0000H GOTO MAIN GOTO MAIN ORG 0004H ORG 0004H BCF PIR1,TMR1IF ; BCF PIR1,TMR1IF ;清除清除TMR1TMR1中断标志中断标志 INCF PORTD ;INCF PORTD ;再再RD0RD0输出脉冲信号输出脉冲信号 MOVF T1H_TEP,W ;MOVF T1H_TEP,W ;时间常数高位变量加载时间常数高位变量加载 MOVWF TMR1HMOVWF TMR1H MOVF T1L_TEP,W ; MOVF T1L_TEP,W ;时间常数高位变量加载时间常数高位变量加载 MOVWF TMR1LMOVWF TMR1L BSF T1CON,TMR1ON ; BSF T1CON,TMR1ON ;启动启动TMR1TMR1计数计数 RETFIE ;RETFIE ;中断服务程序返回中断服务程序返回31MAIN MOVLW 80HMAIN MOVLW 80H MOVWF T1H_TEP; MOVWF T1H_TEP;对对TMR1TMR1时间常数高位变量赋初值时间常数高位变量赋初值 MOVWF TMR1HMOVWF TMR1H MOVLW 00HMOVLW 00H MOVWF T1L_TEP;MOVWF T1L_TEP;对对TMR1TMR1时间常数低位变量赋初值时间常数低位变量赋初值 MOVWF TMR1LMOVWF TMR1L BSF INTCON, GIE ; BSF INTCON, GIE ;总中断使能总中断使能 BSF INTCON,PEIE;BSF INTCON,PEIE;外围中断使能外围中断使能 BSF T1CON, TMR1ON;BSF T1CON, TMR1ON;启动启动TMR1TMR1327.3 定时器TMR2 TMR2TMR2是是一一个个8 8位位定定时时器器,带带一一个个可可编编程程预预分分频频器器和和一一个个可可编编程程后后分分频频器器,一一个个可可编编程程8 8位周期寄存器位周期寄存器PR2PR2。 33 主要用途 TMR2TMR2是是存存放放计计数数值值的的寄寄存存器器,只只能能工工作作于于定定时时器模式器模式;可可以以为为主主同同步步串串行行端端口口MSSPMSSP模模块块( (SPISPI模模式式) ),提供波特率时钟;提供波特率时钟;TMR2TMR2还还可可以以与与CCPCCP模模块块配配合合使使用用,提提供供脉脉宽宽调制调制PWMPWM功能的时基信号。功能的时基信号。 34 定时器TMR2的特性 TMR2TMR2在在RAMRAM空间内统一编址,地址为空间内统一编址,地址为011011H H;可用软件方式直接读写可用软件方式直接读写TMR2TMR2的内容;的内容;可编程的可编程的2 2位预分频器,有位预分频器,有1 1:1 1、1 1:4 4、1 1:1616,3 3种分频比;种分频比;可编程的可编程的4 4位后分频器,有位后分频器,有1616种分频比;种分频比;带有一个带有一个8 8位周期寄存器位周期寄存器PR2PR2,这个寄存器的值这个寄存器的值由用户填入由用户填入;只只能能由由内内部部系系统统时时钟钟来来触触发发定定时时器器的的增增量量,因因此此只只工工作作于于定定时时器器模式模式;具有溢出次数经过分频的溢出中断功能;具有溢出次数经过分频的溢出中断功能;不不管管哪哪种种复复位位,都都会会将将TMR2TMR2清清零零。注注意意,TMR0TMR0和和TMR1TMR1寄寄存存器器的的内内容不受复位的影响;容不受复位的影响;可以被软件关闭。可以被软件关闭。35 定时器TMR2模块相关的寄存器 中断控制寄存器中断控制寄存器中断控制寄存器中断控制寄存器 INTCON INTCON 第一外设中断屏蔽寄存器第一外设中断屏蔽寄存器第一外设中断屏蔽寄存器第一外设中断屏蔽寄存器 PIE1 PIE1 第一外设中断标志寄存器第一外设中断标志寄存器第一外设中断标志寄存器第一外设中断标志寄存器 PIR1 PIR1 TMR2TMR2工作寄存器工作寄存器工作寄存器工作寄存器 TMR2 TMR2 TMR2TMR2控制寄存器控制寄存器控制寄存器控制寄存器 T2CON T2CON TMR2TMR2周期寄存器周期寄存器周期寄存器周期寄存器 PR2 PR2 36 控制寄存器T2CON 37 Bit1-Bit0Bit1-Bit0T2CKPS1-T2CKPS0T2CKPS1-T2CKPS0: 预分频器分频比选择位,主动参数。预分频器分频比选择位,主动参数。 38 Bit2Bit2TMR20NTMR20N:TMR2TMR2使能控制位,主动参数。使能控制位,主动参数。 0: 0: 关闭关闭TMR2TMR2,可以降低功耗;可以降低功耗; 1: 1: 启用启用TMR2TMR2。Bit6-Bit3Bit6-Bit3TOUTPS3-TOUTPS0TOUTPS3-TOUTPS0: TMR2 TMR2后分频器分频比选择位,主动参数。后分频器分频比选择位,主动参数。39 定时器TMR2模块的电路结构 40 TMR2溢出方式TMR2计数溢出取决于TMR2和PR2比较结果。(浮动溢出)系统复位时:TMR2=00H,PR2=FFH 41 TMR2定时方式 TMR2TMR2触发信号来自内部系统时钟,所以当单片机处于触发信号来自内部系统时钟,所以当单片机处于休眠状态时,休眠状态时,TMR2TMR2将停止累加计数。将停止累加计数。1)1)作为通用定时器作为通用定时器 固定固定PR2=FFHPR2=FFH 设系统时钟频率设系统时钟频率foscfosc=4MHz,=4MHz,则则 溢出周期溢出周期T=P1P2(256-K)T=P1P2(256-K) P1P1、P2P2为预分频、后分频比;为预分频、后分频比;K K为为TMR2TMR2初值初值422)“2)“浮动浮动” ”溢出周期溢出周期 变频控制变频控制 溢出周期溢出周期T=P1P2(PR2+1)T=P1P2(PR2+1) P1P1、P2P2为预分频、后分频比;为预分频、后分频比;PR2PR2为周期寄存器的预置初值为周期寄存器的预置初值注:可以通过修改注:可以通过修改P1P1、P2P2、PR2PR2随时改变周期随时改变周期T T。43
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号