單片機(jī)系統(tǒng)電路設(shè)計(jì)解析
4條輸入線接到單片機(jī)的IO口上,當(dāng)按鍵K1按下時(shí),+5V通過(guò)電阻R1然后再通過(guò)按鍵K1最終進(jìn)入GND形成一條通路,那么這條線路的全部電壓都加到了R1這個(gè)電阻上,KeyIn1這個(gè)引腳就是個(gè)低電平。當(dāng)松開(kāi)按鍵后,線路斷開(kāi),就不會(huì)有電流通過(guò),那么KeyIn1和+5V就應(yīng)該是等電位,是一個(gè)高電平。我們就可以通過(guò)KeyIn1這個(gè)IO口的高低電平來(lái)判斷是否有按鍵按下。
這個(gè)電路中按鍵的原理我們清楚了,但是實(shí)際上在我們的單片機(jī)IO口內(nèi)部,也有一個(gè)上拉電阻的存在。我們的按鍵是接到了P2口上,P2口上電默認(rèn)是準(zhǔn)雙向IO口,我們來(lái)簡(jiǎn)單了解一下這個(gè)準(zhǔn)雙向IO口的電路,如圖5所示。
圖5 準(zhǔn)雙向IO口結(jié)構(gòu)圖
當(dāng)內(nèi)部輸出是高電平,經(jīng)過(guò)一個(gè)反向器變成低電平,NPN三極管不會(huì)導(dǎo)通,那么單片機(jī)IO口從內(nèi)部來(lái)看,由于上拉電阻R的存在,所以是一個(gè)高電平。當(dāng)外部沒(méi)有按鍵按下將電平拉低的話,VCC也是+5V,他們之間雖然有2個(gè)電阻,但是沒(méi)有壓差,就不會(huì)有電流,線上所有的位置都是高電平,這個(gè)時(shí)候我們就可以正常讀取到按鍵的狀態(tài)了。
當(dāng)內(nèi)部輸出是個(gè)低電平,經(jīng)過(guò)一個(gè)反相器變成高電平,NPN三極管導(dǎo)通,那么單片機(jī)的內(nèi)部IO口就是個(gè)低電平,這個(gè)時(shí)候,外部雖然也有上拉電阻的存在,但是兩個(gè)電阻是并聯(lián)關(guān)系,不管按鍵是否按下,單片機(jī)的IO口上輸入到單片機(jī)內(nèi)部的狀態(tài)都是低電平,我們就無(wú)法正常讀取到按鍵的狀態(tài)了。
5、矩陣按鍵
矩陣按鍵和獨(dú)立按鍵的關(guān)系
我們?cè)谑褂冒存I的時(shí)候有這樣一種使用經(jīng)驗(yàn),當(dāng)需要多個(gè)按鍵的時(shí)候,如果做成獨(dú)立按鍵會(huì)大量占用IO口,因此我們引入了矩陣按鍵,如圖6所示,使用了8個(gè)IO口來(lái)實(shí)現(xiàn)16個(gè)按鍵。
圖6 矩陣按鍵
其實(shí)獨(dú)立按鍵理解了,矩陣按鍵也簡(jiǎn)單,我們來(lái)分析一下。圖6中,一共有4組按鍵,我們只看其中一組,如圖7所示。大家認(rèn)真看一下,當(dāng)KeyOut1輸出一個(gè)低電平,KeyOut2、KeyOut3、KeyOut4這三個(gè)輸出高電平時(shí),是否相當(dāng)于4個(gè)獨(dú)立按鍵呢。
圖7 矩陣按鍵變獨(dú)立按鍵
編輯點(diǎn)評(píng):本文介紹了單片機(jī)最小系統(tǒng)的電路設(shè)計(jì),單片機(jī)系統(tǒng)里都有晶振,晶振通常分為無(wú)源晶振和有源晶振兩種類型。對(duì)單片機(jī)最小系統(tǒng)的電源模塊、復(fù)位電路和振蕩電路進(jìn)行了詳細(xì)的分析,理解單片機(jī)最小系統(tǒng)的設(shè)計(jì)對(duì)工程師是有利的。
評(píng)論