色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于51單片機的矩陣按鍵設計

天才小貍花 ? 來源:Sigle_chip ? 作者:Sigle_chip ? 2022-08-22 10:10 ? 次閱讀

導語

獨立按鍵在系統中大量使用,會占用大量的IO口,因此采用矩陣按鍵的設計。使用 8個 IO可實現了 16個按鍵,與此對應的也可以設計更為復雜的電路,來實現更少的IO,更多的按鍵,本質上都是通過IO捕獲電平上的變化。

矩陣按鍵

電路

通過行與列的掃描來檢查那個IO電平被按下,而當某一個按鍵按下時,改按鍵對應的行和列就會短接,當按鍵按下時,一個高電平和低電平短接會把高電平拉低。

逐行掃描:高4位P17-P14鏈接每一行,依次把每一行設置為低電平,把低4位設置未高電平,然后檢測第四位是否全為1,如果不全為1,說明有按鍵按下,電平被拉低,也就是對應的按鍵被按下,如此循環檢測每一行;其實根據原理可以看出來,除了逐行掃描,也可以逐列掃描,原理相同;

行列掃描:和逐行或逐列掃描不通的是行列掃描;掃描原理是先把高4位設置為低電平,把低4位設置為高電平,這樣如果低4位中有電平變低,說明該列有按鍵按下,但不知道具體是哪一行的按鍵;接著反過來操作,把高4位設置為高電平,低四位設置為低電平,檢測高4位哪一位被拉低,那么按鍵就在對應的行上,這樣通過兩次掃描就知道該按鍵在哪一行哪一列了,也就知道具體是哪個按鍵被按下了。

poYBAGMC5XGAWxBqAAE4Ua2fifs971.png

程序

void KeyScan()
{
//4*4矩陣鍵盤掃描
P3 = 0XF0;//列掃描
if(P3 != 0XF0)//判斷按鍵是否被按下
{
delay(10);//軟件消抖10ms
if(P3 != 0XF0)//判斷按鍵是否被按下
{
switch(P3) //判斷那一列被按下
{
case 0xe0:KeyValue = 0;break;//第一列被按下
case 0xd0:KeyValue = 1;break;//第二列被按下
case 0xb0:KeyValue = 2;break;//第三列被按下
case 0x70:KeyValue = 3;break;//第四列被按下
}
P3 = 0X0F;//行掃描
switch(P3) //判斷那一行被按下
{
case 0x0e:KeyValue = KeyValue;break;//第一行被按下
case 0x0d:KeyValue = KeyValue + 4;break;//第二行被按下
case 0x0b:KeyValue = KeyValue + 8;break;//第三行被按下
case 0x07:KeyValue = KeyValue + 12;break;//第四行被按下
}
while(P3 != 0X0F);//松手檢測
}
}
P3 = 0XFF;//獨立按鍵掃描
if(P3 != 0XFF)
{
delay(10);//軟件消抖10ms
if(P3 != 0XFF)
{
switch(P3) //判斷那一行被按下
{
case 0xfe:KeyValue = 16;break;//S2被按下
case 0xfd:KeyValue = 17;break;//S3被按下
case 0xfb:KeyValue = 18;break;//S4被按下
case 0xf7:KeyValue = 19;break;//S5被按下
}
while(P3 != 0XFF);//松手檢測
}
}
}

其他鍵盤

8個IO控制64個IO。

pYYBAGMC5WGARGM9AADUhc_B1lw557.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6042

    文章

    44617

    瀏覽量

    637520
  • 51單片機
    +關注

    關注

    274

    文章

    5705

    瀏覽量

    124070
  • 矩陣按鍵
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8380
  • 獨立按鍵
    +關注

    關注

    1

    文章

    45

    瀏覽量

    11597
收藏 人收藏

    評論

    相關推薦

    有關51單片機矩陣按鍵

    求大神指點矩陣按鍵電路圖的原理
    發表于 07-14 11:02

    大俠們,求教關于51單片機矩陣按鍵的問題

    我用的是吳鑒鷹的開發板,其中關于矩陣按鍵的程序不太理解,請各位前輩大神指教unsigned char Key_Scan(void){uchar Key_Temp,Scan_Code
    發表于 09-26 20:42

    怎么實現51單片機矩陣按鍵

    怎么實現51單片機矩陣按鍵
    發表于 10-09 09:12

    51單片機矩陣按鍵怎么運用?

    51單片機矩陣按鍵怎么運用
    發表于 11-01 08:15

    51單片機矩陣按鍵

    51單片機矩陣按鍵,根據按鍵數在數碼管上顯示。
    發表于 05-09 10:59 ?5次下載

    51單片機矩陣按鍵的功能應用

    codeunsignedcharLedChar[]={//數碼管顯示字符轉換表 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E }; unsignedcharKeySta[4][4]={//全部
    發表于 03-05 15:35 ?3308次閱讀

    51單片機矩陣按鍵的實驗詳細資料說明

    方法一:逐行掃描:我們可以通過高四位輪流輸出低電平來對矩陣鍵盤進行逐行掃描,當低四位接收到的數據不全為1的時候,說明有按鍵按下,然后通過接收到的數據是哪一位為0來判斷是哪一個按鍵被按下。
    發表于 04-15 18:25 ?0次下載

    51單片機矩陣按鍵掃描的原來和電路圖及代碼免費下載

    原理:當按鍵按下時按鍵兩個引腳為0;先給P1.3-P1.0為1,P1.7-P1.4為0(代碼中GPIO_KEY=0x0f;),當有按鍵按下,它的兩個引腳都應該為0,我們事先把列引腳設為了1,看哪一位
    發表于 09-19 17:20 ?0次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b><b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>掃描的原來和電路圖及代碼免費下載

    矩陣按鍵、秒表、數碼管動態掃描和數碼管同時加減的程序免費下載

    本文檔的主要內容詳細介紹的是基于51單片機矩陣按鍵、秒表、數碼管動態掃描和數碼管同時加減的C語言程序免費下載。
    發表于 05-13 08:00 ?21次下載
    <b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>、秒表、數碼管動態掃描和數碼管同時加減的程序免費下載

    51單片機矩陣按鍵

    矩陣按鍵,顧名思義,就是形成矩陣按鍵,一般由多行多列組成,如下圖是一個4*4的矩陣按鍵;如果是
    發表于 11-14 16:21 ?3次下載
    【<b class='flag-5'>51</b><b class='flag-5'>單片機</b>】<b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>

    基于51單片機矩陣按鍵學習

    矩陣按鍵就是獨立按鍵的結合體,矩陣按鍵的優點是提高了I/O端口的利用率,用M+N個I/O端口就可以控制M×N個獨立
    發表于 11-23 16:36 ?17次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>學習

    51單片機 矩陣按鍵控制數碼管顯示0~F

    通過按下4*4矩陣按鍵讓數碼管顯示對應的數值#include <reg52.h>typedef unsigned char u8;typedef unsigned int
    發表于 11-23 16:36 ?7次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b> <b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>控制數碼管顯示0~F

    基于51單片機矩陣按鍵驅動

    ;/*功能 :判斷按鍵是否按下參數 :<unsigned int>函數 readButtonDown 的返回值<unsigned char>從0開始的位置表示結果 :按下時為真 沒按下時為假*/#define BUTTON_DOWN_IF(Button
    發表于 11-23 17:06 ?13次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>矩陣</b><b class='flag-5'>按鍵</b>驅動

    基于51單片機矩陣按鍵檢測數碼管顯示電路圖及程序

    本資源內容概要: 這是基于51單片機矩陣按鍵檢測數碼管顯示設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開) 。 本資源適合人群:
    發表于 08-28 15:18 ?0次下載

    基于51單片機矩陣按鍵LM386放大數碼管顯示電子琴設計

    本資源內容概要: 這是基于51單片機矩陣按鍵 LM386放大數碼管顯示電子琴設計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件
    發表于 11-10 17:22 ?4次下載
    主站蜘蛛池模板: 国产伦精品一区二区免费 | 国产亚洲精品A久久777777 | 国产精品久久久久久熟妇吹潮软件 | aaaaaa级特色特黄的毛片 | 爱暖暖1000部免费 | 性肥胖BWBWBW| 亚洲美女视频高清在线看 | 九九热久久只有精品2 | 网友自拍区视频精品 | 浪小辉军警服务员VIDEOS | 国产成人亚洲综合无 | 一本色道久久综合一区 | 国色精品VA在线观看免费视频 | 视频一区亚洲中文字幕 | 在线免费观看毛片 | 国产AV国片精品无套内谢无码 | 日夜啪啪一区二区三区 | 九九精品久久 | 国产午夜一区二区三区免费视频 | 性色无码AV久久蜜臀 | 国产精品99久久免费黑人人妻 | 国产成人精视频在线观看免费 | 成年免费三级视频 | 国产对白精品刺激一区二区 | 天天躁夜夜踩很很踩2022 | 伊人久久精品99热超碰 | 亚洲精品久久久992KVTV | YELLOW免费观看完整视频 | 国产成人在线网站 | 日本护士hd | 欧洲xxxxx| 亚洲国产欧美在线人成aaaa20 | 色偷偷成人网免费视频男人的天堂 | 亚洲精品久久久一区 | 高清mv视频免费观看 | 亚洲精品免费视频 | 国产精品久久欧美一区 | 免费一级毛片在线观看 | 丝袜美腿美女被狂躁在线观看 | 打扑克床上视频不用下载免费观看 | 亚洲不卡视频在线 |