没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Keil C51 库函数参考
C51 强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函
数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51
的库函数系统。
第 一 节
本 征 库 函 数 (i ntri ns ic rou tine s)和 非 本 征 证 库 函 数
C51 提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用
ACALL 和 LCALL 语句来实现,这样就大大提供了函数访问的效率,而非本征函
数则必须由 ACALL 及 LCALL 调用。
C51 的本征库函数只有 9 个,数目虽少,但都非常有用,列如下:
_crol_,_cror_:将 char 型变量循环向左(右)移动指定位数
后返回
_iror_,_irol_:将 int 型变量循环向左(右)移动指定位数后返
回
_lrol_,_lror_:将 long 型变量循环向左(右)移动指定位数后
返回
_nop_: 相当于插入 NOP
_testbit_:
相当于JBC bitvar测试该位变量并跳转同时
如不说明,下面谈到的库函数均指非本征库函数。
例如 8031、8051 均为 REG51.h 其中包括了所有 8051 的 SFR 及其位定义,一
般系统都必须包括本文件。
动态内存分配函数,位于 stdlib.h 中
memccpy memchr memcmp memcpy memmove memset
这样很方便地对缓冲区进行处理。
流函数通8051 的串口或用户定义的I/O 口读写数据,缺省为8051 串口,如要
修改,比如改为LCD 显示,可修改lib 目录中的getkey.c 及 putchar.c 源文件,
然后在库中替换它们即可。
第 三 节
CTYPE.H
bit isalnum(char c);
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);
char getchar(void);
char *gets(char * string,int len);
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);
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);
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 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);
用户分类: MCS-51 单片机
发表评论 阅读全文(121) | 回复(0)
0
Keil C51 例子:Hello.c
{
}
u Vi si on f o r W in dow s 的 使 用 步 骤
这时该 project 已是打开状态,或用 open project 打开已存在的 project。
(4) option_C51 compiler 中选出至少包括两项 DB OE。
(5) option_dscope Debugger 选中 hello\DS51.INI
(6) 在 option_make 选 make 文件顺序。
(7) project 选 Build project,看是否有语法错误,若无则生成 HEX 文件,
若有则修改源文件后重复以上部分步骤。
(8) run_dScope debugger进入 dScope51 后装入 hello 则可用 go 直接运行
看 serial 窗口有无输出,正常每系统运行一次,serial 窗口均出现一个
“Hello,world”表明运行无误。
然后单击Edit 或用Edit 命令编辑hello.c 源文件,存盘,也可以在files 窗口中直接选中hello.c。
(2) 用 cd 改换 project 目录至 hello 目录。
(3) 在 setup_target 一项目选 8051。
(5) 在 setup_project 输入 project 名 hello。
(6) 在 setup_save 保存 Ishell.CFG 文件。
(7) 编辑一个 Link 文件 hello.lin 中有“hell.obj”一行。
(8) 由光标落在 files 菜单中的 Hello.c 上,单击“translate”,如无语
法错,再击“link”,则 Hex 文件生成。
(9) 单击 Simulate 如在 8051.CDF 中选 Simulate 为 dScope 则进入 dScope
调试直接“Go”,看 serial 窗口输出为“Hello.world”。
(10) 如程序有误修改源代码后不必再 translate 或 link 了,只要一步
Amake 即可。
若 project 中包括不止一个文件,在DOS 的 Ishell 中不能用Translate 编译,而应建立bat 文件,
直接在命令窗编译,然后link 连接。
如还需用Translate 则只能多个文件分别编译,然后连接
系统分类:
编辑博客
用户分类: MCS-51 单片机
标签:
来源:
无标签
整理
发表评论 阅读全文(88) | 回复(0)
0
剩余25页未读,继续阅读
资源评论
是原来的你吗
- 粉丝: 6764
- 资源: 1647
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功