keilc51库函数手册

合集下载

常用Keil C51库函数

常用Keil C51库函数
void *memcpy(void *dest, void *src , int len)
从src所指向的内存中复制len个字符到dest中,返回指向dest中最后一个字符的指针。如果src与dest发生交迭,则结果是不可测的
void *memccpy(void *dest, void *src, char val, int len)
bit isdigit(char c)
检查参数字符是否为十进制数字0~9,是则返回1,否则返回0
bit isgraph(char c)
检查参数字符是否为可打印字符(不包括空格),值域0x21~0x7e,是则返回1,否则返回0
bit isprint(char c)
检查参数字符是否为可打印字符(包括空格),值域0x21~0x7e,是则返回1,否则返回0
int printf(const char *fmstr[,argument]...)
以第一个参数指向字符串制定的格式通过8051串行口输出数值和字符串,返回值为实际输出的字符数
int sprintf(char *s,const char *fmstr[,argument]...)
与printf功能相似,但数据是通过一个指针s送入内存缓冲区,并以ASCII码的形式存储
将串s2(包括结束符)复制到s1中,返回指向s1中第一个字符的指针
char *strncpy(char *s1, char *s2, int n)
与strcpy相似,但它只复制n个字符。如果s2的长度小于n,则s1串以0补齐到长度n
int strlen(char *s1)
返回串s1中的字符个数,不包括结尾的空字符
char strcmp(char *s1, char *s2)

keil c51 详细中文手册

keil c51 详细中文手册

Keil C51使用详解V1.0第一章 Keil C51开发系统基本知识 (6)第一节系统概述 (6)第二节Keil C51单片机软件开发系统的整体结构 (6)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章 Keil C51软件使用详解 (10)第一节Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节dScope51的使用 (11)1. dScope51 for Dos 112. dScope for Windows 12第三节Monitor51及其使用 (13)1. Monitor51对硬件的要求 (13)2. Mon51的使用 (13)3. MON51的配置 (13)4. 串口连接图: (13)5. MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1. Ishell for Dos的使用 (14)2. uVision for windows的使用 (15)第三章 Keil C51 vs 标准C.. 15第二节内存区域(Memory Areas): (16)1. Pragram Area: (16)2. Internal Data Memory: 163. External Data Memory. 164. Speciac Function Register Memory. 16第三节存储模式 (16)1. Small模式 (16)2. Compact模式 (17)3. large模式 (17)第四节存储类型声明 (17)第五节变量或数据类型 (17)第六节位变量与声明 (17)1. bit型变量 (17)2. 可位寻址区说明20H-2FH.. 18第七节Keil C51指针 (18)1. 一般指针 (18)2. 存储器指针 (18)3. 指针转换 (18)第八节Keil C51函数 (19)1. 中断函数声明: (19)2. 通用存储工作区 (19)3. 选通用存储工作区由using x声明,见上例。

C语言中KeilC51库函数大全

C语言中KeilC51库函数大全

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

第一节本征库函数‎(intri‎nsic routi‎n e s)和非本征证‎库函数C51提供‎的本征函数‎是指编译时‎直接将固定‎的代码插入‎当前行,而不是用A‎C ALL和‎L CALL‎语句来实现‎,这样就大大‎提供了函数‎访问的效率‎,而非本征函‎数则必须由‎A CALL‎及LCAL‎L调用。

C51的本‎征库函数只‎有9个,数目虽少,但都非常有‎用,列如下:_crol‎_,_cror‎_:将char‎型变量循环‎向左(右)移动指定位‎数后返回_iror‎_,_irol‎_:将int型‎变量循环向‎左(右)移动指定位‎数后返回_lrol‎_,_lror‎_:将long‎型变量循环‎向左(右)移动指定位‎数后返回_nop_‎:相当于插入‎N OP_test‎b it_:相当于JB‎C bitva‎r测试该位‎变量并跳转‎同时清除。

_chkf‎l oat_‎:测试并返回‎源点数状态‎。

使用时,必须包含#inclu‎c le <intri‎n s.h>一行。

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

第二节几类重要库‎函数1. 专用寄存器‎i nclu‎d e文件例如803‎1、8051均‎为REG5‎1.h其中包括‎了所有80‎51的SF‎R及其位定‎义,一般系统都‎必须包括本‎文件。

2. 绝对地址i‎n clud‎e文件ab‎s acc.h该文件中实‎际只定义了‎几个宏,以确定各存‎储空间的绝‎对地址。

3. 动态内存分‎配函数,位于std‎l ib.h中4. 缓冲区处理‎函数位于“strin‎g.h”中其中包括拷‎贝比较移动‎等函数如:memcc‎p y memch‎r memcm‎p memcp‎y memmo‎v e memse‎t这样很方便‎地对缓冲区‎进行处理。

(完整版)Keilc51常用库函数汇总参考

(完整版)Keilc51常用库函数汇总参考

Keil c51函数参考一、数学函数〈math.h >(1)cabs原型:char cabs(char val);功能:cabs函数取val的绝对值。

参数:一字节数val.返回:cabs返回val的绝对值。

(2)abs原型:Int abs(int val);功能:求绝对值参数:val整型数返回:val的绝对值(3)labs原型:long labs(long val);功能:labs函数确定长整数val的绝对值.返回:val的绝对值。

(4)fabs原型:float fabs(float val);功能:fabs函数确定浮点数val的绝对值.参数:返回:fabs返回val的绝对值。

(5)sqrt原型:float sprt(float x);功能:sqrt函数计算x的平方根。

返回:sqrt函数返回x的正平方根。

(6)exp原型:float exp(float x);功能:exp函数计算自然对数中e的x次幂。

e≈2。

71828182845953581496,是无限循环小数。

返回:e x的值.(7)log原型:float log(float val);功能:log函数计算浮点数val的自然对数。

自然对数基数为e。

返回:val的浮点自然对数。

(8)log10原型:float log10(float val);功能:logl0函数计算浮点数val的常用对数.常用对数为基数10。

返回:val的浮点常用对数。

(9)sin参数:x必须在—65535~65535之间,或产生一个NaN错误。

返回:sin函数返回x的正弦.(10)cos原型:float cos(float x);功能:COS函数计算浮点数X的余弦.参数:X的值必须在-65535~65535之间,或产生一个NaN错误。

返回:COS函数返回X的余弦。

(11)tan原型:float tan(float x);功能:tan函数计算浮点数x的正切值.参数:x必须在—65535~65535之间,或错误值NaN.返回:tan函数返回x的正切。

C语言中KeilC51库函数大全

C语言中KeilC51库函数大全

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

第一节本征库函数(i n t r i n s i c r o u t i n es)和非本征证库函数C51提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用ACALL 和LCALL语句来实现,这样就大大提供了函数访问的效率,而非本征函数则必须由ACALL及LCALL调用。

C51的本征库函数只有9个,数目虽少,但都非常有用,列如下:_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回_iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回_lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回_nop_:相当于插入NOP_testbit_:相当于JBC bitvar测试该位变量并跳转同时清除。

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

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

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

第二节几类重要库函数1. 专用寄存器include文件例如8031、8051均为其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。

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

3. 动态内存分配函数,位于中4. 缓冲区处理函数位于“”中其中包括拷贝比较移动等函数如:memccpy memchr memcmp memcpy memmove memset这样很方便地对缓冲区进行处理。

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

第三节K ei l C51库函数原型列表1.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.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.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.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.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 (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);系统分类:用户分类:标签:无标签来源:整理阅读全文(121) | 回复(0)发表于2009/6/23 13:41:24Hello位于\C51\excmples\Hello\目录,其功能是向串口输出“Hello,world”整个程序如下:#pragma DB OE CD#indule <>#include<>void main(void){SCOn=0x50;TMOD=0x20TH1=0xf3;Tri=1;TI=1;printf(“Hello,world \n”);while(1) { }}第一节u V i s i o n f o r W i n d o w s的使用步骤(1) file_new新建一个文件,输入如上内容或直接用目录下源文件。

KEIL C51库函数

KEIL C51库函数

就可以用在自己的专用系统中。 1. 动态内存分配 init_mem.C:此文件是初始化动态内存区的程序源代码。它可以指定动态内存的位置及大小, 只有使用了 init_mem( )才可以调回其它函数,诸如 malloc calloc,realloc 等。 calloc.c:此文件是给数组分配内存的源代码,它可以指定单位数据类型及该单元数目。 malloc.c:此文件是 malloc 的源代码,分配一段固定大小的内存。 realloc.c:此文件是 realloc.c 源代码,其功能是调整当前分配动态内存的大小。 2. C51 启动文件 STARTUP.A51 启动文件 STARTUP.A51 中包含目标板启动代码,可在每个 project 中加入这个文件,只要复 位,则该文件立即执行,其功能包括: * 定义内部 RAM 大小、外部 RAM 大小、可重入堆栈位置 * 清除内部、外部或者以此页为单元的外部存储器 * 按存储模式初使化重入堆栈及堆栈指针 * 初始化 8051 硬件堆栈指针 * 向 main( )函数交权 开发人员可修改以下数据从而对系统初始化 常数名 意义 IDATALEN 待清内部 RAM 长度 XDATA START 指定待清外部 RAM 起始地址 XDATALEN 待清外部 RAM 长度 IBPSTACK 是否小模式重入堆栈指针需初始化标志,1 为需要。缺省为 0 IBPSTACKTOP 指定小模式重入堆栈顶部地址 XBPSTACK 是否大模式重入堆栈指针需初始化标志,缺省为 0 XBPSTACKTOP 指定大模式重入堆栈顶部地址 PBPSTACK 是否 Compact 重入堆栈指针,需初始化标志,缺省为 0 PBPSTACKTOP 指定 Compact 模式重入堆栈顶部地址 PPAGEENABLE P2 初始化允许开关 PPAGE 指定 P2 值 PDATASTART 待清外部 RAM 页首址 PDATALEN 待清外部 RAM 页长度 提示:如果要初始化 P2 作为紧凑模式高端地址,必须:PPAGEENAGLE=1,PPAGE 为 P2 值, 例如指定某页 1000H-10FFH,则 PPAGE=10H,而且连接时必须如下: L51<input modules> PDATA(1080H),其中 1080H 是 1000H-10FFH 中的任一个值。 以下是 STARTUP.A51 代码片断,红色是经常可能需要修改的地方: ;-----------------------------------------------------------------; This file is part of the C51 Compiler package ; Copyright KEIL ELEKTRONIK GmbH 1990 ;-----------------------------------------------------------------; STARTUP.A51: This code is executed after processor reset. ; ; To translate this file use A51 with the following invocation: ; ; A51 STARTUP.A51 ; ; To link the modified STARTUP.OBJ file to your application use the following ; L51 invocation: ;

常用Keil C51库函数

常用Keil C51库函数
将长整型数据val循环右移n位,相当于RR命令
bit _testbit_(bit x)
相当于JBC bit指令
unsigned char _chkfloat_(float ual)
测试并返回浮点数状态
void _nop_(void)
产生一个NOP指令
2.字符判断转换库函数:
字符判断转换库函数的原型声明在头文件CTYPE.H中定义。
函数名及定义
功能说明
void *memchr(void *s1, char val, int len)
顺序搜索字符串s1的前len个字符,以找出字符val,成功时返回s1中指向val的指针,失败时返回NULL
char memcmp(void *s1, void *s2, int len)
逐个字符比较串s1和s2的前len个字符,成功时返回0,如果串s1大于或小于s2,则相应地返回一个正数或一个负数
用val来填充指针s中的len个单元
void *strcat(char *s1, char *s2)
将串s2复制到s1的尾部。strcat假定s1所定义的地址区域足以接受两个串。返回指向s1中的第一个字符的指针
char *strncat( char *s1, char *s2, int n)
复制串s2中n个字符到s1的尾部,如果s2比n短,则只复制s2(包括串结束符)
int strcspn(char *s1, char *set)
与strspn相似,但它搜索的是s1串中的第一个包含在set里的字符。
int printf(const char *fmstr[,argument]...)
以第一个参数指向字符串制定的格式通过8051串行口输出数值和字符串,返回值为实际输出的字符数

第6章 Keil C51软件使用说明

第6章 Keil C51软件使用说明

int n;
*pd=&m;/* &为取地址运算符,将变量m的地址赋给指针pd*/ n=*pd; /*使用指针变量进行间接访问,将变量m的值赋给 n,n=100*/
26
MCS-51单片机原理、接口及应用
第6章 单片机的C51语言编程
6.3 C51的运算符
与C语言基本相同:
算术
关系
+ - * / %(加 减 乘 除 余) > >= < <= (大于 大于等于 小于 小于等于) == !=
{
}
DBYTE[0x30]=0xff;
XBYTE[0x1000]=0x12;
11
MCS-51单片机原理、接口及应用
第6章 单片机的C51语言编程
(3)其它头文件
math.h:数学运算函数,如求绝对值、平方根、指数、正弦等
函数。
ctype.h:提供两类重要的函数:字符测试函数和字符大小转化 函数。 例如,判断一个整型变量是数字、字母、换行符、控制符等。 ctype.h:提供两类重要的函数:字符测试函数和字符大小转化
(等于 不等于) (逻辑与 逻辑或 逻辑非 )
逻辑 按位 操作 运算符
27
&& || !
>> <<
& |
(位右移
(按位与
位左移)
按位或)
MCS-51单片机原理、接口及应用
CBYTE、CWORD (以字节型、字型访问ROM)
DBYTE、DWORD (访问内部RAM) PBYTE、PWORD (外部RAM的一页空间(256B))
XBYTE、XWORD (访问外部RAM)
10
MCS-51单片机原理、接口及应用

Keil C51使用详解

Keil C51使用详解

Keil C51使用详解第一章Keil C51开发系统基本知识 (6)第一节系统概述 (6)第二节Keil C51单片机软件开发系统的整体结构 (6)第三节Keil C51工具包的安装 (7)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章Keil C51软件使用详解 (10)第一节Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节dScope51的使用 (11)1. dScope51 for Dos 112. dScope for Windows 12第三节Monitor51及其使用 (13)1. Monitor51对硬件的要求 (13)2. Mon51的使用 (13)3. MON51的配置 (13)4. 串口连接图: (13)5. MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1. Ishell for Dos的使用 (14)2. uVision for windows的使用 (15)第三章Keil C51 vs 标准C.. 15第一节Keil C51扩展关键字 (15)第二节内存区域(Memory Areas): (16)1. Pragram Area: (16)2. Internal Data Memory: 163. External Data Memory. 164. Speciac Function Register Memory. 16第三节存储模式 (16)1. Small模式 (16)2. Compact模式 (17)3. large模式 (17)第四节存储类型声明 (17)第五节变量或数据类型 (17)第六节位变量与声明 (17)1. bit型变量 (17)2. 可位寻址区说明20H-2FH.. 18第七节Keil C51指针 (18)1. 一般指针 (18)2. 存储器指针 (18)3. 指针转换 (18)第八节Keil C51函数 (19)1. 中断函数声明: (19)2. 通用存储工作区 (19)3. 选通用存储工作区由using x声明,见上例。

单片机C语言(C51)的常用库函数

单片机C语言(C51)的常用库函数

C51的常用库函数详解C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。

每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理命令#include将有关的头文件包含进来。

C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。

下面将C51的库函数分类列出并详细介绍其用法。

1 字符函数字符函数的原型声明包含在头文件CTYPE.H中。

常用的一些字符函数介绍如下。

1.1 检查英文字母函数检查英文字母函数用于检查形参字符是否为英文字母,其函数原型如下:bit isalpha(char c);其中,c为待判断的字符,如果是英文字母则返回1,否则返回0。

程序示例如下:1.2 检查字母数字函数检查字母数字函数用于检查形参字符是否为英文字母或数字字符,其函数原型如下:bit isalnum(char c);1.3 检查控制字符函数检查控制字符函数用于检查形参字符是否为控制字符,其函数原型:bit iscntrl (char c);其中,c为待判断的字符。

控制字符其取值范围为0x00~0xlF之间或等于0x7F,如果是,则返回1,否则返回0。

1.4 十进制数字检查函数十进制数字检查函数用于检查形参字符是否为十进制数字,其函数原型如下:bit isdigit (char c);其中,c为待判断的字符,如果是十进制数字则返回1,否则返回0。

1.5 可打印字符检查函数可打印字符检查函数用于检查形参字符是否为可打印字符,其函数原型如下:bit isgraph (char c);其中,c为待判断的字符。

可打印字符的取值范围为0x21~0x7C,不包含空格,如果是可打印字符则返回1,否则返回0。

1.6 包含空格的可打印字符检查函数包含空格的可打印字符检查函数用于检查形参字符是否为可打印字符以及空格,其函数原型如下:bit isprint (char c);其中,c为待判断字符。

keil c51 详细中文手册

keil c51 详细中文手册

KeilC51使用详解V1.0第一章KeilC51开发系统基本知识 (6)第一节系统概述 (6)第二节KeilC51单片机软件开发系统的整体结构 (6)第三节第四节1.C512.L51第一节1.2.3.第二节1.dScope51forDos112.dScopeforWindows12第三节Monitor51及其使用 (13)1.Monitor51对硬件的要求 (13)2.Mon51的使用 (13)3.MON51的配置 (13)5.MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1.IshellforDos的使用 (14)2.uVisionforwindows的使用 (15)第三章KeilC51vs标准C..15第一节KeilC51扩展关键字 (15)1.bit2.可位寻址区说明20H-2FH..18第七节KeilC51指针 (18)1.一般指针 (18)2.存储器指针 (18)3.指针转换 (18)第八节KeilC51函数 (19)2.通用存储工作区 (19)3.选通用存储工作区由usingx声明,见上例。

(19)4.指定存储模式 (19)5.#pragmadisable.196.递归或可重入函数指定 (19)7.指定PL/M-51函数 (20)1.2._at_3.第二节1.2.第三节1.2.C513.4.第四节段名协定与程序优化 (25)1.段名协定(SegmentNamingConventions)252.程序优化 (25)第五章KeilC51库函数参考 (26)第一节本征库函数(intrinsicroutines)和非本征证库函数 (26)第二节几类重要库函数 (26)1.专用寄存器include文件 (26)2.绝对地址include文件absacc.h.263.动态内存分配函数,位于stdlib.h中 (27)4.缓冲区处理函数位于“string.h”中 (27)5.输入输出流函数,位于“stdio.h”中 (27)第三节KeilC51库函数原型列表 (27)1.CTYPE.H..27第一节第二节2.调试窗口(DEBUGWindow) (32)3.命令窗口(CommandWindow) (32)4.观察窗口(WatchWindow) (32)5.寄存器窗口(RegisteWindow) (32)6.串口窗口(SericalWindows) (32)7.性能分析窗口 (32)8.内存窗口(MemoryWindow) (32)9.符号浏览窗口(SymbolBrowserWindow) (33)10.调用线窗口(Call-StackWindow) (33)11.代码覆盖窗口 (33)12.外围设备窗口(peripherals)33第二节dScopeforWindows基本操作 (33)1.指定初始化文件 (33)第三节8.指针: (38)9.dScope命令语句 (38)10.函数 (43)第一章KeilC51开发系统基本知识第一节系统概述KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

keilc51_使用详解

keilc51_使用详解

Keil C51使用详解V1.1电子设计世界!版权所有,欢迎转贴,请勿修改并注明出处。

保留一切权利。

? (6)开发系统基本知识 Keil C51第一章.第一节系统概述 (6)第二节Keil C51单片机软件开发系统的整体结构 (6)第三节Keil C51工具包的安装 (7)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章 Keil C51软件使用详解 (10)第一节Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节dScope51的使用 (11)1. dScope51 for Dos 112. dScope for Windows 12第三节Monitor51及其使用 (13)1. Monitor51对硬件的要求 (13)2. Mon51的使用 (13)3. MON51的配置 (13)4. 串口连接图: (13)5. MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1. Ishell for Dos的使用 (14) (15)的使用2. uVision for windows第三章 Keil C51 vs 标准C.. 15第一节Keil C51扩展关键字 (15)第二节内存区域(Memory Areas): (16)1. Pragram Area: (16)2. Internal Data Memory: 163. External Data Memory. 164. Speciac Function Register Memory. 16 第三节存储模式 (16)1. Small模式 (16)2. Compact模式 (17)3. large模式 (17)第四节存储类型声明 (17)第五节变量或数据类型 (17)第六节位变量与声明 (17)1. bit型变量 (17)2. 可位寻址区说明20H-2FH.. 18第七节Keil C51指针 (18)1. 一般指针 (18)2. 存储器指针 (18)3. 指针转换 (18)第八节Keil C51函数 (19)1. 中断函数声明: (19)2. 通用存储工作区 (19)3. 选通用存储工作区由using x声明,见上例。

keil c51 详细中文手册

keil c51 详细中文手册

KeilC51使用详解V1.0第一章KeilC51开发系统基本知识 (6)第一节系统概述 (6)第二节KeilC51单片机软件开发系统的整体结构 (6)第三节第四节1.C512.L51第一节1.2.3.第二节1.dScope51forDos112.dScopeforWindows12第三节Monitor51及其使用 (13)1.Monitor51对硬件的要求 (13)2.Mon51的使用 (13)3.MON51的配置 (13)5.MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1.IshellforDos的使用 (14)2.uVisionforwindows的使用 (15)第三章KeilC51vs标准C..15第一节KeilC51扩展关键字 (15)1.bit2.可位寻址区说明20H-2FH..18第七节KeilC51指针 (18)1.一般指针 (18)2.存储器指针 (18)3.指针转换 (18)第八节KeilC51函数 (19)2.通用存储工作区 (19)3.选通用存储工作区由usingx声明,见上例。

(19)4.指定存储模式 (19)5.#pragmadisable.196.递归或可重入函数指定 (19)7.指定PL/M-51函数 (20)1.2._at_3.第二节1.2.第三节1.2.C513.4.第四节段名协定与程序优化 (25)1.段名协定(SegmentNamingConventions)252.程序优化 (25)第五章KeilC51库函数参考 (26)第一节本征库函数(intrinsicroutines)和非本征证库函数 (26)第二节几类重要库函数 (26)1.专用寄存器include文件 (26)2.绝对地址include文件absacc.h.263.动态内存分配函数,位于stdlib.h中 (27)4.缓冲区处理函数位于“string.h”中 (27)5.输入输出流函数,位于“stdio.h”中 (27)第三节KeilC51库函数原型列表 (27)1.CTYPE.H..27第一节第二节2.调试窗口(DEBUGWindow) (32)3.命令窗口(CommandWindow) (32)4.观察窗口(WatchWindow) (32)5.寄存器窗口(RegisteWindow) (32)6.串口窗口(SericalWindows) (32)7.性能分析窗口 (32)8.内存窗口(MemoryWindow) (32)9.符号浏览窗口(SymbolBrowserWindow) (33)10.调用线窗口(Call-StackWindow) (33)11.代码覆盖窗口 (33)12.外围设备窗口(peripherals)33第二节dScopeforWindows基本操作 (33)1.指定初始化文件 (33)第三节8.指针: (38)9.dScope命令语句 (38)10.函数 (43)第一章KeilC51开发系统基本知识第一节系统概述KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

单片机C语言知识(C51)的普通库函数

单片机C语言知识(C51)的普通库函数

单片机C语言知识(C51)的普通库函数C51的常用库函数详解C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。

每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理命令#include将有关的头文件包含进来。

C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。

下面将C51的库函数分类列出并详细介绍其用法。

1 字符函数字符函数的原型声明包含在头文件CTYPE.H中。

常用的一些字符函数介绍如下。

1.1 检查英文字母函数检查英文字母函数用于检查形参字符是否为英文字母,其函数原型如下:bit isalpha(char c);其中,c为待判断的字符,如果是英文字母则返回1,否则返回0。

程序示例如下:1.2 检查字母数字函数检查字母数字函数用于检查形参字符是否为英文字母或数字字符,其函数原型如下:bit isalnum(char c);1.3 检查控制字符函数检查控制字符函数用于检查形参字符是否为控制字符,其函数原型:bit iscntrl (char c);其中,c为待判断的字符。

控制字符其取值范围为0x00~0xlF之间或等于0x7F,如果是,则返回1,否则返回0。

1.4 十进制数字检查函数十进制数字检查函数用于检查形参字符是否为十进制数字,其函数原型如下:bit isdigit (char c);其中,c为待判断的字符,如果是十进制数字则返回1,否则返回0。

1.5 可打印字符检查函数可打印字符检查函数用于检查形参字符是否为可打印字符,其函数原型如下:bit isgraph (char c);其中,c为待判断的字符。

可打印字符的取值范围为0x21~0x7C,不包含空格,如果是可打印字符则返回1,否则返回0。

C51函数库函数功能表

C51函数库函数功能表

一、CTYPE.H1、extern bit isalpha (unsigned char);检查参数字符是否为英文字符,是则返回1,否则返回02、extern bit isalnum (unsigned char);检查参数字符是否为字母或者数字字符,是则返回1,否则返回03、extern bit iscntrl (unsigned char);检查参数值是否在0x00~0x7F之间或者等于0x7F,是则返回1,否则返回04、extern bit isdigit (unsigned char);检查参数值是否为数字字符,是则返回1,否则返回05、extern bit isgraph (unsigned char);检查参数是否为可打印字符(0x21~0x7E),是则返回1,否则返回06、extern bit isprint (unsigned char);检查参数是否为可打印字符,包括空格符,其余与isgraph相同7、extern bit ispunct (unsigned char);检查参数是否为标点、空格或者格式字符,是则返回1,否则返回08、extern bit islower (unsigned char);检查参数是否为小写字母,是则返回1,否则返回09、extern bit isupper (unsigned char);检查参数是否为大写字母,是则返回1,否则返回010、extern bit isspace (unsigned char);检查参数是否为下列之一:空格、制表符、回车、换行、垂直制表符和送纸符号,是则返回1,否则返回011、extern bit isxdigit (unsigned char);检查参数是否为16进制数字字符,是则返回1,否则返回0 12、extern unsigned char tolower (unsigned char);将大写字符转换成小写形式,如果字符不在(A~Z)之间,则直接返回该字符13、extern unsigned char toupper (unsigned char);将小写字符转换成大写形式,如果字符不在(a~z)之间,则直接返回该字符14、extern unsigned char toint (unsigned char);将ASCII字符0~9,A~F(不分大小写)转换成16进制的数字,返回转换后的16进制数字二、STDIO.H#ifndef EOF#define EOF -1#endif#ifndef NULL#define NULL ((void *) 0)#endif#ifndef _SIZE_T#define _SIZE_Ttypedef unsigned int size_t;#endif1、extern char _getkey (void);从单片机串口读入一个字符,然后等待字符输入2、extern char getchar (void);该函数使用_getkey()函数从串口读入字符,并将读入的字符马上给putchar()函数输出3、extern char ungetchar (char);将输入的字符回送输入缓冲区,成功返回char,否则返回EOF 4、extern char putchar (char);通过单片机的串口输出字符,与_getkey()函数一样5、extern int printf (const char *, ...);以一定的格式通过单片机串行口输出数值和字符串,返回值为实际输出的字符数6、extern int sprintf (char *, const char *, ...);通过一个指针S将数据送人可寻址的内存缓冲区,并以ASCII 码的形式存储7、extern int vprintf (const char *, char *);8、extern int vsprintf (char *, const char *, char *);9、extern char *gets (char *, int n);10、extern int scanf (const char *, ...);11、extern int sscanf (char *, const char *, ...);12、extern int puts (const char *);三、string.h1、extern char *strcat (char *s1, char *s2);2、extern char *strncat (char *s1, char *s2, int n);3、extern char strcmp (char *s1, char *s2);4、extern char strncmp (char *s1, char *s2, int n);5、extern char *strcpy (char *s1, char *s2);6、extern char *strncpy (char *s1, char *s2, int n);7、extern int strlen (char *);8、extern char *strchr (const char *s, char c);9、extern int strpos (const char *s, char c);10、extern char *strrchr (const char *s, char c);11、extern int strrpos (const char *s, char c);12、extern int strspn (char *s, char *set);13、extern int strcspn (char *s, char *set);14、extern char *strpbrk (char *s, char *set);15、extern char *strrpbrk (char *s, char *set);16、extern char *strstr (char *s, char *sub);17、extern char *strtok (char *str, const char *set);18、extern char memcmp (void *s1, void *s2, int n);19、extern void *memcpy (void *s1, void *s2, int n);20、extern void *memchr (void *s, char val, int n);21、extern void *memccpy (void *s1, void *s2, char val, int n);22、extern void *memmove (void *s1, void *s2, int n);23、extern void *memset (void *s, char val, int n);四、stdlib.h1、extern int abs (int val);2、extern long labs (long val);3、extern float atof (char *s1);将字符串转换成浮点数4、extern long atol (char *s1);将字符串转换成长整型5、extern int atoi (char *s1);将字符串转换成整型6、extern int rand ();取一个0~32767之间的随机数7、extern void srand (int);根据种子seed的值取随机数8、extern float strtod (char *, char **);9、extern long strtol (char *, char **, unsigned char);将字符串转换成长整数10、extern unsigned long strtoul (char *, char **, unsigned char);将字符串转换成无符号长整数#define _MALLOC_MEM_ xdata11、extern void init_mempool (void _MALLOC_MEM_ *p, unsigned int size);初始化内存池12、extern void _MALLOC_MEM_ *malloc (unsigned int size);申请一块大小为size的内存13、extern void free (void _MALLOC_MEM_ *p);释放一块被申请的内存14、extern void _MALLOC_MEM_ *realloc (void _MALLOC_MEM_ *p, unsigned int size);重新申请一块大小为size的内存15、extern void _MALLOC_MEM_ *calloc (unsigned int size, unsigned int len);申请有size个元素的,每个元素的大小为len的数组五、math.h1、extern char cabs (char val);计算并返回val的绝对值,为char型2、extern int abs (int val);计算并返回val的绝对值,为int型3、extern long labs (long val);计算并返回val的绝对值,为long型4、extern float fabs (float val);计算并返回val的绝对值,为float型5、extern float sqrt (float val);返回x的正平方根6、extern float exp (float val);计算e为底x的幂并返回计算结果7、extern float log (float val);返回自然对数8、extern float log10 (float val);返回以10为底的对数9、extern float sin (float val);10、extern float cos (float val);11、extern float tan (float val);以上3个函数返回相应的三角函数值,所有的变量范围在-π/2 ~ +π/2之间,否则会返回错误12、extern float asin (float val);13、extern float acos (float val);14、extern float atan (float val);返回相应的反三角函数值,值域为-π/2 ~ +π/215、extern float sinh (float val);16、extern float cosh (float val);17、extern float tanh (float val);返回x的相应的双曲函数值18、extern float atan2 (float y, float x);返回x/y的反正切值,值域为-π~ +π19、extern float ceil (float val);返回一个不小于val的最小整数(作为浮点数)20、extern float floor (float val);返回一个不大于val最大整数(作为浮点型)21、extern float modf (float val, float *n);将浮点数val分为整数和小数两部分,两者的符号与val相同,整数部分放入*n,小数部分作为返回值22、extern float fmod (float x, float y);返回x/y的余数23、extern float pow (float x, float y);返回x的y次方六、absacc.h以下4个宏定义,对单片机的进行绝对地址访问,可以作为字节寻址,CBYTE寻址code区,DBYTE寻址data区,PBYTE寻址分页xdata区,XBYTE寻址xdata区1、#define CBYTE ((unsigned char volatile code *) 0)2、#define DBYTE ((unsigned char volatile data *) 0)3、#define PBYTE ((unsigned char volatile pdata *) 0)4、#define XBYTE ((unsigned char volatile xdata *) 0)以上4个宏定义与上面4个功能类似,只是数据类型是unsigned int型5、#define CWORD ((unsigned int volatile code *) 0)6、#define DWORD ((unsigned int volatile data *) 0)7、#define PWORD ((unsigned int volatile pdata *) 0)8、#define XWORD ((unsigned int volatile xdata *) 0)七、intrins.h1、extern void _nop_ (void);空操作指令,需要一个指令周期2、extern bit _testbit_ (bit);该函数对字节中的一个比特进行测试,如果该比特为1则返回1,并置该位为0,否则返回03、extern unsigned char _cror_ (unsigned char, unsigned char);4、extern unsigned int _iror_ (unsigned int, unsigned char);5、extern unsigned long _lror_ (unsigned long, unsigned char);将第一个参数循环右移n位,3个函数的参数和返回值类型不同6、extern unsigned char _crol_ (unsigned char, unsigned char);7、extern unsigned int _irol_ (unsigned int, unsigned char);8、extern unsigned long _lrol_ (unsigned long, unsigned char);将第一个参数循环左移n位,3个函数的不同在于参数和返回值的类型9、extern unsigned char _chkfloat_(float);10、extern void _push_ (unsigned char _sfr);11、extern void _pop_ (unsigned char _sfr);八、setjmp.htypedef char jmp_buf[_JBLEN];1、extern volatile int setjmp (jmp_buf);2、extern volatile void longjmp (jmp_buf, int);。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档