(此数码管为共阴极)
首先写一个函数,在指定的其中数码管显示单个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);} }