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

上传人:b****1 文档编号:10464970 上传时间:2023-05-26 格式:DOCX 页数:7 大小:449.50KB
下载 相关 举报
51单片机之数组的应用.docx_第1页
第1页 / 共7页
51单片机之数组的应用.docx_第2页
第2页 / 共7页
51单片机之数组的应用.docx_第3页
第3页 / 共7页
51单片机之数组的应用.docx_第4页
第4页 / 共7页
51单片机之数组的应用.docx_第5页
第5页 / 共7页
51单片机之数组的应用.docx_第6页
第6页 / 共7页
51单片机之数组的应用.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《51单片机之数组的应用.docx》由会员分享,可在线阅读,更多相关《51单片机之数组的应用.docx(7页珍藏版)》请在冰点文库上搜索。

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

51单片机之数组的应用

【实验题目

数组

【目的要求

1.学习一维和二维数组的定义,初始化,引用。

 

 

2.利用数组做流水灯。

3.要求三个学时完成。

 

【实验平台

Proteus7等仿真软件。

 

 

【实验原理

就变

我们在数学上学过数列,用一大括号将一组数字括起来,

成一个整体,用一个大写字母来表示,数列具有无序性,不重复性。

示数列中的数,这就变成了我们今天要说的数组。

定义数组:

类型符数组名[常量表达式];

 

个元素,储存形式为:

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]”,如果是在被调用的函数中定义数组,

变量表达式,例如:

voidfunc(intn)

a[10]={0,1234567,8,9};贝Ua[0]=0,a[1]=1,a[2]=2……a[8]=8,a[9]=9。

 

初值时,

于数据的个数已确定,因此可以不指定数组长度。

例如:

inta[]={1,2,3,4,5};

维数组:

我们都学过平面坐标,利用平面上两个垂直的坐标轴,用到两

 

常称为矩阵。

把二维数组写成行和列的排列形式。

 

M式(列)

]

例如:

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]

二维数组

的初始化:

分行赋值,

可以将所有数据写在-

个大括

中,系统会自动按顺序赋值。

也可对部分元素赋值。

其实与一维数

 

用较少,便不做具体讲述。

为结束符,在此先不做详解。

【实验过程】针对单片机的编程

#include"reg51.h"main()

{inti,x,y,a[2]={0x00;0xff};//定义变量与整型数组含两个元素

for(i=0;iv2;i++)//由于中括号内为变量利用for循环语句给P1口变换

赋值使灯变灭变换

 

for(x=0;xv200;x++)

for(y=0;yv200;y++);//利用for语句的延时

如果数

思考:

数组就是一个数据源,我们不断的从中取出值来利用,

律引用,那么就能做出流水灯的效果。

#include"reg51.h"main(){inti,x,y,a[8]={0xfe,oxfd,oxfb,oxf7,oxef,oxdf,oxbf,ox7f}//此初始

化数值分别让灯从上至下一个个闪亮

for(i=0;i<8;i++)

{P1=a[i];//数组的引用

for(x=0;x<200;x++)

for(y=0;yv200;y++);

 

的功能,让灯更多样式的闪亮。

#include"reg51.h"main(){inti,x,y,a[10]={0x7e,0x3c,0x99,0xc3,0xe7,0xc3,0x99,0x3c,0x7e,0xff};

for(i=0;i<10;i++)

P1=a[i];

for(x=0;x<500;x++)for(y=0;y<200;y++);

我们

此程序可以实现从上至下,从下至上以两个灯共同闪亮的流动,可以发挥自己的想像力,创造更多的闪亮方式。

【实验扩展】

 

9所对

状并根据各二极管与单片机接口的顺序编排出让其显示从

 

此想法在第二次实验中就已提到。

LitiilLq*Af

 

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6°f由此我们可进行

如下编程:

#include"reg51.h"

voiddelayO;〃对delay函数的声明

main()

{inti;〃定义一循环变量

inta[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//用

编排出的数对数组初始化

for(i=0;iv10;i++)

{P1=a[i];//利用for循环给P1口赋值

delay();〃对延时函数的调用

{intj,k;

for(j=0;jv400;j++)

for(k=0;kv600;k++);

具体的显示方式以视频格式在附件,

边我们用二极管做出数码管的显示,只是一种近似于流水

 

辑思维,就更加接近于真正的数码管。

#include"reg51.h"

voiddelay(int);//对含参delay函数的声明main()

{inti,s=0;〃定义两个变量并赋值

inta[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

while

(1)

 

=s%10;//S除10求余数并赋予i

P1=a[i];

//i作为变量改变弓用数组元素

S++;

//S值逐步加1

if(s==10)

s=0;

//S值判断条件使S值在0至

delay(200);

//delay函数的调用

10间循环

 

voiddelay(intt){intj,k;

for(j=0;jv200;j++)

for(k=0;kvt;k++);

对程序的解悉:

通过变量s对10的求余运算可得出余数

值赋予变量i,改变赋予P1的数组元素值来显示数字。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2