KeilC51使用详解 :第五章 Keil C51库函数参考

第五章Keil C51库函数参考

C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。

第一节 本征库函数(intrinsicroutines)和非本征证库函数

C51提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用ACALL和LCALL语句来实现,这样就大大提供了函数访问的效率,而非本征函数则必须由ACALL及LCALL调用。

C51的本征库函数只有9个,数目虽少,但都非常有用,列如下:

_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回

_iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回

_lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回

_nop_: 相当于插入NOP

_testbit_: 相当于JBCbitvar测试该位变量并跳转同时清除。

_chkfloat_:   测试并返回源点数状态。

使用时,必须包含#inclucle  <intrins.h>一行。

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

第二节 几类重要库函数

1. 专用寄存器include文件

例如8031、8051均为REG51.h其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。

2. 绝对地址include文件absacc.h

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

3. 动态内存分配函数,位于stdlib.h中

 

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

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

memccpy memchr memcmp memcpymemmove memset

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

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

流函数通8051的串口或用户定义的I/O口读写数据,缺省为8051串口,如要修改,比如改为LCD显示,可修改lib目录中的getkey.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 charc,unsigned char b);

       unsigned char _cror_(unsigned charc,unsigned char b);

       unsigned char _chkfloat_(float ual);

       unsigned int _irol_(unsigned inti,unsigned char b);

       unsigned int _iror_(unsigned inti,unsigned char b);

       unsigned long _irol_(unsigned longl,unsigned char b);

       unsigned long _iror_(unsigned longL,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 int num,unsignedint len);

       void free(void xdata *p);

       void init_mempool(void *data *p,unsignedint size);

       void *malloc (unsigned int size);

       int rand(void);

       void *realloc (void xdata *p,unsigned intsize);

       void srand (int seed);

5. STRING.H

       void *memccpy (void *dest,void *src,charc,int len);

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

       char memcmp(void *buf1,void *buf2,intlen);

       void *memcopy (void *dest,void *SRC,intlen);

       void *memmove (void *dest,void *src,intlen);

       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 (char 8dest,char *src,intlen);

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

       char strncpy (char *dest,char *src,intlen);

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

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

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

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

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

       int strspn(char *string,char *set);

 


### 回答1: Keil C251 5.57是一种嵌入式系统开发工具,适用于基于8051微控制器的嵌入式系统的开发。它提供了一个强大的开发环境,包括编译器、调试器、仿真器和相关的工具,使开发人员可以轻松地设计、协调和调试嵌入式系统。此版本的Keil C251主要特点是增强了对最新8051微控制器芯片的支持,并改善了性能和稳定性。除此之外,Keil C251 5.57还提供了具有更高级别的库函数和例程,以支持更广泛的应用场景。此外,这个工具还虚拟提供了MCU的环境,方便了初学者学习/实验。总体而言,Keil C251 5.57是一款功能强大、稳定的嵌入式系统开发工具,可以帮助开发者快速完成嵌入式系统的设计和开发。 ### 回答2: Keil C251是一种常用的嵌入式C语言编译器, 版本号5.57。这个编译器是针对Intel 8051系列微控制器的开发设计的。它具有强大的功能和易于使用的界面,广泛应用于嵌入式系统的开发。 Keil C251 5.57版本带来了一些更新和改进。首先,它提供了更好的代码优化和生成。编译器可以根据目标芯片的架构和指令集,对代码进行优化,从而提高程序的执行效率。其次,这个版本加入了更多的特性和功能,如高级调试功能和集成开发环境。开发人员可以利用这些功能进行更方便的程序调试和测试。此外,Keil C251 5.57版本还提供了全新的软件和工具,用于帮助开发人员更轻松地开发嵌入式系统。 使用Keil C251 5.57进行嵌入式开发具有许多优势。首先,它是开发和调试8051系列微控制器的首选工具。它具有强大的代码生成和优化功能,能够提高程序的运行效率和性能。其次,Keil C251 5.57提供了丰富的开发工具,如仿真器、调试器和集成开发环境,使开发人员能够更方便地进行程序调试和测试。此外,Keil C251 5.57还具有友好的界面和易于使用的特点,使得开发人员能够更快速地上手进行开发工作。 总之,Keil C251 5.57是一款功能强大且广泛使用的嵌入式C语言编译器。它提供了丰富的特性和工具,帮助开发人员进行嵌入式系统的开发。无论是初学者还是经验丰富的开发人员,都可以受益于Keil C251 5.57的优势和功能。 ### 回答3: Keil C251 5.57 是一款嵌入式C语言开发工具,主要用于基于Intel 8XC251SA系列单片机的应用程序开发。该版本包含了一系列的开发工具,如集成开发环境(IDE),编译器,汇编器和调试器,为开发人员提供了完整的开发解决方案。 Keil C251 5.57支持多种功能,例如基于C语言的编程,汇编语言和硬件单元编程。它提供了各种特性和功能,以简化和加快嵌入式系统的开发过程。开发人员可以使用Keil C251来创建高效的嵌入式应用程序,包括各种应用领域,如汽车电子,工业自动化和消费电子等。 Keil C251提供了有效的代码生成和优化功能,以提高程序性能和减小占用空间。此外,它还提供了强大的调试功能,可帮助开发人员定位和排除程序中的错误和问题。开发人员可以使用Keil C251的集成开发环境,直接在开发环境中编写,编译和调试代码,提高了开发效率。 Keil C251 在嵌入式系统开发中广泛应用,帮助开发人员轻松创建高质量和可靠的嵌入式应用程序。通过使用Keil C251,开发人员可以快速实现设计,并且能够轻松适应不同的项目需求。总之,Keil C251 5.57 是一款功能强大的工具,为嵌入式C语言开发人员提供了各种必要的功能和工具来创建优秀的嵌入式应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值