发新帖我要提问
12
返回列表
打印

7个COM口扫描7段数码管,显示屏暗怎么解决

[复制链接]
楼主: cbs110
手机看帖
扫描二维码
随时随地手机跟帖
21
程序匠人| | 2012-5-11 13:36 | 只看该作者 回帖奖励 |倒序浏览
18# amwrdfe  
对,就是你说的这样,led扫描占空比不是最大的,单独按一个键的话, 对显示是没影响,但同时按两个键是会影响到显示。
cbs110 发表于 2012-5-11 12:21


按两个按键影响显示的话,可能是因为按键闭合导致了线间短路吧?

使用特权

评论回复
22
cbs110|  楼主 | 2012-5-11 14:47 | 只看该作者
21# 程序匠人
是的,电路上他把限流电阻接在COM口上是为了省电阻?若接在SEG上需要7个。接在COM上 6个?

使用特权

评论回复
23
cbs110|  楼主 | 2012-5-11 15:15 | 只看该作者
大虾们有没用到反扫描的方式,比如我们一般是每一个COM口扫描一下,这样导致可能有的COM口需要点亮7个SEG,有的COM口只需要点亮2个SEG,例如显示“188“时,这样就会出现1明显比8亮很多的情况

使用特权

评论回复
24
hyhmh| | 2012-5-11 16:00 | 只看该作者
本帖最后由 hyhmh 于 2012-5-11 16:02 编辑

共阴数码管 “SEG口是直接连上I/O口的,COM口接有510R  ” 这样设计 显然是不合适的。
“188 ”中 1明显 亮于 8 ——就是 上述 硬件的不合理 引起的。

另外,一般的 控制器(单片机) I/O 引脚 直接 输出 高电平来 驱动 8段码 的 阳极, 也是不合理的——通常 I/O口没这个能力(指电流输出能力)(除非LZ特意选了 超强电流输出能力的MCU)。

使用特权

评论回复
25
cbs110|  楼主 | 2012-5-11 16:17 | 只看该作者
很高兴,这个帖子能引起各位大虾的支持,现在我就来讲下我的个人解决方法,
硬件不动,我将扫描方式改了,之前是扫描COM口,我现在是反向扫描,即扫描SEG口,这样的好处是同一时间
同一个COM口上只允许点亮1个SEG,你可以同一时间点亮多个COM口的同一个SEG,这样就减轻了SEG驱动能力不足的问题,改好后我实验了下,亮度是比以前亮了许多,还有我发现我们这边开发的多个案子(压力锅居多)多是这样设计的。

使用特权

评论回复
26
程序匠人| | 2012-5-11 17:08 | 只看该作者
大虾们有没用到反扫描的方式,比如我们一般是每一个COM口扫描一下,这样导致可能有的COM口需要点亮7个SEG,有的COM口只需要点亮2个SEG,例如显示“188“时,这样就会出现1明显比8亮很多的情况 ...
cbs110 发表于 2012-5-11 15:15



例如显示“188“时,这样就会出现1明显比8亮很多的情况

——因为限流电阻没放在seg口上导致。

使用特权

评论回复
27
autopccopy| | 2012-5-11 18:59 | 只看该作者
增大电流。增加时间片其实也是增大了平均电流。:)

使用特权

评论回复
28
zhaoyu2005| | 2012-5-12 10:42 | 只看该作者
com口串电阻,会出现亮度不一致,影响效果

使用特权

评论回复
29
cbs110|  楼主 | 2012-5-12 13:01 | 只看该作者
29# zhaoyu2005
我们大部分产品都是这样做的,可能我们做的都是家电类小产品吧,

使用特权

评论回复
30
sfpxfpcfp| | 2012-5-12 13:03 | 只看该作者
加大驱动电流

使用特权

评论回复
31
hyhmh| | 2012-5-12 13:19 | 只看该作者
“扫描SEG,在COM端 接电阻”  这一做法 确实可以 一定范围内 减少 电阻的数量。
此 类 逆向思维设计, 还是有一定的优点。
当然,也要 付出:软件设计比较麻烦,可能会占用更多的ROM与RAM。

使用特权

评论回复
32
love_gerry| | 2012-5-12 14:09 | 只看该作者
学习一下:)

使用特权

评论回复
33
hopewise| | 2012-5-12 19:01 | 只看该作者
把主周期固定为2ms,执行指令时间为0.5us,那么1s内有500个周期(1s/2ms=500),每次执行主程序时,只点亮1位输码管,那么,那么假如是8位数码管,平均扫描每位数码管的频率为62.5HZ(500次/8位),绝对点亮数码管的.

使用特权

评论回复
34
zezy371| | 2012-5-12 23:03 | 只看该作者
让每个数码管扫描时点亮的时间加长一些,关闭的时间减少一些,自然亮度就好一些我原来做的程序和你一样

使用特权

评论回复
35
cbs110|  楼主 | 2012-5-14 12:47 | 只看该作者
“扫描SEG,在COM端 接电阻”  这一做法 确实可以 一定范围内 减少 电阻的数量。
此 类 逆向思维设计, 还是有一定的优点。
当然,也要 付出:软件设计比较麻烦,可能会占用更多的ROM与RAM。 ...
hyhmh 发表于 2012-5-12 13:19

象只有3个数码管的显示,限流电阻接在COM上只需要3个, 接在SEG上则需要7个。另外我已改了扫描方式,不是修改扫描频率,我们一般大家做LED动态扫描时,是否类似于这样:
LED_COM1=1;
if(led_buf^0)
led_sega=0;
if(led_buf^1)
led_segb=0;
if(led_buf^2)
led_segc=0;
......
但我现在是这样:
LED_SEG=0;
if(LED_BUF0^0)
LED_COM1=1;
if(LED_BUF1^0)
LED_COM2=1;
if(LED_BUF2^0)
LED_COM3=1;
这样的话, 同一时间同一COM上只点亮一个SEG,保证同一时间每个SEG上的电流最大。

使用特权

评论回复
36
cjseng| | 2012-5-15 01:41 | 只看该作者
恕老夫愚钝,“COM口”是什么意思?我看了半天,楞没看明白。

使用特权

评论回复
37
cbs110|  楼主 | 2012-5-15 12:06 | 只看该作者
37# cjseng

LED公共端,那要怎么描述呢?

使用特权

评论回复
38
szyijitong| | 2012-5-15 21:38 | 只看该作者
1、连续扫描,别空闲,这点看上去你已经做到了;
2、加大驱动电流,最简单的方法就是减小限流电阻;
3、采用高亮的的数码管,另外,一般红色的比其它颜色的亮;
4、想在强光下看清,建议用VFD;

使用特权

评论回复
39
tianjigg| | 2012-5-15 23:20 | 只看该作者
29# zhaoyu2005  
我们大部分产品都是这样做的,可能我们做的都是家电类小产品吧,
cbs110 发表于 2012-5-12 13:01
如果是小家电的话,设计者肯定是想反着扫的才把电阻接到COM上

使用特权

评论回复
40
hdwgt| | 2012-5-22 13:00 | 只看该作者
7个数码管根本没问题。增加段电流

使用特权

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

本版积分规则