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

[复制链接]
程序匠人 发表于 2012-5-11 13:36 | 显示全部楼层
18# amwrdfe  
对,就是你说的这样,led扫描占空比不是最大的,单独按一个键的话, 对显示是没影响,但同时按两个键是会影响到显示。
cbs110 发表于 2012-5-11 12:21


按两个按键影响显示的话,可能是因为按键闭合导致了线间短路吧?
 楼主| cbs110 发表于 2012-5-11 14:47 | 显示全部楼层
21# 程序匠人
是的,电路上他把限流电阻接在COM口上是为了省电阻?若接在SEG上需要7个。接在COM上 6个?
 楼主| cbs110 发表于 2012-5-11 15:15 | 显示全部楼层
大虾们有没用到反扫描的方式,比如我们一般是每一个COM口扫描一下,这样导致可能有的COM口需要点亮7个SEG,有的COM口只需要点亮2个SEG,例如显示“188“时,这样就会出现1明显比8亮很多的情况
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)。
 楼主| cbs110 发表于 2012-5-11 16:17 | 显示全部楼层
很高兴,这个帖子能引起各位大虾的支持,现在我就来讲下我的个人解决方法,
硬件不动,我将扫描方式改了,之前是扫描COM口,我现在是反向扫描,即扫描SEG口,这样的好处是同一时间
同一个COM口上只允许点亮1个SEG,你可以同一时间点亮多个COM口的同一个SEG,这样就减轻了SEG驱动能力不足的问题,改好后我实验了下,亮度是比以前亮了许多,还有我发现我们这边开发的多个案子(压力锅居多)多是这样设计的。
程序匠人 发表于 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口上导致。
autopccopy 发表于 2012-5-11 18:59 | 显示全部楼层
增大电流。增加时间片其实也是增大了平均电流。:)
zhaoyu2005 发表于 2012-5-12 10:42 | 显示全部楼层
com口串电阻,会出现亮度不一致,影响效果
 楼主| cbs110 发表于 2012-5-12 13:01 | 显示全部楼层
29# zhaoyu2005
我们大部分产品都是这样做的,可能我们做的都是家电类小产品吧,
sfpxfpcfp 发表于 2012-5-12 13:03 | 显示全部楼层
加大驱动电流
hyhmh 发表于 2012-5-12 13:19 | 显示全部楼层
“扫描SEG,在COM端 接电阻”  这一做法 确实可以 一定范围内 减少 电阻的数量。
此 类 逆向思维设计, 还是有一定的优点。
当然,也要 付出:软件设计比较麻烦,可能会占用更多的ROM与RAM。
love_gerry 发表于 2012-5-12 14:09 | 显示全部楼层
学习一下:)
hopewise 发表于 2012-5-12 19:01 | 显示全部楼层
把主周期固定为2ms,执行指令时间为0.5us,那么1s内有500个周期(1s/2ms=500),每次执行主程序时,只点亮1位输码管,那么,那么假如是8位数码管,平均扫描每位数码管的频率为62.5HZ(500次/8位),绝对点亮数码管的.
zezy371 发表于 2012-5-12 23:03 | 显示全部楼层
让每个数码管扫描时点亮的时间加长一些,关闭的时间减少一些,自然亮度就好一些我原来做的程序和你一样
 楼主| 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上的电流最大。
cjseng 发表于 2012-5-15 01:41 | 显示全部楼层
恕老夫愚钝,“COM口”是什么意思?我看了半天,楞没看明白。
 楼主| cbs110 发表于 2012-5-15 12:06 | 显示全部楼层
37# cjseng

LED公共端,那要怎么描述呢?
szyijitong 发表于 2012-5-15 21:38 | 显示全部楼层
1、连续扫描,别空闲,这点看上去你已经做到了;
2、加大驱动电流,最简单的方法就是减小限流电阻;
3、采用高亮的的数码管,另外,一般红色的比其它颜色的亮;
4、想在强光下看清,建议用VFD;
tianjigg 发表于 2012-5-15 23:20 | 显示全部楼层
29# zhaoyu2005  
我们大部分产品都是这样做的,可能我们做的都是家电类小产品吧,
cbs110 发表于 2012-5-12 13:01
如果是小家电的话,设计者肯定是想反着扫的才把电阻接到COM上
hdwgt 发表于 2012-5-22 13:00 | 显示全部楼层
7个数码管根本没问题。增加段电流
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部