第五章-定时-计数器.pptx

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
会计学;;5.1 定时/计数器功能 5.1 定时/计数器功能 5.4.1 定时器功能—起定时延时作用和在规定的引脚上 输出一定宽度的方波信号。 所谓定时功能就是通过来自单片机内部的时钟脉冲作计数脉冲,使计数器计数,即每个机器周期计数器加1,计数值达到予置值后,定时/计数模块产生溢出。;5.1 定时/计数器功能 5.1 定时/计数器功能 5.4.2 计数器功能 所谓计数是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。;5.2 定时和计数???硬件结构 PIC16F877单片机配置了3个定时器/计数器模块,分别为TMR0、TMR1和TMR2。 共同点:它们的核心部分都是一个由时钟信号触发,按递增方式累加工作的循环计数器;从预先设定的某一初始值开始累计,在累计到计数器产生溢出,并同时建立一个相应的溢出中断标志。 三者的不同点: TMR0为8位宽,有一个可选的预分频器,用于通用目的,可用 于定时和计数; TMR1为16位宽,附带一个可编程的预分频器和一个可选的低 频时基振荡器,适合与CCP(捕捉/比较脉宽调制)模块 配合使用来实现输入捕捉或输出比较功能,也可用于定 时和计数; TMR2为8位宽,附带一个配合使用来实现PWM脉冲宽度调制信 号的产生,只能用于定时。;5.2.1定时器/计数器TMR0的硬件结构 *TMR0可以用于定时控制、延时、对外部事件进行计 数和检测等场合。 *TMR0可以使用内部系统时钟,也可以使用外部始终。 *TMR0用于内部定时或对外计数时都不占用CPU时间。 1.定时器/计数器TMR0具有以下特点: (1)TMR0是一个8位宽的由时钟信号上升沿触发的循环 累加计数寄存器。 (2)有一个专用的外部触发信号输入端 (T0CKI-RA4)。 (3)TMR0也是一个在文件寄存器区域内统一编 址的寄 存器,地址为01H或101H,用户用软件方式可直接 读/写计数器的内容。 (4)具有一个软件可编程的8位预分频器。 ;(5)当使用内部触发信号,即指令周期作为时钟信号 源时,模块TMR0工作于定时方式,触发方式为固 定上升沿触发有效。在计数器溢出时,相应的溢 出中断标志T0IF自动置位,并可产生溢出中断。 (6)当外部时钟信号源时,模块TMR0工作于计数方 式,触发方式可由程序设置位上升沿触发或下降 沿触发有效。在计数器溢出时,也可产生溢出中 断。;2.与定时器/计数器TMR0模块相关的寄存器 (1)选项寄存器 OPTION_REG (1)是作为定时器还是作为计数器 (2)决定分频器的分频系数 (3)时钟是上升沿/下降沿触发 (2)中断控制寄存器 INTCON (1)中断总控制--允许/禁止 (2)各类中断的控制 (3)各类中断的标志 (3)RA口方向寄存器 TRISA 当TMR0工作于计数器时,RA4必须设为输入,以便从该脚输 入时钟脉冲信号。 (4)定时器/计数器 TMR0 8位累加计数寄存器;第8页/共29页;与计数和定时无关;第10页/共29页;3 定时器/计数器TMR0模块的电路结构和工作原理 ;4.分频器和控制逻辑电路 分频器实际上也是一个8位累加计数器,它只能配合TMR0或WDT输出的时钟由PS2—PS0设定分频比,这个分频比由OPTION_REG寄存器中的PS2—PS0决定。 5.TMR0累加计数寄存器 TMR0有定时器和计数器两种工作模式。这两种模式之间的差异是触发信号的来源不同。TMR0的工作模式由T0CS位(选项寄存器OPTION_REG)决定;TMR0 定时时间的计算公式: t= P ×(28 – X) × T X= 28 – t/(TxP) t:设定的定时时间—uS P:分频器的分频比--2~256 取值为2、4、8、16、32、64、128、256。 X:TMR0的计数初值--0~255 T:指令周期—uS 定时器最短的定时时间:t=2x(256-255)x1uS=2uS 定时器最长的定时时间:t=256x(256-0)x1uS=65535uS ;TMR0的定时程序举例: 用TMR0产生10毫秒的定时时间,步骤如下: (1) 求出10毫秒定时时间对应的计数初值 X= 28 – t/(TxP) =256-10000/(1x64)

文档评论(0)

kuailelaifenxian + 关注
官方认证
内容提供者

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

认证主体太仓市沙溪镇牛文库商务信息咨询服务部
IP属地上海
统一社会信用代码/组织机构代码
92320585MA1WRHUU8N

1亿VIP精品文档

相关文档