第六章、PIC单片机定时读数._第1页
第六章、PIC单片机定时读数._第2页
第六章、PIC单片机定时读数._第3页
第六章、PIC单片机定时读数._第4页
第六章、PIC单片机定时读数._第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、PIC16F877PIC16F877单片机配置单片机配置3 3个定时器个定时器/ /计数器模块:计数器模块:定时器定时器/计数器模块计数器模块 位宽位宽分频器分频器普通功能普通功能特别功能特别功能备注备注TMR08 8预分频器预分频器定时定时/计数计数通用目的通用目的TMR116 16预分频器预分频器定时定时/计数计数捕捉或输出比较捕捉或输出比较 低频时基振荡器低频时基振荡器TMR28 8预 预/后分频器后分频器定时定时脉宽调制脉宽调制CCPCCP:输入捕捉、输出比较和:输入捕捉、输出比较和PWMPWM脉冲宽度调脉冲宽度调制功能制功能 低频时基振荡器低频时基振荡器 :32768Hz32768H

2、z 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 TMR0TMR0涉及涉及4 4个寄存器:个寄存器: 定时器定时器/ /计数器计数器 TMR0TMR0(计数初值);(计数初值); 选项寄存器选项寄存器OPTION_REGOPTION_REG; 中断控制寄存器中断控制寄存器INTCON INTCON ; 端口端口RARA方向控制寄存器方向控制寄存器TRISATRISA (RA4/TOCKIRA4/TOCKI输入)。输入)。 主要用于设置定时主要用于设置

3、定时/ /计数器计数器TMR0TMR0、前后分频、前后分频器、外器、外INTINT中断以及中断以及RBRB端口的弱上拉功能等各种端口的弱上拉功能等各种控制位。(复位时所有位的状态为控制位。(复位时所有位的状态为 1 1)Bit 7Bit 7Bit 6Bit 6Bit 5Bit 5Bit 4Bit 4Bit 3Bit 3Bit 2Bit 2Bit 1Bit 1Bit0Bit0RBPURBPUINTEDGINTEDGT0CST0CST0SET0SEPSAPSAPS2PS2PS1PS1PS0PS0Bit3Bit3PSAPSA:分频器分配位,主动参数。:分频器分配位,主动参数。0 0: 分配给分配给T

4、MR0TMR0,作为,作为TMR0TMR0的分频器;的分频器;1 1: 分配给分配给WDTWDT,作为,作为WDTWDT的分频器。的分频器。Bit4Bit4T0SET0SE:TMR0TMR0用于计数器,计数脉冲信号边沿选择用于计数器,计数脉冲信号边沿选择位,主动参数。位,主动参数。0 0: RA4/T0CKI RA4/T0CKI引脚上的下降沿触发;引脚上的下降沿触发;1 1: RA4/T0CKI RA4/T0CKI引脚上的上升沿触发。引脚上的上升沿触发。Bit5Bit5T0CST0CS:定时:定时/ /计数器计数器TMR0TMR0时钟源选择位,主动参时钟源选择位,主动参数。可确定数。可确定TM

5、R0TMR0工作于定时方式还是计数方式。工作于定时方式还是计数方式。0 0: 由内部指令周期作为由内部指令周期作为TMR0TMR0的触发信号,的触发信号,定时使用定时使用;1 1: 由外部引脚由外部引脚T0CKIT0CKI上的时钟作为上的时钟作为TMR0TMR0的触发信号,的触发信号,作计数使用作计数使用 。Bit6Bit6INTEDGINTEDG:INTINT中断信号触发边沿选择位,主动参中断信号触发边沿选择位,主动参数。数。0 0: RB0/INTRB0/INT引脚上的下降沿触发;引脚上的下降沿触发;1 1: RB0/INTRB0/INT引脚上的上升沿触发。引脚上的上升沿触发。Bit7Bi

6、t7RBPURBPU:B B端口弱上拉使能位,主动参数端口弱上拉使能位,主动参数。0 0: RB0-RB7RB0-RB7引脚弱上拉使能;引脚弱上拉使能;1 1: RB0-RB7RB0-RB7引脚弱上拉禁止。引脚弱上拉禁止。 主要用于中断控制方式的设置。主要用于中断控制方式的设置。bit7bit7bit6bit6bit5bit5bit4bit4bit3bit3bit2bit2bit1bit1bit0bit0GIEGIEPEIEPEIET0IET0IEINTEINTERBIERBIET0IFT0IFINTFINTFRBIFRBIFPEIEPEIE:外围功能模块中断使能控制位外围功能模块中断使能控制

7、位。0 0: 禁止所有外围功能模块中断禁止所有外围功能模块中断;1 1: 使能外围功能模块中断使能外围功能模块中断。T0IET0IE:TMR0TMR0中断使能控制位中断使能控制位。0 0: 禁止禁止TMR0TMR0中断中断;1 1: 使能使能TMR0TMR0中断中断。RBIERBIE:PORTBPORTB引脚状态变化中断使能控制位引脚状态变化中断使能控制位。0 0: 禁止禁止PORTBPORTB状态变化中断状态变化中断;1 1: 使能使能PORTBPORTB状态变化中断状态变化中断 。T0IFT0IF:TMR0TMR0中断标志位中断标志位。0 0: TMR0TMR0没有溢出中断没有溢出中断;1

8、 1: TMR0TMR0读数溢出发生中断,必须用软件将其清除读数溢出发生中断,必须用软件将其清除。INTFINTF:RB0/INTRB0/INT引脚沿跳变中断标志位引脚沿跳变中断标志位。0 0: 没有发生没有发生RB0/INTRB0/INT引脚中断引脚中断;1 1: RB0/INTRB0/INT引脚发生中断,必须用软件将其清除引脚发生中断,必须用软件将其清除。RBIFRBIF:PORTBPORTB引脚状态变化中断标志位引脚状态变化中断标志位。0 0: PORTBPORTB没有发生状态变化中断没有发生状态变化中断;1 1: PORTBPORTB引脚出现状态变化中断,必须用软件将其清引脚出现状态变

9、化中断,必须用软件将其清除除 。4 4=1=1,T0CKIT0CKI为输入方式。为输入方式。8.1.3 TMR08.1.3 TMR0模块电路结构和工作原理模块电路结构和工作原理1. 81. 8位计数寄存器位计数寄存器TMR0TMR0 1 1)设置定时模式)设置定时模式T0CS=0 T0CS=0 定时时间:初值,频率,预分频器。定时时间:初值,频率,预分频器。 2 2)设置计数模式)设置计数模式T0CS=1 T0CS=1 计数计数 T0SE=0T0SE=0,T0SE=1T0SE=1。2.2. 分频器分频器PS2PS2、PS1PS1、PS0 PS0 分频比;分频比;PSA=0PSA=0,TMR0T

10、MR0分频器;分频器;PSA=1PSA=1,WDTWDT分频器。分频器。 例题例题8-18-1计数灯程序设计。自动计数,计数灯程序设计。自动计数,RCRC与与8 8位位LEDLED相联,间隔时间为一个固定时间相联,间隔时间为一个固定时间0.5s.0.5s. 这个例子曾用软件延时做过,本例将采这个例子曾用软件延时做过,本例将采用用TMR0TMR0定时实现。定时实现。 定时可以通过两种方式实现定时可以通过两种方式实现 不采用中断(查询方式)不采用中断(查询方式) 采用定时中断采用定时中断 TMR0 定时时间的计算公式: t= P (28 X) T X= 28 t/(TxP) t:设定的定时时间uS

11、 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=65536uS 在使用TMR0做定时器时,可以用查询和中断的方法获得定时时间。1、查询方法: 在将初值写入TMR0时,立即查询T0IF是否等于1,如果T0IF=1,表示时间已到,若T0IF=0,表示时间未到,继续等候。2、中断方法: 设置中断服务子程序,每当TMR0溢出时,进入中断服务程序,得到一个准确的定时时间。TMR0的定时程序举例:用

12、TMR0产生10毫秒的定时时间,在RC0输出一个10毫秒的方波。一、用查询方法编写程序,步骤如下: (1) 求出10毫秒定时时间对应的TRM0的计数初值: X= 28 t/(TxP) =256-10000/(1x64) =256-156 =100(64H) (2) 根据题目的要求,对OPTION_REG配置 T0CS=0; /时钟源为内部指令周期 PSA=0; /分频器分配给TMR0 PS2=1; /TMR0的分频比为1:64 PS1=0; PS0=1; GIE=0; /禁止产生中断 /OPTION=0 x05; (3) 将(X=100)写入TMR0计数寄存器 TMR0=100; (4) 等待

13、T0IF溢出,溢出时,定时时间已到。 while(!T0IF);实际程序入下:#include void init(); /I/O口初始化函数void tmint(); /定时器初始化函数void main() init(); tmint(); while(1) if(T0IF) T0IF=0; TMR0=100; RC0=!RC0; / I/O口初始化函数void init() TRISC=0X00; /定时初始化(OPTION_REG)void tmint() T0CS=0; /时钟源为内部指令周期 PSA=0; /分频器分配给TMR0 PS2=1; /TMR0的分频比为1:64 PS1=

14、0; PS0=1; GIE=0; /禁止产生中断 T0IF=0; /清除定时器0中断标志 TMR0=0X64; /预置TMR0初值 #include void init(); /I/O口初始化函数void tmint(); /定时器初始化函数void interrupt dealtime();void main() init(); tmint(); while(1) ; / I/O口初始化函数void init() TRISC=0X00; /定时中断初始化void tmint() OPTION=0 x05; /对OPTION进行配置 GIE=1; /允许产生中断 T0IE=1; /定时器T0允

15、许产生中断 T0IF=0; /清楚定时器0中断标志 TMR0=0X64; /预置初值 /中断服务子程序void interrupt dealtime() /每中断一次的时间为10毫秒 T0IF=0; TMR0=0X64; RC0=!RC0; 计数器工作方式计数器工作方式1.1.定时器定时器/ /计数器计数器TMR0TMR0模块模块的的计数器模式计数器模式1 1)当)当T0CS(OPTION_REG)=1T0CS(OPTION_REG)=1时时,TMR0,TMR0被被 设为计数器模式设为计数器模式; ;2 2)触发信号从片外引脚的)触发信号从片外引脚的RA4/T0CKIRA4/T0CKI 输入输

16、入 3 3)T0SE=1,T0SE=1,上升上升沿触发沿触发, T0SE=0, T0SE=0,下降下降沿触发沿触发 4 4)当计数寄存器)当计数寄存器TMR0TMR0写入初值时写入初值时, ,计数器立即开始计计数器立即开始计 数数. . 5 5)如果分频比为)如果分频比为1:11:1时时, ,每一个外部脉冲输入每一个外部脉冲输入,TMR0,TMR0加加1,1, 如果分频比为如果分频比为1:21:2时时, ,每两个外部脉冲输入每两个外部脉冲输入,TMR0,TMR0加加 1,1,6 6)TMR0TMR0的计数公式的计数公式: : 计数值计数值= =分频比分频比x(2x(28 8- -计数初值计数初

17、值) ) 分频比取值为分频比取值为:2:2、4 4、8 8、16162562567 7)TMR0TMR0的最大计数范围的最大计数范围: : 计数值计数值=256x(2=256x(28 8-0)-0) =256x256 =256x256 =65535 =65535 复位后各位为0Bit7Bit7Bit6Bit6Bit5Bit5Bit4Bit4Bit3Bit3Bit2Bit2Bit1Bit1Bit0Bit0- - -T1CKPS1T1CKPS1 T1CKPS0T1CKPS0 T1OSCENT1OSCEN T1SYNCT1SYNCTMR1CSTMR1CS TMR1ONTMR1ON1CKPS11CKP

18、S1T1CKPSOT1CKPSO: 分频器的分频比选择位分频器的分频比选择位,主动参数。,主动参数。 工作方式工作方式与系统的与系统的协调关系协调关系触发信号触发信号SLEEPSLEEP状态状态捕捉捕捉、比比较功能较功能TMR1TMR1分频器分频器定时定时同步同步指令周期信号指令周期信号不工作不工作不工作不工作适用适用计数计数同步同步T1CKIT1CKI不工作不工作工作工作适用适用T1OSIT1OSI不工作不工作工作工作适用适用T1OSOT1OSO- -T1OSIT1OSI不工作不工作工作工作适用适用异步异步T1CKIT1CKI工作工作工作工作不适用不适用T1OSIT1OSI工作工作工作工作不

19、适用不适用T1OSOT1OSO- -T1OSIT1OSI工作工作工作工作不适用不适用1. 1. 起起/ /停控制和同步逻辑停控制和同步逻辑 与门与门G1G1:TMR1ON TMR1ON 与与 时钟信号;时钟信号;2. 2. 可编程预分频器可编程预分频器 4 4种不同的分频比:种不同的分频比:1 1,2 2,4 4,8 8;3. TMR13. TMR1定时定时/ /计数方式计数方式 定时方式:指令周期,定时方式:指令周期, 计数方式:低频振荡器或计数方式:低频振荡器或T1CKIT1CKI引脚;引脚;4. 4. 低频振荡器低频振荡器 常用时钟:常用时钟:32768Hz32768Hz;5. 5. 定

20、时分析定时分析 定时时间定时时间= =预分频比(预分频比(65536-65536-初值)初值)* *1010-6-6s s 例题例题8-38-3利用外接低频振荡器利用外接低频振荡器32768Hz32768Hz实现实现1s1s定时。定时。 8.3.1 TMR28.3.1 TMR2模块的功能和特性模块的功能和特性1 1、定时器、定时器TMR2TMR2的功能的功能定时:只工作于定时器模式,有预、后分频器;定时:只工作于定时器模式,有预、后分频器;PWMPWM:利用:利用PR2PR2和和CCPCCP模块实现模块实现PWMPWM功能,可以承担各功能,可以承担各类电机的变频调速。类电机的变频调速。SPISPI方式:方式:TMR2 TMR2 可以提供波特率时钟。可以提供波特率时钟。8.3.1 TMR28.3.1 TMR2模块的功能和特性模块的功能和特性2 2、定时器、定时器TMR2TMR2的

温馨提示

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

评论

0/150

提交评论