关键词不能为空

当前您在: 主页 > 英语 >

Keil C51库函数及学习附录

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-12 16:10
tags:

-

2021年2月12日发(作者:item是什么意思)


Keil C51


库函数及学习附录








Keil C51


库函数及学习附录


C51


强大功能及其高效率


的重要体现 之一在于其丰富的可直接调用的库函数,多使用


库函数使程序代码简单,结构清晰,易于 调试和维护,下面


介绍


C51


的库函数 系统。



第一节



本征库函数


(intrinsic routines)


和非本征证库函数


C51


提供的本征函数是指 编译时直接将固定的代码插入当


前行,


而不是用


ACALL



LCALL


语句 来实现,


这样就大大


提供了函数访问的效率,而非本征函数则必 须由


ACALL



LCALL


调用。



C51


的本征 库函数只有


9


个,数目虽少,但都非常有用,列


如下:



_crol_,_cror_


:将


char


型变量循环向左


(



)


移动指定位数后


返回



_iror_,_irol_

< br>:



int


型变量循环向左


(



)


移动指定位 数后返回



_lrol_,_lror_




long


型变量循环向左


(



)


移动指定位数 后返




_nop_




相当于插入


NOP


_testbit_




相当于


JBCbitvar


测试该位变量并跳转同时 清除。



_chkfloat_




测试并返回源点数状态。



使用时,必须包含


#inclucle


一行。



如不说明,下面谈到的库函数均指非本征库函数。



第二节



几类重要库函数


1.


专用寄存器


include


文件


例如


8031



8051


均为


REG51.h


其中包括了所有

< p>
8051



SFR


及其位 定义,一般系统都必须包括本文件。



2.

< br>绝对地址


include


文件


a bsacc.h


该文件中实际只定义了几个宏,以确定各存储空间的绝对地

< p>
址。



3.


动态内存分 配函数,位于


stdlib.h





4.


缓冲区处理函数位于“string.h”中



其中包括拷贝比较移动等函数如:



memccpymemchr memcmp memcpy memmove memset


这样很方便地对缓冲区进行处理。



5.


输入输出流函数,位于“stdio.h”中



流函数通


8051


的串口或用户定义的


I/O


口读写数据,缺省



8 051


串口,如要修改,比如改为


LCD


显示,可修改


lib


目录中的


get key.c



putchar.c


源文 件,然后在库中替换它


们即可。



第三节



Keil C51


库函数原型列表


1. CTYPE.H


bit isalnum(char c)




bit isalpha(char c)




bit iscntrl(char c)




bit isdigit(char c)




bit isgraph(char c)




bit islower(char c)




bit isprint(char c)




bit ispunct(char c)




bit isspace(char c)




bit isupper(char c)




bit isxdigit(char c)




bit toascii(char c)




bit toint(char c)




char tolower(char c)




char __tolower(char c)




char toupper(char c)




char __toupper(char c)




2. INTRINS.H


unsigned char_crol_(unsigned char c,unsigned char b)




unsigned char_cror_(unsigned char c,unsigned char b)




unsigned char_chkfloat_(float ual)




unsigned int_irol_(unsigned int i,unsigned char b)




unsigned int_iror_(unsigned int i,unsigned char b)




unsigned long_irol_(unsigned long l,unsigned char b)




unsigned long_iror_(unsigned long L,unsigned char b)




void _nop_(void)




bit _testbit_(bit b)




3. STDIO.H


char getchar(void)




char _getkey(void)




char *gets(char *string,int len)




int printf(const char *fmtstr[,argument]…);



char putchar(char c);


int puts (const char *string);


int scanf(const char *fmtstr.[,argument]…);



int sprintf(char *buffer,const char *fmtstr[;argument])




int sscanf(char*buffer,const char * fmtstr[,argument]);


char ungetchar(char c);


void vprintf (const char*fmtstr,char * argptr);


void vsprintf(char*buffer,const char * fmtstr,char * argptr)




4. STDLIB.H


float atof(void * string);


int atoi(void * string);


long atol(void * string);


void * calloc(unsigned intnum,unsigned int len);


void free(void xdata *p)




void init_mempool(void*data *p,unsigned int size);


void *malloc (unsigned intsize);


int rand(void);


void *realloc (void xdata*p,unsigned int size);


void srand (int seed)




5. STRING.H


void *memccpy (void*dest,void *src,char c,int len);


void *memchr (void*buf,char c,int len);


char memcmp(void*buf1,void *buf2,int len);


void *memcopy (void*dest,void *SRC,int len);


void *memmove (void *dest,void*src,int len);


void *memset (void*buf,char c,int len);


char *strcat (char*dest,char *src);


char *strchr (const char*string,char c);


char strcmp (char*string1,char *string2);


char *strcpy (char*dest,char *src);


int strcspn(char *src,char* set);


int strlen (char *src);


char *strncat (char8dest,char *src,int len);


char strncmp(char*string1,char *string2,int len);


char strncpy (char*dest,char *src,int len);


char *strpbrk (char*string,char *set);


int strpos (const char*string,char c);


char *strrchr (const char*string,char c);


char *strrpbrk (char*string,char *set);


int strrpos (const char*string,char c);


int strspn(char*string,char *set)


;附录一



C51


中的关键字


关键字















auto



存储种类说明




用以说明局部变量,缺省值为此





break



程序语句




退出最内层循环





case



程序语句




switch


语句中的选择项





char



数据类型说明




单字节整型数或字符型数据





const



存储类型说明




在程序执行过程中不可更改的常量值





continue



程序语句




转向下一次循环





default



程序语句




switch


语句中的失败选择项





do



程序语句




构成


do..while


循环结构





double



数据类型说明




双精度浮点数





else



程序语句




构成


if..else


选择结构





enum



数据类型说明




枚举





extern



存储种类说明




在其他程序模块中说明了的全局变量





float



数据类型说明




单精度浮点数





for



程序语句




构成


for


循环结构





goto



程序语句




构成


goto


转移结构





if



程序语句




构成


if..else


选择结构





int



数据类型说明




基本整型数





long



数据类型说明




长整型数





register



存储种类说明



使用


CPU


内部寄存的变量





return



程序语句




函数返回





short



数据类型说明




短整型数





signed



数据类型说明




有符号数,二进制数据的最高位为符号位





sizeof



运算符




计算表达式或数据类型的字节数





static



存储种类说明




静态变量





struct



数据类型说明




结构类型数据





swicth



程序语句




构成


switch


选择结构





typedef



数据类型说明




重新进行数据类型定义





union



数据类型说明




联合类型数据





unsigned



数据类型说明




无符号数数据





void



数据类型说明




无类型数据





volatile



数据类型说明




该变量在程序执行中可被隐含地改变





while



程序语句




构成


while


do..while


循环结构



附表


1



1


ANSIC


标准关键字关键字















bit



位标量声明




声明一个位标量或位类型的函数





sbit



位标量声明




声明一个可位寻址变量





sfr



特殊功能寄存器声明




声明一个特殊功能寄存器





sfr16



特殊功能寄存器声明




声明一个


16


位的特殊功能寄存器

< br>




data



存储器类型说明




直接寻址的内部数据存储器





bdata



存储器类型说明




可位寻址的内部数据存储器





idata



存储器类型说明



-


-


-


-


-


-


-


-



本文更新与2021-02-12 16:10,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/644539.html

Keil C51库函数及学习附录的相关文章