已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Keil C 函数库 一、绝对地址宏指令: 绝对地址宏指令:使用#include 1、CBYTE address 说明:在程序内存里,读取一个字节的内容。 自变量:程序内存的地址。 定义:#define CBYTE ( unsigned char volatile code *) 0) 例 1: # include void main ( void ) char va1=0 ; / read program memory at address 0x0002 va1= CBYTE 0x0002 ; 2、CWORD address 说明:在程序内存里,读取一个字节的内容。 自变量:程序内存的地址。 定义:#define CWORD ( unsigned int volatile code *) 0) 例 2: # include void main ( void ) char va1=0 ; / read program memory at address 0x0020 va1= CWORD 0x0010 ; 3、DBYTE address 说明:在 8051 内部数据存储器里,读取一个字节的内容。 自变量:内部数据存储器的地址 ( 00xff ) 。 定义:#define DBYTE ( unsigned char volatile data *) 0) 例 3: # include void IRamSet ( unsigned char value ) ; void main ( void ) char va1=0 ; / cpu internal ram write data 0xaa IRamSet ( 0xaa ) ; / read cpu internal data at address 0x0032 va1= DBYTE 0x0032 ; / write data at address 0x0032 DBYTE 0x0032 =0x1b; / set data at address 0x200x7f unsigned char idata address _at _ 0x20 ; void IramSet ( unsigned char value ) unsigned char idata *index= unsigned char i ; for ( i =0 ; i 0 15、void *strncpy ( char *dest,char *src,int len ) 说 明:将 src 字符串的前面 len 字符,复制到 dest 所指定的字符串。 自变量:*dest: 目的字符串。 *src: 来源字符串。 Len: 字符长度。 返回值:目的字符串。 例 15: void CopyString ( char *str ) ; #include void main ( void ) copystring( “12345678”) ; void copystring( char *str ) char buf20 ; strncpy( buf,str,sizeof(buf) ; bufsizeof(buf) = o; 16、void *strpbrk ( char *string ,char *set ) 说 明: 寻找 string 字符串中的设定字符串。 自变量:*string: 来源字符串。 *set: 设定的字符串。 返回值: 找到 set 字符串后第一个字符的地址,如果字符串未找到时就返回 零(NULL)。 例 16: #include void main ( void ) char set =“rch” ; char text =“serch string” ; char *p ; / if not found then p =0 / if found,then p =address of first characters p =strpbrk( text,set ) ; 17、void *strpos ( const char *string ,char c ) 说 明: 寻找 string 字符串中的字符串。 自变量:*string: 来源字符串。 *set: 欲寻找字符。 返回值: 找到字符串的索引值,从 0 开始算,如果字符串未找到时就返回-1。 例 17: #include void main ( void ) char text =“search this string” ; int i ; bit FgNoFound =0 ; / if not found then i =-1 / if found , then i =index address i =strops( text ,h) ; / i =5 if ( i =-1 ) FgNoFound =1; 七、串行通信类函数库: 串行通信类函数库:使用 #include 1、void char getchar ( void ) 说 明:由 UART(8051 serial port)读回一个字符。 返回值: 读者回的字符。 例 1: #include void main ( void ) char c ; c =getchar ( ) ; 2、void char _getkey ( void ) 说 明:等待由 8051 serial port 读回一个字符。 返回值: 读者回的字符。 例 2: #include void main ( void ) char c ; c =getkey ( ) ; 为配合外围硬件电路,列出_getkey 的源程序如下: #include char _getkey ( ) while ( !RI ) ; c =SBUF ; RI =0 ; Return ( c ) ; 3、char *gets ( char *string , int len ) 说 明:由 UART(8051 serial port)读入 len 长度的字符串,并存到 string。 自变量:*string: 字符串缓冲区。 len: 最大长度。 返回值: 没有错误,返回 string 地址。 有错误,则返回零( NULL )。 例 3: #include void main ( void ) xdata char buf10 ; do gets( buf ,sizeof ( buf ); while ( buf0! =!0); 4、char printf ( const char *fmtstr ,arguments ) 说 明:将格式化数据写到 UART。 返回值: 字符数量。 例 4: #include void main ( void ) printf(“ HELLO” ) ; 5、char putchar ( char c ) 说 明:将字符 c 写到 UART(8051 serial port)。 自变量:字符。 返回值: 没有错误,返回字符 c。 例 5: #include void main ( void ) unsigned char i ; / ASCII character code transmit from serial port for ( i =0x20; i 0x7f; i+ ) putchar ( i ) ; 为配合外围硬件电路,列出 putchar 的源程序如下: #include #define XON 0x11 #define XOFF 0x13 char putchar ( char c ) if ( c =n) if ( RI ) if ( SBUF =XOFF ) do RI =0 ; While ( !RI ); while ( SBUF != XON ); RI =0 ; while ( !TI ); TI =0; SBUF =0x0d; /* output CR */ if ( RI ) if ( SBUF =XOOF ) do RI =0; while ( !RI ); while ( SBUF != XON ); RI =0; while ( !TI ); TI =0; return ( SBUF =c ); 6、int puts ( cunst char *string ) 说 明:将字符串写到 UART(8051 serial port)。 自变量:字符串。 返回值: 没有错误,返回 0。 有错误,则返回-1 ( EOF )。 例 6: #include void main ( void ) puts ( line #1 ); puts ( line #2 ); puts ( line #3 ); puts ( line #4 ); 7、int scanf ( cunst char *fmtstr ,arguments ) 说 明:从 UART 读入格式化数据。 返回值: 没有错误,返回字符数据。 有错误,则返回-1 ( EOF )。 例 7: #include void main ( void ) char a ; int b ; int c ; int argsread ; printf (“enter a signed byte, int, longn”); argsread =scanf(“%bd %d %1d”, printf (“%d arguments read n”,argsread ); 8、int scanf ( cunst char *fmtstr ,arguments ) 说 明: 将格式化数据写到由 buffer 所指定的字符数组。 返回值: 字符数量。 例 8: #include void main ( void ) char buf20 ; int n ; int a ; int b ; float pi ; a =1234 ; b =5678 ; pi =3.14159 ; n =sprintf ( buf , “%fn”,1.1 ); n+ =sprintf ( buf+n , “%dn”,a ); n+ =sprintf ( buf+n , “%d %s %g”,b ,“-”,pi ); printf( buf ); 9、int sscanf ( char *buffer , cunst char *fmtstr ,arguments ) 说 明:从 UART 读入格式化数据。 返回值: 没有错误,返回字符数据。 有错误,则返回-1 ( EOF )。 例 9: #include void main ( void ) char a ; int b ; int c ; int argsread ; printf (“read a signed byte, int, longn”); argsread =sscanf(“1 2345 6789 ” ,“%bd %d %1d”, printf (“%d arguments read n”,args
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高一下学期珍爱生命远离欺凌主题班会活动方案
- 儿童性教育活动设计案例
- 产品设计关键特性
- 刑法实训案例分析报告
- 浅谈汉语学习经验对小学英语学习的迁移-
- 保险业务模拟实训报告
- 粘胶长丝项目经济效益分析报告
- 光伏切割设备项目投资估算分析报告
- 白卡纸行业发展趋势分析报告
- 感恩的母亲节合集10篇
- 污水处理厂土建施工方案
- 籍贯对照表完整版
- 2023年乌鲁木齐职业大学单招面试模拟试题及答案解析
- 尾矿坝工程施工组织设计堆石坝
- 2023版全日制普通高中物理新课程标准
- 医院围手术期管理办法
- GB/T 39665-2020含植物提取物类化妆品中55种禁用农药残留量的测定
- GB/T 3875-2006钨板
- GB/T 29639-2020生产经营单位生产安全事故应急预案编制导则
- 个人养犬登记表(模板)
- 038正式送电申请单
评论
0/150
提交评论