单片机NOP指令究竟该如何去用?大家能不能给一个简单明了的例子?

来源:百度知道 编辑:UC知道 时间:2024/05/05 15:32:48
大家看一下这样的程序对不对,能不能达到要控制的效果?
JBC TF0 ,L00P;[当TF0(定时器)计满后溢出使TF0=1并转向LOOP]
NOP ;空操作
LOOP:SETB P1.0 ;置为P1.0

NOP是空语句!什么也不执行的,但它占用一个指令的执行时间,也就是做精确延时

这和for的延时程序比时间短,易控制。

比如你用单片机的I/O口去模拟一个I2C的通信接口,因为I2C总线的通信速率只有400Kbps,这个时候,如果你连续地按照你的想法把操作I/O口的指令写上去的话单片机连续运行很可能超过I2C总线的最高速率而不能正常通信,所以用NOP来一个空操作,其实也就是一个短暂的延时程序呵呵,你的那段程序也是为了延时才用的NOP的