数码管的全部显示
#include <REGX52.H>
void Delay1ms(unsigned int xms) //@12.000MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
unsigned char NixieTable[ ]={0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x06};
//数码管数字显示
void Nixie(unsigned char Location,Number)
{
switch (Location)
{
case 1 :
P1_2=0; P1_1=0; P1_0=0;
break;
case 2 :
P1_2=0; P1_1=0; P1_0=1;
break;
case 3 :
P1_2=0; P1_1=1; P1_0=0;
break;
case 4 :
P1_2=0; P1_1=1; P1_0=1; //数码管位置选择
break;
case 5 :
P1_2=1; P1_1=0; P1_0=0;
break;
case 6 :
P1_2=1; P1_1=0; P1_0=1;
break;
case 7 :
P1_2=1; P1_1=1; P1_0=0;
break;
case 8 :
P1_2=1; P1_1=1; P1_0=1;
break;
}
Delay1ms (1);
P0 = 0x00;
}
P0 = NixieTable[Number-1]; 数字显示
}
void main()
{
while (1)
{
Nixie(1,0); Delay1ms(2);
Nixie(2,2); Delay1ms(2);
Nixie(3,3); Delay1ms(2);
Nixie(4,4); Delay1ms(2);
Nixie(5,5); Delay1ms(2);
Nixie(6,6); Delay1ms(2);
Nixie(7,7); Delay1ms(2);
Nixie(8,8); Delay1ms(2);
}