51单片机之数组的应用.docVIP

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

【实验题目】 数组 【目的要求】1.学习一维和二维数组的定义,初始化,引用。 2.利用数组做流水灯。 3.要求三个学时完成。 【实验平台】电脑,伟福,Proteus7等仿真软件。 【实验原理】 我们在数学上学过数列,用一大括号将一组数字括起来,就变成一个整体,用一个大写字母来表示,数列具有无序性,不重复性。且根据数列中数的类型来判断数列的类型。如果将数列的不重复性去掉,并用a[10]来代表,10为整数代表数的个数,a[0],a[1]...a[9]来表示数列中的数,这就变成了我们今天要说的数组。 定义数组: 类型符 数组名[常量表达式]; 数组名即为变量名,定义数组时须指定元素的个数,即方括号中的数,即为数组长度,注意数组长度和数组元素的表示,a[10]表示数组有十个元素,储存形式为: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 特别注意没有a[10]。常量表达式中可以包括常量和符号常量,例如“a[3+5]”,如果是在被调用的函数中定义数组,其长度可以是变量或变量表达式,例如: void func(int n) { int a[2*n]; //n的值从实参传来 ......} 一维数组的初始化:为了使程序简洁,,常在定义数组的同时,给各数组元素赋值,这称为数组的初始化。将数组各元素的初值顺序放在一对花括号内,数据间用逗号隔开。例如:int a[10]={0,1,2,3,4,5,6,7,8,9}; 则a[0]=0,a[1]=1,a[2]=2......a[8]=8,a[9]=9。也可以给数组的一部分赋值,例如:a[10]={1,2,3,4,5};则只给前五个赋初值,剩下的系统自动给后面元素赋值为0。在对全部数组元素赋初值时,由于数据的个数已确定,因此可以不指定数组长度。例如:int a[]={1,2,3,4,5}; 二维数组: 我们都学过平面坐标,利用平面上两个垂直的坐标轴,用到两坐标轴的距离来确定平面的位置。二维数组也是这个原理,二维数组常称为矩阵。把二维数组写成行和列的排列形式。 定义二维数组: 类型说明符 数组名[常量表达式(行)][常量表达式(列)] 例如:int a[3][4] a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] 二维数组的初始化:分行赋值,可以将所有数据写在一个大括号中,系统会自动按顺序赋值。也可对部分元素赋值。其实与一维数组类似,只要以一维数组类推便可得出,由于单片机中对二维数组运用较少,便不做具体讲述。 字符型数组:用来存放字符串,定义类型为char型。规定以“\0”为结束符,在此先不做详解。 【实验过程】 针对单片机的编程 #includereg51.h main() { int i , x , y , a[2]={0x00;0xff}; //定义变量与整型数组含两个元素 for(i=0;i2;i++)//由于中括号内为变量利用for循环语句给P1口变换赋值使灯变灭变换 { P1=a[i]; //数组的引用 for(x=0;x200;x++) for(y=0;y200;y++); //利用for语句的延时 } } 思考:数组就是一个数据源,我们不断的从中取出值来利用,如果数据源是能够让二极管单个闪亮的数据,那么我们将这些数据按一定规律引用,那么就能做出流水灯的效果。 #includereg51.h main() { int i , x , y,a[8]={0xfe,oxfd,oxfb,oxf7,oxef,oxdf,oxbf,ox7f};//此初始化数值分别让灯从上至下一个个闪亮 for(i=0;i8;i++) { P1=a[i]; //数组的引用 for(x=0;x200;x++) for(y=0;y200;y++); } } 思考:用数组跟前面用位移动做流水灯相似,但用数组还能达到更大的功能,让灯更多样式的闪亮。 #includereg51.h main() {int i,x,y,a[10]={0x7e,0x3c,0x99,0xc3,0xe7,0xc3,0x99,0x3c,0x7e,0xff}; for(i=0;i10;i++) { P1=a[i]; for(x=0;x500;x++) for(y=0;y200;y++); } } 此程序可以实现从上至下,从下至上以两个灯共同闪亮的流动,我们可以发挥自己的想像力,创造更多的闪亮方式。

文档评论(0)

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

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

1亿VIP精品文档

相关文档