微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51单片机之C语言-4.2数组

51单片机之C语言-4.2数组

时间:11-21 来源:互联网 点击:
现在我们知道了,不同的数据实际上是占用的单元格不同,8个单元格就是char,16个坑就是int,32坑就是long. 在实际应用中,可能有很多char,比如char1,char2,char3...,也很多int1,int2,int3...,也有很多long1,long2,long3等等。这么多的变量,我们能不能归个类。比如把单元格长度相同的放在一起,比如char1,char2,char3等,这样就产生了数组的概念。那么如何把这些相同长度的单元格变量放在一起呢,也就是说如何定义一个数组呢?

一维数组的定义方式如下:

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

类型说明符: 表示你想把什么长度单元格的变量放在一起,比如是char,int还是long

数组名: 给你定义的数组取个名字,数组标识符

常量表达式: 表示你定义的数组中装有多少个元素,也就是数组长度

比如char a[4]; 说明字符型数组a,有4个元素

既然定义了数组,那么如何访问数组中的元素呢?比如我要访问数组a的第二个元素,

a[0] 表示数组的第一个元素

a[1]就表示数组的第二个元素

依次类推。

现在我们举个例子如何在单片机编程中使用数组,

例4-2-1如何在单片机编程中使用数组

定义一个数组,将数组中各元素的值给P1端口实现流水灯的功能

#include "reg52.h"

typedef unsigned char uchar;

typedef unsigned char chararray[8];//定义一个新的数组类型,它有8个元素,数据类型为unsigned char

void delayUs (unsigned char t);

void delayMs(unsigned char t);

void main(void)

{

chararray a ={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf ,0xbf ,0x7f};

while(1)

{

uchar i;

P1=a[0];

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

{

P1=a[i];

delayMs(100);

}

for (i=7;i>0;i--)

{

P1=a[i];

delayMs(100);

}

}

}

void delayUs (uchar t)

{

while(--t);

}

void delayMs(uchar t)

{

while(--t)

{

delayUs(245);

delayUs(245);

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top