矩陣鍵盤設(shè)計實驗報告_第1頁
矩陣鍵盤設(shè)計實驗報告_第2頁
矩陣鍵盤設(shè)計實驗報告_第3頁
矩陣鍵盤設(shè)計實驗報告_第4頁
矩陣鍵盤設(shè)計實驗報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、南 京 林 業(yè) 大 學(xué)實驗報告基于AT89C51單片機4x4矩陣鍵盤接口電路設(shè)計課 程機電一體化設(shè)計基礎(chǔ)院 系機械電子工程學(xué)院班 級學(xué) 號姓 名指導(dǎo)老師楊雨圖2013年9月26日6 / 8文檔可自由編輯打印一、實驗?zāi)康?、 掌握鍵盤接口的基本特點,了解獨立鍵盤和矩陣鍵盤的應(yīng)用方法。2、 掌握鍵盤接口的硬件設(shè)計方法,軟件程序設(shè)計和貼士排錯能力。3、 掌握利用Keil51軟件對程序進行編譯。4、 用Proteus軟件繪制“矩陣鍵盤掃描”電路,并用測試程序進行仿真。5、 會根據(jù)實際功能,正確選擇單片機功能接線,編制正確程序。對實驗結(jié)果能做出分析和解釋,能寫出符合規(guī)格的實驗報告。二、實驗要求 通過實訓(xùn)

2、,學(xué)生應(yīng)達到以下幾方面的要求: 素質(zhì)要求1.以積極認(rèn)真的態(tài)度對待本次實訓(xùn),遵章守紀(jì)、團結(jié)協(xié)作。2.善于發(fā)現(xiàn)數(shù)字電路中存在的問題、分析問題、解決問題,努力培養(yǎng)獨立工作能力。 能力要求1.模擬電路的理論知識2.脈沖與數(shù)字電路的理念知識3.通過模擬、數(shù)字電路實驗有一定的動手能力4.能熟練的編寫8951單片機匯編程序5.能夠熟練的運用仿真軟件進行仿真三、實驗工具 1、軟件:Proteus軟件、keil51。 2、硬件:PC機,串口線,并口線,單片機開發(fā)板四、實驗內(nèi)容 1、掌握并理解“矩陣鍵盤掃描”的原理及制作,了解各元器件的參數(shù)及格 元器件的作用。 2、用keil51測試軟件編寫AT89C51單片機匯

3、編程序 3、用Proteus軟件繪制“矩陣鍵盤掃描”電路原理圖。 4、運用仿真軟件對電路進行仿真。五實驗基本步驟 1、用Proteus繪制“矩陣鍵盤掃描”電路原理圖。 2、編寫程序使數(shù)碼管顯示當(dāng)前閉合按鍵的鍵值。 3、利用Proteus軟件的仿真功能對其進行仿真測試,觀察數(shù)碼管的顯示狀 態(tài)和按鍵開關(guān)的對應(yīng)關(guān)系。 4、用keil51軟件編寫程序,并生成HEX文件。 5、根據(jù)繪制“矩陣鍵盤掃描”電路原理圖,搭建相關(guān)硬件電路。 6、用通用編程器或ISP下載HEX程序到MCU。 7、檢查驗證結(jié)果。六、實驗具體內(nèi)容使用單片機的P1口與矩陣式鍵盤連接時,可以將P1口低4位的4條端口線定義為行線,P1口高4

4、位的4條端口線定義為列線,形成4*4鍵盤,可以配置16個按鍵,將單片機P2口與七段數(shù)碼管連接,當(dāng)按下矩陣鍵盤任意鍵時,數(shù)碼管顯示該鍵所在的鍵號。1、電路圖2、程序流程圖3、程序源碼ORG00H; 起始地址00HK1:MOVP1, #0F0H; 設(shè)置P1.4P1.7為輸入端口MOVA, P1; 從P1讀取所有列的值A(chǔ)NLA, #11110000B; 屏蔽掉無用的低4位,非列值CJNEA, #11110000B, K1; 查詢直到所有的按鈕釋放K2:CALLDELAY; 調(diào)用20ms延時子程序(省略)MOVA, P1; 從P1讀取狀態(tài),看有沒有按鈕被按下ANLA, #11110000B; 屏蔽掉無

5、用的低4位,非列值CJNEA, #11110000B, OVER; 如果有按鈕按下,跳到OVERJMPK2; 循環(huán)檢測 OVER:CALLDELAY; 延時20ms防止抖動MOVA, P1; 從P1讀取狀態(tài)ANLA, #11110000B; 屏蔽掉無用的位CJNEA, #11110000B, OVER1; 如果有按鈕按下,找到行 JMPK2; 如果沒有按鈕按下,循環(huán)掃描OVER1:MOVP1, #11111110B; 第0行輸出低電平MOVA, P1; 讀所有的列ANLA, #11110000B; 屏蔽掉無用的位CJNEA, #11110000B, ROW_0; 如果第0行有按鈕按下,找列MO

6、VP1, #11111101B; 第1行輸出低電平MOVA, P1; 讀所有的列ANLA, #11110000B; 屏蔽掉無用的位CJNEA, #11110000B, ROW_1; 如果第1行有按鈕按下,找列MOVP1, #11111011B; 第2行輸出低電平MOVA, P1; 讀所有的列ANLA, #11110000B; 屏蔽掉無用的位CJNEA, #11110000B, ROW_2; 如果第2行有按鈕按下,找列MOVP1, #11110111B; 第3行輸出低電平MOVA, P1; 讀所有的列ANLA, #11110000B; 屏蔽掉無用的位CJNEA, #11110000B, ROW_

7、3; 如果第3 行有按鈕按下,找列LJMPK2; 如果沒有,則循環(huán)ROW_0:MOVDPTR, #KCODE0; 設(shè)置DPTR=第0行的起始地址SJMPFIND; 找列ROW_1:MOVDPTR, #KCODE1; 設(shè)置DPTR=第1行的起始地址SJMPFIND; 找列ROW_2:MOVDPTR, #KCODE2; 設(shè)置DPTR=第2行的起始地址SJMPFIND; 找列ROW_3:MOVDPTR, #KCODE3; 設(shè)置DPTR=第3行的起始地址FIND:SWAPAFIND1:RRCA; 看看是否進位C為0JNCMATCH; 如果是0,就跳到MATCH找鍵值INCDPTR; DPTR加1SJM

8、PFIND1; 循環(huán)查找MATCH:CLRA; A=0MOVCA, A+DPTR; 用DPTR在數(shù)據(jù)表中找到鍵值裝入ACLRP2.7;置P2.0口為低,顯示數(shù)字MOVP0, A; 顯示鍵值LJMPK1; 循環(huán)DELAY: ;延時子程序,1msMOVR1, #2 D1:MOVR2, #248 DJNZR2, $DJNZR1, D1RET; 鍵值保存在以下的數(shù)據(jù)表中,可根據(jù)系統(tǒng)實際需要進行修改ORG300H; 數(shù)據(jù)表起始地址 /KCODE0:DB80H,0C0H,0C0H,0C0H; 第0行KCODE0:DB0C0H,0F9H,0A4H,0B0H; 第0行KCODE1:DB99H,92H,82H,0F8H; 第1行KCODE2:DB80H,90H,88H,83H; 第2行KCODE3:DB0C6H,0A1H,86H,8EH; 第3行END4、仿真實驗結(jié)果當(dāng)矩陣鍵盤的0號鍵被按下時,P0口的七段數(shù)碼管顯示的數(shù)據(jù)為0.如下圖1所以:圖1當(dāng)矩陣鍵盤的3號鍵被按下時,P0口的七段數(shù)碼管顯示的數(shù)據(jù)為3.如下圖2

溫馨提示

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

評論

0/150

提交評論