数码管扫描问题

[复制链接]
 楼主| jwwhy 发表于 2011-9-11 20:19 | 显示全部楼层 |阅读模式
现在要驱动5个共阳的数码管,5个数码管显示不同的参数,现在是每3MS进入一次中断 ,然后进行数码管轮流扫描,由于mCU输出的端口有限,用74LS164来驱动数码管的段,也放在中断里面,把需要显示的数字通过74LS164传送给数码管后,发现中断的时间都改变了 , 现在想问问,应该如何来做 ?? 应该把传送到74LS164的程序分出来吗?? 还是有什么更好的办法 ??
何工 发表于 2011-9-11 21:45 | 显示全部楼层
yewuyi 发表于 2011-9-11 23:22 | 显示全部楼层
既然是中断,你怎么影响它呢?难道有更高级别的中断?否则,那还叫中断吗?

方案硬件思路没问题,具体代码怎么写,那就看你自己了。
linjing 发表于 2011-9-12 00:24 | 显示全部楼层
好做,我一直用这个办法

有5个数码就定义5个字节的缓冲区,存放扫描码,
byte LED[5];
定时中断一次发送一个字节到74164
大概这个样子
static  byte i;
74LS164 = LED[i%5];
++i;

修改缓冲区的程序放在主程序中,像这样
显示12345
LED[0] = decode[1];
LED[1] = decode[2];
LED[2] = decode[3];
LED[3] = decode[4];
LED[4] = decode[5];
decode 是译码,具体看你要显示哪些内容,自己决定
 楼主| jwwhy 发表于 2011-9-12 14:02 | 显示全部楼层
楼上的 ,我现在是用汇编,有没有好的办法??
lyjian 发表于 2011-9-12 17:08 | 显示全部楼层
这个和汇编还是C没什么关系
思路是一样的
yewuyi 发表于 2011-9-13 12:43 | 显示全部楼层
楼上的 ,我现在是用汇编,有没有好的办法??
jwwhy 发表于 2011-9-12 14:02


还要什么办法呢?让别人再用汇编给你写一个示例?

这可是要严重批评的。
何工 发表于 2011-9-13 15:08 | 显示全部楼层
给你一个思路:设一个位计数器COUNT,,,每次中断,先关所有位选,再据计数器的数值,传送相应的数据段码到164,再开相应的位.  最后计数器指向下一个,中断返回....
ayb_ice 发表于 2011-9-13 17:06 | 显示全部楼层
这是搞MCU开发的基本功
您需要登录后才可以回帖 登录 | 注册

本版积分规则

83

主题

281

帖子

0

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