版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章 定时器/计数器,内容提要: 5.1 定时器/计数器功能 5.2 定时器和计数器硬件结构 5.3 定时器/计数器工作方式 5.4 定时器/计数器编程,内容要求: 1、熟悉PIC16F87X单片机的定时/计数器功能。 2、熟悉3个定时器/计数器模块的硬件结构。 3、熟悉掌握与定时器/计数器模块相关的寄存器。 4、熟练掌握定时器/计数器工作方式。 5、熟练掌握定时器/计数器编程技术 。,5.1 定时/计数器功能 5.1 定时/计数器功能 5.4.1 定时器功能起定时延时作用和在规定的引脚上 输出一定宽度的方波信号。 所谓定时功能就是通过来自单片机内部的时钟脉冲作计数脉冲,使计数器计数,即每个
2、机器周期计数器加1,计数值达到予置值后,定时/计数模块产生溢出。,5.1 定时/计数器功能 5.1 定时/计数器功能 5.4.2 计数器功能 所谓计数是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。,5.2 定时和计数器硬件结构 PIC16F877单片机配置了3个定时器/计数器模块,分别为TMR0、TMR1和TMR2。 共同点:它们的核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;从预先设定的某一初始值开始累计,在累计到计数器产生溢出,并同时建立一个相应的溢出中断标志。 三者的不同点: TMR0为8位宽,有一个可选的预分频器,用于
3、通用目的,可用于定时和计数; TMR1为16位宽,附带一个可编程的预分频器和一个可选的低频时基振荡器,适合与CCP(捕捉/比较脉宽调制)模块配合使用来实现输入捕捉或输出比较功能,也可用于定时和计数; TMR2为8位宽,附带一个配合使用来实现PWM脉冲宽度调制信号的产生,只能用于定时。,5.2.1定时器/计数器TMR0的硬件结构 *TMR0可以用于定时控制、延时、对外部事件进行计 数和检测等场合。 *TMR0可以使用内部系统时钟,也可以使用外部始终。 *TMR0用于内部定时或对外计数时都不占用CPU时间。 1.定时器/计数器TMR0具有以下特点: (1)TMR0是一个8位宽的由时钟信号上升沿触发
4、的循环累加计数寄存器。 (2)有一个专用的外部触发信号输入端(T0CKI-RA4)。 (3)TMR0也是一个在文件寄存器区域内统一编址的寄存器,地址为01H或101H,用户用软件方式可直接读/写计数器的内容。 (4)具有一个软件可编程的8位预分频器。,(5)当使用内部触发信号,即指令周期作为时钟信号源时,模块TMR0工作于定时方式,触发方式为固定上升沿触发有效。在计数器溢出时,相应的溢出中断标志T0IF自动置位,并可产生溢出中断。 (6)当外部时钟信号源时,模块TMR0工作于计数方式,触发方式可由程序设置位上升沿触发或下降 沿触发有效。在计数器溢出时,也可产生溢出中断。,2与定时器/计数器TM
5、R0模块相关的寄存器 (1)选项寄存器 OPTION_REG (1)是作为定时器还是作为计数器 (2)决定分频器的分频系数 (3)时钟是上升沿/下降沿触发 (2)中断控制寄存器 INTCON (1)中断总控制-允许/禁止 (2)各类中断的控制 (3)各类中断的标志 (3)RA口方向寄存器 TRISA 当TMR0工作于计数器时,RA4必须设为输入,以便从该脚输 入时钟脉冲信号。 (4)定时器/计数器 TMR0 8位累加计数寄存器,与计数和定时无关,3 定时器/计数器TMR0模块的电路结构和工作原理,4.分频器和控制逻辑电路 分频器实际上也是一个8位累加计数器,它只能配合TMR0或WDT输出的时钟
6、由PS2PS0设定分频比,这个分频比由OPTION_REG寄存器中的PS2PS0决定。 5.TMR0累加计数寄存器 TMR0有定时器和计数器两种工作模式。这两种模式之间的差异是触发信号的来源不同。TMR0的工作模式由T0CS位(选项寄存器OPTION_REG)决定,TMR0 定时时间的计算公式: 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 定时器最长的定时时间
7、:t=256x(256-0)x1uS=65536uS,在使用TMR0做定时器时,可以用查询和中断的方法获得定时时间。 1、查询方法: 在将初值写入TMR0时,立即查询T0IF是否等于1,如果T0IF=1,表示时间已到,若T0IF=0,表示时间未到,继续等候。 2、中断方法: 设置中断服务子程序,每当TMR0溢出时,进入中断服务程序,得到一个准确的定时时间。 TMR0的定时程序举例:,用TMR0产生10毫秒的定时时间,在RC0输出一个10毫秒的方波。 一、用查询方法编写程序,步骤如下: (1) 求出10毫秒定时时间对应的TRM0的计数初值: X= 28 t/(TxP) =256-10000/(1
8、x64) =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) 等待T0IF溢出,溢出时,定时时间已到。 while(!T0IF); 实际程序入下:,#include void init(); /I/O口初始化函数 void tmint(); /定时器初始化函数 void ma
9、in() 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=0; PS0=1; GIE=0; /禁止产生中断 T0IF=0; /清除定时器0中断标志 TMR0=0X64; /预置TMR0初值 ,#include void init(); /I/O口初始化函
10、数 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允许产生中断 T0IF=0; /清楚定时器0中断标志 TMR0=0X64; /预置初值 /中断服务子程序 void interrupt dealtime() /每中断一次的时间为10毫
11、秒 T0IF=0; TMR0=0X64; RC0=!RC0; ,5.2.2定时器/计数器TMR1的硬件结构 定时器/计数器TMR1不仅可作通用的定时器和计数器;而且利用内置的低频时基振荡器,还可实现实时时钟RTC功能;通过TMR1与CCP模块配合使用,定时器/计数器TMR1又可实现输入捕捉和输出比较功能。 定时器/计数器TMR1是一个16位的可读可写的计数寄存器,由高低两字节组成(TMR1H和TMR1L)16位寄存器从0000H到FFFFH加1计数,然后回到0000H。在从FFFFH到0000H的过程中,置位中断标志位TMR1IF。定时器/计数器TMR1还带有一个3位的可编程预分频器和一个内置
12、的低功耗低频时基振荡器。,5.2.2定时器/计数器TMR1的硬件结构 1定时器/计数器TMR1模块具有的特点: (1)一个16位的由时钟信号上升沿触发的累加计数寄存器对TMR1H:TMR1L; (2)TMR1H和TMR1L是在RAM中统一编址的寄存器对, 地址为0EH和0FH,可用软件方式读/写TMR1寄存器对的内容; (3)一个可选用的3位可编程的预分频器; (4)累加计数的信号源可选择内部系统时钟、外部触 发信号或自带时基振荡器信号; (5)既可工作于定时器模式,又可工作于计数器模式,还可用作实时时钟(RTC)功能; (6)在计数器溢出时,相应的溢出中断标志自动置位,并可产生溢出中断。,5
13、.2.2定时器/计数器TMR1的硬件结构 2. 与定时器/计数器TMR1模块相关的寄存器 (1) PIE1外设中断使能寄存器在第6章介绍 (2) PIR1外设中断标志寄存器在第6章介绍 (3) INTCON中断控制寄存器 各中断的使能及中断标志 (4) T1CONTMR1控制寄存器 决定TMR1的分频比、TMR1振荡器的使能、内外时钟、 TMR1的关闭与打开等。 (5) TMR1LTMR1计数寄存器低字节 (6) TMR1HTMR1计数寄存器高字节 3. T1CON寄存器各数据位的含义和功能,图5-4 T1CON寄存器各数据位的含义和功能,4. TMR1 定时时间的计算公式: t= P (21
14、6 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,5. TMR1的定时程序举例: 用TMR1产生10毫秒的定时时间,步骤如下: (1) 求出10毫秒定时时间对应的计数初值 X= 216 t/(TxP) =65536-10000/(1x8) =65536-1250 =64286(FB1EH) (2) 根据题目的要求
15、,对T1CON配置 (3) 将(X=FB1E)分别写入TMR1H和TMR1L计数寄存器 (4) 将T1OSCEN位置1,启动TMR1开始定时 (4) 等待PIR1的TMR1IF位为1,为1时,定时时间已到,TMR1的定时程序举例: LIST P=16F877A;列表伪指令 INCLUDE P16F877A.INC;把包含文件含入源程序 _CONFIG 3F39H;设置配置位中振荡方式为XT, 其它全部禁止或关闭 ;* COUNTEQU20H ORG 0 x000;主程序开始地址 GOTOMAIN;跳转到主程序 ORG0005H ;主程序开始地址为0005H MAIN MOVLW0F0H ;或者
16、30H MOVWFT1CON;设定定时器工作方式,分频比为1:8 ;* ; 定时0.5秒 ; X=65536-t/(TxP)=65536-500000/(1x8)=3036=0BDCH ; MOVLW0BH MOVWFTMR1H;设定TMR1高位初值 MOVLW0DCH ; MOVWFTMR1L ;设定TMR1低位初值 ;* BSFT1CON,TMR1ON ;启动定时器TMR1 LOOP1 BTFSS PIR1,TMR1IF ;是否溢出? GOTOLOOP1 ;没溢出,继续等待 BCFPIR1,TMR1IF ;已溢出,清TMR1溢出标志 ;* GOTO $ ;程序在原地踏步 END ;源程序结
17、束,5.3.2 计数器工作方式 1.定时器/计数器TMR0模块的计数器模式,1)当T0CS(OPTION_REG)=1时,TMR0被 设为计数器模式; 2)触发信号从片外引脚的RA4/T0CKI 输入,3)T0SE=1,下降沿触发, T0SE=0,上升沿触发 4)当计数寄存器TMR0写入初值时,计数器立即开始计 数. 5)如果分频比为1:1时,每一个外部脉冲输入,TMR0加1, 如果分频比为1:2时,每两个外部脉冲输入,TMR0加 1,6)TMR0的计数公式: 计数值=分频比x(28-计数初值) 分频比取值为:2、4、8、16256 7)TMR0的最大计数范围: 计数值=256x(28-0)
18、=256x256 =65535,2.定时器/计数器TMR1模块的计数器模式 1)当TMR1CS=1时,TMR1工作于计数器工作方式,时钟 来自外部引脚或自带的低频振荡器。 2)当TMR1设定为计数方式时,在其开始自增前,必须 有一个下降沿。当TMR1随着外部触发信号递增时, 发生在上升沿。如图所示:,3)TMR1的计数公式: 计数值=分频比x(216-计数初值) 分频比取值为:1、2、4、8 4)TMR0的最大计数范围: 计数值=8x(216-0) =8x65535 =524280,5)计数器TMR1的应用举例频率计,本章小节 1、熟悉PIC16F87X单片机的定时/计数器功能 PIC16F87X单片机有3个定时器/计数器模块,它们的共同点是其核心部分都是一个由时钟信号触发,按递增方式累加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRH 0003-2020生殖健康用品企业生产管理规范
- T/TMAC 140-2025智能穿戴设备用热塑性聚氨酯弹性体(TPU)技术要求
- T/GBIA 001-2023食用燕窝
- T/CI 238-2023水性凹印光油
- T/CAAMTB 61-2021汽车驾乘性体验测试评价规程
- T/CPIA 0079-2024柔性支架应用场景下光伏组件测试方法
- 2025~2026学年河南省周口市项城市校联考西南大学版三年级上册12月阶段性数学试卷【附答案】
- 2025~2026学年安徽宿州市埇桥区北师大版三年级下册期末考试数学试卷【附答案】
- 2025-2026学年福建省永安市初中政治八年级期末下册通关黑金提分题附答案
- PHP实习生面试题(含详细真实答案)
- 2026贵州省安全员《C证》考试题库
- 2026年烟草江苏公司招聘考试试题及答案
- 2026年数据中心基础设施运维岗高频面试题包含详细解答
- 创新当下粮安未来-2026年世界粮食日主题班会
- 八省八校(T8)2026-2027学年度第一学期高三检测语文试卷(含答案)
- 2025年国家能源集团工作人员招聘考试笔试试题(含答案)
- 2026招商银行校园招聘模拟笔试真题(含详细答案解析)
- 2026年秋季学期少先队大队委竞选面试答辩题库100题
- 通风空调工程质量管理计划
- 2026年河南高职单招职业适应性测试全真试卷(含详细答案解析)
- 国有企业供应链管理制度
评论
0/150
提交评论