欢迎来到天天文库
浏览记录
ID:10204552
大小:26.50 KB
页数:3页
时间:2018-06-12
《51单片机定时器初值的计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、51单片机定时器初值的计算一。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 12MH
2、z除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个机器周期。我们尽量应该让溢
3、出中断的次数最少(如50ms),这样对主程序的干扰也就最小。 开发的时候可能会根据需要更换不同频率的晶振(比如c51单片机,用11.0592M的晶振,很适合产生串口时钟,而12M晶振很方便计算定时器的时间),使用插接式比较方便。对12MHz 1个机器周期1us 12/fosc=1us方式0 13位定时器最大时间间隔 =2^13=8.192ms方式1 16位定时器最大时间间隔 =2^16=65.536ms方式2 8位定时器最大时间间隔 =2^8=0.256ms=256us定时5ms,计算计时器初值 M=2^K-X*Fosc/12
4、12MHz方式0:K=13,X=5ms,Fosc=12MHz则M=2^13-5*10^(-3)*12*10^6/12=3192=0x0C78 THx=0CH,TLx=78H, 方式1:K=16,X=5ms,Fosc=12MHz则M=2^16-5*10^(-3)*12*10^6/12=60536=0xEC78 THx=ECH,TLx=78H, 50ms12MHz THx=3CH,TLx=B0H, 10ms THx=D8H,TLx=F0H, 方式2:最大时间2^8Fosc/12=0.256ms 十进制数是怎么来的
5、? 6MHz一个机器周期12/6=2us 定时1ms 计数初值x(2^16-x)*2us =1000usx=2^16-500,TH,TL可置-50012MHz一个机器周期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
此文档下载收益归作者所有