单片机 C 语言编程空指令产生短延时怎么办
标准的 C 语言中没有空语句。但在单片机的 C 语言编程中,经
常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实
现,写几个 nop 就行了。
在 keil C51 中,直接调用库函数:
#include // 声明了 void _nop_(void);
_nop_(); // 产生一条 NOP 指令
作用:对于延时很短的,要求在 us 级的,采用“_nop_”函数,
这个函数相当汇编 NOP 指令,延时几微秒。NOP 指令为单周期指
令,可由晶振频率算出延时时间,对于 12M 晶振,延时 1uS。对于
延时比较长的,要求在大于 10us,采用 C51 中的循环语句来实现。
在选择 C51 中循环语句时,要注意以下几个问题