导航:首页 > 操作系统 > 单片机nop

单片机nop

发布时间:2022-02-01 17:01:03

A. 单片机C程序 -nop-();-nop-();什么意思

这个函数是延时一个机器周期的意思,它包含在头文件intrins.h中,只要程序应用到_nop_(),就需要有头文件intrins.h的声明。

B. 51单片机 c语言里 _nop_ 函数怎么用 具体一点 求高手指教

一个nop为1个指令周期,主要用于精确定时或者延时

nop指令的作用:
1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)
2)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟;-->具体应该说是占用了3个时钟脉冲!
3)i/o传输时,也会用一下 nop,等待缓冲区清空,总线恢复;
4)清除由上一个算术逻辑指令设置的flag位;
5)破解:)对于原程序中验证部分使用nop来填充,使验证失效;
6)有一个朋友说的比较厉害--在航天飞机控制程序中防止程序跳飞!

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/erazy0/archive/2010/12/12/6071281.aspx

C. 单片机程序中 _nop_()干什么用的

具体含义要看这个子程序的具体内容。字面上的意思似乎是延时几个NOP(空操作)

D. 51单片机NOP是什么意思啊!如下图,坐等!!!

NOP在汇编语言里是 空操作指令 说白了就是让51单片机执行到此命令时什么都不做在等会,起到延时作用。

E. 51单片机c语言 _nop_()是一个空指令短时间延时的空几个机器周期

这个_nop_()等效与汇编里面的,NOP指令,也就是空一个机器周期,如果是传统51单片机的话,等于空12个时钟周期【即一个机器周期】,操作方法如下:

1、首先,可以利用keil来进行模拟实验,观察软件所显示的数值,然后再进行相关的运算,即可得出结果。

F. 在51单片机中_nop_()延时多长时间

_nop_()要延时1个指令周期。

1、时钟周期=振荡周期,名称不同而已,都是等于单片机晶振频率的倒数,如常见的外接12M晶振,那它的时钟周期=1/12M。

2、机器周期,8051系列单片机的机器周期=12*时钟周期,之所以这样分是因为单个时钟周期根本干不了一件完整的事情(如取指令、写寄存器、读寄存器等),而12个时钟周期就能基本完成一项基本操作了。

3、指令周期。一个机器周期能完成一项基本操作,但一条指令常常是需要多项基本操作结合才能完成,完成一条指令所需的时间就是指令周期,当然不同的指令,其指令周期就不一样的了。

G. 单片机c语言中可以直接用NOP();而不用_nop_()不

NOP();这个好像只要在MSP430单片机中用过,而_nop_()这个是用在51单片机中的,不过要加头文件#include <intrins.h>。

H. 51单片机中nop函数是干嘛的

51的指令周期是对晶振12分频
如果晶振是12m
那么执行一条一个周期的的指令就是1us
即1s/(12m/12分频)
=1us
nop是一个周期
所以
20m下
1s/(20m/12)=0.6us

I. 51单片机c语言里 _nop_ 函数怎么用

在单片机c语言中直接调用库函数即可,具体如下:

#include<intrins.h> // 声明了void_nop_(void);

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

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

J. 单片机汇编中为什么要用NOP

在单片机C语言中加入NOP指令是因为标准的C语言中没有空语句。

但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。

这在汇编语言中很容易实现,写几个nop就行了。

在AVR-GCC中,如下方法嵌入汇编指令:

asm ("nop; nop; nop; nop;" ::);

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

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

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

(10)单片机nop扩展阅读

执行NOP指令只使程序计数器PC加1,所以占用一个机器周期。实例:MOVLW 0xOF ;送OFH到W MOVWF PORT_B ;W内容写入B口 NOP ;空操作 MOVF PORT_B,W 。

读操作说明:该三条指令是一种对I/O口的B口连续操作的实例,其目的达到写入B口的内容要读出时,应保证写、读之间有个稳定时间,因此加入了空操作指令NOP。

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

对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。

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

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

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

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

这因为在C51编译器中,对不同的循环方法,采用不同的指令来完成的。

阅读全文

与单片机nop相关的资料

热点内容
手机建立文件夹用什么软件 浏览:728
oss压缩上传 浏览:978
蓝色学校网站源码 浏览:827
androidgridview表格 浏览:604
压缩怎么eq闪 浏览:740
流密码算法openssl 浏览:262
怎么数黄豆个数python 浏览:799
混沌序列加密的结论 浏览:224
最新脱单app哪个好 浏览:638
如何用自己电脑做服务器做网页 浏览:140
服务器安全配置要考什么证书 浏览:633
ipadpro可以编程 浏览:541
外国的程序员和中国的程序员 浏览:151
抖音小店app如何联系客服 浏览:975
linux打开多个终端 浏览:500
linux中的命令 浏览:580
优化小米6相机算法 浏览:259
ak47pdf 浏览:150
人与文化pdf 浏览:642
原子币app在哪里注册的 浏览:530