2024年4月8日发(作者:琴依波)
利用到电容充放电原理实现一条IO实现两个按键
年前去到一个朋友那里,提到现在客户对成本要求非常之高,尤其是玩具
行业,已经是一分一厘的去计算产品成本。朋友感慨为了省成本,方案商是
绞尽脑汁地去想各种实现方法,说遇到过为了节省成本,硬是用单片机一条
IO实现了两个按键的功能,让他颇为诧异,好久都没想明白原理。一条IO
实现两个按键,听上去确实挺新奇,既然别人能够实现,我想我也应该可以
做到,看来得找找实现的方法。
我有一个习惯,遇到某些问题的时候,会在睡觉前想解决方法,想着想着
就会睡着了,问题的答案有没有找到则不一定。我知道有用一条IO实现多个
按键的方法,这样的方法大多是选用的IO支持ADC功能,用电阻分压后通
过读电压判断键值。如果IO不支持ADC功能,也不是不行,可以用电容充
放电的方法实现ADC,从而用普通IO间接进行测量。(参见我之前关于键盘
扫描的文章)这样用一条IO实现两个按键给我的第一感觉是可能需要利用到
电容充放电原理,于是在半梦半醒之中找到了实现的方法。
先看上图左边部分,如果MCU_IO1为双向IO口,假设单片机程序按以
下流程处理,看看会得到什幺样的结果?
2024年4月8日发(作者:琴依波)
利用到电容充放电原理实现一条IO实现两个按键
年前去到一个朋友那里,提到现在客户对成本要求非常之高,尤其是玩具
行业,已经是一分一厘的去计算产品成本。朋友感慨为了省成本,方案商是
绞尽脑汁地去想各种实现方法,说遇到过为了节省成本,硬是用单片机一条
IO实现了两个按键的功能,让他颇为诧异,好久都没想明白原理。一条IO
实现两个按键,听上去确实挺新奇,既然别人能够实现,我想我也应该可以
做到,看来得找找实现的方法。
我有一个习惯,遇到某些问题的时候,会在睡觉前想解决方法,想着想着
就会睡着了,问题的答案有没有找到则不一定。我知道有用一条IO实现多个
按键的方法,这样的方法大多是选用的IO支持ADC功能,用电阻分压后通
过读电压判断键值。如果IO不支持ADC功能,也不是不行,可以用电容充
放电的方法实现ADC,从而用普通IO间接进行测量。(参见我之前关于键盘
扫描的文章)这样用一条IO实现两个按键给我的第一感觉是可能需要利用到
电容充放电原理,于是在半梦半醒之中找到了实现的方法。
先看上图左边部分,如果MCU_IO1为双向IO口,假设单片机程序按以
下流程处理,看看会得到什幺样的结果?