




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、個人收集整理 僅供參考學習 14.4X4矩陣式鍵盤識別技術 1.實驗任務 如圖4.14.2所示,用AT89S51地并行口 P1接4X4矩陣鍵盤,以P1.0 P1.3作輸 入線,以P1.4 P1.7作輸岀線;在數碼管上顯示每個按鍵地“ 0F”序號.對應地 按鍵地序號排列如圖 4.14.1所示3 .系統板上硬件連線 畏 ss 一肯宜 4 園R _UDT Ass sr - W- 2 :; 二: 1+ 3 JcoHEts巴出 s gg 詈 s 身 mmr-lG 殳-rK STVW gjH Mu ia 二 J 4 / 16 (1.把單片機系統 區域中地P3.0 P3.7端口用8芯排線連接 到4X4行列式
2、鍵盤”區域中地C1 C4R R4端口上;b5E2RGbCAP (2.把 單片機系統”區域中地P0.0/AD0 P0.7/AD7端口用8芯 排線連接到 四路靜態數碼顯示模塊”區域中地任一個a h端口 上;要求:P0.0/AD0 對應著 a, P0.1/AD1 對應著 b,P0.7/AD7 對應著 h.plEanqFDPw 4.程序設計內容 (1.4X4矩陣鍵盤識別處理 (2.每個按鍵有它地行值和列值,行值和列值地組合就是 識別這個按鍵地編碼矩陣地行線和列線分別通過兩并行接口 和CPUS信.每個按鍵地狀態同樣需變成數字量“ 0”和“ T, 開關地一端(列線)通過電阻接VCc,而接地是通過程序輸出數
3、 字“ 0”實現地.鍵盤處理程序地任務是:確定有無鍵按下,判 斷哪一個鍵按下,鍵地功能是什么;還要消除按鍵在閉合或斷 開時地抖動兩個并行口中,一個輸出掃描碼,使按鍵逐行動 態接地,另一個并行口輸入按鍵狀態,由行掃描值和回饋信號 共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵地功 能.DXDiTa9E3d P3=FFH3.0=0 5 程序框圖 P3-FFH.P3.2-0 有鍵搜下嗎? 有鍵按下嗎? 延時10ms 延時10ms 真得有薩按下嗎? 真得有鍵按下嗎? 根據當前狀態識別按鍵 根據當前狀態識別搜鍵 P3=FFKP3.10 P3=FFH3 3=0 有鍵搜下嗎? 有鍵搜下嗎? 延時10ms
4、延時10ms 真得有鍵按下嗎? 真得有健按下嗎? 根據當前狀態識別按鍵 根據當前狀態識別搜鍵 圖 4.14.3 6. 匯編源程序 KEYBUF EQU 30H ORG OOH START: MOV KEYBUF,#2 WAIT: MOV P3,#0FFH CLR P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK1 MOV KEYBUF,#0 LJMP DK1 NK1:CJN
5、E A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1 NK2:CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3:CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1 NK4:NOP DK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A DK1A:MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK1A NOKEY1: MOV P3,#0FFH CLR P3.5 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKE
6、Y2 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5:CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6:CJNE A,#0BH,NK7 個人收集整理僅供參考學習 MOV KEYBUF,#6 LJMP DK2 NK7:CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2 NK8:NOP DK2: MOV A,KEYBUF MOV DPTR,#TABL
7、E MOVC A,A+DPTR MOV P0,A DK2A:MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK2A NOKEY2: MOV P3,#0FFH CLR P3.6 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY3 ANL A,#OFH CJNE A,#0EH,NK9 MOV KEYBUF,#8 LJMP DK3 NK9:CJNE A,#0DH,NK10 MOV KEYBUF,#9 LJMP DK3 NK10:CJNE
8、 A,#0BH,NK11 MOV KEYBUF,#10 LJMP DK3 NK11:CJNE A,#07H,NK12 MOV KEYBUF,#11 LJMP DK3 NK12:NOP DK3: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A DK3A:MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK3A NOKEY3: MOV P3,#0FFH CLR P3.7 MOV A,P3 ANL A,#0FH 6 / 16 個人收集整理僅供參考學習 XRL A,#0FH JZ NOKEY4 LCALL DELY10MS
9、MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY4 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK13 MOV KEYBUF,#12 LJMP DK4 NK13: CJNE A,#0DH,NK14 MOV KEYBUF,#13 LJMP DK4 NK14: CJNE A,#0BH,NK15 MOV KEYBUF,#14 LJMP DK4 NK15: CJNE A,#07H,NK16 MOV KEYBUF,#15 LJMP DK4 NK16: NOP DK4: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,A+DPTR
10、 MOV P0,A DK4A:MOV A,P3 7 / 16 個人收集整理 僅供參考學習 ANL A,#OFH XRL A,#OFH JNZ DK4A N0KEY4: LJMP WAIT DELY10MS: MOV R6,#10 D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END 7. C語言源程序 #i nclude unsigned char code table=0 x3f,0 x06,0 x5b,0
11、x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71; un sig ned char temp; un sig ned char key; un sig ned char i,j; void ma in (void) while(1) P3=0 xff; P3_4=0; temp=P3; temp=temp if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=P3; temp=temp if (temp!=0 x0f) temp=
12、P3; temp=temp switch(temp) case 0 x0e: key=7; break; case 0 x0d: key=8; break; case 0 x0b: key=9; break; case 0 x07: key=10; 9 / 16 個人收集整_僅供參考學習 break; temp=P3; P1_0=P1_0; PO=tablekey; temp=temp while(temp!=0 x0f) temp=P3; temp=temp P3=0 xff; P3_5=0; temp=P3; temp=temp if (temp!=0 x0f) for(i=50;i0;i
13、-) for(j=200;j0;j-); temp=P3; temp=temp if (temp!=0 x0f) temp=P3; temp=temp 10 / 16 個人收集整理 僅供參考學習 switch(temp) case OxOe: key=4; break; case OxOd: key=5; break; case OxOb: key=6; break; case OxO7: key=11; break; temp=P3; P1_O=P1_O; PO=tablekey; temp=temp while(temp!=0 x0f) temp=P3; temp=temp P3=0 xf
14、f; P3_6=0; temp=P3; temp=temp if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=P3; temp=temp if (temp!=0 x0f) temp=P3; temp=temp switch(temp) case 0 x0e: key=1; break; case 0 x0d: key=2; break; case 0 x0b: key=3; break; case 0 x07: key=12; break; temp=P3; P1_0=P1_0; PO=tablekey; temp=temp whi
15、le(temp!=0 x0f) temp=P3; temp=temp P3=0 xff; P3_7=0; temp=P3; temp=temp if (temp!=0 x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=P3; temp=temp if (temp!=0 x0f) temp=P3; temp=temp switch(temp) 16 / 16 case OxOe: key=O; break; case OxOd: key=13; break; case OxOb: key=14; break; case OxO7: key=15; break
16、; temp=P3; P1_O=P1_O; PO=tablekey; temp=temp while(temp!=0 x0f) temp=P3; temp=temp 版權申明 本文部分內容,包括文字、圖片、以及設計等在網上搜集整理. 版權為個人所有 This article in eludes someparts, in cludi ng text, pictures, and desig n. Copyright is pers onal own ership.RTCrpuDGiT 用戶可將本文地內容或服務用于個人學習、研究或欣賞,以及其 他非商業性或非盈利性用途,但同時應遵守著作權法及其他
17、相關法律 地規定,不得侵犯本網站及相關權利人地合法權利.除此以外,將本 文任何內容或服務用于其他用途時,須征得本人及相關權利人地書面 許可,并支付報酬.5PCzVD7HxA Users may use the contents or services of this article for pers onal study, research or appreciati on, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisi ons of
18、copyright law and other releva nt laws, and shall n ot infringe upon the legitimate rights of this website and its releva nt obligees. In additi on, when any content or service of this article is used for other purposes, writte n permissi on and remun erati on shall be obta ined from the pers on concerned and the releva nt obligee. jLBHrnAILg 轉載或引用本文內容必須是以新聞性或資料性公共免費信息為 使用目地地合理、善意引用,不得對本文內容原意進行曲解、修改, 并自負版權等法律責任 XHAQX74J0X Reproducti on or quotatio n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年元宇宙社交平臺虛擬社交圈層構建與用戶體驗研究報告
- 2025年醫院信息化建設中的電子病歷系統優化:醫療信息化產業發展現狀與趨勢分析報告001
- 水電行業2025年技術進步動態與大型水電項目投資效益研究報告
- 政策導向下農業綠色發展技術與農村生態環境治理模式創新與實施效果研究
- 探索2025年:有聲讀物市場需求與內容創作模式創新研究報告
- 2025年二手交易電商平臺信用評價體系深度研究報告
- 2025年醫藥企業研發外包(CRO)模式藥物研發生物技術產品研發報告001
- 2025年醫藥企業研發外包(CRO)綠色研發與環保要求報告
- 2025年醫藥流通行業報告:線上線下融合與市場格局變化
- 乳制品創新產業提升建設項目可行性研究報告寫作模板-申批備案
- T/CSPSTC 112-2023氫氣管道工程施工技術規范
- 24春國家開放大學《農業推廣》調查報告參考答案
- 機械原理課程設計-沖壓機構及送料機構設計說明書
- 押金收據條(通用版)
- [甘肅]最新甘肅省造價文件匯編(310頁)
- 鋼框架結構計算書畢業設計
- 品牌中國產業聯盟簡介ppt課件
- 肝素鈉生產工藝綜述
- 壓力管道氬電聯焊作業指導書
- 屋面防水質量控制培訓課件(共63頁).ppt
- DISCO240控制臺
評論
0/150
提交評論