打印

数码管闪动问题

[复制链接]
5279|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jwwhy|  楼主 | 2011-9-16 18:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5个数码管分别显示不同的参数,然后用按键对这5个显示的参数进行设置,现在扫描5数码管是用中断产生的3MS基准时间来分别扫描5个数码管,每到子程序中,判断是否到3MS,到3MS就进行一位数码管的显示,由于MCU的端口有限,用了一个74HC164来驱动数码管,即到3M后,把显示的数据传到74HC164, 然后再打开相对应的数码管,而现在碰见的问题是,在进行参数设置的时候,要求对应的数码管闪动,1S周期闪动,如现在设置第一个数码管,第一个数码管闪动,要看见第一个数码管的显示时候,需要延时相应的时间才可以看见,而因为扫面数码管的时间是3MS,所以要显示下一个数码管了,当第一个数码管在闪动的时候,又不可关数码管的位选择,从而这时把第2个数码管的数据传送到74HC164,而此时显示的第一个数据就发生改变了? 请问有没有啥好办法解决这个问题??

相关帖子

沙发
NE5532| | 2011-9-16 19:51 | 只看该作者
关扫描啥事?做个单独的段码,把所有段都设置成熄灭状态,比如命名为Dummy,然后以1S为周期交替往要闪烁的位的显示缓冲区送Dummy和数据就可以了呀。

用伪C给你写个示例

char display_buffer[0..5]
char counter

define 0 0x01
.....
define 9 0x09
define dummy 0xFF

isr display(&display_buffer[0])
{
  扫描送显各数据位
}

isr 1Hz_timer()
{

counter++

if (counter.0==1)
  display_buffer[设置位]=dummy
else
  display_buffer[设置位]=本来应该显示的数据}

使用特权

评论回复
板凳
ayb_ice| | 2011-9-17 08:55 | 只看该作者
直接控制显示缓冲区即可,比如FF全显示,00不显示,其它的与显示无关了

使用特权

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

本版积分规则

83

主题

281

帖子

0

粉丝