按键
常用的按键电路有两种,一种是独立式按键,另一种是矩阵式按键。
独立按键
独立式按键各自与独立的输入线相连接。
以下图中的电路为例,进行分析。
独立式按键原理图:
判断按键是否被按下的依据是:KeyIn(n) IO口电平的高低。
当K1按下时,电路高低电平端联通。此时Keyln1引脚为低电平。
当K1松开是,线路断开,Keyln1与+5V是等电位。此时Keyln1引脚为高电平。
通常,单片机IO口内部存在上拉电阻。
以准双向IO口结构图为例:
方框内的电路是单片机的内部部分,方框外是外接的上拉电阻和按键。
注意:读取外部按键信号时,单片机必须先给该引脚置1!!!
分析如下:
当内部输出=1时,经过非门取反为0,NPN三极管无电位差,电路不接通。VCC(也是+5V)与+5V之间无电位差,此时单片机IO口为高电平。可以正常读取按键状态。
当内部输出=0时,取反后为1,NPN三极管产生电位差,电路接通。单片机IO口受影响变为低电平,无法正常读取按键状态。
矩阵按键
在独立按键的基础上,为了提高IO口的利用率,矩阵按键应运而生。
如图,8个IO口实现16个按键。
如果KeyOut1输出一个低电平,KeyOut1就相当于GND,其他四个按键相当于独立按键。需要注意,此时KeyOut2、KeyOut3和KeyOut4都应输出高电平,以免影响KeyOut1这条线路的使用。
此时的电路图就简化成了这样: