单片机C语言中空语句.docVIP

  • 54
  • 0
  • 约5.46千字
  • 约 6页
  • 2017-07-05 发布于湖北
  • 举报
标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。 这在汇编语言中很容易实现,写几个nop就行了。 在keil C51中,直接调用库函数: #includeintrins.h????????? // 声明了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;i255;i++); ? unsigned char I; for(i=255;i0;i--); 其中,第二个循环语句C51编译后,就用DJNZ指令来完成,相当于如下指令: M

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档