一种IO口采集多个按键信号的采集方法(一)

按键信号一般为高电平和低电平。对于每个按键信号,微控制器都需要一个 IO 端口进行采集。这种密钥收集方式比较简单,但是占用单片机的IO口较多。

如果按键很多,比如键盘,可以使用行列数组进行信号采集。这种方式只需要少量的IO口就可以采集到大量的关键信号。比如7个IO口最多可以采集3*4=12个按键信号。

但是这种获取方式的编程比较复杂,而且考虑到按键防抖等因素两个模拟信号如何同时输入到单片机,程序比较复杂,初学者也不容易掌握。

本文将与您分享一种收集关键信号的方法。您可以使用一个 IO 端口采集多个按键信号。不仅电路简单,而且编程也比较容易实现。

图片[1]-一种IO口采集多个按键信号的采集方法(一)-老王博客

该方法只使用一个IO采集多个key,使用IO口的AD功能。当按下不同的按键时,单片机的AD口采集的电压值是不同的,因此可以区分是哪个按键被按下。即使同时按下两个按钮,也可以根据电阻并联后的电阻值计算出输入到单片机的电压值。根据这个电压值,它还可以识别出哪两个按钮被按下了。是不是很简单?

这种方法理论上可以用一个IO口采集几十上百个按键两个模拟信号如何同时输入到单片机,但是考虑到电阻值的误差、上拉电源电压的误差、AD采样的误差单片机,实际应用中,一个IO口,采集的关键信号个数一般不超过10个。

使用此方法时要小心:

(1)必须使用已知的恒定上拉电源,比如板子内部稳压的5V。

(2)如果按键较多,建议电路中使用的电阻使用1%的高精度电阻。

(3)编程键值识别时,用AD值区间范围来判断是哪个键被按下。不要用固定的AD值来判断上面提到的各种错误的原因。

(4)如果单片机的IO口足够多,还是推荐使用一IO一键采集的简单方法。

您对这种密钥收集方法有什么想法吗?欢迎大家留言、点赞、拍砖、求教、指教。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论