单片机延时程序经验

  • 格式:pdf
  • 大小:298.72 KB
  • 文档页数:10

下载文档原格式

  / 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机延时程序经验

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

 在keil C51中,直接调用库函数:

 #include // 声明了void _nop_(void);

 _nop_(); // 产生一条NOP指令

 作用:对于延时很短的,要求在us级的,采用_nop_函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于

10us,采用C51中的循环语句来实现。

 在选择C51中循环语句时,要注意以下几个问题

 第一、定义的C51中循环变量,尽量采用无符号字符型变量。

 第二、在FOR循环语句中,尽量采用变量减减来做循环。

 第三、在dowhile,while语句中,循环体内变量也采用减减方法。