#include"reg52.h"
#define uchar unsigned char
unsigned long num;
uchar j,k;
uchar a0,b0,c0,d0,e0,f0,g0,h0;
sbit duan=P2^6;
sbit wei=P2^7;
unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void delay(uchar i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f,uchar g,uchar h)
{
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table[a]; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0xfe; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0xfd; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table[c]; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0xfb; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table[d]; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0xf7; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table[e]; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0xef; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table[f]; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0xdf; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table[g]; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0xbf; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
P0=0xff;
wei=1;
wei=0; //消除陰影
P0=table[h]; //送入字形碼
duan=1; //段選打開
duan=0; //段選關閉
P0=0x7f; //選中位選
wei=1; //位選打開
wei=0; //關閉位選
delay(2);
}
void main()
{
num=97788998;
while(1)
{
if(num<10)
{
a0=num;b0=16;c0=16;d0=16;e0=16;f0=16;g0=16;h0=16;
}
else
{
if(num<100)
{a0=num/10;b0=num%10;c0=16;d0=16;e0=16;f0=16;g0=16;h0=16;}
else
{
if(num<1000)
{a0=num/100;b0=num%100/10;c0=num%10;d0=16;e0=16;f0=16;g0=16;h0=16;}
else
{
if(num<10000)
{a0=num/1000;b0=num%1000/100;c0=num%100/10;d0=num%10;e0=16;f0=16;g0=16;h0=16;}
else
{
if(num<100000)
{a0=num/10000;b0=num%10000/1000;c0=num%1000/100;d0=num%100/10;e0=num%10;f0=16;g0=16;h0=16;}
else
{
if(num<1000000)
{a0=num/100000;b0=num%100000/10000;c0=num%10000/1000;d0=num%1000/100;e0=num%100/10;f0=num%10;g0=16;h0=16;}
else
{
if(num<10000000)
{a0=num/1000000;b0=num%1000000/100000;c0=num%100000/10000;d0=num%10000/1000;e0=num%1000/100;f0=num%100/10;g0=num%10;h0=16;}
else
{
if(num<100000000)
{a0=num/10000000;b0=num%10000000/1000000;c0=num%1000000/100000;d0=num%100000/10000;e0=num%10000/1000;f0=num%1000/100;g0=num%100/10;h0=num%10;}
}
}
}
}
}
}
}
display(a0,b0,c0,d0,e0,f0,g0,h0);
}
}
360截圖-1633080.jpg (52.15 KB, 下載次數: 205)
下載附件
2014-4-25 06:43 上傳
為什么數碼管的最后一個比其他的亮,這要怎么才能解決了
|