这里实现了静态数码管的显示。51单片机一共有可以显示4个数字,可以通过控制P2(4-2)的端口选择8个数字显示器中的一个显示数字,控制P0端口写入显示的数值信息。将操作的逻辑使用了函数Nixie进行了封装。
#include <8051.h>
unsigned char NixieTable[]={
0x3f,
0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f
};
void Nixie(unsigned char Location, unsigned char Number){
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;
default:
break;
}
P0=NixieTable[Number];
}
void main(){
Nixie(7,2);
// P2_4=0;
// P2_3=0;
// P2_2=0;
// P0=0x7d;
while (1)
{
}
}