單片機IO口如果識別更多的按鍵,簡單的方法就是通過控制按鍵按下,識別電流的流向。這說可能不是很理解,下面就來介紹下,如下圖按鍵識別電路:
按鍵S1按下,電流是從R1流向GND的,S2按下是從R2流向GND,S3按下是從R1和R2***同流向GND。
S4按下是從IO1流向IO2,也可以從IO2流向IO1,S5按下是從IO1流向IO2,S6按下是從IO2流向IO1。按鍵按下和電流流向關系如下:
那麽這6個按鍵單片機要怎麽識別呢,下面就說下識別思路流程:
1.?先配置IO1和IO2都為1,然後讀IO1和IO2,若讀到IO1為0,那麽S1按下,若讀到IO2為0,那麽S2按下,若讀到IO1和IO2都為0,那麽S3按下,若IO1和IO2都沒讀到0,那麽進行下壹步;
2.?配置IO1為0,IO2為1,讀IO2,若讀IO2為1,進入下壹步,若IO2讀為0,那麽可以判斷是S4或S6按下,然後再配置IO2為0,IO1為1,讀IO1,若IO1讀為0,那麽就是S4按下,若IO1讀為1就是S6按下了。
3.?配置IO2為0,IO1為1,讀IO1,若IO1讀為0,那麽就是S5按下了。
將上面的電路圖再精簡下就是下面的圖形了,是不是很有美感,下圖還比上圖省2個二極管哦。
歡迎評論交流,也歡迎大家關註我:單片機嵌入式愛好者。會有源源不斷的幹貨分享,能真正快速幫大家解決實際工作中遇到的問題哦!