按键板的原理与实现----ADC
在嵌入式系统产品开发中,按键板的设计是最基本的,也是项目评估阶段必须要考虑的问题。其实现方式又很多种,具体使用那一种就需要结合特定IC的可用IO数量,并综合考虑成本,做出最终选择。本系列文章将介绍多种不同按键板的原理与实现。
使用ADC实现按键板
这是最简单的实现方式,它需要系统IC提供一个内部ADC。如果IC不能提供出额外的ADC的话,从成本等因素考虑,去外加一个ADC是不明智的选择,可考虑的替代方案将在后续文章中讨论。
1:硬件原理
按键其实就是一个开关电路,按下为导通,松开为断开。电路实现上,就是要设法能够区分多个按键中任意一个有没有被按下。
ADC是一个模拟到数字的转换器件,在其工作范围内,不同的模拟输入,可以得到不同的数字输出。IC的内部ADC一般会对应于一个寄存器或内部存储器地址,甚至提供一个API调用。ADC按键板实现的原理就是使用外部电路的分压,使得不同按键动作产生不同的模拟电平给ADC,如下图1所示:
这是一个Portable DVD Player的按键板实现,从原理图上,我们可以很清楚的看出来:不同的按键按下,则 KEY_DET0 上将得到不同的电压值,而KEY_DET0连接到IC的ADC,这样对ADC的读取将会得到不同的值,从而区分不同的按键动作。
2:软件实现
根据HW的实现,合理定义判断区间,就可以很容易实现软件编程了。以上图为例:假定ADC在输入电平0V-3.3V输入下可以得到0x00-0xFF的近似等比相应的话,将可以实现如下:
3:总结与讨论
这种实现是如此的简单,一眼就能看懂的那种,若不是考虑这个系列的完整性,我都不好意思把它写出来。
原文链接:https://blog.csdn.net/NutriYang/article/details/4364549