在单片机中delay函数延时时间的计算

比如在AT89S52中 外接12M的晶振,给了个for循环
for(i=0;i<=125;i++)这个跟1ms是怎么算的。12M晶振的机器周期也就是1us
125次也不是1ms啊。是for循环相当于8个机器周期还是指令周期的问题?

第1个回答  推荐于2021-01-10
这是大概的延时时间,其实大部分的人编制这里不是125是120,。本回答被网友采纳
第2个回答  2014-12-24
这个是C语言,只有汇编语言能这么算。追问

我知道汇编能这么算只有汇编有执行指令是几个机器周期这个说法 但是C就没办法大致估算?

追答

那你就仿真试试,for循环执行一次是多久时间,也没什么准确的方法,因为C语言的一句话可能包含多个寄存器的访问

本回答被提问者采纳