10、静态数码管显示
数码管介绍
LED数码管:是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件
数码管引脚的定义
共阴极、共阳极
例如:显示数字1(b,c段)
3、8:接VCC或者GND/低电平
10011111
0110000
共阴极、共阳极
12、9、8、6:接VCC或者GND/低电平
例如:第3个数码管要:显示数字1(b,c段)
数码管:
12、9、8、6
1—>1—> 0—>1
0—>0—> 1—>0
bc段:
10011111
0110000
A\B\C二进制转十进制
0 0 0 --> Y0 -->LED1
0 0 1 --> Y1 -->LED2
以此类推
#include <REGX52.H>
//数组代表显示亮灯的内容0、1、2、3、4、5、6、7、8、9
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//location:7 , Number:2
void Nixie(unsigned char Location,Number)
{
//决定第几个数码管(138译码器)
switch(Location)
{
case 1: P2_4 =1;P2_3=1;P2_2=1; break;
case 2: P2_4 =1;P2_3=1;P2_2=0; break;
case 3: P2_4 =1;P2_3=0;P2_2=1; break;
case 4: P2_4 =1;P2_3=0;P2_2=0; break;
case 5: P2_4 =0;P2_3=1;P2_2=1; break;
case 6: P2_4 =0;P2_3=1;P2_2=0; break;
case 7: P2_4 =0;P2_3=0;P2_2=1; break;
case 8: P2_4 =0;P2_3=0;P2_2=0; break;
}
//显示数字几个
P0=NixieTable[Number];
}
void main()
{
Nixie(7,2);
while(1)
{
}
}
C51数组
数组:把相同类型的一系列数据统一编制到某一个组别中,可以通过数组名+索引号简单快捷的操作大量数据
int x[3]; //定义一维数组3个
int x[ ] ={1,2,3}; //定义一维数组并初始化
x[0] //引用数组的第一个元素
x[1] //引用数组的第二个元素
x[2] //引用数组的第三个元素
避免数组越界
C51子函数
子函数: 将完成某一种功能的程序代码单独抽取出来形成一个模块,在其它函数中可随时调用此模块,已达到代码的复用和优化程序结构的目的(前面经常使用的延时函数)
void Function (unsigned char x,y)
{
}
返回值 函数名 (形参)
{
函数体
}