单片机延时程序怎么计算时间

void delay(uint z)
{
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
怎么算出当z=1时,其运行时间为1ms?(晶振为11Mhz)还是其他的答案!

C语言脱离了底层操作,这些语句到底需要多少个指令周期,不便于计算,一般用软件仿真来查看延时时间,好多场合也不必精确延时,如果要精确延时,可以用内部定时器
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-28
直接这么计算时间是很难算的, 不同的单片机有不同的指令时间。 而且要看具体有几条指令需要看汇编。 最好是用示波器来测试时间。
另外, 这种延时会受到中断程序的影响。

要想要精确的时间, 最好使用定时器.本回答被提问者采纳
第2个回答  2011-07-28
110 不是算出来 是试出来的
第3个回答  2011-07-28
用示波器看,或者反汇编查指令周期