资源描述:
《keil_c51库函数参考》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、KeilC51库函数参考发表于2009/6/2313:42:42C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。第一节本征库函数(intrinsicroutines)和非本征证库函数C51提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用ACALL和LCALL语句来实现,这样就大大提供了函数访问的效率,而非本征函数则必须由ACALL及LCALL调用。C51的本征库函数只有9个,数目虽少,但都非常有用,列如下:_crol_,_cror_:将char型变量循环向左(右)移动指定位数后
2、返回_iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回_lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回_nop_:相当于插入NOP_testbit_:相当于JBCbitvar测试该位变量并跳转同时清除。_chkfloat_:测试并返回源点数状态。使用时,必须包含#inclucle一行。如不说明,下面谈到的库函数均指非本征库函数。第二节几类重要库函数1.专用寄存器include文件例如8031、8051均为REG51.h其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。2.绝对地址include文件ab
3、sacc.h该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。3.动态内存分配函数,位于stdlib.h中 4.缓冲区处理函数位于“string.h”中其中包括拷贝比较移动等函数如:memccpymemchrmemcmpmemcpymemmovememset这样很方便地对缓冲区进行处理。5.输入输出流函数,位于“stdio.h”中流函数通8051的串口或用户定义的I/O口读写数据,缺省为8051串口,如要修改,比如改为LCD显示,可修改lib目录中的getkey.c及putchar.c源文件,然后在库中替换它们即可。第三节KeilC51库函数原型列表1.CTYPE.Hbitisalnu
4、m(charc);bitisalpha(charc);bitiscntrl(charc);bitisdigit(charc);bitisgraph(charc);bitislower(charc);bitisprint(charc);bitispunct(charc);bitisspace(charc);bitisupper(charc);bitisxdigit(charc);bittoascii(charc);bittoint(charc);chartolower(charc);char__tolower(charc);chartoupper(charc);char__toupper(ch
5、arc);2.INTRINS.Hunsignedchar_crol_(unsignedcharc,unsignedcharb);unsignedchar_cror_(unsignedcharc,unsignedcharb);unsignedchar_chkfloat_(floatual);unsignedint_irol_(unsignedinti,unsignedcharb);unsignedint_iror_(unsignedinti,unsignedcharb);unsignedlong_irol_(unsignedlongl,unsignedcharb);unsignedlong_i
6、ror_(unsignedlongL,unsignedcharb);void_nop_(void);bit_testbit_(bitb);3.STDIO.Hchargetchar(void);char_getkey(void);char*gets(char*string,intlen);intprintf(constchar*fmtstr[,argument]…);charputchar(charc);intputs(constchar*string);intscanf(constchar*fmtstr.[,argument]…);intsprintf(char*buffer,constch
7、ar*fmtstr[;argument]);intsscanf(char*buffer,constchar*fmtstr[,argument]);charungetchar(charc);voidvprintf(constchar*fmtstr,char*argptr);voidvsprintf(char*buffer,constchar*fmtstr,char*argptr);4.STDLIB.Hfloat