该延时函数在51单片机中,while语句循环1次和循环10次 ,各需要几个机器周期?在线等

2024年11月03日 14:28
有3个网友回答
网友(1):

你看看你的单片机的晶振是多少,我的是11.0592MHZ,你要是做1us延时的话,可以看下我的,
/*************************************************
Function: // 15us延时函数
Description: // 实现15us的整数倍延时
Input: // unsigned int i
*************************************************/
void Delay_15us (unsigned int i) //15*i+15us延时
{
for(i;i>0;i--)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
_nop_();
_nop_();
}
如果你要是做到1us的话可以直接写_nop_();这是个空指令,系统什么也不干,延时大概就是1us,如果你要是这么写的话,就要包含头文件#include

网友(2):

这个可以用keil 的软件仿真功能,单步执行看它经历的时间

网友(3):

或者看编译生成的汇编。。