首页 新闻 会员 周边

矩阵键盘控制四位数码管输出

0
[待解决问题]

3*4矩阵键盘控制四位共阴极数码管输出,请问c语言程序如何写啊?

小唯1997的主页 小唯1997 | 菜鸟二级 | 园豆:202
提问于:2018-01-01 09:38
< >
分享
所有回答(1)
0

首先,我们的设计要模块化,便于整体、修改。

那么你就需要些一个键盘的驱动和一个数码管显示的驱动,

然后再在上层写具体应用程序。 

对于驱动,你得先想清楚键盘的原理,如何去探测按下,如何对应用传值;数码管如何切换,如何从应用取值。

具体应用程序那就是功能方面的问题了,做好需求,程序应该不难写。

窗户 | 园豆:886 (小虾三级) | 2018-01-01 23:35

设置的还有删除键,希望能够实现删除上一位的操作,扫描到这个按键时思路就不太清晰了 ,还有判断密码是否对错的情况,这个也是不太清楚

支持(0) 反对(0) 小唯1997 | 园豆:202 (菜鸟二级) | 2018-01-02 12:56

@小唯1997: 首先,你驱动和应用模块在你的程序里划分的清楚了吗?

支持(0) 反对(0) 窗户 | 园豆:886 (小虾三级) | 2018-01-02 14:30

@窗户: 我把键盘判断和数码管显示方面的程序写了,可是当扫描到删除键时,我就不太清楚了,难道此时要调用一个函数用来删除上一位的显示结果吗

支持(0) 反对(0) 小唯1997 | 园豆:202 (菜鸟二级) | 2018-01-02 15:11

@小唯1997: 

你提出这样的疑问,我的第一感觉就是:你程序中,驱动和应用之间没有区分开,浑然一体。

支持(0) 反对(0) 窗户 | 园豆:886 (小虾三级) | 2018-01-02 15:19

@窗户: 能给一个具体一点的思路吗大神?我不太清楚该怎么把几个程序之间建立联系

支持(0) 反对(0) 小唯1997 | 园豆:202 (菜鸟二级) | 2018-01-02 15:48

@小唯1997:

我的建议:

1.键盘需要定时扫描

2.数码管也需要定时切换

那么,你可以直接在开始,开个定时器。把键盘驱动、数码管驱动写在定时中断里,其他地方都不要在对两处硬件任何操作。

交互方法:键盘驱动是输入数据,那么你可以给一片数值专门用于通知应用哪个按键被按。数码管是输出数据,你也可以给一片数值,用于应用传递数据,让数码管显示的数据。

这样,就有很清晰的手段来管理键盘和数码管,那么应用就容易完全分离出来,用于写具体逻辑。

支持(0) 反对(0) 窗户 | 园豆:886 (小虾三级) | 2018-01-02 16:14

@窗户:  我们的是就是类似于取钱时往里面输入密码,按下确认键后通过一个灯判别其是否正确,这样的应该不能加上定时器吧?

支持(0) 反对(0) 小唯1997 | 园豆:202 (菜鸟二级) | 2018-01-02 18:51

@小唯1997: 定时器是你的需求中方便而清晰的实现,定时器里做什么或有的时候什么也不做,完全取决于你自己,请认真看懂我这句话。当然,你也可以把硬件控制和逻辑揉在一起最终完成需求,但这是非常垃圾的实现,耦合度太高而不利于维护。

支持(0) 反对(0) 窗户 | 园豆:886 (小虾三级) | 2018-01-02 18:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册