第六章 定时器/计数器TMR0.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 定时器/计数器TMR0

第4章 定时器/计数器 定时器/计数器模块是大部分单片机都内置的一项重要功能 定时器/计数器的的核心模块为计数累计功能,通常是由时钟脉冲来驱动。 核心功能为: 当对内部标准时钟累计计数时,用作定时器。 当对外部脉冲累计计数时,用作计数器。 一般适用于以下不同的应用场合: 对外部事件计数:单片机对其端口引脚上输入的由外部事件产生的触发信号进行准确地计数,依据计数结果来控制完成相应的动作; 对内部产生定时信息或定时中断; 输出定时信号:或从单片机I/O引脚上向外部输出一系列符合一定时规范的方波信号。 检测信号:从单片机I/O引脚上,检测外部电路输入的一系列方波信号的脉宽、周期或频率; 二进制异步加法计数器 分频器电路 累加计数器的工作过程 8位TMR0累加计数器工作总是在送入初始值(称为时间常数)以后,启动计数,推迟2个指令周期,在初始值的基础上,对脉冲跳变触发产生计数,直到计数寄存器TMR0计满到FFH再加1,TMR0恢复到0,产生溢出和溢出标志T0IF。如果是中断使能T0IE开启的情况下,T0IF就能引发中断。 TMR0恢复到0后, 将继续自动对跳变触发产生计数加1, TMR0的计数始终不会停,称为循环计数。 定时器/计数器TMR0模块的电路结构和工作原理 中断逻辑 预分频参数选择 TMR0具有以下硬件结构特点总结 (1)TMR0是一个8位宽的由时钟信号上升沿触发的循环累加计数寄存器。 (2)有一个专用的外部触发信号输入端(T0CKI)。 (3) TMR0也是一个在文件寄存器区域内统一编址的寄存器,地址为01H或101H,用户用软件方式可直接读/写计数器的内容。 (4) 具有一个软件可编程的8位预分频器。 (5) 当使用内部触发信号,即指令周期作为时钟信号源时,模块TMR0工作于定时方式,触发方式为固定上升沿触发有效。在计数器溢出时,相应的溢出中断标志T01F自动置位,并可产生溢出中断。 (6)当使用外部时钟信号源时,模块TMR0工作于计数方式,触发方式可由程序设置位上升沿触发或下降触发有效。在计数器溢出时,也可产生溢出中断。 分析TMR0两种工作模式的特点 设置定时模式特点: 计数触发信号来源于系统时钟,即为内部的指令周期信号。定时的长短主要取决于3种因素。 一是初始时间常数,其数值设置越小,定时越长,最大定时为256个触发脉冲周期。 二是系统振荡频率,PIC单片机时钟振荡频率的范围为0~20 MHz,频率越高,计数信号为指令周期就越短,相同条件下的定时时间就越短。假定时钟振荡频率为4 MHz,指令周期为1μs,那么如果不考虑其他因素,理论上TMR0固有定时时间最短为1μs,而最长为256μs。 三是预分频器,是对指令周期信号进行按比例分频,可在一定范围内大幅调整定时的长短,分频比越大,定时越长。 设置计数模式特点: 计数模式,计数触发信号来源于I/O端口RA / T0CKI信号。 只有处于计数模式下,跳变沿选择TOSE位才有效 对T0CKI信号,既可以是标准的脉冲信号(周期脉冲信号),也可以是无规则的时序脉冲信号。因此,计数和定时不同,TMR0计数的长短一般不能确定定时的长短。 了解即可: 计数脉冲和指令周期的同步:单片机将对TOCKI引脚在1个指令周期内做2次等间隔的判读来判断是否有计数有效沿出现,如果一次为高另一次为低,则表明出现了一个脉冲沿跳变,如果此跳变符合T0SE跳变沿的设置,TMR0的值就加一。所以,外部输入信号必须保证2次跳变之间的间隔至少维持2个振荡周期的宽度(1个指令周期=4个振荡周期),再另外加多20ns的内部电路延时。 当计数寄存器写入初始值时,TMR0将被推迟2个指令周期,便开始或重新启动累加计数。当精度要求高时,可以通过定时参数补偿2个指令周期。精度要求不高时,可以不考虑。 若没有使用分频器,TMR0会在每个指令周期信号(时钟周期的4倍)到来时自动加1。 若使用分频器,TMR0会在指令周期信号分频某个倍数后产生的信号时自动加1,这时TMR0最长固有定时时间将达到65535us。 定时时间计算 假设:定时时间为t,标准时钟周期为T, 实际累加记录的脉冲数 N,有关系式: t = T * N , N = t / T 解决问题: 控制计数器,当定时时间到时,发出通知; 怎样发出通知?通过计数器的什么? 怎样把N写入计数器? 定时时间计算:(计数初值,应保证对剩余空间计数定时=需要记录的脉冲数 N * T ) 对8位定时器TMR0,不使用分频器时,定时时间的计算公式为: (28 – 计数初值-2) ×指令周期, 使用分频器时,定时时间的计算公式为: 分频比×(28 – 计数初值) ×指令周期 分频比取值为2、4、8…256。 初始值计算

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档