延时函数的时间

2019-07-15 23:21发布

     请问这个函数,调用之后延时多长时间?


void delay()
{
;  ;

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
ilysunwei
1楼-- · 2019-07-16 04:37
第一:你没告诉我们你的晶振多大
第二:你没有告诉我们你用的是什么单片机
不同的单片机对于延时计算式不一样的,51的有51的算法,AVR有AVR的机器周期和时间算法。。
liwenbiao
2楼-- · 2019-07-16 06:07
这是两个_nop_()      
好剑者
3楼-- · 2019-07-16 09:27
希望大神计算下?
好剑者
4楼-- · 2019-07-16 12:05
ilysunwei 发表于 2013-8-1 20:25
第一:你没告诉我们你的晶振多大
第二:你没有告诉我们你用的是什么单片机
不同的单片机对于延时计算式不一 ...

哦,不好意思:
晶振:12Mhz
单片机:STC89C52Rc


谢谢了!
冰葑世纪
5楼-- · 2019-07-16 17:18
好剑者 发表于 2013-8-1 22:02
哦,不好意思:
晶振:12Mhz
单片机:STC89C52Rc

4us吧,进入函数和出函数用了2us,执行两个指令又2us。不过我不确定,建议你keil仿真下。
爱我别走
6楼-- · 2019-07-16 21:11
本帖最后由 爱我别走 于 2013-8-1 23:53 编辑

首先给出结论,该函数延时长度为4个机器周期,(12M晶振等于4us)。从两个方面来验证。
方法一:keil调试,如图一,图二。

图一.jpg
                          图一

图二.jpg

                 图二



方法二:分析反汇编指令,如图三,图四。

图三.jpg
                  图三


图四.jpg

                  图四



一周热门 更多>