KeilC51开发系统基本知识.doc

上传人:自*** 文档编号:126259019 上传时间:2020-03-23 格式:DOC 页数:8 大小:94.50KB
返回 下载 相关 举报
KeilC51开发系统基本知识.doc_第1页
第1页 / 共8页
KeilC51开发系统基本知识.doc_第2页
第2页 / 共8页
KeilC51开发系统基本知识.doc_第3页
第3页 / 共8页
KeilC51开发系统基本知识.doc_第4页
第4页 / 共8页
KeilC51开发系统基本知识.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《KeilC51开发系统基本知识.doc》由会员分享,可在线阅读,更多相关《KeilC51开发系统基本知识.doc(8页珍藏版)》请在金锄头文库上搜索。

1、2. 第二节 几类重要库函数1. 1. 专用寄存器include文件例如8031、8051均为REG51.h其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。2. 2. 绝对地址include文件absacc.h该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。3. 3. 动态内存分配函数,位于stdlib.h中4. 4. 缓冲区处理函数位于“string.h”中其中包括拷贝比较移动等函数如:memccpy memchr memcmp memcpy memmove memset这样很方便地对缓冲区进行处理。5. 5. 输入输出流函数,位于“stdio.h”中流函数通80

2、51的串口或用户定义的I/O口读写数据,缺省为8051串口,如要修改,比如改为LCD显示,可修改lib目录中的getkey.c及putchar.c源文件,然后在库中替换它们即可。3. 第三节 Keil C51库函数原型列表1. 1. CTYPE.Hbit 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

3、 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. 2. INTRINS.Hunsigned char _crol_(unsigned char c,unsigned char b);unsigned char _cror_(unsigned char c,unsigned char b);unsigned

4、 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. 3. STDIO.Hchar getc

5、har(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,argu

6、ment);char ungetchar(char c);void vprintf (const char *fmtstr,char * argptr);void vsprintf(char *buffer,const char * fmtstr,char * argptr);4. 4. STDLIB.Hfloat atof(void * string);int atoi(void * string);long atol(void * string);void * calloc(unsigned int num,unsigned int len);void free(void xdata *p

7、);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. 5. STRING.Hvoid *memccpy (void *dest,void *src,char c,int len);void *memchr (void *buf,char c,int len);char memcmp(void *buf1,

8、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 *

9、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

10、char *string,char c);char *strrpbrk (char *string,char *set);int strrpos (const char *string,char c);int strspn(char *string,char *set);6. 第六章 Keil C51例子:Hello.cHello位于C51excmplesHello目录,其功能是向串口输出“Hello,world”整个程序如下:pragma DB OE CD#indule #includevoid main(void)SCOn=0x50;TMOD=0x20TH1=0xf3;Tri=1;TI=1

11、;printf(“Hello,world n”);while(1) 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选中he

12、lloDS51.INI查看DS51.INI看其是否为:“loadBIN8051.DLLmap 0, 0xffff”否则修改。(6) 在option_make选make文件顺序。(7) project选Build project,看是否有语法错误,若无则生成HEX文件,若有则修改源文件后重复以上部分步骤。(8) run_dScope debugger进入dScope51后装入hello则可用go直接运行看serial窗口有无输出,正常每系统运行一次,serial窗口均出现一个“Hello,world”表明运行无误。2. 第二节 Ishell for Dos使用步骤(1) 进入Ishell 用Se

13、tup editer选择编辑器。然后单击Edit或用Edit命令编辑hello.c源文件,存盘,也可以在files窗口中直接选中hello.c。(2) 用cd改换project目录至hello目录。(3) 在setup_target一项目选8051。(4) 在setup_C51中输出DB OE。(5) 在setup_project输入project名hello。(6) 在setup_save保存Ishell.CFG文件。(7) 编辑一个Link文件hello.lin中有“hell.obj”一行。(8) 由光标落在files菜单中的Hello.c上,单击“translate”,如无语法错,再击“

14、link”,则Hex文件生成。(9) 单击Simulate如在8051.CDF中选Simulate为dScope则进入dScope调试直接“Go”,看serial窗口输出为“Hello.world”。(10) 如程序有误修改源代码后不必再translate或link了,只要一步Amake即可。若project中包括不止一个文件,在DOS的Ishell中不能用Translate编译,而应建立bat文件,直接在命令窗编译,然后link连接。如还需用Translate则只能多个文件分别编译,然后连接。7. 第七章 Keil C51的代码效率C51程序编译生成汇编代码的效率,是由许多因素共同决定的,对

15、于Keil C51,主要受以下两种因素影响:1. 第一节 存储模式的影响存储模式决定了缺省变量的存储空间,而访问各空间变量的汇编代码的繁简程度决定了代码率的高低。例如:一个整形变量i,如放于内存18H、19H空间,则+i的操作编译成四条语句:INC 0x19MOV A,0x19JNZ 0x272DINC 0x180x272D:而如果放于外存空间0000H、0001H则+i的操作编译成九条语句:MOV DPTR,0001MOVX A, DPTRINC AMOVX DPTR,AJNz #5MOV OPTR,#0000MOVX A,DPTRINC AMOVX DPTR,A就汇编之后的语句而言,对外部存储器的操作较内部存储器操作代码率要低得多,生成的语句为内存的两倍以上,而程序中有大量的这种操作,可见存储模式对代码率的响了。因此程序设计的原则是1、存储模式从small-Compact-large依次选择,实在是变量太多,才选large模式。2、即使

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号