田老师的PIC单片机教案5.pdf_第1页
田老师的PIC单片机教案5.pdf_第2页
田老师的PIC单片机教案5.pdf_第3页
田老师的PIC单片机教案5.pdf_第4页
田老师的PIC单片机教案5.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

第五章定时/计数器第五章定时/计数器 第五章定时/计数器第五章定时/计数器 第五章定时/计数器第五章定时/计数器 5.1 定时/计数器功能5.1 定时/计数器功能 5.2 定时和计数器硬件结构5.2 定时和计数器硬件结构 5.3 定时/计数器工作方式5.3 定时/计数器工作方式 5.4 定时/计数器编程5.4 定时/计数器编程 第五章定时/计数器第五章定时/计数器 5.1 定时定时/计数器功能计数器功能 5.1 定时定时/计数器功能计数器功能 541定时功能定时功能 所谓定时功能就是通过来自单片机内部的时钟脉 冲作计数脉冲,使计数器计数,即每个机器周期计数 器加 所谓定时功能就是通过来自单片机内部的时钟脉 冲作计数脉冲,使计数器计数,即每个机器周期计数 器加1,计数值达到予置值后,定时,计数值达到予置值后,定时/计数模块产生溢 出。 计数模块产生溢 出。 542计数器功能计数器功能 所谓计数是指对外部事件进行计数。外部事件的 发生以输入脉冲表示,因此计数功能的实质就是对外 来脉冲进行计数。 所谓计数是指对外部事件进行计数。外部事件的 发生以输入脉冲表示,因此计数功能的实质就是对外 来脉冲进行计数。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2 定时和计数器硬件结构定时和计数器硬件结构 PIC16F877单片机配置了3个定时器/计数器模块,分别 为TMR0、TMR1和TMR2。 PIC16F877单片机配置了3个定时器/计数器模块,分别 为TMR0、TMR1和TMR2。 共同点:它们的核心部分都是一个由时钟信号触发,按递增 方式累加工作的循环计数器;从预先设定的某一初始值开始累 计,在累计到计数器产生溢出,并同时建立一个相应的溢出中 断标志。 共同点:它们的核心部分都是一个由时钟信号触发,按递增 方式累加工作的循环计数器;从预先设定的某一初始值开始累 计,在累计到计数器产生溢出,并同时建立一个相应的溢出中 断标志。 三者的不同点:TMR0为8位宽,有一个可选的预分频器,用 于通用目的,可用于定时和计数;TMR1为16位宽,附带一个可 编程的预分频器和一个可选的低频时基振荡器,适合与CCP (捕捉/比较脉宽调制)模块配合使用来实现输入捕捉或输出比 较功能,也可用于定时和计数;TMR2为8位宽,附带一个配合 使用来实现PWM脉冲宽度调制信号的产生,只能用于定时。 三者的不同点:TMR0为8位宽,有一个可选的预分频器,用 于通用目的,可用于定时和计数;TMR1为16位宽,附带一个可 编程的预分频器和一个可选的低频时基振荡器,适合与CCP (捕捉/比较脉宽调制)模块配合使用来实现输入捕捉或输出比 较功能,也可用于定时和计数;TMR2为8位宽,附带一个配合 使用来实现PWM脉冲宽度调制信号的产生,只能用于定时。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.1定时器定时器/计数器计数器TMR0的硬件结构的硬件结构 1.定时器定时器/计数器计数器TMR0具有以下特点具有以下特点 (1)TMR0是一个8位宽的由时钟信号上升沿触发的循环 累加计数寄存器。 (1)TMR0是一个8位宽的由时钟信号上升沿触发的循环 累加计数寄存器。 (2)有一个专用的外部触发信号输入端(2)有一个专用的外部触发信号输入端(T0CKI)。)。 (3)TMR0也是一个在文件寄存器区域内统一编址的寄存 器,地址为01H或101H,用户用软件方式可直接读/写计数器的 内容。 (3)TMR0也是一个在文件寄存器区域内统一编址的寄存 器,地址为01H或101H,用户用软件方式可直接读/写计数器的 内容。 (4)具有一个软件可编程的8位预分频器。(4)具有一个软件可编程的8位预分频器。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.1定时器定时器/计数器计数器TMR0的硬件结构的硬件结构 1.定时器定时器/计数器计数器TMR0具有以下特点 (5)当使用内部触发信号,即指令周期作为时钟信号 源时,模块 具有以下特点 (5)当使用内部触发信号,即指令周期作为时钟信号 源时,模块TMR0工作于定时方式,触发方式为固定上升沿 触发有效。在计数器溢出时,相应的溢出中断标志T01F自动 置位,并可产生溢出中断。 (6)当外部时钟信号源时,模块 工作于定时方式,触发方式为固定上升沿 触发有效。在计数器溢出时,相应的溢出中断标志T01F自动 置位,并可产生溢出中断。 (6)当外部时钟信号源时,模块TMR0工作于计数方 式,触发方式可由程序设置位上升沿触发或下降触发有效。 在计数器溢出时,也可产生溢出中断。 工作于计数方 式,触发方式可由程序设置位上升沿触发或下降触发有效。 在计数器溢出时,也可产生溢出中断。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.1定时器定时器/计数器计数器TMR0的硬件结构的硬件结构 2与定时器与定时器/计数器计数器TMR0模块相关的寄存器模块相关的寄存器 (1)选项寄存器)选项寄存器OPTION_REG (2)中断控制寄存器)中断控制寄存器INTCON 第五章定时/计数器第五章定时/计数器 表5-1 与TMR0模块相关的寄存器 寄存器 的名称 和符号 寄存器 地址 寄存器内容 Bi t7 Bit6Bit5Bit4Bit3Bit2Bit1Bit0 定时器/ 计数器 TMR0 01H/101 H 8位累加计数寄存器 选项寄 存器 OPTION_ REG 81H/181 H RB PU INTE DG T0CST0SEPSAPS2PS1PS0 中断控 制寄存 器 INTCON 0BH/8BH / 10B/H/1 8BH GI E PEIET0IEINTERBIET0IFINTFRBIF 端口RA 方向寄 存器 TRISA 85H TRIS A5 TRIS A4 TRIS A3 TRIS A2 TRIS A1 TRIS A0 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 PS2 PS1 PS0TMR0比率WDT比率 0001:21:1 0011:41:2 0101:81:4 0111:161:8 1001:321:16 1011:641:32 1101:1281:64 1111:2561:128 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 3 定时器定时器/计数器计数器TMR0模块的电路结构和工作原理模块的电路结构和工作原理 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 4.分频器4.分频器 分频器实际上也是一个分频器实际上也是一个8位累加计数器,它只能配合位累加计数器,它只能配合 TMR0或或WDT输出的时钟由输出的时钟由PS2PS0设定分额比,这个分频 比由 设定分额比,这个分频 比由OPTION_REG寄存器中的寄存器中的PS2PS0决定。决定。 5.TMR0累加计数寄存器累加计数寄存器 TMR0有定时器和计数器两种工作模式。这两种模式之间 的差异是触发信号的来源不同。 有定时器和计数器两种工作模式。这两种模式之间 的差异是触发信号的来源不同。TMR0的工作模式由的工作模式由T0CS位 (选项寄存器 位 (选项寄存器OPTION_REG)决定)决定 表53 TMR0的工作模式 T0CSTMR0工作模式触发信号的来源 0定时器计数器的触发信号取自内部指令周期 1计数器 计数器的触发信号取自外部引脚T0CKI电 平的上升沿/下降沿 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构 定时器/计数器TMR1不仅可作通用的定时器和计数器;而且 利用内置的低频时基振荡器,还可实现实时时钟RTC功能;通 过TMR1与CCP模块配合使用,定时器/计数器TMR1又可实现输入 捕捉和输出比较功能。 定时器/计数器TMR1不仅可作通用的定时器和计数器;而且 利用内置的低频时基振荡器,还可实现实时时钟RTC功能;通 过TMR1与CCP模块配合使用,定时器/计数器TMR1又可实现输入 捕捉和输出比较功能。 定时器/计数器TMR1是一个16位的可读可写的计数寄存器, 由高低两字节组成(TMR1H和TMR1L)16位寄存器从0000H到 FFFFH加1计数,然后回到0000H。在从FFFFH到0000H的过程中, 置位中断标志位TMR1IF。定时器/计数器TMR1还带有一个3位的 可编程预分频器和一个内置的低功耗低频时基振荡器。 定时器/计数器TMR1是一个16位的可读可写的计数寄存器, 由高低两字节组成(TMR1H和TMR1L)16位寄存器从0000H到 FFFFH加1计数,然后回到0000H。在从FFFFH到0000H的过程中, 置位中断标志位TMR1IF。定时器/计数器TMR1还带有一个3位的 可编程预分频器和一个内置的低功耗低频时基振荡器。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构 1定时器定时器/计数器计数器TMR1模块具有的特点模块具有的特点 (1)一个16位的由时钟信号上升沿触发的累加计数寄存器 对TMR1H:TMR1L; (1)一个16位的由时钟信号上升沿触发的累加计数寄存器 对TMR1H:TMR1L; (2)TMR1H和TMR1L是在RAM中统一编址的寄存器对,地址为 0EH和0FH,可用软件方式读/写TMR1寄存器对的内容; (2)TMR1H和TMR1L是在RAM中统一编址的寄存器对,地址为 0EH和0FH,可用软件方式读/写TMR1寄存器对的内容; (3)一个可选用的(3)一个可选用的3位可编程的预分频器;位可编程的预分频器; 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构 1定时器定时器/计数器计数器TMR1模块具有的特点模块具有的特点 (4)累加计数的信号源可选择内部系统时钟、外部触发 信号或自带时基振荡器信号; (4)累加计数的信号源可选择内部系统时钟、外部触发 信号或自带时基振荡器信号; (5)既可工作于定时器模式,又可工作于计数器模式, 还可用作实时时钟RTC; (5)既可工作于定时器模式,又可工作于计数器模式, 还可用作实时时钟RTC; (6)在计数器溢出时,相应的溢出中断标志自动置位, 并可产生溢出中断。 (6)在计数器溢出时,相应的溢出中断标志自动置位, 并可产生溢出中断。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构 2 与定时器与定时器/计数器计数器TMR1模块相关的寄存器模块相关的寄存器 表5-4 与TMR1模块相关的寄存器 寄存 器的 名称 和符 号 寄存 器地 址 寄存器内容 Bit7 Bit 6 Bit5Bit4Bit3Bit2Bit1Bit0 中断 控制 寄存 器 INTC ON 0BH/ 8BH/ 10BH /18B H GIE PEI E T0I E INT E RBIET0IFINTFRBIF 第一 外设 中断 使能 寄存 器 PIR1 OC PSP IF AD IF RCI F TXI F SSPI F CCP1 IF TMR2 IF TMR1 IF 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构 2 与定时器与定时器/计数器计数器TMR1模块相关的寄存器模块相关的寄存器 PIE1 8CH PSP IE ADIERCIETXIESSPIE CCP 1IE TMR2I E TMR 1IE TMR1 L 0EH16位TMR1计数寄存器低字节寄存器 TMR1 H 0FH16位TMR1计数寄存器高字节寄存器 T1CO N 10HT1CKPS1 T1CKPS 0 T1OSCE N T1 SY NC TM R1 CS TMR 1ON 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.2定时器定时器/计数器计数器TMR1的硬件结构的硬件结构 3 定时器定时器/计数器计数器TMR1模块的电路结构和原理模块的电路结构和原理 第五章定时/计数器第五章定时/计数器 0 : 表 示 选 择 内 部 时 钟 源 ( fcsc/4=Tcyc指令周期); 1:表示选择外部时钟源,即时 钟信号来源于外部引脚或者自 带振荡器。 0:表示TMR1外部输入时钟与系 统时钟保持同步; 1:表示TMR1外部输入时钟与系 统时钟不保持同步。 0:表示禁止TMR1振荡器起振, 使“非”门的输出端呈高阻状态 ; 1:表示使能TMR1发振荡器起振 。 T1CKPS1 T1CKTS0 分频比 0 0 1:1 0 1 1:2 1 0 1:4 1 1 1:8 B7B6B5B4B3B2B1B0 T1CKPST1CKPS0T1OSCET1SYNCTMR1CSTMR1ON 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 TMR1有两种工作方式:定时器方式和计数器方式,其中计数 器方式又分为同步计数器工作方式和异步计数器工作方式。 TMR1的时钟信号或触发信号共有4种获取方式: TMR1有两种工作方式:定时器方式和计数器方式,其中计数 器方式又分为同步计数器工作方式和异步计数器工作方式。 TMR1的时钟信号或触发信号共有4种获取方式: (1)由内部系统时钟4分频后获取,即取自指令周期;(1)由内部系统时钟4分频后获取,即取自指令周期; (2)从RC0/T1OSO/T1CKI引脚获取;(2)从RC0/T1OSO/T1CKI引脚获取; (3)从RC1/T1OSI/CCP2引脚获取;(3)从RC1/T1OSI/CCP2引脚获取; (4)自带振荡器产生。(4)自带振荡器产生。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 4定时器定时器TMR1应注意的问题应注意的问题 (1)当对的寄存器TMR1H或TMR1L进行初始化时,预分频 器将会自动清0。 (1)当对的寄存器TMR1H或TMR1L进行初始化时,预分频 器将会自动清0。 (2)在寄存器对TMR1H:TMR1L进行写操作时,可以使预 分频器清0。当TMR1处于运行状态时,对于寄存器TMR1H或 TMR1L值进行的写操作,可能会写入不希望的值。 (2)在寄存器对TMR1H:TMR1L进行写操作时,可以使预 分频器清0。当TMR1处于运行状态时,对于寄存器TMR1H或 TMR1L值进行的写操作,可能会写入不希望的值。 (3)TMR1工作于异步计数器方式时,不能作为CCP模块 的输入捕捉或输出比较的时间基准。 (3)TMR1工作于异步计数器方式时,不能作为CCP模块 的输入捕捉或输出比较的时间基准。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 4定时器定时器TMR1应注意的问题应注意的问题 (4)在上电复位(POR)或者其他复位时,TMR1H: TMR1L的内容保持原有数值,不会复位到0000H。 (4)在上电复位(POR)或者其他复位时,TMR1H: TMR1L的内容保持原有数值,不会复位到0000H。 (5)在上电复位或者掉电复位时,控制寄存器T1CON的 内容将回到00H,并关闭TMR1,且预分频器的分频比设定为缺 省值1:1。在所有的其他复位时,均不会影响T1CON寄存器的 值。 (5)在上电复位或者掉电复位时,控制寄存器T1CON的 内容将回到00H,并关闭TMR1,且预分频器的分频比设定为缺 省值1:1。在所有的其他复位时,均不会影响T1CON寄存器的 值。 (6)如果在复位时需要将TMR1H和TMR1L的内容回到00H,可以 用程序实现,即先半TMR1关闭,然后分别将寄存器TMR1H和 TMR1L清0。 (6)如果在复位时需要将TMR1H和TMR1L的内容回到00H,可以 用程序实现,即先半TMR1关闭,然后分别将寄存器TMR1H和 TMR1L清0。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.3定时器定时器TMR2的硬件结构的硬件结构 定时器定时器TMR2模块是一个模块是一个8位定时器,带一个位定时器,带一个4位 宽的可编程预分频器、一个 位 宽的可编程预分频器、一个4位宽的可编程后分频器和 一个可编程 位宽的可编程后分频器和 一个可编程8位周期寄存器位周期寄存器PR2。但是定时器。但是定时器/计数器计数器 TMR2只能工作于定时器模式;因此它不仅可以为主 同步串行端口 只能工作于定时器模式;因此它不仅可以为主 同步串行端口MSSP模块(模块(SPI模式)提供波特率时钟; 还可以与 模式)提供波特率时钟; 还可以与CCP模块配合使用,提供脉宽调制模块配合使用,提供脉宽调制PWM功能 的时基信号。 功能 的时基信号。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.3定时器定时器TMR2的硬件结构的硬件结构 1定时器定时器TMR2的特点的特点 (1)(1)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位周期寄存器位周期寄存器PR2,这个寄存器的值由用 户设置 这个寄存器的值由用 户设置; (7)只能由内部系统时钟来触发定时器的增量,因此只 工作于定时器模式; (7)只能由内部系统时钟来触发定时器的增量,因此只 工作于定时器模式; (8)具有溢出次数经过分频的溢出中断功能;(8)具有溢出次数经过分频的溢出中断功能; (9)不管哪种复位,都会将(9)不管哪种复位,都会将TMR2清清0。但。但TMR0和和 TMR1寄存器的内容不受复位的影响;寄存器的内容不受复位的影响; (10)(10)TMR2可以被软件关闭。可以被软件关闭。 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.3定时器定时器TMR2的硬件结构的硬件结构 2 与定时器与定时器TMR2模块相关的寄存器模块相关的寄存器 表510 与TMR2模块相关的寄存器 寄存器的 名称和符 号 寄存 器地 址 寄存器内容 Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 中断控制 寄存器 INTCON 0BH/8 BH/ 10BH/ 18BH GIEPEIET0IEINTERBIET0IFINTFRBIF 第二外设 中断使能 寄存器 PIE2 8DH-保留-EEIE BCLI E - CCP2 IE 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 5.2.3定时器定时器TMR2的硬件结构的硬件结构 2 与定时器与定时器TMR2模块相关的寄存器模块相关的寄存器 第二外 设中断 标志寄 存器 PIR2 0DH-保留- EE IF BCLI F - CCP2 IF 工作寄 存器 TMR2 11H8位TMR2计时寄存器 控制寄 存器 T2CON 12H TO UT PS 3 TOU TPS 2 TOU TPS 1 TOUTPS0 TMR2 ON T2CK PS1 T2CK PSO 周期寄 存器PR2 92HTMR2定时周期寄存器 第五章定时/计数器第五章定时/计数器 5.2 定时和计数器硬件结构定时和计数器硬件结构 3 定时器定时器TMR2模块的电路结构模块的电路结构 第五章定时/计数器第五章定时/计数器 0:表示关闭TMR2,可以降低功耗; 1:表示启用TMR2。 TOUTPS3TOUTPS0 后分频器分频比 0000 1:1 0001 1:2 0010 1:3 0011 1:4 111 1 1:16 T2CKPS1T2CKPS0预分频器分频比 0 0 1:1 0 1 1:4 1 0 1:16 1 1 1:16 B7B6B5B4B3B2B1B0 TOUTPS3TOUTPS2TOUTPS1TOUTPS0TMR2ON T2CKPS1T2CKPSO 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3.1定时工作方式定时工作方式 1定时器定时器/计数器计数器TMR0模块的定时工作方式模块的定时工作方式 当当T0CS(OPTION_REG)=0时,时,TMR0模块被设置为定时器 模式,触发信号为片内的指令周期信号。当计数寄存器写入初 始值时, 模块被设置为定时器 模式,触发信号为片内的指令周期信号。当计数寄存器写入初 始值时,TMR0便开始或重新启动累加计数。若没有使用分频 器, 便开始或重新启动累加计数。若没有使用分频 器,TMR0会在每个指令周期信号(时钟周期的会在每个指令周期信号(时钟周期的4倍)到来时自 动加 倍)到来时自 动加1。若使用分频器,。若使用分频器,TMR0会在指令周期信号分频某个倍数 后产生的信号时自动加 会在指令周期信号分频某个倍数 后产生的信号时自动加1,这时,这时TMR0最长固有定时时间将达到最长固有定时时间将达到 65535us。 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3 定时定时/计数器工作方式计数器工作方式 5.3.1定时工作方式定时工作方式 1定时器定时器/计数器计数器TMR0模块的定时工作方式模块的定时工作方式 对对8位定时器位定时器TMR0来说,不使用分频器时,定时时间的计算公 式为: 来说,不使用分频器时,定时时间的计算公 式为: (28 计数初值 计数初值) 指令周期,指令周期, 使用分频器时,定时时间的计算公式为:使用分频器时,定时时间的计算公式为: 分频比分频比(28 计数初值 计数初值) 指令周期指令周期 分频比取值为分频比取值为2、4、8256。 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3 定时定时/计数器工作方式计数器工作方式 5.3.1定时工作方式定时工作方式 1定时器定时器/计数器计数器TMR0模块的定时工作方式模块的定时工作方式 若晶振频率为若晶振频率为4MHz,则机器周期为,则机器周期为1 s,定时器,定时器TMR0最小定 时时间为: 最小定 时时间为:28 (28 1) 1 = 1 s 定时器定时器TMR0最大定时时间为:(最大定时时间为:(28 0) 1256= 65536 s 如设定定时时间为如设定定时时间为t,指令周期为,指令周期为T,分频比为,分频比为P,不使用分频 器时,计数寄存器写入的初始值 ,不使用分频 器时,计数寄存器写入的初始值X为:为: X=X=28 t /T t /T 使用分频器时,那么计数寄存器写入的初始值使用分频器时,那么计数寄存器写入的初始值X为:为: X=28t /(TP) 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3 定时定时/计数器工作方式计数器工作方式 5.3.1定时工作方式定时工作方式 2定时器定时器/计数器计数器TMR1模块的定时工作方式模块的定时工作方式 首先强调的是TMR1可以被禁止工作,以降低能耗。要关闭定时/ 计数模块TMR1只要将TMR1使能位TMR1ON清0, 首先强调的是TMR1可以被禁止工作,以降低能耗。要关闭定时/ 计数模块TMR1只要将TMR1使能位TMR1ON清0,“与与”门G1的一个引 脚被低电平封锁,就使得累加计数器保持静止状态。 门G1的一个引 脚被低电平封锁,就使得累加计数器保持静止状态。 对对16位定时器位定时器TMR1来说,如选择内部时钟源,则定时时间的计 算公式为: 来说,如选择内部时钟源,则定时时间的计 算公式为: 分频比分频比(216 计数初值计数初值) 指令周期。指令周期。 分频比取值为分频比取值为1、2、4、8。 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3 定时定时/计数器工作方式计数器工作方式 5.3.1定时工作方式定时工作方式 2定时器定时器/计数器计数器TMR1模块的定时工作方式模块的定时工作方式 若晶振频率为若晶振频率为4MHz,则机器周期为,则机器周期为1s,定时器,定时器TMR1最小定 时时间为: 最小定 时时间为: 216 (216 1) 11 = 1s 定时器定时器TMR1最大定时时间为:最大定时时间为: 8(8(216 0) 1= 524288s0.5s 如设定定时时间为如设定定时时间为t,指令周期为,指令周期为T,分频比率为,分频比率为P,那么预置 的计数初值 ,那么预置 的计数初值X为:为: X=X=216t /(TP)t /(TP) 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3 定时定时/计数器工作方式计数器工作方式 5.3.1定时工作方式定时工作方式 3定时器定时器TMR2模块的定时工作方式模块的定时工作方式 定时器TMR2模块只有一种工作方式,即定时器工作方式.时钟信 号由内部系统时钟4分频后获取,即取自指令周期信号. 定时器TMR2模块只有一种工作方式,即定时器工作方式.时钟信 号由内部系统时钟4分频后获取,即取自指令周期信号. (1)用作周期可调的时基发生器(1)用作周期可调的时基发生器 如指令周期为如指令周期为T,分频比为,分频比为P1,周期寄存器预赋值为,周期寄存器预赋值为PR2, 则该周期的计算式为 , 则该周期的计算式为 T TTMR2 TMR2=TP1(PR2+1) =TP1(PR2+1) 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3 定时定时/计数器工作方式计数器工作方式 5.3.1定时工作方式定时工作方式 3定时器定时器TMR2模块的定时工作方式模块的定时工作方式 (2)用作延时可调的周期性定时器)用作延时可调的周期性定时器 如指令周期为如指令周期为T,预分频比为,预分频比为P,周期寄存器预赋值为,周期寄存器预赋值为PR2,后 分频比为 ,后 分频比为P2,则该超时溢出周期为,则该超时溢出周期为 T TTMR2IF TMR2IF=TP1(PR2+1)P2 =TP1(PR2+1)P2 (3)用作普通定时器(3)用作普通定时器 如指令周期为如指令周期为T,预分频比为,预分频比为P1, 则定时时间为则定时时间为 P1(2P1(28 8-X)T-X)T 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3.2计数器工作方式计数器工作方式 1 定时器定时器/计数器计数器TMR0模块的计数器模式模块的计数器模式 对对8位定时器位定时器TMR0来说,不使用分频器时,计数范围为:来说,不使用分频器时,计数范围为: (28 计数初值计数初值) 使用分频器时,定时时间的计算公式为:使用分频器时,定时时间的计算公式为: 分频比分频比(28 计数初值计数初值) 分频比取值为分频比取值为2、4、8256。 第五章定时/计数器第五章定时/计数器 5.3 定时定时/计数器工作方式计数器工作方式 5.3.2计数器工作方式计数器工作方式 2 定时器定时器/计数器计数器TMR1模块的计数器工作方式模块的计数器工作方式 当TMR1CS控制位置时,TMR1工作于计数器方式,时钟来自于 外部引脚或自带低频振荡器。当TMR1设定为计数器方式时,在 其开始增量之前,必须有一个下降沿。当TMR1随着外部触发信 号递增时,发生在上升沿 当TMR1CS控制位置时,TMR1工作于计数器方式,时钟来自于 外部引脚或自带低频振荡器。当TMR1设定为计数器方式时,在 其开始增量之前,必须有一个下降沿。当TMR1随着外部触发信 号递增时,发生在上升沿 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 5.4.1定时实例定时实例 【5-3】用定时器TMR1产生一个50HZ的方波,由RC.0输出,设晶 振频率为 【5-3】用定时器TMR1产生一个50HZ的方波,由RC.0输出,设晶 振频率为4MHz。 解:由题意知,方波的周期T=1/50=0.02s=20ms,用TMR1定时 t=10ms,设分频比 解:由题意知,方波的周期T=1/50=0.02s=20ms,用TMR1定时 t=10ms,设分频比P取值为取值为8,指令周期为,指令周期为1s,则计数初值X为,则计数初值X为 X=X=216t /(TP)=t /(TP)=21610000/(18)=FF8310000/(18)=FF83 程序清单如下:程序清单如下: 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 LISTP=16F873LISTP=16F873 INCLUDE“P16F873.inc“INCLUDE“P16F873.inc“ ORG000H;程序起始地址ORG000H;程序起始地址 NOP;ICD必需的空操作NOP;ICD必需的空操作 BSFSTATUS,RP0;选择寄存器体1BSFSTATUS,RP0;选择寄存器体1 CLRFTRISC;设置C口为输出CLRFTRISC;设置C口为输出 BCFSTATUS,RP0;选择寄存器体0BCFSTATUS,RP0;选择寄存器体0 CLRFPORTC;清C口CLRFPORTC;清C口 LOOPLOOP MOVLW0FBHMOVLW0FBH MOVWFTMR1H;设定TMR1高位初值MOVWFTMR1H;设定TMR1高位初值 MOVLW1EHMOVLW1EH 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 MOVWF TMR1L;设定TMR1低位初值MOVWF TMR1L;设定TMR1低位初值 MOVLWB11110000;设置定时器工作方式,MOVLWB11110000;设置定时器工作方式, MOVWFT1CON分频比为1:8MOVWFT1CON分频比为1:8 BSFT1CON,TMR1ON;启动定时器TMR1BSFT1CON,TMR1ON;启动定时器TMR1 LOOP1BTFSSPIR1,TMR1IF;是否溢出?LOOP1BTFSSPIR1,TMR1IF;是否溢出? GOTOLOOP1;未溢出,等待GOTOLOOP1;未溢出,等待 BCFPIR1,TMR1IF;溢出,清溢出标志BCFPIR1,TMR1IF;溢出,清溢出标志 MOVLWB00000001;对RC0求反MOVLWB00000001;对RC0求反 XORWFPORTC,1XORWFPORTC,1 GOTOLOOP;循环GOTOLOOP;循环 ENDEND 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 5.4.2计数器实例计数器实例 【5-5】试用定时器TMR0作外部工件计数器,外部工件信号由 T0CKI端引入,TMR2作定时器,每隔一秒钟检测一次TMR0的计 数值,当检测到100个工件时使RC.0端输出信号反相,程序不断 循环控制RC.0端的输出. 】试用定时器TMR0作外部工件计数器,外部工件信号由 T0CKI端引入,TMR2作定时器,每隔一秒钟检测一次TMR0的计 数值,当检测到100个工件时使RC.0端输出信号反相,程序不断 循环控制RC.0端的输出. 解:外部工件信号由T0CKI端引入单片机,设置TMR0为计数工 作方式,TMR2为定时工作方式,定时时间与软件一起实现为1 秒。定时器TMR0的计数初值为(取分频比 解:外部工件信号由T0CKI端引入单片机,设置TMR0为计数工 作方式,TMR2为定时工作方式,定时时间与软件一起实现为1 秒。定时器TMR0的计数初值为(取分频比P为为1) 计数初值计数初值=28100=156=9CH 将TMR2设计成定时4ms秒,设预分频比将TMR2设计成定时4ms秒,设预分频比P取值为取值为16,指令周期为,指令周期为 1s,则TMR2的计数初值X为,则TMR2的计数初值X为 X =2X =28 8- t / PT=256-4000/16=06H- t / PT=256-4000/16=06H 寄存器的计数值为250,即十六进制的FAH。寄存器的计数值为250,即十六进制的FAH。 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 程序清单如下:程序清单如下: COUNTEQU20HCOUNTEQU20H STATUS EQU03HSTATUS EQU03H ZEQU02HZEQU02H PR0EQU05PR0EQU05 PR1EQU06PR1EQU06 OPTION_REGEQU81HOPTION_REGEQU81H INTCON EQU0BHINTCON EQU0BH PIR2EQUODHPIR2EQUODH PIE2EQU8DHPIE2EQU8DH TMR2EQU0EHTMR2EQU0EH TMR0EQU01HTMR0EQU01H T1CONEQU10HT1CONEQU10H TRISAEQU85HTRISAEQU85H 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 CLRFPORTA;清A、C口CLRFPORTA;清A、C口 CLRFPORTCCLRFPORTC CLRFT2CON;停止TMR2工作CLRFT2CON;停止TMR2工作 CLRFTMR0;清TMR0、TMR2寄存器CLRFTMR0;清TMR0、TMR2寄存器 CLRFTMR2CLRFTMR2 CLRFINTCON;关中断CLRFINTCON;关中断 BSFSTATUS,RP0;选择存储体1BSFSTATUS,RP0;选择存储体1 CLRFOPTION_REG;停止TMR0CLRFOPTION_REG;停止TMR0 BSFTRISA,4;设置RA4为输入口、RC0为输出口BSFTRISA,4;设置RA4为输入口、RC0为输出口 BCFTRISC,0BCFTRISC,0 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 CLRFPIE1;关外围中断CLRFPIE1;关外围中断 CLRFPIE2CLRFPIE2 BCFSTATUS,RP0;选择存储体0BCFSTATUS,RP0;选择存储体0 CLRFPIR1;清标志位CLRFPIR1;清标志位 MOVLW 0FAH;计数寄存器赋值500MOVLW 0FAH;计数寄存器赋值500 MOVWF COUNTMOVWF COUNT MOVLW F4H;设置TMR0为外部输入计数器状态MOVLW F4H;设置TMR0为外部输入计数器状态 MOVWF OPTION_REGMOVWF OPTION_REG MOVLW 03H;设置TMR2为普通定时器MOVLW 03H;设置TMR2为普通定时器 MOVWF T2CONMOVWF T2CON MOVLW 06H;TMR2赋初值MOVLW 06H;TMR2赋初值 MOVWF TMR2MOVWF TMR2 第五章定时/计数器第五章定时/计数器 5.4 定时定时/计数器编程计数器编程 LOOP1 BSF T2CON,2;启动TMR2LOOP1 BSF T2CON,2;启动TMR2 LOOP2 BTFSSPIR1,1;TMR2是否溢出?LOOP2 BTFSSPIR1,1;TMR2是否溢出? GOTOLOOP2;否,等待GOTOLOOP2;否,等待 MOVLW 06H;重新给TMR2赋初值MOVLW 06H;重新给TMR2赋初值 MOVWF TMR2MOVWF TMR2 DECFSZCOUNT;1秒定时是否到?1秒未到转DECFSZCOUNT;1秒定时是否到?1秒未到转 GOTOLOOP1;1秒未到再次启动TMR2GOTOLOOP1;1秒未到再次启动

温馨提示

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

评论

0/150

提交评论