第五章 定时-计数器_第1页
第五章 定时-计数器_第2页
第五章 定时-计数器_第3页
第五章 定时-计数器_第4页
第五章 定时-计数器_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5章章 定时器定时器/计数器计数器 内容提要:内容提要: 5.1 5.1 定时器定时器/ /计数器功能计数器功能 5.2 5.2 定时器和计数器硬件结构定时器和计数器硬件结构 5.3 5.3 定时器定时器/ /计数器工作方式计数器工作方式 5.4 5.4 定时器定时器/ /计数器编程计数器编程 5.1 5.1 定时定时/ /计数器功能计数器功能 5.1 5.1 定时定时/ /计数器功能计数器功能 5.4.1 5.4.1 定时器功能定时器功能起定时延时作用起定时延时作用和和在规定的引脚上在规定的引脚上 输出一定宽度的方波信号。输出一定宽度的方波信号。 所谓定时功能就是通过来自单片机内部的时钟

2、脉冲所谓定时功能就是通过来自单片机内部的时钟脉冲 作计数脉冲,使计数器计数,即每个机器周期计数器加作计数脉冲,使计数器计数,即每个机器周期计数器加1 1, 计数值达到予置值后,定时计数值达到予置值后,定时/ /计数模块产生溢出。计数模块产生溢出。 5.1 5.1 定时定时/ /计数器功能计数器功能 5.1 5.1 定时定时/ /计数器功能计数器功能 5.4.2 计数器功能计数器功能 所谓计数是指对外部事件进行计数。外部事件的发所谓计数是指对外部事件进行计数。外部事件的发 生以输入脉冲表示,因此计数功能的实质就是对外来脉生以输入脉冲表示,因此计数功能的实质就是对外来脉 冲进行计数。冲进行计数。

3、5.2 5.2 定时和计数器硬件结构定时和计数器硬件结构 PIC16F877PIC16F877单片机配置了单片机配置了3 3个定时器个定时器/ /计数器模块,分别为计数器模块,分别为 TMR0TMR0、TMR1TMR1和和TMR2TMR2。 共同点:共同点:它们的核心部分都是一个由时钟信号触发,按递增它们的核心部分都是一个由时钟信号触发,按递增 方式累加工作的循环计数器;从预先设定的某一初始值开始累方式累加工作的循环计数器;从预先设定的某一初始值开始累 计,在累计到计数器产生溢出,并同时建立一个相应的溢出中计,在累计到计数器产生溢出,并同时建立一个相应的溢出中 断标志。断标志。 三者的不同点:

4、三者的不同点: TMR0TMR0为为8 8位宽位宽,有一个可选的预分频器,用于通用目的,可用,有一个可选的预分频器,用于通用目的,可用 于于定时和计数定时和计数; TMR1TMR1为为1616位宽位宽,附带一个可编程的预分频器和一个可选的低,附带一个可编程的预分频器和一个可选的低 频时基振荡器,适合与频时基振荡器,适合与CCPCCP(捕捉(捕捉/ /比较脉宽调制)模块比较脉宽调制)模块 配合使用来实现输入捕捉或输出比较功能,也可用于定配合使用来实现输入捕捉或输出比较功能,也可用于定 时和计数;时和计数; TMR2TMR2为为8 8位宽位宽,附带一个配合使用来实现,附带一个配合使用来实现PWMP

5、WM脉冲宽度调制信脉冲宽度调制信 号的产生,只能用于定时。号的产生,只能用于定时。 5.2.15.2.1定时器定时器/ /计数器计数器TMR0TMR0的硬件结构的硬件结构 * *TMR0TMR0可以用于定时控制、延时、对外部事件进行计可以用于定时控制、延时、对外部事件进行计 数和检测等场合。数和检测等场合。 * *TMR0TMR0可以使用内部系统时钟,也可以使用外部始终。可以使用内部系统时钟,也可以使用外部始终。 * *TMR0TMR0用于内部定时或对外计数时都不占用用于内部定时或对外计数时都不占用CPUCPU时间。时间。 1.1.定时器定时器/ /计数器计数器TMR0TMR0具有以下特点:具

6、有以下特点: (1 1)TMR0TMR0是一个是一个8 8位宽的由时钟信号上升沿触发的循环位宽的由时钟信号上升沿触发的循环 累加计数寄存器。累加计数寄存器。 (2 2)有一个专用的外部触发信号输入端)有一个专用的外部触发信号输入端 ( (T0CKI-RA4T0CKI-RA4)。)。 (3 3)TMR0TMR0也是一个在文件寄存器区域内统一编也是一个在文件寄存器区域内统一编址址 的寄的寄 存器,地址为存器,地址为01H01H或或101H101H,用户用软件方式可直接,用户用软件方式可直接 读读/ /写计数器的内容。写计数器的内容。 (4 4)具有一个软件可编程的)具有一个软件可编程的8 8位位预

7、分频器预分频器。 (5 5)当使用内部触发信号,即指令周期作为时钟信号)当使用内部触发信号,即指令周期作为时钟信号 源时,模块源时,模块TMR0TMR0工作于定时方式,触发方式为固工作于定时方式,触发方式为固 定上升沿触发有效。在计数器溢出时,相应的溢定上升沿触发有效。在计数器溢出时,相应的溢 出中断标志出中断标志T0IFT0IF自动置位,并可产生溢出中断。自动置位,并可产生溢出中断。 (6 6)当外部时钟信号源时,模块)当外部时钟信号源时,模块TMR0TMR0工作于计数方工作于计数方 式,触发方式可由程序设置位上升沿触发或下降式,触发方式可由程序设置位上升沿触发或下降 沿触发有效。在计数器溢

8、出时,也可产生溢出中沿触发有效。在计数器溢出时,也可产生溢出中 断。断。 2 2与定时器与定时器/ /计数器计数器TMR0TMR0模块相关的寄存器模块相关的寄存器 (1 1)选项寄存器)选项寄存器 OPTION_REGOPTION_REG (1)(1)是作为定时器还是作为计数器是作为定时器还是作为计数器 (2)(2)决定分频器的分频系数决定分频器的分频系数 (3)(3)时钟是上升沿时钟是上升沿/ /下降沿触发下降沿触发 (2 2)中断控制寄存器)中断控制寄存器 INTCONINTCON (1)(1)中断总控制中断总控制-允许允许/ /禁止禁止 (2)(2)各类中断的控制各类中断的控制 (3)(

9、3)各类中断的标志各类中断的标志 (3 3)RARA口方向寄存器口方向寄存器 TRISATRISA 当当TMR0TMR0工作于计数器时工作于计数器时,RA4,RA4必须设为输入必须设为输入, ,以便从该脚输以便从该脚输 入时钟脉冲信号。入时钟脉冲信号。 (4 4)定时器)定时器/ /计数器计数器 TMR0TMR0 8 8位累加计数寄存器位累加计数寄存器 与计数和定时无关与计数和定时无关 3 定时器定时器/计数器计数器TMR0模块的电路结构和工作原理模块的电路结构和工作原理 4.分频器和控制逻辑电路 分频器实际上也是一个8位累加计数器,它只能配 合TMR0或WDT输出的时钟由PS2PS0设定分频

10、比, 这个分频比由OPTION_REG寄存器中的PS2PS0决 定。 5.TMR0累加计数寄存器 TMR0有定时器和计数器两种工作模式。这两种模 式之间的差异是触发信号的来源不同。TMR0的工作模 式由T0CS位(选项寄存器OPTION_REG)决定 表表53 TMR0的工作模式的工作模式 T0CSTMR0工作模式工作模式触发信号的来源触发信号的来源 0定时器定时器计数器的触发信号取自内部指令周期计数器的触发信号取自内部指令周期 1计数器计数器 计数器的触发信号取自外部引脚计数器的触发信号取自外部引脚T0CKI电电 平的上升沿平的上升沿/下降沿下降沿 TMR0 定时时间的计算公式:定时时间的计

11、算公式: t= P (28 X) T X= 28 t/(TxP) t:设定的定时时间:设定的定时时间uS P:分频器的分频比:分频器的分频比-2256 取值为取值为2、4、8、16、32、64、128、256。 X:TMR0的计数初值的计数初值-0255 T:指令周期:指令周期uS 定时器最短的定时时间定时器最短的定时时间:t=2x(256-255)x1uS=2uS 定时器最长的定时时间定时器最长的定时时间:t=256x(256-0)x1uS=65535uS TMR0的定时程序举例:的定时程序举例: 用用TMR0产生产生10毫秒的定时时间,步骤如下:毫秒的定时时间,步骤如下: (1) 求出求出

12、10毫秒定时时间对应的计数初值毫秒定时时间对应的计数初值 X= 28 t/(TxP) =256-10000/(1x64) =256-156 =100(64H) (2) 根据题目的要求,对根据题目的要求,对OPTION_REG配置配置 (3) 将将(X=100)写入写入TMR0计数寄存器计数寄存器 (4) 等待等待T0IF溢出,溢出时,定时时间已到溢出,溢出时,定时时间已到 TMR0定时器延时定时器延时10毫秒程序举例:毫秒程序举例: BSF STATUS,RP0 MOVLW 05H ;Fosc/64,分频器分配给分频器分配给TMR0, MOVWF OPTION_REG ;上升沿出发上升沿出发T

13、MR0递增,递增, BCF STATUS,RP0 ;内部时钟内部时钟 ; MOVLW 64H MOVWF TMR0 ;定初值写入定初值写入TMR0, ;并启动并启动TMR0 LOOP BTFSS INTCON,T0IF ;是否溢出?是否溢出? GOTO LOOP ;没溢出没溢出,继续等待继续等待 ; BCF INTCON,T0IF ;定时器定时器0标志位清标志位清0 GOTO $ ;程序在原地踏步程序在原地踏步 TMR0定时器延时定时器延时1000毫秒程序举例:毫秒程序举例: BSF STATUS,RP0 MOVLW 05H ;Fosc/64,分频器分配给分频器分配给TMR0, MOVWF O

14、PTION_REG ;上升沿出发上升沿出发TMR0递增,递增, BCF STATUS,RP0 ;内部时钟内部时钟 MOVLW .100 MOVWF COUNT LOOP MOVLW 64H MOVWF TMR0 ;定初值写入定初值写入TMR0,并启动,并启动TMR0 LOOP1 BTFSS INTCON,T0IF ;是否溢出?是否溢出? GOTO LOOP1 ;没溢出没溢出,继续等待继续等待 ; BCF INTCON,T0IF ;定时器定时器0标志位清标志位清0 DECFSZ COUNT,1 GOTO LOOP GOTO $ ;程序在原地踏步程序在原地踏步 用定时器用定时器TMR0产生一个产生

15、一个50Hz方波从方波从RC0输出程序举例:输出程序举例: BSF STATUS,RP0 MOVLW 05H ;Fosc/64,分频器分配给分频器分配给TMR0, MOVWF OPTION_REG ;上升沿出发上升沿出发TMR0递增,递增, CLRF TRISC ;C口为输出口为输出 BCF STATUS,RP0 ;内部时钟内部时钟 ; LOOP MOVLW 64H MOVWF TMR0 ;定初值写入定初值写入TMR0,并启动,并启动TMR0 LOOP1 BTFSS INTCON,T0IF ;是否溢出?是否溢出? GOTO LOOP1 ;没溢出没溢出,继续等待继续等待 ; BCF INTCON

16、,T0IF ;定时器定时器0标志位清标志位清0 MOVLW B00000001 XORWF PORTC,1 ;对对RC0求反求反 GOTO LOOP ;继续循环继续循环 5.2.2定时器/计数器TMR1的硬件结构 定时器/计数器TMR1不仅可作通用的定时器 和计数器;而且利用内置的低频时基振荡器, 还可实现实时时钟RTC功能;通过TMR1与 CCP模块配合使用,定时器/计数器TMR1又可 实现输入捕捉和输出比较功能。 定时器/计数器TMR1是一个16位的可读可 写的计数寄存器,由高低两字节组成(TMR1H 和TMR1L)16位寄存器从0000H到FFFFH加1 计数,然后回到0000H。在从F

17、FFFH到0000H 的过程中,置位中断标志位TMR1IF。定时器/ 计数器TMR1还带有一个3位的可编程预分频器 和一个内置的低功耗低频时基振荡器。 5.2.25.2.2定时器定时器/ /计数器计数器TMR1TMR1的硬件结构的硬件结构 1 1定时器定时器/ /计数器计数器TMR1TMR1模块具有的特点模块具有的特点: : (1 1)一个)一个1616位的由时钟信号上升沿触发的累加计数位的由时钟信号上升沿触发的累加计数 寄存器对寄存器对TMR1HTMR1H:TMR1LTMR1L; (2 2)TMR1HTMR1H和和TMR1LTMR1L是在是在RAMRAM中统一编址的寄存器对,中统一编址的寄存

18、器对, 地址为地址为0EH0EH和和0FH0FH,可用软件方式读,可用软件方式读/ /写写TMR1TMR1寄存寄存 器对的内容;器对的内容; (3 3)一个可选用的)一个可选用的3 3位可编程的预分频器位可编程的预分频器; (4 4)累加计数的信号源可选择内部系统时钟、)累加计数的信号源可选择内部系统时钟、 外部触外部触 发信号或自带时基振荡器信号;发信号或自带时基振荡器信号; (5 5)既可工作于定时器模式,又可工作于计数器模)既可工作于定时器模式,又可工作于计数器模 式,还可用作实时时钟式,还可用作实时时钟RTCRTC; (6 6)在计数器溢出时,相应的溢出中断标志自动置)在计数器溢出时,

19、相应的溢出中断标志自动置 位,并可产生溢出中断。位,并可产生溢出中断。 5.2.2定时器/计数器TMR1的硬件结构 2. 与定时器/计数器TMR1模块相关的寄存器 (1) PIE1外设中断使能寄存器外设中断使能寄存器 (2) PIR1外设中断标志寄存器外设中断标志寄存器 (3) INTCON中断控制寄存器中断控制寄存器 (4) T1CONTMR1控制积存器控制积存器 (5) TMR1LTMR1计数寄存器低字节计数寄存器低字节 (6) TMR1HTMR1计数寄存器高字节计数寄存器高字节 参见表5-2 有关TMR1、 TMR2模块电路结构不介绍。 TMR1 定时时间的计算公式:定时时间的计算公式:

20、 t= P (216 X) T X= 216 t/(TxP) t:设定的定时时间:设定的定时时间uS P:分频器的分频比:分频器的分频比-18 取值为取值为1、2、4、8 X:TMR1H和和TMR1L的计数初值的计数初值-065535 T:指令周期:指令周期uS 定时器最短的定时时间定时器最短的定时时间:t=1x(65536-65535)x1uS=1uS 定时器最长的定时时间定时器最长的定时时间:t=8x(65536-0)x1uS=524288uS TMR1的定时程序举例:的定时程序举例: 用用TMR1产生产生10毫秒的定时时间,步骤如下:毫秒的定时时间,步骤如下: (1) 求出求出10毫秒定

21、时时间对应的计数初值毫秒定时时间对应的计数初值 X= 216 t/(TxP) =65536-10000/(1x8) =65536-1250 =64286(FB1EH) (2) 根据题目的要求,对根据题目的要求,对T1CON配置配置 (3) 将将(X=FB1E)写入写入TMR1H和和TMR1L计数寄存器计数寄存器 (4) 将将T1SCEN位置位置1,启动启动TMR1开始定时开始定时 (4) 等待等待PIR1的的TMR1IF位为位为1,为,为1时,定时时间已到时,定时时间已到 TMR1的定时程序举例:的定时程序举例: LIST P=16F877A;列表伪指令列表伪指令 INCLUDE P16F87

22、7A.INC;把包含文件含入源程序把包含文件含入源程序 _CONFIG 3F39H;设置配置位中振荡方式为设置配置位中振荡方式为XT, 其它全部禁止或关闭其它全部禁止或关闭 ;* COUNTEQU20H ORG 0 x000;主程序开始地址主程序开始地址 GOTOMAIN;跳转到主程序跳转到主程序 ORG0005H ;主程序开始地址为主程序开始地址为0005H MAIN MOVLW0F1H ;31H MOVWFT1CON;设定定时器工作方式,分频比为设定定时器工作方式,分频比为1:8 ;* ; 定时定时0.5秒秒 ; X=65536-t/(TxP)=65536-500000/(1x8)=303

23、6=0BDCH ; MOVLW0BH MOVWFTMR1H;设定设定TMR1高位初值高位初值 MOVLW0DCH ; MOVWFTMR1L ;设定设定TMR1低位初值低位初值 ;* BSFT1CON,TMR1ON ;启动定时器启动定时器TMR1 LOOP1 BTFSS PIR1,TMR1IF ;是否溢出?是否溢出? GOTOLOOP1 ;没溢出没溢出,继续等待继续等待 BCFPIR1,TMR1IF ;已溢出已溢出,清清TMR1溢出标志溢出标志 ;* GOTO $ ;程序在原地踏步程序在原地踏步 END ;源程序结束源程序结束 本章小节 1 1、熟悉、熟悉PIC16F87XPIC16F87X单片

24、机的定时单片机的定时/ /计数器功能计数器功能 PIC16F87XPIC16F87X单片机有单片机有3 3个定时器个定时器/ /计数器模块,它们计数器模块,它们 的共同点是其核心部分都是一个由时钟信号触发,按的共同点是其核心部分都是一个由时钟信号触发,按 递增方式累加工作的循环计数器;从预先设定的某一递增方式累加工作的循环计数器;从预先设定的某一 初始值开始累计,在累计到计数器产生溢出,并同时初始值开始累计,在累计到计数器产生溢出,并同时 建立一个相应的溢出中断标志。建立一个相应的溢出中断标志。 TMROTMRO可用于定时控制、延时、对外部事件计数和可用于定时控制、延时、对外部事件计数和 检测等场合。检测等场合。 TMR1TMR1不仅可作通用的定时器和计数器;而且利用不仅可作通用的定时器和计数器;而且利用 内置的低频时基振荡器,还可实现实时时钟内置的低频时基振荡器,还可实现实时时钟RTCRTC功能;功能; 通过通过TMR1TMR1与与CCPCCP模块配合使用,定时器模块配合使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论