定时器计数器解决方案.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.1 计数概念的引入 生活中计数的例子处处可见.例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等.再举一个工业生产中的例子,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的方法,用一个周长是1米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长1米嘛,所以只要记下轮转了多少圈,就可以知道走过的线有多长. 从一个生活中的例子看起:一个水盆在水龙头下,水龙头没关紧,水一滴滴地滴入盆中.水滴不断落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满.录音机上的计数器最多只计到999….那么单片机中的计数器有多大的容量呢?8051单片机中有两个计数器,分别称之为Timer0和Timer1,这两个计数器分别是由两个8位的RAM单元(TH*/TL*)组成的,即每个计数器都是16位的计数器,最大的计数量是65536(记忆!FFFFH+1). 溢出 让我们再来看水滴的例子,当水不断落下,盆中的水不断变满,最终有一滴水使得盆中的水满了.这时如果再有一滴水落下,就会发生什么现象?水会漫出来,用个术语来讲就是“溢出 overflow”. 水溢出是流到地上,而计数器溢出后将使得TF0变为“1”.一旦TF0由0变成1,就是发生了变化,产生了变化就会引发事件,就象定时的时间一到,闹钟就会响一样.引发的事件,就是系统需要响应定时/计数中断服务程序了,现在我们来研究另一个问题:要有多少个计数脉冲才会使TF0由0变为1. 任意定时及计数的方法 刚才已研究过,计数器的容量是16位,也就是最大的计数值到65536,因此计数计到65536就会产生溢出.问题是在现实生活中,经常会有少于65536个计数值的要求,如包装线上,一打为12瓶,一瓶药片为100粒,怎么样来满足这个要求呢? 提示:如果是一个空的盆要10000滴水滴进去才会满,我在开始滴水之前就先放入一勺水,还需要10000滴嘛? 我们采用预置数的方法,要计数100次,那就先放进65436,再来100个脉冲,不就到了65536了吗.定时也是如此,假设每个脉冲是1us,则计满65536个脉冲需时65.536ms.如果现在只要10ms定时怎么办?10个ms为10,000个us,所以,只要在计数器里面放进65536-10000=55536就可以了. 1.51系列单片机片内有两个十六位定时/计数器: 定时器0(Timer0)和定时器1(Timer1) Note:随着单片机型号的不同,内部定时器的个数会不一样 2.两个定时器都有定时或事件计数的功能,可用于 (1)内部定时控制;(2)对外部事件计数和检测等场合 3.定时/计数器实质是加1计数器. T0由2个8位SFR TH0和TL0构成, T1由2个8位SFR TH1和TL1构成. 4.每个定时器都可由软件设置为定时工作方式(C/T*=0)或计数工作方式(C/T*=1) (MOV TMOD,#**H) 5.T0和T1受特殊功能寄存器TMOD和TCON控制. 6.定时器/计数器一旦启动,便可以和CPU并行工作,对提高CPU工作效率和简化外围电路大有益处. 7.定时工作方式 (1)设置为定时工作方式时,定时器计数的脉冲是由51单片机片内振荡器经12分频后产生的. (2)每经过一个机器周期定时器(T0或T1)的数值加1直至计数满产生溢出.(记忆!) 如:当8051采用12MHz/6MHz/11.0592MHz(12/*)晶体时,每个机器周期为1us/2us/1.085us,计数值加1,耗费一个机器周期,相当于消耗了1us/2us/1.085us 8.计数工作方式 (1)设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5) 对外部脉冲信号计数. (2)当输入脉冲信号产生由1至0的下降沿时,定时器的值加1,在每个机器周期,CPU采样引脚T0和T1的输入电平.若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加1. (3)由于检测一个1至0的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一. (4)虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一个完整的机器周期. TR1/TR0: T1/T0运行控制位 Timer 1/0 Run control bit note: Set/cleared by software to turn Timer/Counter 1/0 ON/OFF TR1/0=1,启动T0计数( SETB TR0) TR1/0=0,停止T0计数 (CLR TR0) GAT

文档评论(0)

三沙市的姑娘 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档