在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ 8.4 單片機按鍵介紹
8.3 C 語言函數(shù)的形參和實參
12.2 C 語言指針變量的聲明
12.5 ?C 語言字符數(shù)組和字符指針
7.3 單片機 LED 點陣的介紹
11.5 UART 串口通信的基本應(yīng)用
9.9 單片機蜂鳴器控制程序和驅(qū)動電路
10. 單片機實例練習與經(jīng)驗積累
10.3 單片機交通燈控制程序和設(shè)計原理
9.8 實用的 28BYJ-48 步進電機控制程序
8.2 C 語言函數(shù)的調(diào)用
12.4 C 語言指向數(shù)組元素的指針
7.1 C 語言變量的作用域
11.2 RS232 通信接口
12.7 1602 液晶的讀寫時序介紹
7.2 C 語言變量的存儲類別
8. C 語言函數(shù)進階與單片機按鍵
10.4 51單片機 RAM 區(qū)域的劃分
12.1 C 語言變量的地址
11. UART 串口通信
7. 變量進階與點陣 LED
8.4 單片機按鍵介紹
9.3 電機的分類
9.1 單片機 IO 口的結(jié)構(gòu)
單片機通信實例與 ASCII 碼
8.1 單片機最小系統(tǒng)解析(電源、晶振和復(fù)位電路)
9.2 單片機上下拉電阻
11.4 單片機 IO 口模擬 UART 串口通信
9.5 讓 28BYJ-48 步進電機轉(zhuǎn)起來
9.7 28BYJ-48 步進電機控制程序基礎(chǔ)
12.8 1602 液晶指令介紹
12.3 C 語言指針的簡單示例
8.7 單片機矩陣按鍵的掃描
7.4 單片機 LED 點陣的圖形顯示
8.6 單片機按鍵消抖程序
10.2 單片機中 PWM 的原理與控制程序
7.6 單片機 LED 點陣的橫向移動(動態(tài)顯示)
11.3 USB 轉(zhuǎn)串口通信
12.9 1602 液晶簡單顯示程序
9.4 28BYJ-48 步進電機原理
8.5 ?單片機獨立按鍵掃描程序
12. C 語言指針基礎(chǔ)與1602液晶的初步認識
9. 單片機中的步進電機與蜂鳴器
10.1 單片機數(shù)字秒表程序
7.5 單片機 LED 點陣的縱向移動(動態(tài)顯示)
8.8 單片機簡易加法計算器程序
11.1 單片機串行通信介紹
10.5 單片機長短按鍵的應(yīng)用
12.6 1602 液晶介紹(電路和引腳圖)
9.6 28BYJ-48 步進電機轉(zhuǎn)動精度與深入分析

8.4 單片機按鍵介紹

獨立按鍵

常用的按鍵電路有兩種形式,獨立式按鍵和矩陣式按鍵,獨立式按鍵比較簡單,它們各自與獨立的輸入線相連接,如圖8-6所示。

http://wiki.jikexueyuan.com/project/mcu-tutorial-two/images/17.png" alt="" />

圖8-6 獨立式按鍵原理圖

4條輸入線接到單片機的 IO 口上,當按鍵 K1 按下時,+5 V 通過電阻 R1 然后再通過按鍵 K1 最終進入 GND 形成一條通路,那么這條線路的全部電壓都加到了 R1 這個電阻上,KeyIn1 這個引腳就是個低電平。當松開按鍵后,線路斷開,就不會有電流通過,那么 KeyIn1 和 +5 V 就應(yīng)該是等電位,是一個高電平。我們就可以通過 KeyIn1 這個 IO 口的高低電平來判斷是否有按鍵按下。

這個電路中按鍵的原理我們清楚了,但是實際上在我們的單片機 IO 口內(nèi)部,也有一個上拉電阻的存在。我們的按鍵是接到了 P2 口上,P2 口上電默認是準雙向 IO 口,我們來簡單了解一下這個準雙向 IO 口的電路,如圖8-7所示。

http://wiki.jikexueyuan.com/project/mcu-tutorial-two/images/18.png" alt="" />

圖8-7 準雙向 IO 口結(jié)構(gòu)圖

首先說明一點,就是我們現(xiàn)在絕大多數(shù)單片機的 IO 口都是使用 MOS 管而非三極管,但用在這里的 MOS 管其原理和三極管是一樣的,因此在這里我用三極管替代它來進行原理講解,把前面講過的三極管的知識搬過來,一切都是適用的,有助于理解。

圖8-7方框內(nèi)的電路都是指單片機內(nèi)部部分,方框外的就是我們外接的上拉電阻和按鍵。這個地方大家要注意一下,就是當我們要讀取外部按鍵信號的時候,單片機必須先給該引腳寫“1”,也就是高電平,這樣我們才能正確讀取到外部按鍵信號,我們來分析一下緣由。

當內(nèi)部輸出是高電平,經(jīng)過一個反向器變成低電平,NPN 三極管不會導(dǎo)通,那么單片機 IO 口從內(nèi)部來看,由于上拉電阻 R 的存在,所以是一個高電平。當外部沒有按鍵按下將電平拉低的話,VCC 也是 +5 V,它們之間雖然有2個電阻,但是沒有壓差,就不會有電流,線上所有的位置都是高電平,這個時候我們就可以正常讀取到按鍵的狀態(tài)了。

當內(nèi)部輸出是個低電平,經(jīng)過一個反相器變成高電平,NPN 三極管導(dǎo)通,那么單片機的內(nèi)部 IO 口就是個低電平,這個時候,外部雖然也有上拉電阻的存在,但是兩個電阻是并聯(lián)關(guān)系,不管按鍵是否按下,單片機的 IO 口上輸入到單片機內(nèi)部的狀態(tài)都是低電平,我們就無法正常讀取到按鍵的狀態(tài)了。

這個和水流其實很類似的,內(nèi)部和外部,只要有一邊是低電位,那么電流就會順流而下,由于只有上拉電阻,下邊沒有電阻分壓,直接到 GND 上了,所以不管另外一邊是高還是低,那電平肯定就是低電平了。

從上面的分析就可以得出一個結(jié)論,這種具有上拉的準雙向 IO 口,如果要正常讀取外部信號的狀態(tài),必須首先得保證自己內(nèi)部輸出的是1,如果內(nèi)部輸出0,則無論外部信號是1還是0,這個引腳讀進來的都是0。

矩陣按鍵

在某一個系統(tǒng)設(shè)計中,如果需要使用很多的按鍵時,做成獨立按鍵會大量占用 IO 口,因此我們引入了矩陣按鍵的設(shè)計。如圖8-8所示,是我們的 KST-51 開發(fā)板上的矩陣按鍵電路原理圖,使用8個 IO 口來實現(xiàn)了16個按鍵。

http://wiki.jikexueyuan.com/project/mcu-tutorial-two/images/19.png" alt="" />

圖8-8 矩陣按鍵原理圖

如果獨立按鍵理解了,矩陣按鍵也不難理解,那么我們一起來分析一下。圖8-8中,一共有4組按鍵,我們只看其中一組,如圖8-9所示。大家認真看一下,如果 KeyOut1 輸出一個低電平,KeyOut1 就相當于是 GND,是否相當于4個獨立按鍵呢。當然這時候 KeyOut2、KeyOut3、KeyOut4 都必須輸出高電平,它們都輸出高電平才能保證與它們相連的三路按鍵不會對這一路產(chǎn)生干擾,大家可以對照兩張原理圖分析一下。

http://wiki.jikexueyuan.com/project/mcu-tutorial-two/images/20.png" alt="" />

圖8-9 矩陣按鍵變獨立按鍵示意圖