按鍵原理

EricsT發表於2024-11-20

微控制器最小系統解析

電源

我們要使用 STC89C52RC 微控制器的時候,找到它的資料手冊第11頁,看第二項--工作電壓:5.5V ~ 3.4V(5V微控制器),這個地方就說明這個微控制器正常的工作電壓是個範圍值,只要電源VCC在5.5V ~ 3.4V 之間都可以正常工作,電壓超過5.5V是絕對不允許的,會燒壞微控制器,電壓如果低於3.4V,微控制器不會損壞,但是也不能正常工作。而在這個範圍內,最典型、最常用的電壓值就是5V,這就是後面括號裡“5V微控制器”這個名稱的由來。

我們獲取器件工作引數的一個最重要、也是最權威的途徑,就是查閱該器件的資料手冊

晶振

晶振通常分為無源晶振和有源晶振兩種型別,無源晶振一般稱之為 crystal(晶體)而有源晶振則叫做 oscillator(振盪器)

有源晶振是一個完整的諧振振盪器,它是利用石英晶體的壓電效應來起振,所以有源晶振需要供電,當我們把有源晶振電路做好後,不需要外接其他器件,只要給它供電,它就可以主動產生振盪頻率,並且可以提供高精度的頻率基準,訊號質量也比無源訊號要好。

無源晶振自身無法振盪起來,它需要晶片內部的振盪電路一起工作才能振盪,它允許不同的電壓,但是訊號質量和精度較有源晶振差一些。相對價格來說,無源晶振要比有源晶振價格便宜很多。無源晶振兩側通常會要求個電容,一般其容值都選在10pF~40pF之間,如果手冊中有具體電容大小的要求則根據要求來選電容,如果手冊沒有要求,我們用20pF就是比較好的選擇,這是一個長久以來的經驗值,具有及其普遍的適用性

按鍵原理

有源晶振通常有4個引腳,VCC,GND,晶振輸出引腳和一個沒有用到的懸空引腳(有些晶振也把該引腳作為使能引腳)。無源晶振有2個或3個引腳,如果是3個引腳的話,中間引腳就是晶振的外殼,使用時要接到GND,兩側的引腳就是晶體的2個引出引腳了,這兩個引腳作用是等同的,就像是電阻的2個引腳一樣,沒有正負之分。對於無源晶振,用我們的微控制器上的兩個晶振引腳接上去即可,而有源晶振,只接到微控制器的晶振的輸入引腳上,輸出引腳上不需要接

按鍵原理

復位電路

按鍵原理

當這個電路處於穩壓狀態時,電容起到隔離直流的作用,隔離了+5V,而左側的復位按鍵是彈起狀態,下邊部分電路就沒有電壓差,所以按鍵和電容C11以下部分的電位都是和GND相等的,也就是0V。我們的微控制器是高電平復位,低電平正常工作,所以正常工作的電壓是0V

從沒有電到上電的瞬間,電容C11上方電壓是5V,下方是0V,電容C11需要充電,正離子從上往下充電,負離子從GND往上充電,這個時候電容對電路來說相當於一根導線,全部電壓去哪不加在了R31這個電阻上,那麼RST埠位置的電壓就是5V,隨著電容充電越來越多,即將充滿的時候,電流會越來越小,那RST埠的電壓值等於電流值乘以R31的阻值,也就會越來越小了,一直到電容完全充滿後,線路上不再有電流,這個時候RST和GND的電位就相等了也就是0V

從上電過程來看,加上此電路之後,微控制器系統上電後,RST引腳會先保持一小段時間的高電平而後變成低電平,這個過程就是上電覆位的過程。那這個“一小段時間”到底是多少才合適嘞?每種微控制器不完全一樣,51微控制器手冊裡寫的是持續時間不少於2個機器週期的時間。復位電壓值,每種微控制器不完全一樣,我們按照通常值0.7VCC作為復位電壓值,復位時間t=1.2RC,我們用的R是4700歐姆,C是0.0000001法,那麼計算出的 t 就是0.000564秒,即 564微妙,遠遠大雨2個機器週期(2us)在電路設計的時候一般留夠餘量

按鍵復位(即手動復位)有2個過程,按下按鍵之前,RST的電壓是0V,當按下按鍵後電路道通,,同時電容也會在瞬間進行放電,RST電壓值變化為4700VCC/(4700+18),會處於高電平復位狀態。當鬆開按鍵後就和上電類似了,先是電容充電,後電流逐漸減小直到RST電壓變成0V的過程。我們按下按鍵的時間通常都會有幾百毫秒,這個時間足夠復位了。按下按鍵的瞬間,電容兩端的5V電壓(注意不是電源的5V和GND)會被直接接通,此刻會有一個瞬間的大電流衝擊,會在區域性範圍內產生一個電磁干擾,為了抑制這個大電流所引起的干擾,在電容放電迴路中串入了一個18歐姆的電阻來限流

按鍵

獨立按鍵

常用的按鍵電路有兩種形式,獨立式按鍵和矩陣式按鍵,獨立式按鍵比較簡單,它們各自與獨立的輸入線相連線

按鍵原理

4條輸入線接到微控制器的 IO 口上,當按鍵 K1 按下時,+5V透過電阻 R1 然後再透過按鍵 K1 最終進入 GND 形成一條通路,那麼這條線路的全部電壓都加到了 R1 這個電阻上,KeyIn1 這個引腳就是個低電平。當鬆開按鍵後,線路斷開,就不會有電流透過,那麼 KeyIn1 和 +5V 就是一個等電位,是一個高電平。因此可以透過 KeyIn1 這個 IO 口的高低電平來判斷是否有按鍵按下

我所使用的微控制器 IO 口內部,也有一個上拉電阻的存在。按鍵是接到了 P2 口上,P2 口上電預設是準雙向IO口

按鍵原理

我們現在絕大多數微控制器的 IO 口都是使用 MOS 管而非三極體,但是在這裡的 MOS 管其原理和三極體是一樣的,因此用三極體的原理來代替 MOS 管來理解

上圖方框內的電路都是指微控制器內部部分,方框外的就是我們外接的上拉電阻和按鍵,當我們要讀取外部按鍵訊號的時候,微控制器必須先給該引腳寫“1”,也就是高電平,這樣子才能正確讀取到外部按鍵訊號,分析如下:

當內部輸出是高電平,經過一個反向器變成低電平,NPN三極體不會道通,那麼微控制器 IO 口從內部來看,由於上拉電阻 R 的存在,所以是一個高電平。當外部沒有按鍵按下將電平拉低的話,VCC也是+5V,它們之間雖然有2個電阻,但是沒有壓差,就不會有電流,線上所有的位置都是高電平,這個時候就可以正常讀取到按鍵的狀態了

當內部輸出是一個低電平,經過一個反向器變成高電平,NPN三極體導通,那麼微控制器內部的 IO 口就是個低電平,這個時候,外部雖然也有一個上拉電阻的存在,但是兩個電阻是並聯關係,不管按鍵是否按下,微控制器的 IO 口上輸入到微控制器內部的狀態都是低電平,就無法正常讀取到按鍵的狀態了

內部和外部,只要有一邊是低電位,那麼電流就會順流而下,由於只有上拉電阻,下邊沒有電阻分壓,直接接到GND上,所以不管另一邊是高還是低,那電平肯定是低電平了

具有上拉的準雙向 IO 口,如果要正常讀取外部訊號的狀態,必須首先保證自己內部輸出是1,如果內部輸出0,則無論外部訊號是1還是0,這個引腳讀進來的都是0

矩陣按鍵

在某一系統設計中,如果需要使用很多的按鍵時,做成獨立按鍵會大量佔用 IO 口,因此引入了矩陣按鍵的設計

按鍵原理

上圖一共有4組按鍵,先看其中的一組,如下圖

按鍵原理

如果 KeyOut1 輸出一個低電平,KeyOut1 就相當於是 GND ,此時就相當於是4個獨立按鍵了(前提是此時其他的 KeyOut 必須是高電平,只有這樣子才能保證與它們相連的按鍵不會對這一個電路產生干擾)

相關文章