打印

关于提高数码管显示亮度的问题

[复制链接]
4165|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tomegeo|  楼主 | 2007-12-29 08:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做一个关于数码显示的东西,一共用了16个1.2‘的数码管,电路由一个89C51,一个74HC244,还有16个8550以及一些电阻电容组成。供电是5V的,采用动态扫描,但是显示的亮度不够,只有最后一位显示才达到要求,试过增加显示停留时间,但是就会闪,亮度有提高一点点。目前估计是程序扫描的问题,请大侠们帮帮我呀,呵呵,谢谢啦!

相关帖子

沙发
yewuyi| | 2007-12-29 09:16 | 只看该作者

静态显示就是亮^^

使用特权

评论回复
板凳
xushouxue| | 2007-12-29 09:41 | 只看该作者

我估计是程序的问题

如果你采用动态扫描
要知道你的时基是多少,最好用示波器测一下
我不知道你的延时程序是怎么做的
如果假设delay()是你的延时程序
16个数码管,如果你每一个数码管都调用一次的话
肯定会出现你所说的情况
主要问题就是要处理好:时基与delay()的关系
在采用动态扫描时最好不要直接调用delay()这样的延时子函数
延时最好用标记去做

使用特权

评论回复
地板
tomegeo|  楼主 | 2007-12-29 10:04 | 只看该作者

re:xushouxue

呵呵,谢谢你的回复!
我的延时程序是这样的:
void delay(uchar loop)
{    uchar i;
     for(;loop < 0;--loop )
        for(i = 0;i < 124;i++);
}
我的做法正如你所说的每显示一个数就调用一次delay(1),所以效果很不好。如果用你所说的用标记的话具体怎么做呢?请大侠再帮我一下!呵呵,谢谢啦!

使用特权

评论回复
5
maychang| | 2007-12-29 10:15 | 只看该作者

把显示部分程序写到定时中断里面

不使用这种什么工作都不做的延时。

使用特权

评论回复
6
tomegeo|  楼主 | 2007-12-29 10:44 | 只看该作者

re

呵呵,明白,我马上试一下!有结果一定告诉大家!谢谢啦!

使用特权

评论回复
7
xushouxue| | 2007-12-29 10:50 | 只看该作者

说明我不是大侠

首先说明一点:我不是什么大侠,离大侠的距离还很远
把你数码管显示的那部分程序拿出来看一下吧
我没有看到你的程序,我所说的标记的方法,在你的程序里也可能行不通
你可以尝试数码管所有的显示调用一个延时子程序
以使主程序的整个循环时间减小,同时增大延时子程序的延时时间
这样试一下吧,如果还不行,那就把你的显示部分的程序拿出来大家共同研究下吧      

使用特权

评论回复
8
mohanwei| | 2007-12-29 11:04 | 只看该作者

显示亮度跟LED上分配到的平均功率有关。

不管是静态还是动态,平均功率上去了,亮度都能满足要求。

动态的时候,一般只能提高电流了……

使用特权

评论回复
9
michael_li| | 2007-12-29 12:21 | 只看该作者

提高电流哇!

使用特权

评论回复
10
黑色幽灵| | 2007-12-29 13:38 | 只看该作者

提高LED上分配到的平均功率

可能是你主循环所用的 时间变化太大了,把主循环的时间分配平均一些就行了

使用特权

评论回复
11
tomegeo|  楼主 | 2008-1-20 10:09 | 只看该作者

我试过好几种办法,还是没解决问题哦·!

希望大侠们继续帮帮我呀!

使用特权

评论回复
12
boy4477| | 2008-1-20 10:15 | 只看该作者

提高电流试试

不过这样可千万不敢死机,死机就把数码管烧了。

使用特权

评论回复
13
sz_kd| | 2008-1-20 10:22 | 只看该作者

总体扫描时间不超过20MS应该没有问题的

使用特权

评论回复
14
happystar| | 2008-1-20 12:48 | 只看该作者

另外换种数码管试试

以前我遇到过“假数码管”(在本地电子市场买的),后来用专门去南京买来的数码管一切正常。到最后我们公司产品数码管都去南京买了,本地的不敢恭维呀。
楼主可以试试是不是数码管问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

65

帖子

1

粉丝