Keil C函数库.pdf_第1页
Keil C函数库.pdf_第2页
Keil C函数库.pdf_第3页
Keil C函数库.pdf_第4页
Keil C函数库.pdf_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论