intrins.h

intrins.h

intrins.h,函數,應用於程序設計,一般出現在C51單片機編程中,一般程序中需要使用到空指令_nop_();字元循環移位指令_crol_等時使用。

概念


在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”指令相關,上面幾個函數不同於參數類型。
例:
main()
{
unsigned int y;
y=0x00ff;
y=_irol_(y,4);
}
函數名:_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 long val,unsigned char n);
功能:_cror_,_iror_,_lror_以位形式將val右移n位,該函數與8051“RRA”指令相關,上面幾個函數不同於參數類型。
例:
#include
main()
{
unsigned int y;
y=0x0ff00;
y=_iror_(y,4);
}
函數名:_nop_
原型:void_nop_(void);
void_tuzi_(void);
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_只能用於可直接定址的位;在表達式中使用是不允許的。