永发信息网

在单片机编程中,12M晶振,延时1ms,常用for(i=0;i<120;i++);谁能帮我解释一下,为什么这个语句就是1ms?

答案:4  悬赏:30  手机版
解决时间 2021-03-26 23:56
  • 提问者网友:遮云壑
  • 2021-03-26 08:17
在单片机编程中,12M晶振,延时1ms,常用for(i=0;i<120;i++);谁能帮我解释一下,为什么这个语句就是1ms?
最佳答案
  • 五星知识达人网友:琴狂剑也妄
  • 2021-03-26 08:29
这个是for循环是一个软件延时,意思就是单片机执行for循环耗费的时间大约在1ms左右,并不准确的,这个for循环没有人能计数出来单片机在执行它能耗费多少机器周期,都是通过仿真看到的。

这个for循环也是别人在仿真时候测试CPU执行空i--指令耗费大约在1ms.
全部回答
  • 1楼网友:妄饮晩冬酒
  • 2021-03-26 09:28
做任务,谢谢
  • 2楼网友:荒野風
  • 2021-03-26 09:07
恩,谁说这个是1ms呢。呵呵不过你看加一个也许是10个时钟周期呢,然后120个大约就是1ms。精确定时使用定时器吧
  • 3楼网友:洒脱疯子
  • 2021-03-26 08:53

这个没有特别的标准,是根据指令周期累加的时间,然而现实情况就比较复杂,
函数调用时间没有考虑
现在很多单片机都流水作业,指令周期比传统51短的多,而且受跳转程序影响,跳转后流水线作废
受中断影响
死等延时不是个好方法,移植性差。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯