关键还是得弄懂原理呐:
设单片机接了两位共阳数码管,位选分别是wei1、wei2;段选接在P1口。现在要来显示数字12
(1)影的产生:
while(1)
{
wei1=1;//一次循环回来后,到这里数码管一显示2(影子2)
wei2=0;
P1=table[1];//到这里数码管一显示1
delay();
wei1=0;
wei2=1;//到这里数码管二显示1(影子1)
P1=table[2];//到这里数码管二显示2
delay();
}
明白了么?如果delay()够短,影子就会比较明显了;再如果,在wei2=0;还有wei2=1;后面再加上delay()之后,影子就更明显了。
(2)消除影子
while(1)
{
wei1=1;
wei2=0;
P1=table[1];//到这里数码管一显示1
delay();
P1=0xff;//让段选端不给下次wei2打开的时候,送数据的机会,影子1消除
wei1=0;
wei2=1;
P1=table[2];//到这里数码管二显示2
delay();
P1=0xff;//让段选端不给下次wei1打开的时候,送数据的机会,影子2消除
}
郭天祥的数码管电路有加锁存器,你理解了我这里说的原理之后,自己去验证吧。