C51的库函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理与应用及C51程序设计(第2版) 谢维成 杨加国主编
附录B C51的库函数
C51编译器提供了丰富的库函数,使用库函数可以大大简化用户的程序设计工作从而提高编程效率,基于MCS-51系列单片机本身的特点,某些库函数的参数和调用格式与ANSIC标准有所不同。
每个库函数都在相应的头文件中给出了函数原型声明,用户如果需要使用库函数,必须在源程序的开始处采用预处理命令#include,将有关的头文件包含进来。下面是C51中常见的库函数。
B.1 寄存器库函数REG×××.H
在REG×××.H的头文件中定义了MCS-51的所有特殊功能寄存器和相应的位,定义时都用大写字母。当在程序的头部把寄存器库函数REG×××.H包含后,在程序中就可以直接使用MCS-51中的特殊功能寄存器和相应的位。
B.2 字符函数CTYPE.H
函数原型:extern bit isalpha (char c);
再入属性:reentrant
功能:检查参数字符是否为英文字母,是则返回1,否则返回0。
函数原型:extern bit isalnum(char c);
再入属性:reentrant
功能:检查参数字符是否为英文字母或数字字符,是则返回1,否则返回0。
函数原型:extern bit iscntrl (char c);
再入属性:reentrant
功能:检查参数字符是否在0x00~0x1f之间或等于0x7f,是则返回1,否则返回0。
函数原型:extern bit isdigit(char c);
再入属性:reentrant
功能:检查参数字符是否为数字字符,是则返回1,否则返回0。
函数原型:extern bit isgraph (char c);
再入属性:reentrant
功能:检查参数字符是否为可打印字符,可打印字符的ASCII值为0x21~0x7e,是则返回1,否则返回0。
函数原型:extern bit isprint (char c);
附录B C51的库函数349
再入属性:reentrant
功能:除了与isgraph相同之外,还接收空格符(0x20)。
函数原型:extern bit ispunct (char c);
再入属性:reentrant
功能:检查参数字符是否为标点、空格和格式字符,是则返回1,否则返回0。
函数原型:extern bit islower (char c);
再入属性:reentrant
功能:检查参数字符是否为小写英文字母,是则返回1,否则返回0。
函数原型:extern bit isupper (char c);
再入属性:reentrant
功能:检查参数字符是否为大写英文字母,是则返回1,否则返回0。
函数原型:extern bit isspace (char c);
再入属性:reentrant
功能:检查参数字符是否为空格、制表符、回车、换行、垂直制表符和送纸之一,是则返回1,否则返回0。
函数原型:extern bit isxdigit (char c);
再入属性:reentrant
功能:检查参数字符是否为十六进制数字字符,是则返回1,否则返回0。
函数原型:extern char toint (char c);
再入属性:reentrant
功能:将ASCII字符的0~9、A~F转换为十六进制数,返回值为0~F。
函数原型:extern char tolower (char c);
再入属性:reentrant
功能:将大写字母转换成小写字母,如果不是大写字母,则不作转换直接返回相应的内容。
函数原型:extern char toupper (char c);
再入属性:reentrant
功能:将小写字母转换成大写字母,如果不是小写字母,则不作转换直接返回相应的内容。
B.3 一般输入/输出函数STDIO.H
C51库中包含的输入/输出函数STDIO.H是通过MCS-51的串行口工作的。在使用输入/输出函数STDIO.H库中的函数之前,应先对串行口进行初始化。例如,以2400波特率(时钟频率为12MHz),初始化程序为:
单片机原理与应用及C51程序设计(第2版) 谢维成 杨加国主编
350
SCON=0x52;
TMOD=0x20;
TH1=0xf3;
TR1=1;
当然也可以用其他的波特率。
在输入/输出函数STDIO.H中,库中的所有其他的函数都依赖getkey()和putchar()函数,如果希望支持其他I/O接口,只须修改这两个函数。
函数原型:extern char _getkey(void);
再入属性:reentrant
功能:从串口读入一个字符,不显示。
函数原型:extern char getkey(void);
再入属性:reentrant
功能:从串口读入一个字符,并通过串口输出对应的字符。
函数原型:extern char putchar(char c);
再入属性:reentrant
功能:从串口输出一个字符。
函数原型:extern char *gets(char * string,int len);
再入属性:non-reentrant
功能:从串口读入一个长度为len的字符串存入string指定的位置。输入以换行符结束。输入成功则返回传入的参数指针,失败则返回NULL。
函数原型:extern char ungetchar(char c);
再入属性:reentrant
功能:将输入的字符送到输入缓冲区并将其值返回给调用者,下次使用gets或getchar时可得到该字符,但不能返回多个字符。
函数原型:extern char ungetkey(char c);
再入属性:reentrant
功能:将输入的字符送到输入缓冲区并将其值返回给调用者,下次使用_getkey时可得到该字符,但不能返回多个字符。
函数原型:extern int printf(const char * fmtstr[,argument]…);
再入属性:non-reentrant
功能:以一定的格式通过MCS-51的串口输出数值或字符串,返回实际输出的字符数。
函数原型:extern int sprintf(char * buffer,const char*fmtstr[,argument]);
再入属性:non-reentrant
功能:sprintf与printf的功能相似,但数据不是输出到串口,而是通过一个指针buffer,送入可寻址的内存缓冲区,并以ASCII码形式存放。