女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>獨(dú)立鍵盤和矩陣鍵盤基礎(chǔ)知識(shí)資料下載

獨(dú)立鍵盤和矩陣鍵盤基礎(chǔ)知識(shí)資料下載

2021-03-31 | pdf | 93.33KB | 次下載 | 2積分

資料介紹

今天,我們來講解一下板子上的一個(gè)模塊——機(jī)械按鍵。 機(jī)械按鍵分為兩種使用模式:獨(dú)立按鍵和矩陣按鍵。這兩個(gè)模式是通過板子上的一個(gè)硬件部分來切換的,使用方法不相同,但原理都差不多,在大家使用小紅板學(xué)習(xí)的時(shí)候這方面都應(yīng)該也有接觸過。沒錯(cuò),它與小紅板上的使用方式幾乎是相同的。 相信很多人在學(xué)習(xí)的時(shí)候,都覺得按鍵很簡(jiǎn)單對(duì)吧?但是大家要注意的是,想要寫出一個(gè)完全沒bug(按鍵能夠特別靈敏地判斷狀態(tài))的按鍵其實(shí)并不簡(jiǎn)單。而且它總是結(jié)合數(shù)碼管LED燈等各種模塊來配合使用的,按鍵各種按下狀態(tài)中實(shí)現(xiàn)各種功能,各種邏輯寫起來也是有一定難度的。 好的,話不多說了,接下來我會(huì)為大家分別講解一下獨(dú)立鍵盤和矩陣鍵盤基礎(chǔ)知識(shí)。 機(jī)械按鍵原理圖 我們先來看一下按鍵部分的原理圖: 我們看右邊藍(lán)色框框起來引腳,可以看到大部分的按鍵都是通過P3端口來控制的。 為什么說是大部分呢?因?yàn)榘遄由系膬蓚€(gè)引腳有變化:P3^6 --> P4^2; P3^7 --> P4^4 前邊說的鍵盤兩種模式是通過左邊橙色框里框起來的硬件(對(duì)應(yīng)板子上的J5)來控制的。當(dāng)跳線帽接2-3時(shí),模式為獨(dú)立按鍵;接1-2時(shí),模式為矩陣按鍵(千萬別抬杠哦)。 獨(dú)立按鍵原理 好的,我們現(xiàn)在先開始獨(dú)立按鍵的講解。 這里的獨(dú)立按鍵與小紅板上的使用方法是完全一樣的。 我們看左邊紅色框里框起來的部分,這四個(gè)按鍵就是獨(dú)立按鍵,可以看到它右邊分別接了P3^0~P3^3引腳,左邊通過跳線帽接到了GND。 然后,我們又知道51單片機(jī)在默認(rèn)狀態(tài)下,引腳都為高電平,當(dāng)對(duì)應(yīng)按鍵按下時(shí),右邊的引腳就與左邊的GND接在了一起,電平就會(huì)被拉低,所以直接判斷對(duì)應(yīng)的引腳是否為低電平就可以知道這個(gè)按鍵有沒有被按下。 使用按鍵的時(shí)候要注意一點(diǎn)就是機(jī)械按鍵的抖動(dòng),我們看下邊這張圖: 上邊藍(lán)色框框起來的是我們理想中的波形圖(默認(rèn)高電平,按下低電平),實(shí)際中的波形是下邊紅色框框起來的。 可以看到綠色框中的電平一直在抖動(dòng),這段電平就會(huì)對(duì)我們判斷按鍵是否觸發(fā)產(chǎn)生干擾。由于板子上沒有消除抖動(dòng)的硬件設(shè)計(jì),我們就需要通過程序延時(shí)來跳過這段抖動(dòng)。 很簡(jiǎn)單,只需要在判斷引腳電平為低以后加10ms左右的延時(shí),如果這時(shí)候引腳電平還是低電平,就代表我們的按鍵確實(shí)被按下了。還有,在我們按下沒松手的時(shí)候,程序會(huì)一直循環(huán)執(zhí)行我們這段程序。 為了避免這種問題,還需要在按鍵程序中加入“松手檢測(cè)”,看下邊一段程序: if(P30 == 0) //判斷按鍵S7是否按下 { Delay_key(10); //10ms延時(shí)用來消抖 if(P30 == 0) //再次判斷按鍵S7是否按下 { /* 按下S7時(shí)需要執(zhí)行的程序放這里 */ while(P30 == 0); //松手檢測(cè) } } 這就是獨(dú)立按鍵的檢測(cè)函數(shù),嘻,很簡(jiǎn)單吧? 矩陣按鍵原理 好的獨(dú)立按鍵講完了我們來講解一下矩陣按鍵。(切換的時(shí)候記得要把跳線帽換一下哦) 這時(shí)我們?cè)倏丛韴D,每行的四個(gè)按鍵都接在了一起,右端分別接在了P3^0、P3^1、P3^2、P3^3引腳,每列的四個(gè)按鍵也接在了一起,左端分別接在了P3^4、P3^5、P4^2、P4^4引腳。 當(dāng)按下一個(gè)按鍵的時(shí)候,我們只要想辦法判斷它是哪一行哪一列的就行啦。通過程序先把P3^4、P3^5、P4^2、P4^4全部拉低,再判斷P3^0、P3^1、P3^2、P3^3中哪一個(gè)引腳變?yōu)榱说碗娖骄涂梢耘袛嗟趲仔邪存I按下了,同樣的方法來判斷按鍵是哪一列的就可以啦。 再看下邊一段程序: void key_scan() { P34 = P35 = P42 = P44 = 0; P30 = P31 = P32 = P33 = 1; if(P30 == 0) { delayms(10) if(P30 == 0) KeyValue = 7; while(P30 == 0) } if(P31 == 0) { delayms(10) if(P31 == 0) KeyValue = 6; while(P31 == 0) } if(P32 == 0) { delayms(10) if(P32 == 0) KeyValue = 5; while(P32 == 0) } if(P33 == 0) { delayms(10) if(P33 == 0) KeyValue = 4; while(P33 == 0) } P34 = P35 = P42 = P44 = 1; P30 = P31 = P32 = P33 = 0; if(P34 == 0) { delayms(10) if(P34 == 0) KeyValue = KeyValue 12; while(P34 == 0) } if(P35 == 0) { delayms(10) if(P35 == 0) KeyValue = KeyValue 8; while(P35 == 0) } if(P42 == 0) { delayms(10) if(P42 == 0) KeyValue = KeyValue 4; while(P42 == 0) } if(P44 == 0) { delayms(10) if(P44 == 0) KeyValue = KeyValue; while(P44 == 0) } } 這段代碼沒加注釋,是因?yàn)槲蚁M蠹铱梢圆恢灰蕾囉谧⑨尅<?xì)品一下這段代碼,在品的時(shí)候多加思考,絕對(duì)比只看注釋理解得更加透徹。 KeyValue是我們?cè)诔绦蜃铋_始定義的一個(gè)全局變量,它主要起標(biāo)志的作用,這就是傳說中的標(biāo)志位,通過判斷給它的賦值就可以判斷按下的哪一個(gè)按鍵(KeyValue=6 --> 按鍵6...),把這個(gè)函數(shù)在主函數(shù)while循環(huán)中執(zhí)行就可掃描矩陣按鍵。當(dāng)然,這只是其中一種判斷形式,常用的還有逐行判斷等等,大家可以自己試一下。 值得注意的是,我們這里的頭文件使用的是“stc15f2k60s2.h”,相較于“reg52.h”,它的功能更加強(qiáng)大。而且在“reg52.h”中是沒有P4端口的定義的,在使用的時(shí)候要在程序開頭部分添加一句代碼 “sfr P4 = 0xC0;” 來給P4定義地址。“stc15f2k60s2.h”就不需要了,而且可以直接用 “P30”等來表示 “P3^0” 等。 本文轉(zhuǎn)載自:電子產(chǎn)品世界(作者:阿飛) 免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)聯(lián)系小編進(jìn)行處理。 (mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1GD100PIX120C6SNA規(guī)格書
  2. 0.98 MB   |  3次下載  |  免費(fèi)
  3. 2一款入耳式耳機(jī)的仿真與分析
  4. 0.44 MB   |  2次下載  |  免費(fèi)
  5. 3Eurotherm TKS Temperature 用戶手冊(cè)
  6. 1.46 MB  |  2次下載  |  免費(fèi)
  7. 4人形機(jī)器人電機(jī)驅(qū)動(dòng)和傳感報(bào)告
  8. 4.27 MB   |  2次下載  |  免費(fèi)
  9. 5無線系統(tǒng)中天線和RF元件電磁建模
  10. 7.48 MB   |  1次下載  |  4 積分
  11. 6Multisim模擬電路仿真教程
  12. 1.93 MB   |  1次下載  |  3 積分
  13. 7DMP300C1型微機(jī)變壓器保護(hù)測(cè)控裝置技術(shù)說明書
  14. 4.11 MB   |  次下載  |  10 積分
  15. 8用MT3540芯片設(shè)計(jì)BOOST電路 1(可下載)
  16. 445.66 KB  |  次下載  |  免費(fèi)

本月

  1. 1晶體三極管的電流放大作用詳細(xì)說明
  2. 0.77 MB   |  32次下載  |  2 積分
  3. 2Python從入門到精通背記手冊(cè)
  4. 18.77 MB   |  27次下載  |  1 積分
  5. 3雙極型三極管放大電路的三種基本組態(tài)的學(xué)習(xí)課件免費(fèi)下載
  6. 4.03 MB   |  25次下載  |  1 積分
  7. 4AIWA HS-J303 MKⅡ維修手冊(cè)
  8. 22.47 MB   |  23次下載  |  10 積分
  9. 5多級(jí)放大電路的學(xué)習(xí)課件免費(fèi)下載
  10. 1.81 MB   |  21次下載  |  2 積分
  11. 6九陽豆?jié){機(jī)高清原理圖
  12. 2.47 MB   |  20次下載  |  1 積分
  13. 7AIWA HS-J202/HS-J202M/HS-J800維修手冊(cè)
  14. 13.60 MB   |  15次下載  |  10 積分
  15. 81875功放原理圖
  16. 0.04 MB   |  11次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420063次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191382次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183337次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81585次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73814次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分