单片机/MCUwilliam hill官网
直播中

天凡幽星

11年用户 115经验值
擅长:模拟技术 控制/MCU
私信 关注
[问答]

数码管和按键

数码管初始全灭,按下矩阵键盘任意一个键,数码管第一位显示相应值,第二次按下任意键,数码管第二位显示相应值,第一位的值不变。以此类推,显示六位。请教编程思路,我现在最多就是能让每位都能任意显示相应值,但同时只能亮一个。

回帖(9)

天凡幽星

2013-8-4 22:42:41
。。。。。。。。。大神来回答呀
举报

dongyumin

2013-8-4 23:45:27
1、设置数码管段码显存数组。共阳段码0xff就全灭了,共阴0x00就全灭了,解决了你有些位不显示
2、扫描封装成一个函数。放在定时器中断内定时扫描。
3、按键扫描。扫描到按键,处理后修改显存的值。
修改显存后,会对应你的输入了。其实挺简单的,你的错误在哪里?
举报

天凡幽星

2013-8-5 08:12:01
引用: dongyumin 发表于 2013-8-4 23:45
1、设置数码管段码显存数组。共阳段码0xff就全灭了,共阴0x00就全灭了,解决了你有些位不显示
2、扫描封装 ...

设置段码显存数组,全灭了位还怎么显示呢?
定时器扫描会不会让数码管一闪一闪的?
举报

dongyumin

2013-8-5 08:41:07
引用: 天凡幽星 发表于 2013-8-5 08:12
设置段码显存数组,全灭了位还怎么显示呢?
定时器扫描会不会让数码管一闪一闪的?
...

我说的全灭,比如0x00段码,是某一位数码管上的7段LED全灭。定时设置好不会乱闪。8位数码管,定时器2ms左右进入一次中断。
举报

天凡幽星

2013-8-5 09:07:02
引用: dongyumin 发表于 2013-8-5 08:41
我说的全灭,比如0x00段码,是某一位数码管上的7段LED全灭。定时设置好不会乱闪。8位数码管,定时器2ms左 ...

这样说吧,初始数码管全灭(ok),按s1,第一个数码管显示1,按s2,第二个数码管显示2的同时1不消失,以后的同理,再讲讲吧
举报

dongyumin

2013-8-5 09:47:53
引用: 天凡幽星 发表于 2013-8-5 09:07
这样说吧,初始数码管全灭(ok),按s1,第一个数码管显示1,按s2,第二个数码管显示2的同时1不消失,以 ...

不是很清楚了吗?你可能还停留在你的思路里。定时扫描数码管,每一位都扫描,对应显存,有显示的则亮,不显示的则灭。你修改了显存内容,当即修改了数码管的显示。
举报

天凡幽星

2013-8-5 16:01:38
现在已经行了,谢谢啊以后不懂的还希望能多请教请教
举报

943347096

2013-8-5 21:23:04
你的数码管位没有形成循环。
........
while(1)
{if(....)
    ......;
else if(...)
    .......;
location=location<<1;
}
举报

全丽杰

2013-8-5 21:56:29
我是来 看大神怎样解决问题的 顺便学习
举报

更多回帖

发帖
×
20
完善资料,
赚取积分