首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

小弟在练习LED时遇到了很奇怪的现象解决方法

2012-03-29 
小弟在练习LED时遇到了很奇怪的现象8位数码管,默认是高亮小数点,本来我按一下按钮0,应该是第一个第一个数

小弟在练习LED时遇到了很奇怪的现象
8位数码管,默认是高亮小数点,本来我按一下按钮0,应该是第一个第一个数码管显示0,再按一下0,第一,二数码管显示为0,以此类推。可是在一,二显示0的时候,另外5个本该显示只显示小数点的数码管中有些段,却表现为微微亮的状态,整个一排数码管就显得很乱,求解决方案。
这个是默认的情况下
这个是按了两下0,问题就出来了,后面几个数码管该是显示小数点的
把数码管全部置0后




[解决办法]
或者是你硬件设计的原因吧,后面的数码管有微弱电流流过,所以才会有微弱的显示。
把你的程序贴上来看看。
[解决办法]
这个硬件和软件要匹配
[解决办法]

楼主,你这种现象: 数码管,亮度低, 其实就是你 那个 延时设计不够精确所导致的, 把握好: 位选延时 时间解决了。 多调试几次,就可以 了。 我也是这样过来的。 大概是延时 10 毫秒。
[解决办法]
实践出真知,加油!

探讨
这个小东西困扰了我2天了啊,没有老师教的孩子最可怜了

[解决办法]
最好段选和位选打开后再关闭!剩下的就是调整延时。


另外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);

热点排行