在做单片机项目开发时,经常需要用到键盘,而键盘绝大多时候使用的是单按键或矩阵键盘。矩阵键盘有许多优点,我在这就不多说了,但有一点就是按键稍微多几个就比较浪费口线了,尤其是需要将键盘引出时,那线多而长很是一个不爽。下面我就说说两线式的多按键电路的设计与实现,键盘只需两根导线就搞定,前提是你的单片机系统要有多余的一根AD口线。说到这里有人会问了,我的系统没有用到模拟采集,为了弄这个键盘再加一个AD芯片吧,这不是因小失大吗?我要说的是现在带有AD功能的单片机相当的多,而且价格比没带的也贵不了多少。当然你选了不带AD的就另当别论了。 我在做一个项目的按键时遇到几个情况:1.产品外设较多,单片机I/O口除键盘就只剩下一个I/O了,再没有多余的了;2.现场情况所限,键盘与主机板要有一段距离;3.键盘需要9个按键。根据以上的情况采用两线键盘最为合适。电路如图所示。 图中 省略了部分按键,可以根据实际需要配置按键。此时就可以通过AD扫描读取,可以根据AD值判断有无按键按下或是那个按键按下。根据上图电阻值(为方便举例,全部取值为1K,可以自行取阻值,电压平均分配就最好)可以算出:无按键按下,AD值为VCC;S1按下,AD值为0;S2按下,AD值为1/2VCC;同理,S3=2/3VCC;S4=3/4VCC;S5=4/5VCC;根据AD采集值比较最接近那个键值,则就是该按键。 使用此方方法需注意几点:1.按键不可太多,这与AD分辨率有关系,否则将会检测不准。以8位分辨率来说,共256点,每个按键的点为25点以上最好。即256/25=10,最多10个按键。具体可以自行实验。 2.按键选用接触性较好的按键。按键差的使用时间一长,容易产生接触电阻,按键多容易误检测。