首页>手机 > 正文

_nop_()函数

标准的C语言中没有空语句。但在单片机C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。

keilC51中,直接调用库函数:#include // 声明了void _nop_(void);_nop_();// 产生一条NOP指令作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。在选择C51中循环语句时,要注意以下几个问题第一、定义的C51中循环变量,尽量采用无符号字符型变量。第二、在FOR循环语句中,尽量采用变量减减来做循环。第三、在do…while,while语句中,循环体内变量也采用减减方法。这因为在C51编译器中,对不同的循环方法,采用不同的指令来完成的。

下面举例说明:unsigned char i;for(i=0;i<255;i++);unsigned char i;for(i=255;i>0;i--);其中,第二个循环语句C51编译后,就用DJNZ指令来完成,相当于如下指令:MOV 09H,#0FFHLOOP: DJNZ 09H,LOOP指令相当简洁,也很好计算精确的延时时间。

标签: 空语句单片机C语言编

推荐DIY文章
性能旗舰一加 10 Pro首销战报出炉 1秒破亿
一加 10 Pro重磅发布,最强性能旗舰10至名归
千万销量千家售后 一加多触点布局国内市场
科技加持,未来已来,“头号玩家”不再是科幻
一加 10 Pro发布在即,性能屏幕影像全方位提升
一加中国区新任总裁李杰 :做好品牌与用户之间的连接器
精彩新闻

超前放送