单片机一秒是怎么计算得来的?

c语言怎么确定的,只要得出一秒计算方法。不必要程序。网上搜到的都是程序,要么就是不清楚到底怎么确定的,求指点

一般利用定时器溢出中断进行计算。1S/机器周期(执行一次nop所需时间) =(定时器最大值-初始值)。定时器最大值根据你使用的定时器位宽而定,一般51系列的只有16位,如果按每个机器周期为1us时计算的话,则定时器需要执行的次数大于了定时器的最大值,此时需要操作定时器进行多次中断进行累计,如可进行每10ms中断一次,连续执行100次后就达到了你所需要的1s的要求了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-01
用定时器来实现比较准确。
比如你的晶振是12MHz,那么单片机执行的周期就是: 1/ ( 12M / 12) = 1uS.
那么,如果你想要定时一秒,需要单片机执行 1000 000个指令周期。
也就是说,从你让定时器开始工作开始计时,当达到1000 000个指令周期之后,就是标准的1秒时间了。
第2个回答  2012-05-02
看看这篇文章,不但有程序,还有详细的说明。

参考资料:http://wenku.baidu.com/view/288bc626a5e9856a561260b0.html

相似回答