单片机11.0592MHz的晶振延时1s为什么用for语句1000*110?怎么算的?

呵呵、大哥们、知道是大概值,但至少能算出是接近1s,定时刚学会,知道很精确、我就想知道是怎么算的、还有这个不是只跟晶振频率有关吗?

这个是在调试过程中,调试的,一般都是这么用的!
但是这个不是1S,
要想精确时间 ,还是用定时器

执行一行语句,一般都是一个或者两个机器周期
机器周期就是晶振决定的
一般都不是算的,在KEIL中调试出来的,更改两个for循环的值,一次一次试出来的!在keil中晶振设置不同 时间就不同
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-09
程序是怎样的呢?
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
是这样吗?
指令周期=(1~4)机器周期=(1~4)*12/fosc=(1~4)*12/11.0592M,根据不同指令的周期长短计算出来的,但这个方法会受外部电路和环境影响,所以要准确定时还是用定时器
第2个回答  2013-04-07
你可以这么理解,单片机像人一样数数字,给的数越大数的时间越长,也就是你给的1000*110,由于人的数数速度不同,故单片机也一样,可通过软件的仿真算出大约时间
第3个回答  2013-04-07
这个无法判断,因为不同的单片机执行的速度不一样,这个你可以通过KEIL仿真 得出执行一条指令的时间
第4个回答  2013-04-07
肯定不是标准的1s,只是个大概值
相似回答