51单片机定时器使用

51单片机定时器使用

ID:43515829

大小:328.13 KB

页数:5页

时间:2019-10-09

51单片机定时器使用_第1页
51单片机定时器使用_第2页
51单片机定时器使用_第3页
51单片机定时器使用_第4页
51单片机定时器使用_第5页
资源描述:

《51单片机定时器使用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、sTC单片机定时器的使用可以说非常简单,只要掌握原理,有一点的C语言基础就行了。要点有以下几个:1.一定要知道英文缩写的原形,这样寄存器的名字就不用记了。理解是最好的记忆方法。好的教材一定会给出所有英文缩写的原形。2.尽量用形像的方法记忆。比如TCON和TMOD两个寄存器各位上的功能,教程一般有个图表,你就在学习中不断回忆那个图表的形像。3.TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTERMODECONTROLREGISTER)定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址

2、,其字节地址为89H。其格式为:其中低四位定义定时器/计数器C/T0,高四位定义定时器/计数器C/T1,各位的说明:(1)GATE——门控制。GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。当INT0引脚为高电平时TR0置位,启动定时器T0;当INT1引脚为高电平时TR1置位,启动定时器T1。GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。(2)C/T——功能选择位C/T=0时为定时功能,C/T=1时为计数功能。置位时选择计数功能,清零时选择定时功能。(3)M0、M1——方式选择功能由于

3、有2位,因此有4种工作方式:M1M0工作方式计数器模式TMOD(设置定时器模式)00方式013位计数器TMOD=0x0001方式116位计数器TMOD=0x0110方式2自动重装8位计数器TMOD=0x0211方式3T0分为2个8位独立计数器,T1为无中断重装8位计数器TMOD=0x03单片机定时器0设置为工作方式1为TMOD=0x01                   这里我们一定要知道,TMOD的T是TIMER/COUNTER的意思,MOD是MODE的意思。至于每位上的功能,你只要记住图表,并知道每个英文缩写的原型就可以

4、了。在程序中用到TMOD时,先立即回忆图表,并根据缩写的单词原形理出每位的意义,如果意义不是很清楚,就查下手册,几次下来,TMOD的图表就已经在脑子里了。8位GATE位,本身是门的意思。7位C/T    Counter/Timer6位M1         Mode15位M0         Mode04.TCON:定时器/计数器控制寄存器(TIMER/COUNTERCONTROLREGISTER)TMOD分成2段,TCON控制更加精细,分成四段,在本文中只要用到高四段。TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该

5、位置1。(1)TR0(TR1)——定时器运行控制位当TR0(TR1)=0  停止定时器/计数器工作当TR0(TR1)=1  启动定时器/计数器工作(2)IE0(IE1)——外中断请求标志位当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。(3)IT0(IT1)——外中断请求信号方式控制位当IT0(IT1)=1脉冲方式(后沿负跳有效)当IT0(IT1)=0电平方式(低电平有效)此位由软件置1或清0。(4)TF0(TF1)——计数溢出标志位当计数器产生计数溢出时

6、,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。注意记忆方法,理解单词原形,就绝对不会把TF和TR搞混。TF的F也就是溢出OverFlow的F。TR的R就是运行Run。默认是0不运行,当然要置1才运行。1.STC单片机STC89C52RC定时器延时时间的计算延时时间要根据晶振频率计算,不同板子可能有所不同。时钟周期:1/时钟源,在我现在这块板子上,晶振频率是11.0592M,也就是时钟周期是1/11059200秒

7、机器周期:一般51单片机是12个时钟周期,我的板子也就是12/11059200秒单次定时最长时间:如果是16位的计数器,16位最大值是65535,共可计数65536次。基本的常数一定要记住,还要记住8位最大值是255,共可计数256次,还要记住8位上每位代表的数值。12*65536/11059200=0.0711s,也就是,71ms内的定时可以单次定时就完成。如果定时时间超过71ms,就要循环了。一次定时需要几次机器周期:计算公式:定时秒数/机器周期比如我要定时1秒,1/(12/11059200)=921600次,16位计数器

8、最大可计数65536次,921600次早就益出了。我们可以每次定时10ms,循环100次就可以定时1秒了,1s缩小100百倍就是10ms,也就是每次需要计数9216次。确实计数器初始值:定时10ms时,如果计数器从0开始计数,我们就不知道什么时候到了9216次。所以应该计数了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。