kk1398 发表于 2010-6-10 15:40:44

动态数码管显示如何实现其中一个数码管闪烁功能

本人是一位单片机初学者,现在遇到一问题就是在“动态数码管显示中如何实现其中一个数码管闪烁功能”其相应的图如附件所示,也即当按下其中的K1按键时,数码管的第一位数实现闪烁功能,其它三位保持不变。由于本图数码管显示及按键扫描都是采用定时器中断动态处理的,本人曾用定时来实现一亮一灭功能,但弄来弄去都出不来效果。希哪位高手给指点一下迷津,十分多谢。
http://cache.amobbs.com/bbs_upload782111/files_30/ourdev_560953.jpg
原理图 (原文件名:ourdev_557133.jpg)

lixiansong 发表于 2010-6-14 20:47:50

我想不让它闪,可是我做出来的总是闪,困扰中

hcfatjh 发表于 2010-6-14 21:59:41

比如你每10MS(以眼睛看不到闪烁为准)扫描完4个管了,那么在1S中内,前500M正常扫描,后500MS把要闪烁的那个显为全黑,其它3个正常,就可以看到闪的效果了

wangfan0212 发表于 2010-6-17 14:50:15

可以把位选关了再打开!

lzg-grant 发表于 2010-8-16 13:51:51

可以段选消隐。
DUAN=0X00.

bfsj02 发表于 2010-9-17 22:27:33

我这两天也遇到同样问题,你解决了吗?

LVmcu 发表于 2015-3-5 12:36:34

lixiansong 发表于 2010-6-14 20:47
我想不让它闪,可是我做出来的总是闪,困扰中

减少每位扫描时间或者降低电阻阻值。

LVmcu 发表于 2015-3-5 12:39:25

hcfatjh 发表于 2010-6-14 21:59
比如你每10MS(以眼睛看不到闪烁为准)扫描完4个管了,那么在1S中内,前500M正常扫描,后500MS把要闪烁的那个显 ...

你这样的做法,要闪烁的的那几位会变暗吗?(我做的会变暗)

也宇 发表于 2015-3-8 20:53:12

你可以控制使能端吧,就是数码管右边那几个。。控制他们的高低就可以实现对应数码管的里亮暗了。。应该是酱紫

LiLi-Long 发表于 2015-3-8 20:58:02

三楼正解,

鼻儿眼睛花 发表于 2015-3-8 21:15:30

三楼说得很直接很形象~如果用面向对象的思想来说的话,更形象:
1、数码管本身是个显示器,所以,它需要个显存来暂存需要显示的东西,然后,通过接口把显存的数据同步到数码管上面就是了。同步频率就是我们所说的刷新率,比如我们现在的液晶屏刷新率60Hz,但是你发现用专门测试软件说刷新率已经100+Hz了,那实际是显存的刷新率。
2、有了上面一步,那接下来一步,就是直接操作显存,就可以控制你的数码管了。每个显示位由八段组成,我们可以用一个unsigned char 类型来描述,每一位代表对应的管子,1位亮,0为灭,你要现实8,那么就是01111111,显示0,那就是00111111,显示1,那就是00000110······,这些就要字库,想想你的数码管能够显示哪些符号,典型的,1、2、3、4、5、6、7、8、9、0、A、b、C、。等等等等,要显示啥就从字库里面把字模拉数来,写到显存里面就OK啦!是不是很简单?(PS,如果要做亮度变化,比如你想把每一个管子的亮度进行8Bit的细分,那你的显存大小就该为8*8*4Bit=32Byte~)星期天无聊,瞎掰掰~呵呵~祝楼主成功~
3、这里就是搭建GUI啦,你的是数码管,我们就不小题大做啦{:titter:}
4、开始搭建你的应用层喽,比如你要做个显示界面,可以显示时间,日期,温度,速度,里程等等,所以需要在不同显示之间进行切换,那么这个怎么实现呢?然后,你想让每一位显示亮度不一样,或者某一位以呼吸灯的方式进行闪烁,或者做个淡入淡出效果,飞入飞出效果,是不是很炫啊~

鼻儿眼睛花 发表于 2015-3-8 21:18:04

鼻儿眼睛花 发表于 2015-3-8 21:15
三楼说得很直接很形象~如果用面向对象的思想来说的话,更形象:
1、数码管本身是个显示器,所以,它需要个 ...

楼上说的有道理,我也觉得很炫~{:lol:}
挖坟者自重!!!!!!NMB
页: [1]
查看完整版本: 动态数码管显示如何实现其中一个数码管闪烁功能