3*4矩阵键盘控制四位共阴极数码管输出,请问c语言程序如何写啊?
首先,我们的设计要模块化,便于整体、修改。
那么你就需要些一个键盘的驱动和一个数码管显示的驱动,
然后再在上层写具体应用程序。
对于驱动,你得先想清楚键盘的原理,如何去探测按下,如何对应用传值;数码管如何切换,如何从应用取值。
具体应用程序那就是功能方面的问题了,做好需求,程序应该不难写。
设置的还有删除键,希望能够实现删除上一位的操作,扫描到这个按键时思路就不太清晰了 ,还有判断密码是否对错的情况,这个也是不太清楚
@小唯1997: 首先,你驱动和应用模块在你的程序里划分的清楚了吗?
@窗户: 我把键盘判断和数码管显示方面的程序写了,可是当扫描到删除键时,我就不太清楚了,难道此时要调用一个函数用来删除上一位的显示结果吗
@小唯1997:
你提出这样的疑问,我的第一感觉就是:你程序中,驱动和应用之间没有区分开,浑然一体。
@窗户: 能给一个具体一点的思路吗大神?我不太清楚该怎么把几个程序之间建立联系
@小唯1997:
我的建议:
1.键盘需要定时扫描
2.数码管也需要定时切换
那么,你可以直接在开始,开个定时器。把键盘驱动、数码管驱动写在定时中断里,其他地方都不要在对两处硬件任何操作。
交互方法:键盘驱动是输入数据,那么你可以给一片数值专门用于通知应用哪个按键被按。数码管是输出数据,你也可以给一片数值,用于应用传递数据,让数码管显示的数据。
这样,就有很清晰的手段来管理键盘和数码管,那么应用就容易完全分离出来,用于写具体逻辑。
@窗户: 我们的是就是类似于取钱时往里面输入密码,按下确认键后通过一个灯判别其是否正确,这样的应该不能加上定时器吧?
@小唯1997: 定时器是你的需求中方便而清晰的实现,定时器里做什么或有的时候什么也不做,完全取决于你自己,请认真看懂我这句话。当然,你也可以把硬件控制和逻辑揉在一起最终完成需求,但这是非常垃圾的实现,耦合度太高而不利于维护。