单片机数码管编程教程(单片机学习--数码管-code关键字-数组认识)
单片机数码管编程教程(单片机学习--数码管-code关键字-数组认识){unsigned char code LedChar[16] =数码管阳极接到P0口,原理图如下:数码管的真值表用一个数组来表示为:
数码管原理图:
数码管分为共阳和共阴两种,共阴数码管就是 8 只 LED 小灯的阴极是连接在一起的,阴极是公共端,由阳极来控制单个小灯的亮灭;同理,共阳数码管就是 8 只 LED 小灯的阳极是连接在一起的,阳极是公共端,由阴极来控制单个小灯的亮灭。
本次实验使用的是普中科技的单片机开发板,为共阴数码管,使用74HC138来控制阴极公共端的使能。如下:
74HC138真值表
数码管阳极接到P0口,原理图如下:
数码管的真值表
用一个数组来表示为:
unsigned char code LedChar[16] =
{
0x3F 0x06 0x5B 0x4F 0x66 0x6D 0x7D 0x07
0x7F 0x6F 0x77 0x7C 0x39 0x5E 0x79 0x71
};
我们在程序中要使用,但是却不会改变它的值,定义这种数据时可以加一个 code 关键字修饰一下,这个数据就会存储到我们的程序空间 Flash 中,这样可以大大节省单片机的 RAM 的使用量。
一维数组的一般格式:
数据类型 数组名 [数组长度] = {初值列表};
1、数组的数据类型声明的是该数组的每个元素的类型,即一个数组中的元素具有相同的数据类型。
2、数组名的声明要符合 C 语言固定的标识符的声明要求,只能由字母、数字、下划线这三种符号组成,且第一个字符只能是字母或者下划线。
3、方括号中的数组长度是一个常量或常量表达式,并且必须是正整数。若给数组的所有元素都赋初值,那么可以省略数组的长度。
4、初值列表里的数据之间要用逗号隔开。
5、初值列表里的初值的数量必须等于或小于数组长度,当小于数组长度时,数组的后边没有赋初值的元素由系统自动赋值为 0。
6、系统为数组分配连续的存储单元的时候,数组元素的相对次序由下标来决定,就是说 LedChar[0]、LedChar[1]……LedChar[15]是按照顺序紧挨着依次排下来的。