Keil C51使用详解(7)

2019-09-01 13:08

_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回 _iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回 _lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回 _nop_: 相当于插入NOP

_testbit_: 相当于JBC bitvar测试该位变量并跳转同时清除。 _chkfloat_: 测试并返回源点数状态。 使用时,必须包含#inclucle 一行。 如不说明,下面谈到的库函数均指非本征库函数。 第二节 几类重要库函数 1. 专用寄存器include文件

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

该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。 3. 动态内存分配函数,位于stdlib.h中 4. 缓冲区处理函数位于“string.h”中 其中包括拷贝比较移动等函数如:

memccpy memchr memcmp memcpy memmove memset 这样很方便地对缓冲区进行处理。 5. 输入输出流函数,位于“stdio.h”中

流函数通8051的串口或用户定义的I/O口读写数据,缺省为8051串口,如要修改,比如改为LCD显示,可修改lib目录中的getkey.c及putchar.c源文件,然后在库中替换它们即可。

第三节 Keil C51库函数原型列表 1. CTYPE.H

bit isalnum(char c);

31

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

32

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,unsigned int len); void free(void xdata *p);

void init_mempool(void *data *p,unsigned int size); void *malloc (unsigned int size); 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);

33

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

第六章 Keil C51例子:Hello.c

Hello位于\\C51\\excmples\\Hello\\目录,其功能是向串口输出“Hello,world”整个程序如下:

#pragma DB OE CD #indule #include void main(void) {

SCOn=0x50;

34

TMOD=0x20 TH1=0xf3; Tri=1; TI=1;

printf(“Hello,world \\n”); while(1) { } }

第一节 uVision for Windows的使用步骤

(1) file_new新建一个hello.c文件,输入如上内容或直接用目录下源文件。 (2) file_save或工具栏将文件存盘。

(3) project_new project创建一个project名为hello,并在其中加入hello.c。 这时该project已是打开状态,或用open project打开已存在的project。 (4) option_C51 compiler中选出至少包括两项DB OE。 (5) option_dscope Debugger选中hello\\DS51.INI 查看DS51.INI看其是否为: “load…\\…\\BIN\\8051.DLL map 0, 0xffff” 否则修改。

(6) 在option_make选make文件顺序。

(7) project选Build project,看是否有语法错误,若无则生成HEX文件,若有则修改源文件后重复以上部分步骤。

(8) run_dScope debugger进入dScope51后装入hello则可用go直接运行看serial窗口有无输出,正常每系统运行一次,serial窗口均出现一个“Hello,world”表明运行无误。 第二节 Ishell for Dos使用步骤

(1) 进入Ishell 用Setup editer选择编辑器。

然后单击Edit或用Edit命令编辑hello.c源文件,存盘,也可以在files窗口中直接选

35


Keil C51使用详解(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:二乙二醇单丁醚生产技术及市场行情研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: