- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 MCS-51单片机的定时计数器
第7章 MCS-51单片机的定时/计数器 本章要点: 常用的定时方法 单片机定时/计数器的结构及定时、计数原理 单片机定时/计数器的控制 单片机定时/计数器的工作方式 单片机定时/计数器的应用 本章难点: 单片机定时/计数器的工作方式和应用 GATE位的应用 7.1单片机的定时方式概述 要实现定时/计数,常用以下三种主要方法: (1)软件定时。如前面学习过的延时程序。 (2)数字电路硬件定时。如采用小规模集成电路器件555。 (3)可编程的硬件定时。是前两种方法的结合,也是本章所讲。该方法是硬件定时,但却能极容易地通过软件来确定和改变它的定时值,通过初始化编程,能够满足各种不同的定时和计数要求,因而在嵌入式系统的设计和应用中得到了广泛的应用。如本章所要讲述的MCS-51单片机的定时/计数器T0和T1就属于这种方式。 7.2 单片机的定时/计数器结构及基本原理 7.2.1 定时/计数器的结构 两个16位的可编程的定时/计数器,分别称为定时/计数器0和定时/计数器1,即T0和T1。 每个定时/计数器均采用加法型计数结构,即每个计数脉冲加1,直至溢出。 T0由两个特殊功能寄存器TH0和TL0组成; T1由两个特殊功能寄存器TH1和TL1组成。 T0和T1都可由软件设置为定时工作方式或计数工作方式及其他灵活多样的可控功能方式。这些功能都由特殊功能寄存器TMOD和TCON来控制。 7.2.2 定时/计数器的基本原理 单片机的定时功能是通过计数的方法来实现的,因 此MCS-51单片机的定时器也具有计数功能。定时/ 计数的基本原理如下: (1)计数功能。计数是指对外部事件进行计数,外 部事件的发生以脉冲来表示,因此计数功能的实质 是对外部脉冲进行计数。 MCS-51单片机用引脚T0(P3.4)作为定时/计数器 T0的外来脉冲的输入端,用引脚T1(P3.5)作为定 时/计数器T1的外来脉冲的输入端。 外来脉冲负跳变有效。单片机在相邻两个机器周期 时间内,若上一个机器周期采样T0/T1端的电平为 “1”,且下一个机器周期采样T0/T1的电平为“0”,计数器就加1,即在两个机器周期内,计数器加1。 由于单片机对外来脉冲的采样是在2个机器周 期中进行的,所以,为保证计数的正确性, 要求外来脉冲的频率不高于单片机系统晶振 频率的1/24。 (2)定时功能。定时的实质还是计数,只不过定时功能的计数脉冲不是来自单片机外部,而是来自单片机内部。即将系统振荡脉冲12分频后作为定时功能的计数脉冲。又由于一个机器周期等于12个振荡脉冲周期,所以定时功能的计数是每到一个机器周期计数器就加1。 7.2.3 计数满/定时到时的处理 从上面两种功能的讲解中可以知道,每来一个脉冲,定时/计数器就加1,而T0/T1又都是16位的结构,当加到T0/T1为全“1”时,若再来一个脉冲,T0/ T1就要回到全“0”,也就是要溢出,此时,对计数功能来说,表示计数已满;对定时功能来说,表示定时时间已到。 计数满或定时到时,CPU怎么知道呢?答案很简单,就是定时/计数器产生溢出中断请求,也就是T0/T1将中断标志位TF0/TF1置1。 7.2.3 任意计数或定时的实现方法 由于T0/T1都是16位结构,也就是计数容量是16位。16位用来计数时计满数是65536(即216),如果每计一个数用时1μs,那么用作定时时最多定时65536μs。问题是实际生活中经常会有小于65536的计数要求,如一打为12瓶,一瓶药片为100粒,怎么样来满足这样的要求呢? 采用的方法是预置计数器初值的办法。比如要计100,就先将计数器初值设为65436,再计100个数,就到65536,即才产生溢出中断请求。 7.1定时/计数器的控制 定时器/计数器T0、T1都可以工作在定时方式 和计数方式,并且有4种工作模式,这些是通 过改变两个特殊功能寄存器TCON、TMOD的 值来进行控制的。下面介绍一下这两个特殊 功能寄存器的使用方法。 7.3.1 定时器控制寄存器TCON TF1/TF0:定时/计数器T1和T0的计数溢出中断请求标志位。当定时/计数器溢出时由硬件置“1”,表示定时到或计数满,CPU响应中断后又由硬件自动清“0”。也可由软件来查询测试该位的状态。 TR1/TR0:定时/计数器T1和T0的运行控制位。当TR1(TR0)=0时,定时/计数器停止计数;当TR1(TR0)=1时,定时/计数器开始计数。也可以用软件方式来置位或清0。 7.3.2 工作模式寄存器TMOD 不能位寻址 GATE:门控位。当GATE=0时,只要用软件使TR0(或TR1)置1就可以启动定时/计数器,而不管(或)的电平是高还是低(参见后面的定时器/计数器逻辑结构图);当GATE=1时,只有(或)引脚为高电平且由软件使T
文档评论(0)