按查询结果进行验证测试,发现有一个四位数码管不知是质量问题还是本人在测试时直接用5V电源进行测试烧了数码管,已经坏啦,另一个数码管个位无法按引脚定义方式点亮,但在显示其他3位是却经常跟着亮,到现在唯一可用的数码管个位仍无法有效利用,只能利用十百千三位数码管,好在一般使用中只要显示8位数据就行,所以就只利用千位和百位管。将千位管段阴极ABCDEFG接P1的1234567针,阳极接P1的8针,百位管的阳极接P3的2针,用以下程序进行测试,效果还算满意。
单片机源程序如下:
#include<reg52.h>
sbit D1=P1^7;
sbit D2=P3^2;
sbit D3=P3^3;
int vcode[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0xf8,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};
void delay(int ii){int i,j;for(i=0;i<ii;i++)for(j=0;j<120;j++); }
void showdata(unsigned char c)
{int k;
for(k=0;k<40;k++){P1=vcode[c/16];D1=1;D2=0;D3=0;delay(10);
P1=vcode[c%16];D1=0;D2=1;D3=0;delay(10);
//P1=vc[k/5];D1=0;D2=0;D3=1;delay(10);
}
P1=0xff;
}
main()
{unsigned char a,c;
int i,j;
while(1){showdata(i);i++;if(i>64)i=0;}
}
下面是程序运行效果: