问题
数码管多位数显示会产生 错乱 串位
void nixie(unsigned char Location,Number)
{
switch(Location)
{ case 8:P24=0;P23=0;P22=0;break;
case 7:P24=0;P23=0;P22=1;break;
case 6:P24=0;P23=1;P22=0;break;
case 5:P24=0;P23=1;P22=1;break;
case 4:P24=1;P23=0;P22=0;break;
case 3:P24=1;P23=0;P22=1;break;
case 2:P24=1;P23=1;P22=0;break;
case 1:P24=1;P23=1;P22=1;break;
};
P0 =NumberTab[Number];
}
如图
解决方法
需要 消影
即对赋值的端口值进行清零(清零后 就不会对下一次循环产生影响)
void nixie(unsigned char Location,Number)
{
switch(Location)
{ case 8:P24=0;P23=0;P22=0;break;
case 7:P24=0;P23=0;P22=1;break;
case 6:P24=0;P23=1;P22=0;break;
case 5:P24=0;P23=1;P22=1;break;
case 4:P24=1;P23=0;P22=0;break;
case 3:P24=1;P23=0;P22=1;break;
case 2:P24=1;P23=1;P22=0;break;
case 1:P24=1;P23=1;P22=1;break;
};
P0 =NumberTab[Number];
Delay(1);
P0 =0X00;
}