改成这样试试,因为位码和段码是同时变的,写在一个循环里可能比较好一点,程序没加消隐 肯定会有鬼影产生的.
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit wex=P2^7;
sbit dux=P2^6;
uchar num1,num2;
uchar code table1[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d};
uchar code table2[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void delayms(uint);
void main()
{
while(1)
{
for(num2=0;num2<6;num2++)
{
P0=table2[num2];
wex=1;
wex=0;
P0=table1[num2];
dux=1;
dux=0;
delayms(500);
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
|