####51单片机 4M晶振,如何实现1秒钟的精确定时?#####
初看,很简单,越研究越深入,发觉越麻烦。若换成12M 或者 6M的晶振,不叫问题,but,目前要求用89C51,晶振4M,实现1s的精确定时。
我们知道 对51单片机而言,一个机器周期等于12个晶振周期,故:
若晶振为12M,1个机器周期=12*(1/12M)=1us
若晶振为 4M,1个机器周期=12*(1/4M)=3us
用Timer0,设 TMOD = 1,使之工作于16-bit timer/counter.
一个时钟周期为3us的话<对应晶振是4M>,如何实现1s的定时呢?
最大计时为65536*3us=196.608ms ,无论这个值取何值,例如150ms,定时多少次,例如6次<0.9s>或者7次<1.05s>,怎么得到1s呢?凑不出这个整数,,< 1s/3us=1000000/3=333333.3333333333333333333333333333 >
请大家指教一二,该如何实现?