精确定时一般用汇编来写,如果你选用晶体
F=12MHZ,则定时器每加一就是
1uS,这样就可以设定定时器的初始值了,
如果你需要50mS的定时,定时器初始值为:65536-50000=15536
即
3CH,B0H
TH0=3CH
TL0=B0H
(设定时器0用来定时,工作在16位
MOV
TMOD,#11H)如果你需要更长时间定时则需要软件计时了,比如一秒,需要
(50ms
20=1000ms)
20次了,这需要在定时器0的中断程序中计算了!
1、对TH0、TL0赋值,且启动定时器(TR0=1)后,定时器开始工作。程序继续向下执行,不会停止(除非有语句要求其停止),直到定时器寄存器溢出,TF0=1。
2、启动完定时器后,晶振周期通过12分频,得到机器周期,每一个机器周期,TL0加1,TL0溢出后,TH0加1。直至TH0溢出。整个过程由硬件完成,软件只需要关心定时器模式,定时时间长短,及定时器的启动与停止。
以上就是关于51单片机定时器精确定时方法全部的内容,包括:51单片机定时器精确定时方法、51单片机 定时问题、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)