51单片机之数组的应用.docx
- 文档编号:24275694
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:7
- 大小:449.50KB
51单片机之数组的应用.docx
《51单片机之数组的应用.docx》由会员分享,可在线阅读,更多相关《51单片机之数组的应用.docx(7页珍藏版)》请在冰豆网上搜索。
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的数组元素值来显示数字。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 数组 应用