按查詢結(jié)果進(jìn)行驗(yàn)證測試,發(fā)現(xiàn)有一個(gè)四位數(shù)碼管不知是質(zhì)量問題還是本人在測試時(shí)直接用5V電源進(jìn)行測試燒了數(shù)碼管,已經(jīng)壞啦,另一個(gè)數(shù)碼管個(gè)位無法按引腳定義方式點(diǎn)亮,但在顯示其他3位是卻經(jīng)常跟著亮,到現(xiàn)在唯一可用的數(shù)碼管個(gè)位仍無法有效利用,只能利用十百千三位數(shù)碼管,好在一般使用中只要顯示8位數(shù)據(jù)就行,所以就只利用千位和百位管。將千位管段陰極ABCDEFG接P1的1234567針,陽極接P1的8針,百位管的陽極接P3的2針,用以下程序進(jìn)行測試,效果還算滿意。
單片機(jī)源程序如下:
#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;}
}
下面是程序運(yùn)行效果:
3642bhC.jpg (13.58 KB, 下載次數(shù): 63)
下載附件
2019-7-9 06:48 上傳