数码管的动态显示的消隐问题

2024-12-28 09:42:00
推荐回答(1个)
回答1:

关键还是得弄懂原理呐:
设单片机接了两位共阳数码管,位选分别是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消除
}
郭天祥的数码管电路有加锁存器,你理解了我这里说的原理之后,自己去验证吧。