单片机(教材)第6章东北大学石亚和老师版.docVIP

单片机(教材)第6章东北大学石亚和老师版.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机(教材)第6章东北大学石亚和老师版

PAGE  PAGE 21 第六章 89C51单片机的定时器/计数器 定时器/计数器是伴随计算机技术一并出现的。计算机本身工作需要时钟节拍,另外还有大量定时和脉冲计数的需求场合。例如PC机上都有实时时钟系统,可以准确地给出年月日时分秒信息;单片机系统运行中也可能需要某种定时应用,比如每10ms进行一次A/D转换,或每100ms扫描一次键盘,某种操作后要延时200μs再进行下一步操作,等等。至于计数应用也很多,这主要是对外部事件脉冲进行计量,比如某些数字化仪表,前端采用的就是电压/频率转换技术,把模拟量转换为一定频率的脉冲,如水表、电表、煤气表等。许多工业应用的流量检测仪表也是把体积流量或质量流量转换为与流量成比例的电脉冲。单片机中具有的定时器/计数器能方便地解决这些问题。在工业检测和控制应用中,许多场合都需要用到定时或计数功能。那么,定时器和计数器有怎样的区别和联系呢? 单片机内部的定时器/计数器硬件结构是相同的,其工作本质是对脉冲计数。如果脉冲来自单片机外部,其频率未知,且随时变动,因此这时应采用计数器方式;如果脉冲来自系统内部,它的脉冲频率或周期是已知的,稳定的,则可通过选择不同的时间常数,实现定时器功能。 定时器运行的基础是振荡周期,实质是其12分频即机器周期。衡量定时器的技术指标有下列内容: 定时精度:单片机定时器的运行是对机器周期进行计数,因此定时精度与系统主频有关,比如主频为12MHz,则定时精度就是一个机器周期,即1μs。 定时间隔:单片机定时器单次运行所能实现的最大定时间隔,对于16位运行方式,这个时间间隔就是65536*1μs=65.536ms。 外部脉冲限制:当用作计数器时,单片机对外部输入脉冲的识别方法是:在一个机器周期检测到高电平,在下一个机器周期检测到低电平,则可确认引脚上的一次负跳变,计数器加1。因此可以推知,引脚上的脉冲频率应不高于主频的1/24。例如主频为12MHz,则外部脉冲频率应不超过500KHz。不仅如此,对外部脉冲的电平宽度也应提出限制,即脉冲宽度(正脉冲或负脉冲)不得小于一个机器周期的宽度,否则有可能丢失脉冲,如图6.1所示。 图6.1 外部脉冲宽度不足一个机器周期造成的脉冲丢失 89C51单片机中设置有专门管理定时器/计数器的特殊功能寄存器,包括一个方式控制寄存器TMOD和4个常数寄存器TL0、TH0、TL1和TH1。定时器/计数器的运行既可以采用程序查询方式,也可以采用中断方式。 6.1. 定时器/计数器概述 89C51单片机片上有两个16位的定时器/计数器,称为T0和T1。它们硬件结构相同,功能上略有差异,都能用作定时器和外部脉冲计数器。 图6.2 给出了定时器/计数器T0和T1的硬件结构。两个16位定时器都是加1计数器,它们都分别由高低字节组成,命名为TH0、TL0、TH1和TL1。定时器/计数器在本质上都是对脉冲计数,但可以用软件选择脉冲源。如图中所示,如果选择定时器方式,即C//T=0,脉冲来自系统振荡器和分频电路,是对机器周期进行计数。由于机器周期的宽度固定,因此可实现精确定时。如果选择计数器方式,即C//T=1,则脉冲源来自外部引脚T0或T1。 图6.2 89C51单片机的定时器/计数器结构 设置为定时器方式时,89C51单片机片内振荡器输出经过12分频后输入到定时器,也就是每个机器周期将使定时器T0(或T1)加1,直至加满后再加1发生溢出。双字节常数寄存器的最大值是FFFFH,即65535。在初始值为0的情况下,当第65536个计数脉冲到来时发生溢出。溢出可使专用寄存器TCON中的TF位置1,这可以由软件查询,也可以产生中断请求。当单片机采用12MHz晶体时,一个机器周期恰好是1μs,用做精确定时很方便,也很准确。此时定时器的时间分辨率为1μs,最大定时间隔为65.536ms。因为是加1计数,所以初始常数0000H将导致最大定时间隔。 设置为计数器方式时,通过引脚T0或T1接入外部脉冲。计数器捕捉外部脉冲的下降沿,每当发生负跳变时计数器加1。CPU在每个机器周期的S5P2期间采样外部引脚的电平状态,若一个机器周期检测到高电平,下一个机器周期检测到低电平,则确认一次负跳变,计数器加1。在随后机器周期的S3P1期间计数器常数寄存器内容更新。 定时器/计数器在使用前先要指定工作方式,并对常数寄存器装载初始值,然后启动运行。如果在整个工作过程中不改变工作方式,则只需要在系统初始化时指定一次工作方式即可,但装载常数和启动运行是每次都需要的。在运行期间CPU仍然正常执行程序,定时器/计数器与CPU并行工作,互不干扰,直至发生溢出,才可能中断CPU的当前操作。可见,

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档