C语言 单片机数码管动态显示 为什么会显示成这样,请高手帮忙,谢谢
发布网友
发布时间:2022-04-28 21:11
我来回答
共1个回答
热心网友
时间:2023-09-15 23:53
依程序逻辑和实际效果,估计 1.位选与段选标反了,2共阴与共阳弄反了
不改电路的情况下,如下修正程序:
void display(uchar shi,uchar ge)
{
la=1; //P2.6
P0 = 0x10; //十位
la=0;
P0=0xff;
wela=1; //P2.7
P0 = ~table[shi]; //共阴换共阳,位反一下就好了
wela=0;
delayms(5);
la=1;
P0 = 0x20; //个位(个:0x20 十:0x10百:0x08 千:0x04 万:0x02 十万:0x01 参看电路图)
la=0;
P0=0xff;
wela=1;
P0 = ~table[ge];
wela=0;
delayms(5);
}