8位数码管,默认是高亮小数点,本来我按一下按钮0,应该是第一个第一个数码管显示0,再按一下0,第一,二数码管显示为0,以此类推。可是在一,二显示0的时候,另外5个本该显示只显示小数点的数码管中有些段,却表现为微微亮的状态,整个一排数码管就显得很乱,求解决方案。
这个是默认的情况下
这个是按了两下0,问题就出来了,后面几个数码管该是显示小数点的
把数码管全部置0后
------解决方案--------------------
或者是你硬件设计的原因吧,后面的数码管有微弱电流流过,所以才会有微弱的显示。
把你的程序贴上来看看。
------解决方案--------------------
这个硬件和软件要匹配
------解决方案--------------------
楼主,你这种现象: 数码管,亮度低, 其实就是你 那个 延时设计不够精确所导致的, 把握好: 位选延时 时间解决了。 多调试几次,就可以 了。 我也是这样过来的。 大概是延时 10 毫秒。
------解决方案--------------------
实践出真知,加油!
------解决方案--------------------
最好段选和位选打开后再关闭!剩下的就是调整延时。
另外switch加上default,保持好的编程习惯。
------解决方案--------------------
应该用定时中断处理键盘和延时
------解决方案--------------------
为什么无延时
加一下看看
for(i=0; i<8; i++)
{
P0 = LedOut[i]; //将字模送到P0口显示
delay1ms(10);
switch(i) //使用switch 语句控制位选
{
case 0:LS138A=0; LS138B=0; LS138C=0; break;
case 1:LS138A=1; LS138B=0; LS138C=0; break;
case 2:LS138A=0; LS138B=1; LS138C=0; break;
case 3:LS138A=1; LS138B=1; LS138C=0; break;
case 4:LS138A=0; LS138B=0; LS138C=1; break;
case 5:LS138A=1; LS138B=0; LS138C=1; break;
case 6:LS138A=0; LS138B=1; LS138C=1; break;
case 7:LS138A=1; LS138B=1; LS138C=1; break;
}
------解决方案--------------------
试试这样改动呢!
for(i=0; i<8; i++)
{
P0 = 0x80; //关显示
switch(i) //使用switch 语句控制位选
{
case 0:LS138A=0; LS138B=0; LS138C=0; break;
case 1:LS138A=1; LS138B=0; LS138C=0; break;
case 2:LS138A=0; LS138B=1; LS138C=0; break;
case 3:LS138A=1; LS138B=1; LS138C=0; break;
case 4:LS138A=0; LS138B=0; LS138C=1; break;
case 5:LS138A=1; LS138B=0; LS138C=1; break;
case 6:LS138A=0; LS138B=1; LS138C=1; break;
case 7:LS138A=1; LS138B=1; LS138C=1; break;
}
P0 = LedOut[i]; //将字模送到P0口显示
delay1ms(10);