(此数码管为共阴极)
首先写一个函数,在指定的其中数码管显示单个1位数数字
参数一:第几个数码管
参数二:要显示的数字
unsigned char arr[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void show1number(unsigned int location,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;
}
P0=arr[number];
//yanshi(1);//加上延时会更亮
P0=0x00;//清空状态,清空前加延时会更亮
}再来写一个函数 显示int数字
void show_int(int number){//这里只是用前4个数码管,最大显示9999 显示4位数字 更多位数的要重新判断
if(number>0){show1number(4,number%10);}
if(number>9){show1number(3,number%100/10);}
if(number>99){show1number(2,number%1000/100);}
if(number>999){show1number(1,number%10000/1000);}
}