微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 数码管和按键

数码管和按键

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

。大神来回答呀

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

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

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

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

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

现在已经行了,谢谢啊以后不懂的还希望能多请教请教

你的数码管位没有形成循环。
.
while(1)
{if(....)
    ......;
else if(...)
    ;
location=location<<1;
}

我是来 看大神怎样解决问题的 顺便学习

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top