一、设计要求
设计要求:因为单片机的IO口数量较少,要求使用1路IO口检测4路按键。
二、设计思路
设计思路:单片机的IO口数量较少的情况下,使用1路IO口检测4路按键,可以通过检测电压值来进行区分,即使用IO口的ADC功能,通过不同的电压值来区分哪一个按键按下。
电路设计如下:
三、仿真测试
1、单一按键
-
按键断开,IO口采集的电压为0V,测试如下接近于0V。(电压单位fv(femtovolt),电压单位,表示毫微,微伏,或飞伏,大小为10ˉ15V。)
-
按键 S4 按下,IO口电压为1.65V。
-
按键 S3 按下 ,IO口电压为 0.3V。
-
按键 S2 按下 ,IO口电压为 1.19V。
-
按键 S1 按下 ,IO口电压为 0.647V。
2、2个组合按键
- 按键 S1、S2 按下 ,IO口电压为 1.422V。
- 按键 S1、S3 按下 ,IO口电压为 0.844V。
- 按键 S1、S4 按下 ,IO口电压为 1.829V。
- 按键 S2、S3 按下 ,IO口电压为 1.254V。
- 按键 S2、S4 按下 ,IO口电压为 1.987V。
- 按键 S3、S4 按下 ,IO口电压为 1.729V。
3、3个按键组合键
-
按键 S1、S2 、S3 按下 ,IO口电压为 1.523V。
-
按键 S1、S2 、S4 按下 ,IO口电压为 2.103V。
-
按键 S1、S3 、S4 按下 ,IO口电压为 1.892V。
-
按键 S2、S3 、S4 按下 ,IO口电压为 2.037V。
4、4个按键组合
- 按键 S1 、S2、S3 、S4 全部按下 ,IO口电压为 2.145V
四、总结
1个IO口采集多路按键的方法:通过使用单片机IO口的ADC功能,通过不同的电压值来区分哪一个按键按下。