今天小编岚岚来为大家解答以上的问题。nop是什么意思,nop相信很多小伙伴还不知道,现在让我们一起来看看吧!
1、在单片机C语言中加入NOP指令是因为标准的C语言中没有空语句。
2、但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。
3、这在汇编语言中很容易实现,写几个nop就行了。
4、在AVR-GCC中,如下方法嵌入汇编指令:asm ("nop; nop; nop; nop;" ::);在keil C51中,直接调用库函数:#include// 声明了void _nop_(void);_nop_();// 产生一条NOP指令扩展资料执行NOP指令只使程序计数器PC加1,所以占用一个机器周期。
5、实例:MOVLW 0xOF ;送OFH到W MOVWF PORT_B ;W内容写入B口 NOP ;空操作 MOVF PORT_B,W 。
6、读操作说明:该三条指令是一种对I/O口的B口连续操作的实例,其目的达到写入B口的内容要读出时,应保证写、读之间有个稳定时间,因此加入了空操作指令NOP。
7、作用:对于延时很短的,要求在us级的,采用“_nop_ ”函数,这个函数相当汇编NOP指令,延时几微秒。
8、NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。
9、对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。
10、在选择C51中循环语句时,要注意以下几个问题:第一、定义的C51中循环变量,尽量采用无符号字符型变量。
11、第二、在FOR循环语句中,尽量采用变量减减来做循环。
12、第三、在do,, while, while 语句中,循环体内变量也采用减减方法。
13、这因为在C51编译器中,对不同的循环方法,采用不同的指令来完成的。
本文就为大家分享到这里,希望小伙伴们会喜欢。
免责声明:本文由用户上传,如有侵权请联系删除!