




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章 定时器计数器TMR1 前面介绍了定时器计数器TMR0的基本 概念和用途,下面介绍PIC单片机中另外一种定 时器计数器TMR1。 9.1 TMR1的特性 TMR1为16位宽,附带一个3位的分频器, 还自带一个低功耗低频的时基振荡器。TMR1的 主要用途: 类似于TMR0,用于定时和计数; 自带一个时基振荡器,可记录年、月、日、时 、分、秒,实现实时时钟RTC(real time clock); 可以与CCP模块配合使用,实现输入捕捉或输出 比较功能。 TMR1由二个8位寄存器TMR1H和TMR1L对 组成的16位定时器计数器,可以由软件读写 ,这二个寄存器都是和RAM统一编址的,地址分 别为0EH和0FH 。 TMR1H:TMR1L寄存器对,从0000H递增到 FFFFH(065535)之后再返回到0000H时,就会产 生溢出,并且将溢出中断标志位TMR1IF设置为1 。如果此时相关的中断使能位TMR1IE和GIE都 为1,就会引起CPU的中断响应。 TMR1的触发信号源可来自内部系统时钟、 外部触发信号或自带时基振荡器信号;因此即可 以工作于定时器模式,又可工作于计数器模式, 还可以用作实时时钟RTC模式; 9.2 TMR1相关的寄存器 与TMR1有关的寄存器如下表所列。这些寄 存器中的前3个的功能及其作用,在“中断系统” 中已经介绍。在此先介绍T1CON 控制寄存器。 TMRl控制寄存器T1CON TICON只用到其低6位,最高2位未用。其 各位的含义如下: l T1CKPS1T1CKPS0:分频器分频比选择位, 如表3.2所列 l T1OSCEN:TMR1自带振荡器使能位。 1=允许TMR1振荡器起振; 0=禁止TMR1振荡器起振。 l l T1SYNCT1SYNC:TMR1TMR1外部输入时钟与系统时钟同外部输入时钟与系统时钟同 步控制位。该位只有在步控制位。该位只有在TMR1TMR1工作于计数器方工作于计数器方 式式(TMR1CS=1)(TMR1CS=1)才有效:才有效: 1=TMR1外部输入时钟与系统时钟不保持同步; 0=TMR1外部输入时钟与系统时钟保持同步; 当TMR1工作于定时器方式,该位不起作用 。 lTMR1CS:时钟源选择位。 1=选择外部时钟源,即时钟信号来源于外 部引脚或者自带振荡器; 0=选择内部时钟源 lTMR1ON:TMR1使能控制位,这点不同于 TMR0。 1=启用TMR1,使TMR1进入活动状态; 0=关闭TMR1,使TMR1退出活动状态。 9.3 TMR1的电路结构 TMR1模块的内部结构如下图所示。 核心部分由TMR1H:TMR1L构成; 一个与门G1,对送入计数器的触发信号,起到 是否允许通行的控制作用。 一个信号复用器MUX1,允许触发信号来自两个 不同的路径。 同步控制逻辑,将经过外部引脚送入的触发信 号,与单片机内部的系统时钟进行同步。 3位宽的预分频器,允许选择四种不同的分频比 1:1、1:2、1:4或l:8。 在对寄存器对TMR1H:TMR1L进行写操作 时,可以使预分频器被清0。 另一个信号复用器MUX2,允许触发信号有两个 不同的来源:一个是由内部系统时钟产生的指令 周期;另一个是取自于外部引脚的触发信号或自 带振荡器。 一个施密特触发器G2,用于对来自外部引脚的触 发信号或自带振荡器产生的时钟信号进行整形。 一个由受控三态门G3构成的独立的低频低功耗晶 体振荡器,用来为TMR1提供独立于系统时钟的时 间基准信号,如图3.4所示。 只有当使能端T1OSCEN为高电平时,振 荡器才能够工作;而当T1OSCEN为低电平时, 非门G3的输出端呈现高阻状态,振荡器不能工 作,此时,工作于计数器方式的TMR1的触发信 号,从T1OSO端加入。 9.4 TMR1的工作原理 TMR1有定时器方式和计数器方式;计数 器方式又分为同步计数器方式和异步计数器方 式。TMR1的工作信号共有4种获取方式: 由内部系统时钟提供; 从RC0T1OSOT1CKI口线输入; 从RC1T1OSICCP2口线输入; 自带振荡器产生。 lTMR1的工作方式由TMR1CS确定。 当TMR1CS=0, TMR1工作于定时器方式, TMR1的16位计数器在每个指令周期到来时增 加;当TMR1CS=1,TMR1工作于计数器方式 ,TMR1的16位计数器在每个外部时钟输入的上 升沿到来时增加。 l一旦TMR1自带振荡器被使能(T1OSCEN=1), RC1T1OSICCP2和RC0T1OSOT1CKI 引脚就自动设为专用引脚,此时TRISC方向寄 存器bit1和bit0的值将失效。 当对寄存器TMR1H或TMR1L进行赋值时 ,预分频器将会自动清0。 9.4.1 禁止TMR1工作 TMRl比TMR0多一种选择,即可以被关闭 。具体方法是,将TMRl使能位TMR1ON清0。 此时,与门G1的一只引脚被低电平封锁,因此 使得累加计数器维持静止状态。等效电路如图 3.5所示。 9.4.2 定时器工作方式 当TMR1CS=0时,TMR1工作于定时器方 式,时钟来自内部fosc4指令周期。在此情况 下,同步控制信号T1SYNC不起作用,因为, TMR1的输入信号与系统时钟总是同步的。其 等效电路如图3.6所示。这种模式常用来延时、 定时功能。 9.4.3 计数器工作方式 当TMRlCS=1,TMR1工作于计数器方式 ,时钟来源于外部引脚或自带振荡器。TMR1 累加计数器在触发信号的上升沿递增。 TMR1在计数器方式时,存在输入触发信 号与系统时钟同步的问题。图3.8所示。 控制位T1SYNC的设定,既可以选择同步 方式,也可以选择异步方式。工作于计数方式 时,TMRl的触发信号有三种获取方法: v第1种:当T1OSCEN=0时,外部触发信号从 T1OSOT1CKI引脚输入,如图3.9(a)所示; v第2种,当T1OSCEN=1时,并且振荡器外部不 接石英晶体时,外部触发信号从引脚T1OSI输入 (如图3.9(b)所示; v第3种:当T1OSCEN=1,并且振荡器外部引脚 接有石英晶体时,TMR1是通过振荡器产生的时 钟脉冲上升沿实现增量的(如图3.9(c)所示。 同步计数器工作方式 当T1SYNC=0,TMR1工作在同步方式。 此时,外部输入信号要与系统时钟脉冲在相位 上进行同步。此时假如单片机进入了睡眠模式 ,即使有外部触发信号输入,TMR1也不会增 加,因为同步逻辑电路被关闭,如下图所示。 异步计数器工作方式 当T1SYNC=1时,TMRl工作在异步方式。此 时,外部输入信号不与系统时钟脉冲相位进行同 步。此时若单片机处于睡眠模式时,计数器随着 外部触发信号所进行的增量操作不受影响,如图 3.11所示。 工作在异步计数器方式期间,对于TMR1寄 存器对的读取、写入操作应特别注意。 读取操作:当对寄存器对TMR1HTMR1L进行 读操作时,可以分两次进行。但是,在读取期间 存在TMR1的低字节向高字节产生进位的可能性 。 此时TMR1H:TMR1L可能正巧发生从00FFH到 0100H或从FFFFH到0000H之类的递增。 若TMR1H:TMR1L正好从00FFH到0100H递 增,先读TMR1H再读TMR1L,则会读到0000H 的错误结果;而先读TMR1L再读TMR1H,则会 读到01FFH的错误结果。 同理若正巧发生TMR1H:TMR1L从FFFFH 到0000H的递增,无论是先读TMR1H再读 TMR1L,或先读TMR1L再读TMRlH,都可能 会产生错误结果。也就是说,在分为两个字节 来读取TMR1时,可能会出现错误结果。下面是 一段实用程序片段,可以避免在不断运行时读 取TMR1而发生错误。 BCF INTCON, GIE ;所有中断被禁止 MOVF TMR1H, W ;读取高字节 MOVWF TMPH ;暂存到TMPH MOVF TMR1L, W ;读取低字节 MOVWF TMPL ;暂存到TMPL MOVF TMR1H, W ;读取高字节 SUBWF TMPH, W ;用第2次读取值减第1次读取值 BTFSC STATUS, Z. ;结果为0否? GOTO CONTINUE ;是!无溢出,结果正确,结束读操作 MOVF TMR1H, W ;否!重新读取 MOVWF TMPH ;暂存到TMPH MOVF TMR1L, W ;读取低字节 MOVWF TMPL ;暂存到TMPL BSF INTCON, GIE ;放开全局中断屏蔽位 CONTINUE ;继续执行其他程序 写入操作:当对TMR1进行写操作时,如果计数器 正在递增,可能会产生一个不确定值。因此,先 让计数器停止运行,再写入所希望的值。 假如非要在TMR1不间断运行的情况下写入 ,那么,就应该首先清零TMR1L,以确保在它 向TMR1H寄存器发生溢出进位之前,有足够 长的递增距离,尽量避免溢出进位。随即装载 TMR1H寄存器,然后装载TMR1L寄存器。推 荐程序段如下: BCF INTCON, GIE ;所有中断被禁止 CLRF TMR1L ;清除低字节,确保不会发生向高字节的进位 MOVLW HI_BYTE ;取高字节给定值 MOVWF TMR1H, F ;装载高字节寄存器 MOVLW LO_BYTE ;取低字节给定值 MOVWF TMR1L, F ;装载低字节寄存器 BSF INTCON, GIE ;放开全局中断屏蔽位 CONTINUE ;继续执行其他程序 9.5 定时器计数器TMR1的应用举例 q例1 蠕动灯 l实现的功能 把演示板上的8只发光二极管D0D7,设 计为“进三步,退两步”的蠕动前进的方式依次发 光,即发光的规律是: D0D1D2D3D2D1D2D3D4D 3D2 D3D4D5+D4+.。并且在各个 状态之间切换时,插入一个l4s的延时。 硬件电路规划: 电路如图10.12所示。由RC振荡器为电路提 供系统时钟信号,其频率按4MHz计算。 硬件电路规划: 电路如图10.12所示。由RC振荡器为电路提供系统 时钟信号,其频率按4MHz计算。 软件设计思路 利用TMR1产生1/4s的延时。具体方法是,利用 中断方式和反复装载初始值的方式,将预分频器的分 频比设定为1:4。下面计算TMR1的16位寄存器的初值。 TMR1的初值 因为系统时钟为4MHZ,那么机器周期为1s。 延迟时间为14s=250,000s。 假设初值为X,则以下公式成立: 4*(65536-X)*1 s = 250,000s X= 65536- (250,000/4)= 3,036=0BDCH T1CON的控制字 要求:分频比设定为1:4,定时模式,先关闭TMR1, 则控制字为:0010 0000 = 20H。 程序流程图:主程序流程图和中断服务子程序流程图 ,分别如图3.13和图3.14所示。 PCL EQU 02H ;程序计数器低字节寄存器地址 STATUS EQU 3H ;状态寄存器地址 Z EQU 2H ;状态寄存器中的0标志位的位地址 INTCON EQU 0BH ;中断控制寄存器地址 PORTC EQU 7H ;端口C的数据寄存器地址 TRISC EQU 87H ;端口C的方向控制寄存器地址 COUNT EQU 20H ;定义一个计数器变量寄存器 RP0 EQU 5H ;状态寄存器中的页选位RP0 TMR1L EQU 0EH ;TMR1低字节寄存器地址 TMR1H EQU 0FH ;TMR1高字节寄存器地址 PIR1 EQU 0CH ;第一中断标志寄存器 PIE1 EQU 8CH ;第一中断使能寄存器 T1CON EQU 10H ;TMR1控制寄存器_ TMR1LB EQU 0DCH ;TMR1低字节寄存器初始值 TMR1HB EQU 0BH ;TMR1高字节寄存器初始值 ORG 0000H NOP GOTO MAIN ORG 0004H ;* TMR1延时子程序(1/4S)* DELAY BCF PIR1,0 ;清除TMR1溢出标志位 BCF T1CON,0 ;关闭TMR1计数器 MOVLW TMR1LB ;TMR1低字节赋初值 MOVWF TMR1L MOVLW TMR1HB ;TMR1高字节赋初值 MOVWF TMR1H MOVF COUNT,0 ;COUNT作为查表地址偏移量送W CALL READ ;调用读取显示信息子程序 MOVWF PORTC ;将查表得到的驱动码送显 INCF COUNT,1 ;计数器加1 MOVLW D40 ;表中只有40个元素,计数值只能=039 SUBWF COUNT,0 ;检查计数器=40? ;BTFSC STATUS, Z ;否!跳一步 CLRF COUNT ;是!应该回到0 RETFIE ; 中断返回 ;* * MAIN BSF STATUS, RP0 ;设置文件寄存器的体1 MOVLW 00H MOVWF TRISC BSF PIE1,0 ;开放TMR1中断使能位 BCF STATUS,RP0 ;恢复到文件寄存器的体0 MOVLW 24H ;设置控制寄存器:暂时不打开TMR1 MOVWF T1CON ;预分频器设为1:4 MOVLW 0C0H ;GIE=1,PEIE=1 MOVWF INTCON CLRF COUNT ;清0计数器(即查表索引值) MOVLW TMR1LB ;TMR1低字节赋初值 MOVWF TMR1L MOVLW TMR1HB ;TMR1高字节赋初值 MOVWF TMR1H LOOP BSF T1CON,0 ; 启动TMR1开始计数 GOTO LOOP ;等待TMR1超时溢出中断 ;*读取显示信息的查表子程序* READ ADDWF PCL,1 ;地址偏移量加当前PC值 RETLW B10000000 ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州黔东南州凯里市农业农村局招募特聘农技员3人考前自测高频考点模拟试题及一套完整答案详解
- 2025年滁州城市职业学院引进高层次人才5人考前自测高频考点模拟试题及参考答案详解一套
- 2025年池州市贵池区招聘教师24人考前自测高频考点模拟试题完整参考答案详解
- 2025年烟台幼儿师范高等专科学校公开招聘工作人员(30人)模拟试卷及答案详解参考
- 2025年度日照市岚山区事业单位高校专场招聘模拟试卷及答案详解(新)
- 2025河北雄安雄州建设投资集团有限公司财务人员和首席营销官招聘3人模拟试卷及一套完整答案详解
- 2025河南周口市西华县中医院校园招聘17人模拟试卷及答案详解(考点梳理)
- 2025湖南长沙仲裁委员会调解员招聘100人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025甘肃定西市岷县人力资源和社会保障局招聘城镇公益性岗位人员11人模拟试卷附答案详解(黄金题型)
- 2025年合肥市口腔医院引进高层次人才10人模拟试卷附答案详解(典型题)
- 高血压的中医食疗与养生
- 中医体质量表
- 明清传奇小说
- 荐五年级上册第三单元习作猎人海力布故事缩写两个基本方法
- 初中生物学教材解读人教八年级上册生物圈中的其他生物江艾佳细菌八年级上册生物
- GA 1809-2022城市供水系统反恐怖防范要求
- 2022年全国工会财务知识大赛参考题库精简600题(含各题型)
- GB/T 2072-2007镍及镍合金带材
- GB/T 13460-2016再生橡胶通用规范
- 基础观感验收自评报告
- 班级管理(第3版)教学课件汇总全套电子教案(完整版)
评论
0/150
提交评论