_nop_()函数
来源:互联网 发布:传奇1.85技能数据库 编辑:程序博客网 时间:2024/06/06 21:39
标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。
在keil C51中,直接调用库函数:
#include<intrins.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;i<255;i++);
unsigned char i;
for(i=255;i>0;i--);
其中,第二个循环语句C51编译后,就用DJNZ指令来完成,相当于如下指令:
MOV09H,#0FFH
LOOP: DJNZ09H,LOOP
指令相当简洁,也很好计算精确的延时时间。
- _nop_()函数
- _nop_()函数引发的血案
- C语言中_nop_()函数的测试
- 学习51笔记与一份从网上找的资料:单片机C语言中_nop_函数的使用及C语言的延时计算2010-
- 51C中_nop_(); 指令的说明和作用
- 51C中_nop_(); 指令的说明和作用
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 行政命令——提高关键基础设施网络安全
- JS 百度分享 自定义分享的地址
- android 4.0 以上虚拟按键栏的控制
- 【典型案例】RapidEye Mosaics影像管理模式
- pentaho开源商业智能平台的搭建(3)
- _nop_()函数
- 上班第一天
- android中UI优化内容
- 总统政策指令——关键基础设施安全和可靠性
- PHP版本日历
- root账号下的应用迁移到tomcat用户下
- 2011程序员薪资调查报告全文发布
- icon 图标 高光
- 疯狂Java面试题大全(Android版)