4×4矩陣鍵盤51單片機識別試驗與程序_第1頁
4×4矩陣鍵盤51單片機識別試驗與程序_第2頁
4×4矩陣鍵盤51單片機識別試驗與程序_第3頁
4×4矩陣鍵盤51單片機識別試驗與程序_第4頁
4×4矩陣鍵盤51單片機識別試驗與程序_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、4 X 4 矩陣鍵盤 5 1 單片機識別實驗與程序1. 實驗任務圖 4.14.12. 硬件電路原理圖圖 4.14.23. 系統板上硬件連線(1.把“單片機系統“區域中的 P3.0 P3.7端口用8芯排線連接到“ 4X4行列式鍵盤”區域中的 C1- C4 R1 R4端口上;(2.把“單片機系統”區域中的 PO.O/ADO P0.7/AD7端口用8芯排線連接到“四路靜態數碼顯示 模塊”區域中的任一個a h端口上;要求:PO.O/ADO對應著a, P0.1/AD1對應著b, P0.7/AD7 對應著 h04. 程序設計內容(1. 4X 4矩陣鍵盤識別處理(2.每個按鍵有它的行值和列值,行值和列值的組

2、合就是識別這個按鍵的編碼。矩陣的行線 和列線分別通過兩并行接口和 CPUS信。每個按鍵的狀態同樣需變成數字量“ O”和“ T,開關的一端(列線)通過電阻接VCC而接地是通過程序輸出數字“ O”實現的 鍵盤處理程序的任務是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要 消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態接 地,另一個并行口輸入按鍵狀態,由行掃描值和回饋信號共同形成鍵編碼而識別按鍵, 通過軟件查表,查出該鍵的功能。5.程序框圖圖 4.14.3C語言源程序#in clude<AT89X51.H>un sig nedcharcodetabl

3、e=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;un sig nedchartemp;un sig nedcharkey;un sig nedcharij;voidma in(v oid)while(1)P3=0xff;P3_4=0;temp=P3;temp=temp&0 x0f;if(temp!=0x0f)for(i=50;i>0;i-)for(j=200;j>0;j-);temp=P3;temp=temp&0 x0f;if(temp!=0x0f)

4、temp=P3;temp=temp&0 x0f;switch(temp)caseOxOe: key=7;break; caseOxOd: key=8;break; caseOxOb:key=9;break; caseOxO7: key=1O;break;temp=P3; P1_O=P1_O;PO=tablekey; temp=temp&O xOf; while(temp!=OxOf) temp=P3; temp=temp&O xOf; P3=0xff;P3_5=0;temp=P3; temp=temp&0 xOf; if(temp!=OxOf) for(i=50

5、;i>0;i-) for(j=200;j>0;j-);temp=P3; temp=temp&0 x0f; if(temp!=0x0f) temp=P3; temp=temp&0 x0f; switch(temp) case0x0e: key=4; break; case0x0d: key=5;break; case0x0b: key=6;break; case0x07: key=11;break;temp=P3; P1_0=P1_0;PO=tablekey; temp=temp&0 xOf; while(temp!=0x0f) temp=P3; temp=t

6、emp&0 x0f;P3=0xff;P3_6=0;temp=P3; temp=temp&0 x0f;if(temp!=0x0f)for(i=50;i>0;i-)for(j=200;j>0;j-);temp=P3; temp=temp&0 x0f;if(temp!=0x0f)temp=P3; temp=temp&0 xOf; switch(temp) caseOxOe: key=1;break; caseOxOd: key=2;break; caseOxOb:key=3;break; case0x07: key=12;break;temp=P3; P1

7、_O=P1_O;PO=tablekey; temp=temp&O xOf; while(temp!=OxOf) temp=P3; temp=temp&O xOf;P3=0xff;P3_7=0;temp=P3; temp=temp&0 x0f; if(temp!=0x0f) for(i=50;i>0;i-) for(j=200;j>0;j-);temp=P3; temp=temp&0 x0f; if(temp!=0x0f) temp=P3; temp=temp&0 x0f; switch(temp) case0x0e: key=0; break;case0x0d:key=13;break;case0x0b:key=14;break;case0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論