keil52標頭檔案解釋,keil 中,標頭檔案reg52 h與STC12C5A h有無區別

2021-12-25 01:57:23 字數 2414 閱讀 6767

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,內容不對,...