8051单片机C语言开发 四 .pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8051单片机C语言开发 四

第4章 C51构造数据类型 4.1 数组 * 一、一维数组 1、数组定义:类型说明符 数组名[整型表达式] 2、数组初始化: ① 定义时全部元素赋值: int idata a[6]={0,1,2,3,4,5}; ② 部分元素初始化: int idata a[10]={0,1,2,3,4,5}; ③ 缺省为0。 3、数组的引用 只可引用数组元素: 数组名[下标] 二、字符数组: 1、定义 char c[10]; 2、初始化 char a[10]={‘z’,‘h’,‘o’,‘n’,’g’,‘g’,’o’,’u’,’︼’}; char a[ ]={“zhong guo”}; char a[ ]=“zhong guo”; ★字符串数组的元素数目比字符多一个,以便加上’\0’ 例1:将摄氏温度转换成华氏温度。(华氏度=32+1.8*摄氏度) # define uchar unsigned char uchar code tempt[ ]={32,34,36,37,39,41}; uchar ftoc(uchar degc) { return tempt[degc]; } main(){x=ftoc(5);} 例2:动态LED显示。 原理图(板书):共阳、共阴接法 源程序: #include reg51.h unsigned char key_code[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10, 0x08,0x03,0x46,0x21,0x06,0x0e,0xff}; unsigned char k=1; sbit LED1=P1^0; sbit LED2=P1^1; void delay(void) { unsigned char j; // for(i=0;i100;i++) for(j=0;j255;j++); } void main() { while(1) { LED2=0; // modify LED1=1; P0=key_code[1]; delay(); LED1=0; LED2=1; P0=key_code[2]; delay(); } } 4.2 指针 指针:某个变量所占用存储单元的首地址。 指针变量:用来存放指针值的变量。 定义格式: 类型说明符 *指针变量名; 一、C51提供两种指针: (1)通用指针(与标准c相同) 例:char *s; //指向字符型 int *numptr ; //指向整型指针 包含3个字节: 地址地字节 地址高字节 存储器类型编码值 (2)具体指针 声明时指定了存储器类型的指针(指向特定存储区域中的指针变量) 例:char data *str; // ptr to string in data int xdata *numtab; long code *partab; 0xFF 0xFE 0x01 0x00 编码值 code pdata xdata Idata/data/bdata 存储器 类型 占1个字节(idata,data,bdata,pdata)或 占2个字节(code,xdata) 可以访问8051声明的存储区内的变量,效率高,灵活性差 例:char data * xdata ptr ; //ptr in xdata to data char 通用、具体指针比较: 通用指针运行速度慢,在程序运行时才可以知道实际的变量存储类型,编译器不能对内存访问优化,但是灵活;具体指针在编译时确定,访问效率高,且只需1、2个字节。 修饰指向的变量 修饰指针本身 二、相关运算符 *:指针运算符:取指针变量所指向的内容。 :取址运算符:取得变量的首地址。 例1: 1002 1000 … 1004 10 8 6 1000 1002 2012 1004 2010 2014 变量a 变量b 变量c 指针变量ap 指针变量bp 指针变量cp ap=a; bp=b; cp=c; 直接访问方式:x=a; 直接访问方式:x=*ap; 例2:int *ap,int a; ap=

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档