_nop_在c语言里怎么用呢?

如题所述

c语言里没有这个_nop_函数,这个函数是在51单片机里使用的。

作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。

NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。

扩展资料

nop指令在C语言中的使用

示例:

#inluce<stdio.h>

assemblyinlinevoidinsert_nop()

{

asm_begin

nop

asm_end

}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-02

C语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。


例如用6MHz的晶振,则如下for循环大约延时1秒。

int i;
for(i=0; i<6000000; i++)
    _nop_();  // 延时一个指令周期,相当于执行一条无意义的语言

第2个回答  2011-02-19
实现方法各异,如果你使用的编译器中有这个函数的话,恭喜你,你可以直接调用,如果没有,那你可以使用内联汇编来自己实现这个函数(当然,涉及到汇编语言的东西一般是平台相关的)追问

它不是相当于一个机器周期吗,在头文件包含吗,那怎么调用函数呢,谢了

追答

不知道阁下的头文件包含是指什么,如果是函数形式,那你就可以想一般的函数调用一样调用就可以 啊

本回答被提问者采纳
第3个回答  2011-02-19
__asm{
nop
nop
}

_nop_在c语言里怎么用呢?
在c语言里没有这个_nop_函数,这个函数是在51单片机里使用的。作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。

51单片机c语言里 _nop_ 函数怎么用?
在单片机c语言中直接调用库函数即可,具体如下:include<intrins.h> \/\/ 声明了void _nop_(void);_nop_(); \/\/ 产生一条NOP指令。该函数的作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M...

51单片机c语言 _nop_()是一个空指令?短时间延时的?空几个机器周期?
1、首先,可以利用keil来进行模拟实验,观察软件所显示的数值,然后再进行相关的运算,即可得出结果。2、在使用keil进行模拟之前,要“模拟”给单片机各个口上电,点击这里。3、然后再点击这里,会出来一个对话框,全部勾选即可。4、除了使用keil外,还可可以借助其他的软件,来进行测试运算。5、最后要知...

_ nop_()是什么意思?为什么要用?
这是C语言库函数;_nop_();代表运行一个机器周期。如果这个单片机的晶振是12M的,那么这调代码会运行1US;一般用在某些协议需要一个比较短的延时;

单片机C语言中怎么实现微秒级延时?
可以用_nop_( )函数来实现微秒级的延时。_nop_(); \/\/ 直接当成一条语句使用,产生一条NOP指令NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。注:使用该函数时,需要将头文件#include<intrins.h>包含进源文件中。

在单片机c语言中_nop_()语句包含在哪个头文件当?
在单片机C语言中_nop_()包含在头文件intrins.h中。_nop_()是一个空操作,对应于汇编语言中的NOP语句。执行该函数,将占用1个机器周期的时间,常用于局部短暂延时。比如执行以下程序段,12M晶振的情况下,将在P0口产生频率为250K的方波。while(1){ P0=0x00;_nop_();_nop_();P0=0xff;_nop_(...

汇编程序中nop的作用是什么
在单片机的C语言编程中,空指令的使用是为了生成短暂的延迟。在汇编语言编程中,这可以通过简单地插入几个空操作来实现。例如,在使用avr-gcc编译器时,可以这样嵌入汇编指令:`Asm("nop"); nop; nop; nop;");`。而在Keil C51编译器中,可以通过调用库函数来实现,首先包含声明`void __nop__(...

单片机c语言intrins头文件中的_nop_是什么意思
这个表示空运行,就是什么都不做!相当于延迟 如果是在12M的晶振且12分频的话一个nop差不多1us!多用于这个与器件通信的这个时序因为有的器件的时序要求就是几个us的高电平或者低电平!就可以写几个_nop_();

汇编程序中nop的作用是什么
在单片机的C语言编程中,经常需要许多空指令来产生短延迟效应。很容易做的汇编语言,只写几个空操作。avr-gcc采用以下方法嵌入组装说明:Asm(nop”;nop。nop。nop。”:);在keilC51中,直接调用库函数:包括//声明void_nop_(void);_nop_();//生成一个NOP指令 ...

51单片机 用c语言 调用-nop- 编一个 延时一秒 程序
藐视很准确,其实走上一天可能就差几秒甚至几分钟,因为C语言中的中断程序,以及每次进入中断退出中断的指令周期,这些你都要考虑在内,这样你才能做的很准;有点说偏题了。我的意思就是你要真的要把一秒作准,请用汇编或参考汇编,还要把每个语句的执行时间考虑在内,这样你才能做的很准确 ...

相似回答