導航:首頁 > 操作系統 > 單片機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相關的資料

熱點內容
紹興程序員接私活攻略 瀏覽:640
java獲取上傳圖片 瀏覽:46
主次梁交叉處箍筋加密長度 瀏覽:961
快遞時效的演算法 瀏覽:583
菜譜大全pdf 瀏覽:315
怎麼在風雲pdf上把文件夾匯總 瀏覽:878
java創建子類 瀏覽:531
安卓實況怎麼退出渠道服登錄 瀏覽:106
汽車12v電壓縮機 瀏覽:417
樂圖java 瀏覽:788
命令與征服注冊表 瀏覽:323
聽課app如何保存下來視頻 瀏覽:450
phpiconv支持 瀏覽:92
什麼app可以借到錢 瀏覽:16
單片機中rn是什麼元件縮寫 瀏覽:836
office插件pdf 瀏覽:187
上古卷軸dat1放哪個文件夾 瀏覽:775
文件夾左下角離線狀態 瀏覽:96
手機貼吧app哪個好 瀏覽:583
java文件讀取中文亂碼 瀏覽:515