1樓:匿名使用者
標頭檔案intrins.h的作用
2009-03-25 16:20
在c51微控制器程式設計中,標頭檔案intrins.h的函式使用起來,就會讓你像在用匯編時一樣簡便.
內部函式 描述
_crol_ 字元迴圈左移
_cror_ 字元迴圈右移
_irol_ 整數迴圈左移
_iror_ 整數迴圈右移
_lrol_ 長整數迴圈左移
_lror_ 長整數迴圈右移
_nop_ 空操作8051 nop 指令
_testbit_ 測試並清零位8051 jbc 指令
函式名: _crol_,_irol_,_lrol_
原 型: unsigned char _crol_(unsigned char val,unsigned char n);
unsigned int _irol_(unsigned int val,unsigned char n);
unsigned int _lrol_(unsigned int val,unsigned char n);
舉例:_crol_,_cror_:將char型變數迴圈向左(右)移動指定位數後返回
_testbit_: 相當於jbc bitvar測試該位變數並跳轉同時清除。
_chkfloat_: 測試並返回源點數狀態。
就是彙編中的子函式。
_crol_,_cror_:如國二進位制數為01010101 那麼_crol_(1) 左移1位後將高位補低位。
結果10101010。
功 能:_crol_,_irol_,_lrol_以位形式將val 左移n 位,該函式與8051「rla」指令相關,上面幾個函式不同於引數型別。
例:#include
main()
函式名: _cror_,_iror_,_lror_
原 型: unsigned char _cror_(unsigned char val,unsigned char n);
unsigned int _iror_(unsigned int val,unsigned char n);
unsigned int _lror_(unsigned int val,unsigned char n);
功 能:_cror_,_iror_,_lror_以位形式將val 右移n 位,該函式與8051「rra」指令相關,上面幾個函式不同於引數型別。
例:#include
main()
函式名: _nop_
原 型: void _nop_(void);
功 能:_nop_產生一個nop 指令,該函式可用作c 程式的時間比較。c51 編譯器在_nop_函式工作期間不產生函式呼叫,即在程式中直接執行了nop 指令。
例:p()=1;
_nop_();
p()=0;
函式名: _testbit_
原 型:bit _testbit_(bit x);
功 能:_testbit_產生一個jbc 指令,該函式測試一個位,當置位時返回1,否則返回0。如果該位置為1,則將該位復位為0。
8051 的jbc 指令即用作此目的。_testbit_只能用於可直接定址的位;在表示式中使用是不允許的。
2樓:匿名使用者
在微控制器裡,這個是按位左迴圈或右迴圈的函式_nop_ (void);空轉
_testbit_ (bit);是測試bit位是否為1_chkfloat_(float);可能是檢查浮點數,沒用過其他函式第一個引數是要處理的數值,第二個引數是按位移動的位數中間的ro是指rotation,第一個字元是要處理的資料的型別,最後一個是指的方向r-右 l-左
keil 中,標頭檔案reg52.h與stc12c5a.h有無區別
3樓:萬頃烽煙
當然有區別,兩個微控制器內的功能和暫存器存不一樣,標頭檔案也就不一樣了,你可以去下datasheft看一下,裡面的定義是怎樣的,自己改一下就可以了!
4樓:喜歡聽
reg52.h是通用標頭檔案,放在哪個51核心上都行,而stc12c5a.h是專門對stc12c5a機型功能定義的。專業的東西肯定比大眾化的好用,呵呵!
至於它兩在功能定義上的區別,你可以去找一下。一般的sfr功能,reg52.h跟stc12c5a.h肯定是都有的,其他的估計只會是stc12c5a.h才定義了。
5樓:匿名使用者
reg51.h和reg52.h實質上是沒有區別的,都是一些特殊功能暫存器的申明。當然,51裡有的52中都有,但反過來就未必了。這是因為52是51的升級版。
at89x52.h中有些特殊功能暫存器沒有申明,可能會不符合很多人的習慣。建議你用reg52.h,reg51.h。
你可以開啟那幾個標頭檔案對比一下具體有哪些區別。
希望對你有所幫助
keil中long和int的取值範圍分別是多少
long型長度是32位。至於int型,取決於你所說的 keil 對於keil mdk開發包,其針對的是32位微控制器,int型是32位的 對於keil 51開發包,其針對的是8位微控制器,int型是16位的。int是0 65535,教你個方法,用c編一個小程式,定義unsigned long a 1...
52乘48減52十52乘53簡便計算
52 48 1 53 52 100 5200 如果我的回答能夠解決你的問題,希望你能夠採納我,如果有疑問繼續追問,衷心感謝你的支援 52乘48減52十52乘53 52x48 52x53 52 52 48 53 1 5200 52 48 1 53 52 100 5200 請採納!48一36十88十52...
keil安裝之後打不開出現對話方塊
開啟快捷方式所在位置,在資料夾上一個資料夾加入tools.ini檔案 晶片型號選錯了,否則安裝的就是keil 51不是arm的,我沒有keil arm,如果是keil 51,你的安裝目錄下有個c51資料夾,arm版的應當有armcc之類的資料夾,還有一個比較小的可能就是tools.ini,內容不對,...