历史上的今天
今天是:2025年03月01日(星期六)
2021年03月01日 | 51单片机定时器工作原理及用法
2021-03-01 来源:eefocus
TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。以上是控制低4位的,所以是对应着T0。
TR0:T0定时器 使能开关,TR0 = 1,开始工作; =0停止工作。
ET0:T0定时器中断开关,定时时间一到,就会跑去中断程序。ET0=1,中断使能,=0失能。
EA : 中断总开关,你可以想象成电路的总电闸,EA=1,中断使能; =0,中断失能。
TH0,TL0 : T0定时器计数寄存器,组成16位的计数,0x0000--0xFFFF(0--65535),只要TH0TL0=0xFFFF(65535),程序就会跑去中断程序,在中断程序中,我们要重新给TH0,TL0重新赋值的。
假如说,我们定时50毫秒,TH0,TL0对应着什么值呢? 上面我们说了,TH0,TL0,组成的16位计数器计数范围是 0---65535 。50ms = 50 000us,我们只要让 TH0 TL0 从(65535 - 50000)开始计数,TH0,TL0就会不停的+1,直到TH0,TL0=65535,就是计数了50000次,时间就是过了50ms。我们只要在中断程序里面,重新赋值给TH0,TL0=(65535 - 50000),定时器就会不停得每50ms中断一次了。
所以,TH0=(65535-50000)/256; TL0 = (65535-50000)%256 ;
好吧,T0程序例子,定时20ms的程序 :

TO 20ms 例子程序
说完了TO,T1该怎么办? 我开始的时候说了,TO,T1是一对双胞胎。大家把上面T0例子程序:
(TMOD = 0x01, ET0 ,TR0,TH0,TL0 ,interrput 1) 改为
(TMOD = 0x10, ET1 ,TR1,TH1,TL1 ,interrput 3) 这样就变成了T1,定时器的程序。
下一篇:51单片机指令系统寻址方式
史海拾趣
|
开始做一下自我介绍吧,我是一名湘潭大学05级自动化专业的学生。性格能内能外,觉得 还应该不断完美。下面说一说我大学前面三年的生活吧。 大一大二没学什么课外的知识,平平淡淡,如果参加社团不算的话。大三有机会能够跟一 个老 ...… 查看全部问答> |
|
不知道怎么的,我的机器运行Quartus时候老死机或者黑屏。 运行其他的软件啥事没有,QuartusII的是从官网上下载的9.0。 然后又试过8.0的破解版本。还是一样的结果。 是不是硬件搭配有点问题。 但是,为什么其他不运行Quartus的时候好好的呢。 ...… 查看全部问答> |
|
protues 安装后 元件可以找到 但是放不进去 安装包里面说吧时间改为3月1号以前就可以放元件什么意思? 我的是protues 7.6 SP4的 希望能说的详细点 谢谢!!!… 查看全部问答> |
|
请教各位一个问题: device通过activesync和pc互联的情况下,wifi的上网功能是不是不能够正常的使用呀? 在ce/mobile上都发现activesync使用的情况下wifi的上网功能会不能正常的使用 … 查看全部问答> |
|
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,通过串行接口与单片机进行通信。引脚少占用单片机资源较少,是单片机引脚资源紧张的不二之选,市场价一般是1元左右,外加两个4 ...… 查看全部问答> |




