单片机定时器周期计算公式

电子常识

2640人已加入

描述

定时器是单片机的重要功能模块之一,在检测、控制领域有广泛应用。定时器常用作定时时钟,以实现定时检测,定时响应、定时控制,并且可以产生ms宽的脉冲信号,驱动步进电机。定时和计数的最终功能都是通过计数实现,若计数的事件源是周期固定的脉冲则可实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能全由一个部件实现。

10MS定时器初值的计算

1.晶振12M

12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次机器周期。

65536-10000=55536(d8f0)

TH0=0xd8,TL0=0xf0

2.晶振11.0592M

11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。

65536-9216=56320(dc00)

TH0=0xdc,TL0=0x00

50MS定时器初值的计算

1.晶振12M

12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次机器周期。

65536-50000=15536(3cb0)

TH0=0x3c,TL0=0xb0

2.晶振11.0592M

11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。

65536-46080=19456(4c00)

TH0=0x4c,TL0=0x00

使用说明

以12M晶振为例:每秒钟可以执行1000000次机器周期个机器周期。而T每次溢出最多65536个机器周期。我们尽量应该让溢出中断的次数最少(如50ms),这样对主程序的干扰也就最小。开发的时候可能会根据需要更换不同频率的晶振(比如c51单片机,用11.0592M的晶振,很适合产生串口时钟,而12M晶振很方便计算定时器的时间),使用插接式比较方便。

对12MHz1个机器周期1us12/fosc=1us

方式013位定时器最大时间间隔=2^13=8.192ms

方式116位定时器最大时间间隔=2^16=65.536ms

方式28位定时器最大时间间隔=2^8=0.256ms=256us定时5ms,计算计时器初值M=2^K-X*Fosc/1212MHz方式0:K=13,X=5ms,Fosc=12MHz则M=2^13-5*10^(-3)*12*10^6/12=3192=0x0C78THx=0CH,TLx=78H,

方式1:K=16,X=5ms,Fosc=12MHz则M=2^16-5*10^(-3)*12*10^6/12=60536=0xEC78THx=ECH,TLx=78H,

50ms12MHzTHx=3CH,TLx=B0H,10msTHx=D8H,TLx=F0H,

方式2:最大时间2^8Fosc/12=0.256ms

十进制数是怎么来的?6MHz一个机器周期12/6=2us定时1ms计数初值x(2^16-x)*2us=1000usx=2^16-500,TH,TL可置-500

12MHz一个机器周期12/12=1us12MHz一个机器周期12/12=1us定时50ms计数初值x(2^16-x)*1us=50000usx=2^16-50000,TH,TL可置-500定时器计内部晶振频率

计数器计外部输入CPU脚上的脉冲个数P3.4(T0)P3.5(T1)负跳变加一

当晶振为6MHz时,最高计数频率500KHz

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
飞龙在天213 2019-01-18
0 回复 举报
谢谢 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分