首页 理论教育 单片机开发入门数组应用与实例

单片机开发入门数组应用与实例

时间:2023-10-23 理论教育 版权反馈
【摘要】:带下标的变量由数组名称和用方括号括起来的下标共同表示,称为数组元素。通过数组名和下标可直接访问数组的每个元素。在项目2的程序中,流水灯显示数据为一组有规律的同类型数据,为了处理方便可以用数组定义。二维数组初始化也是在类型说明时给各下标变量赋以初值。

单片机开发入门数组应用与实例

C语言可以把具有相同类型的若干变量或常量用一个带下标的数组定义。对各个变量的相同操作可以利用循环改变下标值来进行重复的处理,使程序变得简明清晰。带下标的变量由数组名称和用方括号括起来的下标共同表示,称为数组元素。通过数组名和下标可直接访问数组的每个元素。

在项目2的程序中,流水灯显示数据为一组有规律的同类型数据,为了处理方便可以用数组定义。数组有两个特点:一是其长度是确定的,在定义的同时确定了其数组的大小,在程序中不允许随机变动;二是其元素必须是相同类型,不允许出现混合类型。

1.一维数组

在C语言中使用数组必须先进行定义或声明,一旦定义了一个数组,系统就将在内存中为其分配一个空间,该空间大小固定,以后不能改变。一维数组的定义格式为

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

在C语言中规定,一个数组的名字表示该数组在内存中所分配的一块存储区域的首地址,因此,数组名是一个地址常量,不允许对其进行修改。“常量表达式”表示该数组拥有的元素个数,即定义了数组的大小,必须是正整数。例如:

usigned char seven_seg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

在定义了一个数组后,系统会在内存中分配一块连续的存储空间用于存储数组。一个数组中的元素下标必须从0开始。所以定义数组时,若“常量表达式”指出数组长度为N,数组元素下标只能从0到n-1。“常量表达式”能包含常量,但不能包含变量。

在程序中,一维数组元素可以直接作为变量或常量直接使用,其引用格式为

数组名[下标];(www.xing528.com)

其中,“下标”可以是整型常量或是整型表达式。如P0=seven—seg[i],下标i是数组元素的偏移量,第一个元素的偏移量是0(亦称0号元素),第二个元素的偏移量是1(也称1号元素),依此类推。例如,seven—seg[5]表示引用数组的下标为5的元素,即0x99。

每个数组元素可以表示一个变量,对数组的赋值也就是对数组元素的赋值。在定义数组的语句中,可以直接为数组赋值,为数组的初始化。数组的初始化是将数组元素初值存放在由大括号括起来的初始值表中,每个初值之间用逗号隔开。

2.二维数组

单片机程序还可以使用二维数组,如16×16汉字的字库数组,一个数组含有几个汉字的字型码,每个汉字又需要用到32B数据。二维数组类型的一般形式为

类型说明符 数组名[常量表达式1][常量表达式2];其中,常量表达式1表示第一维下标的长度;常量表达式2表示第二维下标的长度。如un- signed char ziku[x][y],说明了一个x行y列的数组,数组名为ziku,其下标变量的类型为整型。该数组的下标变量共有x×y。

二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。

例如,8×8LED点阵0~9显示数组编码,按行分段赋值形式为

以上这两种赋初值的结果是完全相同的。在对二维数组初始化时,可以只对部分元素赋初值,未赋初值的元素默认为0;如对全部元素赋初值,则第一维的长度可以不给出。

从本节所设置的项目1和项目2程序设计过程可以看出,单片机C语言程序并不复杂,并且在Keil C中很多关键字与标准的C语言是通用的。因此对于初学单片机开发的人员来说,掌握单片机C语言书写格式和怎样用C语言控制单片机的硬件资源非常重要。另外,在编程时,还要有清晰的逻辑和认真的实践,由浅入深地学习,坚持到最后,就能感觉到单片机C语言程序设计并不是一件很难的事情。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈