51單片機學習之5-獨立按鍵和矩陣鍵盤

2020-12-27 電子產品世界

第14集

本文引用地址:http://www.eepw.com.cn/article/201611/323867.htm

鍵盤的原理

鍵盤分編碼鍵盤(例如電腦鍵盤)和非編碼鍵盤(自己用程序去識別)。

非編碼鍵盤分:獨立式非編碼鍵盤(獨立按鍵)、行列式非編碼鍵盤(4*4陣列鍵盤)

獨立鍵盤的電路圖。

因為51單片機的IO口不是雙向口而是準雙向口,要讓IO口具備輸入功能,必須將IO口置1,置1之後當按鍵按下時IO口的電平會被拉低,即被置0。當檢測到IO口為0時即可判斷該按鍵已經按下。按鍵按下時會有一個抖動的過程(彈片會抖動),由於單片機檢測IO口速度非常快,超過彈片抖動的頻率,所以當單片機檢測到IO口為0時需延時一小段時間再檢測IO是否為0,如果仍為0就確認該按鈕被按下。因為IO口裡面有上拉電阻,所以當鬆開按鈕時,IO口又被拉高。

例程:

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitKey=P3^4;//按鍵

sbitLed=P1^0;//Led燈

voiddelay(uintz);

/********主函數********/

voidmain()

{

while(1)

{

if(!Key)

{

delay(10);//消抖操作

if(!Key)

Led=0;//按下時Led亮

else

Led=1;

}

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

第15集

4*4矩陣鍵盤

上圖中,1個按鍵佔用一個IO口,如果有16個按鍵就佔用了16個IO口。為了減少IO口的使用,就需要用矩陣的方式連線。如下圖


矩陣掃描原理

從圖可以看出P30、P31、P32、P33為行(低四位),P34、P35、P36、P37為列(高四位)。

假設我們按下的是S6按鈕。


相關焦點

  • 51單片機教程(四):獨立-矩陣鍵盤應用與設計
    一、原理簡介   鍵盤接口電路是單片機系統設計非常重要的一環,作為人機互動界面裡最常用的輸入設備。我們可以通過鍵盤輸入數據或命令來實現簡單的人機通信。在設計鍵盤電路與程序前,我們需要了解鍵盤和組成鍵盤的按鍵的一些知識。  1.
  • 51單片機系列連載8—獨立鍵盤與矩陣鍵盤
    在前面我們講的都是向單片機中向外輸出數據,今天我們開始介紹一下如何向單片機裡面輸入數據,也就是鍵盤。本文引用地址:http://www.eepw.com.cn/article/201611/322440.htm鍵盤有兩種,獨立式鍵盤與行列式矩陣鍵盤。
  • 單片機驅動矩陣按鍵與獨立按鍵原始碼
    本程序所用的原理圖下載:點這裡,單片機晶片使用的stc89c52;找到相應部分即可.這是一整個單片機開發板的電路圖其他的忽略.hex文件及其工程文件下載:http://www.51hei.com/f/pingfc.rar 下面是程序源碼:本文引用地址:http://www.eepw.com.cn/article/201612/324622.htm/**功能:使用矩陣按鍵使得按鍵按下時數碼管上顯示各自對應的數字的立方數* 優化顯示,只顯示有效位;* 且使用獨立按鍵實現key1清零,
  • 單片機 4*4 矩陣鍵盤應用
    在單片機按鍵使用過程中,當鍵盤中按鍵數量較多時 為了減少埠的佔用通常將按鍵排列成矩陣 形式如下圖所示,在矩陣式鍵盤中 每條水平線和垂直線在交叉處不直接連通而是通過一個按鍵加以連接,到底這樣做是出意何種目的呢?
  • 51單片機輕鬆入門與實踐 — 暢學單片機
    課程詳情:      本課程主要通過典型實例的形式,以51單片機的系統設計為主線,結合軟體和硬體,由淺入深、通俗易懂地介紹了51單片機應用系統開發的流程、方法、技巧和設計思想。暢學51開發板產品組成; (3). 暢學多功能底板; (4). 51單片機核心板; (5). 開發學習板外圍配件簡介; (6). 編程器/仿真器。第2課 如何使用暢學51開發學習板(1). 準備工作;(2). 硬體連接;(3). CP2102驅動的安裝;(4).
  • 單片機4×4矩陣鍵盤設計方案
    連接4×4矩陣鍵盤,並以單片機的P3.0-P3.3各管腳作輸入線,以單片機的P3.4-P3.7各管腳作輸出線,在數碼管上顯示每個按鍵 「0-F」的序號。  圖14.2 4×4矩陣式鍵盤識別電路原理圖  3、電路硬體說明  (1)在「單片機系統」區域中,把單片機的P3.0-P3.7埠通過8聯撥動撥碼開關JP3
  • 暢學三合一51單片機實戰教程
    課程詳情:      本課程主要通過典型實例的形式,以51單片機的系統設計為主線,結合軟體和硬體,由淺入深、通俗易懂地介紹了51單片機應用系統開發的流程、方法、技巧和設計思想。目錄介紹:第1課 初識暢學51開發學習板1、暢學系列三合一 51單片機開發板介紹2、暢學系列三合一 51單片機開發板模塊介紹3、配套晶片,編程器及仿真器4、開發學習板外圍配件簡介第2課 如何使用暢學51開發學習板1、使用51
  • 單片機視頻教程
    :http://www.eepw.com.cn/article/274018.htm一、單片機視頻教程- -銳志51單片機開發板  銳志51單片機開發板視頻教程網址為:http://v.eepw.com.cn/video/playlist/id/4269  是廣大電子愛好者自學51單片機的好去處
  • 基於C語言51單片機電子密碼鎖的設計與仿真
    它克服了機械式密碼鎖密碼量少、安全性能差的缺點,尤其是的智能電子密碼鎖;不僅具有電子密碼鎖的功能」還可引人智能化管理功能,從而使密碼鎖具有更離的安全性和可靠性。  電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的窖碼鎖常使用彙編語言編寫程序,顯示器多數用。
  • 基於51單片機的電子音樂盒的課程設計
    結合Proteus和Keil軟體等,學習單片機產品的設計方法,有效地將理論和實際緊密結合,培養創新思維和設計能力,增強軟體編程實現能力和解決實際問題的能力。(3) 學習Proteus軟體,掌握Proteus中各種晶片的功能以及模擬。
  • 基於AT89C51單片機的十進位計算器系統設計
    硬體方面從功能考慮,首先選擇內部存儲資源豐富的AT89C51 單片機,輸入採用4×4 矩陣鍵盤。顯示採用4 位7 段共陽極LED 動態顯示。軟體方面從分析計算器功能、流程圖設計,再到程序的編寫進行系統設計。  引言  本系統採用AT89C51 單片機作為控制器,用來實現實現四位數的「+」,「-」,「*」,「/」運算,運算結果通過數碼管顯示,並具有有清零功能。
  • PIC單片機人機接口模塊4×4行列式鍵盤簡介
    行列式鍵盤又叫矩陣式鍵盤。用I/O口線組成行、列結構,按鍵設置在行列的交點上。例如,用2×2的行列結構可構成4個鍵的鍵盤,4×4行列結構可構成16個鍵的鍵盤。
  • 第13節:按住一個獨立按鍵不鬆手的加速勻速觸發
    (1)硬體平臺:基於朱兆祺51單片機學習板。用矩陣鍵盤中的S1和S5號鍵作為獨立按鍵,記得把輸出線P0.4一直輸出低電平,模擬獨立按鍵的觸發地GND。(2)實現功能:兩個獨立按鍵S1和S5,S1鍵作為加鍵。S5鍵做為減鍵。
  • 基於51單片機12864簡易計算器
    其實這是個單片機課的期末課題,但是沒有幾個能寫的好的。計算器其實要考慮周全也是很複雜的,。但我們只要求做簡易計算器,所以我的計算器只有整數加減乘除,帶負數功能。經過檢驗,實用性還是可以的。這個程序的整體思路很簡單,主要是一些細節的處理。
  • 基於PIC單片機的4×4行列式鍵盤工作原理簡介
    //www.eepw.com.cn/article/170872.htm(1)單片機系統鍵盤原理  行列式鍵盤的接法比獨立式鍵盤的接法複雜,編程實現上也會比較複雜。但是,在佔用相同的I/O埠的情況下,行列式鍵盤的接法會比獨立式接法允許的按鍵數量多,其原理圖如圖1所示。
  • 基於FPGA的4x4矩陣鍵盤驅動調試
    FPGA驅動4x4矩陣鍵盤。這個其實原理是十分簡單,但是由於博主做的時候遇到了一些有意思的情況,所以我個人覺得值得記錄分享一下。首先找了本書看了下矩陣鍵盤的驅動原理,一般來說4x4矩陣鍵盤的原理圖如下,有四根行線和四根列線,行選通和列選通可以確定鍵盤上的一個位置。
  • 單片機按鍵連接方法總結
    單片機在各種領域運用相當廣泛,而作為人機交流的按鍵設計也有很多種。不同的設計方法,有著不同的優缺點。而又由於單片機I/O資源有限,如何用最少的I/O口擴展更多的按鍵是我所研究的問題。
  • 51單片機按鍵控制蜂鳴器啟停程序
    51單片機按鍵控制蜂鳴器啟停程序#include<reg52.h> #define uint unsigned int //宏定義sbit SPK=P3^5; //定義喇叭埠sbit key=
  • 數碼管顯示數字 5 C語言程序設計
    51單片機實驗7:矩陣按鍵 開發板矩陣按鍵模塊電路圖如下:開發板數碼管模塊電路圖如下:矩陣按鍵掃描原理:方法一:逐行掃描:我們可以通過高四位輪流輸出低電平來對矩陣鍵盤進行逐行掃描,當低四位接收到的數據不全為1的時候,說明有按鍵按下,然後通過接收到的數據是哪一位為0來判斷是哪一個按鍵被按下。
  • 單片機c語言之矩陣按鍵
    程序為當按下第一個矩陣按鍵,數碼管顯示1,按第2個矩陣按鍵,數碼管顯示2,以此類推,直到第十五個按鍵顯示F。第十六個按鍵顯示o為止#include#define uint unsigned int#define uchar unsigned charsbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x00,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e