單片機系統電路設計解析
4條輸入線接到單片機的IO口上,當按鍵K1按下時,+5V通過電阻R1然后再通過按鍵K1最終進入GND形成一條通路,那么這條線路的全部電壓都加到了R1這個電阻上,KeyIn1這個引腳就是個低電平。當松開按鍵后,線路斷開,就不會有電流通過,那么KeyIn1和+5V就應該是等電位,是一個高電平。我們就可以通過KeyIn1這個IO口的高低電平來判斷是否有按鍵按下。
這個電路中按鍵的原理我們清楚了,但是實際上在我們的單片機IO口內部,也有一個上拉電阻的存在。我們的按鍵是接到了P2口上,P2口上電默認是準雙向IO口,我們來簡單了解一下這個準雙向IO口的電路,如圖5所示。

圖5 準雙向IO口結構圖
當內部輸出是高電平,經過一個反向器變成低電平,NPN三極管不會導通,那么單片機IO口從內部來看,由于上拉電阻R的存在,所以是一個高電平。當外部沒有按鍵按下將電平拉低的話,VCC也是+5V,他們之間雖然有2個電阻,但是沒有壓差,就不會有電流,線上所有的位置都是高電平,這個時候我們就可以正常讀取到按鍵的狀態了。
當內部輸出是個低電平,經過一個反相器變成高電平,NPN三極管導通,那么單片機的內部IO口就是個低電平,這個時候,外部雖然也有上拉電阻的存在,但是兩個電阻是并聯關系,不管按鍵是否按下,單片機的IO口上輸入到單片機內部的狀態都是低電平,我們就無法正常讀取到按鍵的狀態了。
5、矩陣按鍵
矩陣按鍵和獨立按鍵的關系
我們在使用按鍵的時候有這樣一種使用經驗,當需要多個按鍵的時候,如果做成獨立按鍵會大量占用IO口,因此我們引入了矩陣按鍵,如圖6所示,使用了8個IO口來實現16個按鍵。

圖6 矩陣按鍵
其實獨立按鍵理解了,矩陣按鍵也簡單,我們來分析一下。圖6中,一共有4組按鍵,我們只看其中一組,如圖7所示。大家認真看一下,當KeyOut1輸出一個低電平,KeyOut2、KeyOut3、KeyOut4這三個輸出高電平時,是否相當于4個獨立按鍵呢。

圖7 矩陣按鍵變獨立按鍵
編輯點評:本文介紹了單片機最小系統的電路設計,單片機系統里都有晶振,晶振通常分為無源晶振和有源晶振兩種類型。對單片機最小系統的電源模塊、復位電路和振蕩電路進行了詳細的分析,理解單片機最小系統的設計對工程師是有利的。
評論