Keil C51庫函數(shù)參考
KeilC51庫函數(shù)KeilC51庫函數(shù)參考
C51強(qiáng)大功能及其高效率的重要體現(xiàn)之一在于其豐富的可直接調(diào)用的庫函數(shù),多使用庫函數(shù)使程序代碼簡(jiǎn)單,結(jié)構(gòu)清晰,易于調(diào)試和維護(hù),下面介紹C51的庫函數(shù)系統(tǒng)。
第一節(jié)本征庫函數(shù)(intrinsicroutines)和非本征庫函數(shù)
C51提供的本征函數(shù)是指編譯時(shí)直接將固定的代碼插入當(dāng)前行,而不是用ACALL和LCALL語句來實(shí)現(xiàn),這樣就大大提供了函數(shù)訪問的效率,而非本征函數(shù)則必須由ACALL及LCALL調(diào)用。
C51的本征庫函數(shù)只有9個(gè),數(shù)目雖少,但都非常有用,列如下:
_crol_,_cror_:將char型變量循環(huán)向左(右)移動(dòng)指定位數(shù)后返回
_iror_,_irol_:將int型變量循環(huán)向左(右)移動(dòng)指定位數(shù)后返回
_lrol_,_lror_:將long型變量循環(huán)向左(右)移動(dòng)指定位數(shù)后返回
_nop_:相當(dāng)于插入NOP
_testbit_:相當(dāng)于JBCbitvar測(cè)試該位變量并跳轉(zhuǎn)同時(shí)清除。
_chkfloat_:測(cè)試并返回源點(diǎn)數(shù)狀態(tài)。
使用時(shí),必須包含#inclucle
如不說明,下面談到的庫函數(shù)均指非本征庫函數(shù)。
第二節(jié)幾類重要庫函數(shù)
1.專用寄存器include文件
例如8031、8051均為REG51.h其中包括了所有8051的SFR及其位定義,一般系統(tǒng)都必須包括本文件。
2.絕對(duì)地址include文件absacc.h
該文件中實(shí)際只定義了幾個(gè)宏,以確定各存儲(chǔ)空間的絕對(duì)地址。
3.動(dòng)態(tài)內(nèi)存分配函數(shù),位于stdlib.h中
4.緩沖區(qū)處理函數(shù)位于“string.h”中
其中包括拷貝比較移動(dòng)等函數(shù)如:
memccpymemchrmemcmpmemcpymemmovememset
這樣很方便地對(duì)緩沖區(qū)進(jìn)行處理。
5.輸入輸出流函數(shù),位于“stdio.h”中
流函數(shù)通8051的串口或用戶定義的I/O口讀寫數(shù)據(jù),缺省為8051串口,如要修改,比如改為L(zhǎng)CD顯示,可修改lib目錄中的getkey.c及putchar.c源文件,然后在庫中替換它們即可。