- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51定时器初值设置问题
在计算机实时应用时,如:在工业的自动化控制中,如要求在某一时刻打开某个设备,而在另一时刻关闭某个设备等操作,这时就要进行定时或计数。这些功能是由系统内的定时/计数器电路来实现的,而在MCS-51中已经集成在芯片内。89C51单片机中有两个可编程的定时/计数器,分别称之为T0和T1,它有4种工作方式,其控制字、状态字均在特殊功能寄存器中,通过对它们的编程可方便地选择适当的工作方式;下面将详细地介绍:在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。在片内RAM区地址的高地址区,TMOD和TCON是名称,我们在写程序时就可以直接用这个名称来指定它们,当然也可以直接用它们的地址89H和88H来指定它们。特殊功能寄存器TMOD:定时器的工作方式控制寄存器,格式如下:
字节地址 B7 B6 B5 B4 B3 B2 B1 B0 GATE C/T M1 M0 GATE C/T M1 M0 88H T1各工作方式控制字 T0各工作方式控制字 从上表我们可以看出,TMOD被分成两部份,每部份4位。分别用于控制T1和T0。具体工作方式下面介绍。定时器控制寄存器TCON:格式如下
从图2中我们可以看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(我们暂不管)。主要介绍高4位的定时/计数器的作用;TF1(0)是计数器溢出标志位,当T1或T0被允许计数以后,T1(T0)从初值开始加1计数,最高位产生溢出时,TF1(0)就由0变为1。并向单片机的中央处理器CPU请求中断,当CPU响应时即转向相应中断子程序去执行,由CPU自身硬件清TF1(0)标志,当然也可由软件查询和清“0”标志。TR1(0)为计时计数的开停控制位,计数脉冲要进入计数器还真不容易,看下图,就是TR1(0)要为1,且GATE要设置为“0”计数开关才能合上,脉冲才能过来。因此,TR1(0)称之为运行控制位,可用指令SETB来置位以启动计数器/定时器运行,用指令CLR来关闭定时/计数器的工作。
定时/计数器的四种工作方式
工作方式0
定时器/计数器的工作方式0称之为13位定时/计数方式。它由TL(1/0)的低5位和TH(0/1)的8位构成13位的计数器,此时TL(1/0)的高3位未用。
M1M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合,对T0、T1要分别设定各控制字。
M1 M0 操作方式 功能描述 0 0 方式0 13位定时器 0 1 方式1 16位定时/计数器 1 0 方式2 具有自动重装的8位定时/计数器 1 1 方式3 定时0分2个8位定时器,
C/T:前面我们说过,定时/计数器即可作定时用也可用计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在我们。如果C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。顺便提一下:一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的初学者要注意。
GATE:看上图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况:
GATE=0,分析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种情况下,开关的打开、合上只取决于TR1,只要TR1是1,开关就合上,计数脉冲得以畅通无阻,而如果TR1等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR1。
GATE=1,在此种情况下,计数脉冲通路上的开关不仅要由TR1来控制,而且还要受到INT1引脚的控制,只有TR1为1,且INT1引脚也是高电平,开关才合上,计数脉冲才得以通过。这个特性可以用来测量一个信号的高电平的宽度,想想看,怎么测?
工作方式1
工作方式1是16位的定时/计数方式,将M1M0设为01即可,其它特性与工作方式0相同。
工作方式2
在介绍这种式方式之前先让我们思考一个问题:比如我要计1000个数,可是16位的计数器要计到65536才满,怎么办呢?办法是用预置数,先在计数器里放上64536,再来1000个脉冲,不就行了吗?是的,但是计满了之后我们又该怎么办呢?要知道,计数总是不断重复的,当计满并溢出后,计数器里面的值变成了0(为什么,这时硬件自动清零),因此下一次将要计满65536后才会溢出,这可不符合要求,怎么办?当然办法很简单,就是每次一溢出时执行一段程序(要不然要溢出干吗?)可以在这段程序中做把预置数64536送入计数器中的事情。所以采用工作方式0或1都要在溢出后做一个重置预置数的工作,做工
文档评论(0)