收藏 分销(赏)

C51函数库.doc

上传人:s4****5z 文档编号:8821744 上传时间:2025-03-03 格式:DOC 页数:13 大小:60.50KB 下载积分:10 金币
下载 相关 举报
C51函数库.doc_第1页
第1页 / 共13页
C51函数库.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
字符库函数 添加ctype.h头文件 返回值:真 假 1.英文字符检查函数isalpha : bit isalpha(char c) 。 1 0 2.字母数字检查函数isalnum : bit isalnum(char c) 。 1 0 3.控制字符检查函数iscntrl : bit iscntrl(char c) 。 1 0 0x00-0x1F 4.十进制数字检查函数isdigit : bit isdigit(char c) 。 1 0 5.可打印字符检查函数isgraph : bit isgraph(char c) 。 1 0 6.含空格的可打印字符检查函数isprint:bit isprint(char c) 。1 0 0x21-0x7C 7.格式字符检查函数ispunct : bit ispunct(char c) 。 1 0 8.小写字母检查函数islower : bit islower(char c)。 1 0 9.大写字母检查函数isupper : bit isupper(char c)。 1 0 10.控制字符检查函数isspace : bit isspace(char c)。 1 0 0x09-0x0d 11.十六进制数检查函数isxdigit: bit isxdigit(char c)。 1 0 12.十六进制数字转换函数toint:char toint(char c)。'0-9'='0H-9H';'a-f'='0AH-0FH' 13.大写字符转换函数tolower : char tolower(char c) 。无 原字符 14.小写字符转换函数toupper : char toupper(char c) 。无 原字符 15.ASC||字符转换函数toascii: char toascii(char c) 。 16.大写字符宏转换函数_tolower: char _tolower(char c)。 0x20 17.小写字符宏转换函数_toupper: char _toupper(char c)。 0xdf 字符串函数库 添加string.h头文件 返回值:真 假 1. 字符查找函数memchr void *memchr(void*s1,char val,int len) val NULL 2. 指定长度的字符串比较函数memcmp char memcmp(void *s1,void *s2,int len) s1=s2 0;s1<s2 负数;s1>s2 正数 3. 字符串复制函数memcpy void *memcpy(void *dest,void *src,int len); 4. 带终止字符的字符串复制函数memccpy Void *memccpy(void *dest,void *src,char val,int len) 5. 字符串移动函数memmove Void *memmove(void *dest,void *src,int len) 6. 字符串填充函数memset Void *memset(void *s,char val,int len) 7. 字符串追加函数strcat Void *strcat(char *s1,char *s2) 8. 指定长度的字符串追加函数strncat Void *strncat(char *s1,char *s2,int n) 9. 字符串比较函数strcmp Char strcmp(char *s1,char *s2) S1=s2 0;s1<s2 负数;s1>s2 正数 10. 包含结束符的字符串比较函数strncmp Char *strncmp(char *s1,char *s2,int n) S1=s2 0;s1<s2 负数;s1>s2 正数 11. 字符串覆盖函数strcpy Char *strcpy(char *s1,char *s2) 12. 指定长度字符串覆盖函数strncpy Char *strcpy(char *s1,char *s2,int n) 13. 获取字符个数函数strlen Char *strlen(char *s1) 14. 搜索字符串函数strstr Char *strstr(const char *s1,char *s2) 15. 搜索字符函数strchr Char *strctr(char *s1,char c) 16. 字符搜索函数(返回值置值)strpos Int strpos(char *s1,char c) 找到则首字符的位置值为0;没有则返回值为-1 17. 字符包含函数strrchr Char *strrchr(char *s1,char c) 18. 字符包含函数(返回位置值)strrpos Int strrpos(char *s1,char c) 找到则首字符的位置值为0;没有则返回值为-1 19. 查找不到包含字符函数strspn Int strspn(char *s1,char *set) 查找不包含字符函数用于搜索字符串s1中第一个不包含在set串中的字符,返回 值是字符串s1中包括在set中的字符的个数 20. 查找包含字符函数strcspn Int strcspn(char *s1,char *set) set>s1 则输出s1;set<s1 则输出set 21. 查找首个包含字符函数strpbrk Char *strpbrk(char *s1,char *set) 22. 查找末个包含字符函数strrpbrk Char *strrpbrk(char *s1,xhar *set) 输入/输出函数库 添加stdio.h头文件 1.读字符函数_getkey Char _getkey() %bx是十六进制数 2.读字符并输出函数getchar Char getchar() 3.读字符串函数gets Char *gets(char *s,int n) 4.回送字符函数ungetchar Char ungetchar(char c) 回送成功返回char型值,失败返回EOF 5.字符输出函数putchar Char putchar(char c) 0x30-0x3A为0123456789 6.格式化输出函数printf Int printf(const char *fmstr[,argument]…) 7.格式化内存缓冲区输出函数sprintf Int sprintf(char *s,const char *fmstr[,argument]…) 8.输出字符串函数puts Int puts(const char *s) 成功则返回0;失败则返回EOF 9.格式化输入函数scanf Int scanf(const char *fmstr[,argument]…) 10.格式化内存缓冲区输入函数ssanf Int sscanf(char *s,const char *fmstr[,argument]..) 11.字符串内存输出函数vprintf Int vprintf(const char *fmstr,char *argptr) 返回值为实际写入到输出字符串中的字符数 12.指向缓冲区的输出函数vsprintf Int vsprintf(char *s,const char *fmstr,char *argptr) 返回值为实际写入到输出字符串中的字符数 数学函数库 添加math.h头文件 1. 取绝对值函数abs、cabs和labs Int abs(int val) Char cabs(char val) Float fabs(float val) Long labs(long val) 2. 指数函数exp、对数函数(log、log10)和平方根函数sqrt Float exp(float x) Float log(float x) Float log10(float x) Float sqrt(float x) 3.三角函数 Float cos(float x) //余弦 Float sin(float x) //正弦 Float tan(float x) //正切 Float acos(float x) //反余弦 Float asin(float x) //反正弦 Float atan(float x) //反正切 Float atan2(float x) //y/x的反正切 Float cosh(float x) //双曲余弦 Float sinh(float x) //双曲正弦 Float tanh(float x) //双曲正切 4.向上取整ceil和向下取整函数floor Float ceil(float x) 计算并返回一个不小于x的最小正整数(浮点型) Float floor(float x) 计算并返回一个不大于x的最大正整数(浮点型) 5.整数小数分离函数modf Float modf(float x,float *ip) 将x整数部分存入*ip,返回值为小数部分 6.幂函数pow Float pow(float x,float y) 当x=0且y<=0或x<0且y不是整数时返回NaN 标准函数库 添加stdlib.h头文件 1. 字符串转换函数atoi、atol、atof Float atoi(char *s1) //转换为整型 输入格式:[whitespace][{+/-}]数字 Float atol(char *s1) //转换为长整型 输入格式:[whitespace][{+/-}]数字,该函数遇到第一个不能构成数字的字符时 便停止 Float atof(char *s1) //转换为浮点型 输入格式:[{+/-}]数字[数字][{e/E}[{+/-}]数字],该函数遇到第一个不能构成 数字的字符时便停止 2. 带返回指针的字符串转换函数strtod、strol、strtoul Float strtod(const char *s,char **ptr) Long strtol(const char *s,char **ptr,unsigned char base) 将字符串转换成数值并输出,返回未转换部分的指针 Base=0,则数据为十进制、八进制、十六进制格式; Base=2-36,表示指定基数的一个整数; Base=a-z或A-Z表示数据10-36只有小于base的字母表示的值才有效; 此时数据为一个字母或数字的非零序列 Unsigned long strtoul(const char *s,char **ptr,unsigned char base) 溢出时返回ULONG_MAX 3. 伪随机数函数rand和srand int rand() Void srand(int n) 4. 分配数组内存函数calloc Void *calloc(unsigned int n,unsigned int size) 返回值为已分配的内存单元起始地址,失败则返回0 5.释放内存函数free Void free(void xdata *p) 释放用calloc、malloc、realloc函数分配的存储区域 6. 内存初始化函数init_mempool Void init_mempool(void xdata *p,unsigned int size) 7. 内存分配函数malloc Void *malloc(unsigned int size) 返回值为指向所分配内存的指针,没有足够的内存空间可用返回NULL 8. 内存大小调整函数realloc Void *realloc(void xdata *p,unsigned int size) 返回值为新区域所指向的指针,没有足够的内存空间可用返回NULL 内部函数库 添加intrins.h头文件 1. 循环左移函数_crol_、_irol_、_lrol_ Unsigned char _crol_(unsigned char val,unsigned char n) Unsigned int _irol_(unsigned int val,unsigned char n) Unsigned long _lrol_(unsigned long val,unsigned char n) 转化成二进制在移 2. 循环右移函数_cror_、_iror_、_lror_ Unsigned char _cror_(unsigned char val,unsigned char n) Unsigned int _iror_(unsigned int val,unsigned char n) Unsigned long _lror_(unsigned long val,unsigned char n) 转化成二进制在移 3. 延时函数_nop_ Void _nop_() 4. 位测试函数_testbit_ Void _testbit_(bit x) 用于对字节中的一位进行测试。如果该位变量置位,则返回1,同时将该位复 位为0,否则返回为0.只能用于可直接寻址的位,不允许在表达式中使用 预处理命令 #define 标识符(参数表) 替换对象,用于宏定义操作。 #error,用于程序调试。 #error "message" #include,用于文件包含。 常用的头文件: Absacc.h 包含允许直接访问8051不同存储区的宏定义 Asscert.h 文件定义asscert宏,用来建立程序的测试条件 Ctype.h 常用的飞转换盒分类库函数 Intrins.h 文件包含只是编译器产生嵌入原有代码的程序的原型 Math.h 数学库函数 Reg51.h 51系列单片机相应的特殊寄存器 Setjmp.h 定义jmp_buf类型以及setjmp和longjmp程序的原型 Stdarg.h 可变长度参数列表库函数 Stdlib.h 存储区分配库函数 Stdio.h 输入和输出函数 String.h 字符串操作程序和缓冲区操作库函数 #if,用于条件编译,与#else、#endif一起使用。 #else,用于条件编译,与#if、#endif一起使用。 #endif,用于条件编译,与#else、#if使用。 #if 表达式 语句段; #else 语句段; #endif (双分支条件编译指令) #elif,用于多种条件编译选择,与#if、#endif一起使用。 #if 表达式 0 语句段; #elif 表达式1 语句段; #if 表达式 2 语句段; #elif 表达式 3 语句段; #endif (多分支条件编译指令) #ifdef,用于条件编译,与#ifndef使用。 #ifndef,用于条件编译,与#ifdef使用。 #ifdef /#ifndef 宏名 语句段; #endif #undef 宏名,用于宏定义,取消宏名。 #line,用于在程序中更改行号。 #line 数字 #line "文件名" #pragma,用于向编译程序传送控制指令。 #pragma sfr //在C51语言只能怪使用SFR #pragma access //使用绝对地址 #pragma asm/endasm //在C51语言中插入/结束汇编语言 存储类型: data:直接寻址片内数据存储区(128) 标识符 data 变量名 bdata:可位寻址片内数据存储区(16)位与字节混合访问 标识符 bdata 变量名 (不能为float、double型) idata:间接寻址片内数据存储区(256)可访问全部RAM地址空间 标识符 idata 变量名 pdata:分页寻址外部数据存储区(256),由MOVE @R0来访问 标识符 pdata 变量名 xdata:可寻址片外数据存储区(64k),由MOVE @DPTR访问 标识符 xdata 变量名 code:程序代码存储区(ROM、EEPROM或Flash,64),由MOVE @DPTR访问 标识符 code 变量名 sfr:8位特殊功能寄存器,字节寻址 sfr 特殊功能寄存器名=特殊功能寄存器地址常数 sfr16: 16位特殊功能寄存器,字寻址,低位在低字节,高位在高字节 sfr16 特殊功能寄存器名=特殊功能寄存器地址常数 sfr16 T2=0xCC; //定义定时器2,其地址T2L=CCH,T2H=CDH sbit:特殊功能寄存器,位寻址 sbit EA=0xAF; //指定第0xAF位为EA,即中断允许 sbit 位变量名=特殊功能寄存器名^位位置 sfr P1=0x90; //定义一个特殊功能寄存器名 sbit P1_4=P1^4; //指定位变量名所在的位置 sbit P1_2=0x90^2 bit : 特殊功能寄存器,位寻址,定义位 bit 变量名 bit flag; flag=0;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服