單片機(jī)原理及應(yīng)用實(shí)驗(yàn)六按鍵識別數(shù)碼管顯示實(shí)驗(yàn)_第1頁
單片機(jī)原理及應(yīng)用實(shí)驗(yàn)六按鍵識別數(shù)碼管顯示實(shí)驗(yàn)_第2頁
單片機(jī)原理及應(yīng)用實(shí)驗(yàn)六按鍵識別數(shù)碼管顯示實(shí)驗(yàn)_第3頁
單片機(jī)原理及應(yīng)用實(shí)驗(yàn)六按鍵識別數(shù)碼管顯示實(shí)驗(yàn)_第4頁
單片機(jī)原理及應(yīng)用實(shí)驗(yàn)六按鍵識別數(shù)碼管顯示實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電子信息學(xué)院實(shí)驗(yàn)報告書 課 程 名: 單片機(jī)原理及應(yīng)用實(shí)驗(yàn) 題 目: 實(shí)驗(yàn)六 按鍵識別數(shù)碼管顯示實(shí)驗(yàn) 軟件+硬件實(shí)驗(yàn) 實(shí)驗(yàn)類別: 【設(shè)計】 班 級: 電子1313 學(xué) 號: 26 姓 名: 吳限 評語:(1)電路連接調(diào)試: 正確 基本正確 不正確(2)實(shí)驗(yàn)程序編寫: 正確 基本正確 不正確(3)數(shù)據(jù)測量分析: 準(zhǔn)確 基本準(zhǔn)確 不準(zhǔn)確成績:A B C D ,指導(dǎo)教師: 王英赫 批閱時間:2016年 月 日1、實(shí)驗(yàn)內(nèi)容或題目1)題目:按鍵識別數(shù)碼管顯示實(shí)驗(yàn)2)實(shí)驗(yàn)內(nèi)容:數(shù)碼管顯示矩陣按鍵號。2、實(shí)驗(yàn)?zāi)康呐c要求1)實(shí)驗(yàn)?zāi)康模赫莆瞻存I識別及數(shù)碼管顯示的實(shí)現(xiàn)方法。2)實(shí)驗(yàn)要求:通過XL2000 的16

2、位矩陣按鍵,在數(shù)碼管上分別顯示09,A,B,C,D,E,F。用Keil編譯、Proteus仿真,代碼下載到單片機(jī)實(shí)驗(yàn)箱上驗(yàn)證。3、實(shí)驗(yàn)儀器(1)PC微機(jī) 1臺(2)實(shí)驗(yàn)箱1臺開始4、實(shí)驗(yàn)程序流程圖 初始化程序N有鍵按下延時去抖動YN有鍵按下Y判斷哪個鍵按下顯示相應(yīng)的數(shù)字結(jié)束5、實(shí)驗(yàn)程序(實(shí)驗(yàn)程序清單作為附件放在最后)6、實(shí)驗(yàn)步驟1)keil中C語言程序?qū)崿F(xiàn)。2)在proteus中完成電路圖設(shè)計,并實(shí)現(xiàn)仿真。3)硬件實(shí)驗(yàn)部分:用一條8PIN 數(shù)據(jù)排線,把矩陣按鍵部份的JP50,接到CPU 部份的P1 口JP44;接8 位數(shù)碼管的數(shù)據(jù)線。將數(shù)碼管部份的數(shù)據(jù)口 JP5 接到CPU 部份的P0 口JP

3、51;接8 位數(shù)碼管的顯示位線。將數(shù)碼管部份的顯示位口 JP8 接到CPU 部份的P2 口JP52.7、實(shí)驗(yàn)數(shù)據(jù)及結(jié)果8、思考題采用P3口控制矩陣按鍵輸入,程序應(yīng)該如何修改?答:本實(shí)驗(yàn)的程序中可以不用蜂鳴器驅(qū)動線,把以下程序的sbit BEEP = P3 7;及函數(shù)void beep()等刪掉后;需要把掃描鍵值的函數(shù)改一下:unsigned char keyscan() unsigned char scan1, scan2, keycode,j; P13= 0xf0; scan1 = P3; if (scan1 != 0xf0) /判鍵是否按下 delayms(10); scan1 = P3;

4、 if (scan1 != 0xf0) /二次判鍵是否按下 P1 = 0x0f; scan2 = P3; keycode = scan1 | scan2; /組合成鍵掃描編碼 for (j = 0; j < 16; j+) if (keycode = key_codej) /查表得鍵值 key = j; return (key); /返回有效鍵值 else P3 = 0xff; return (key = 16); /返回?zé)o效碼 即P1口換成P3口,而鍵編碼數(shù)組是固定的,可以不變;此外主函數(shù)中的P1口也要改為P3口:void main(void) P0 = 0xf7; /數(shù)碼管初始顯示&

5、quot;-" P2 = 0xfd;/數(shù)碼管顯示在第二位 P3 = 0xff; while (1) keyscan(); if (key < 16) /有效鍵值 P0 = disp_codekey; /顯示鍵值 <附件> 實(shí)驗(yàn)程序清單 #include <reg52.h> #include <intrins.h> sbit BEEP = P3 7; /蜂鳴器驅(qū)動線 unsigned char key; unsigned char code disp_code = 0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80

6、, 0x90,0x88,0x83,0xc6, 0xc0,0x86,0x8e,0xc0; unsigned char code key_code = 0xee, 0xed, 0xeb, 0xe7, 0xde, 0xdd, 0xdb, 0xd7, 0xbe, 0xbd, 0xbb, 0xb7, 0x7e, 0x7d, 0x7b, 0x77 /鍵編碼數(shù)組 ; char code SST5163 _at_ 0x003b; /保留仿真器 /*延時子函數(shù)*/ void delayms(unsigned int ms) unsigned char t; while (ms-) for (t = 0; t &

7、lt; 114; t+); /*x*0.14MS 延時子函數(shù)*/ void delayus(unsigned char x) unsigned char i; while (x-) for (i = 0; i < 14; i+) ; /*蜂鳴器驅(qū)動子函數(shù)*/ void beep() unsigned char i; for (i = 0; i < 250; i+) delayus(6); BEEP = !BEEP; /BEEP取反 BEEP = 1; /關(guān)閉蜂鳴器 delayms(150); /延時 /*鍵盤掃描子函數(shù)*/ unsigned char keyscan() unsig

8、ned char scan1, scan2, keycode, j; P1 = 0xf0; scan1 = P1; if (scan1 != 0xf0) /判鍵是否按下 delayms(10); /延時10ms scan1 = P1; if (scan1 != 0xf0) /二次判鍵是否按下 P1 = 0x0f; scan2 = P1; keycode = scan1 | scan2; /組合成鍵掃描編碼 for ( j = 0; j < 16; j+) if (keycode = key_code j) /查表得鍵值 key = j; return (key); /返回有效鍵值 else P1 = 0xff; return (key = 16); /返回?zé)o效碼 /*主函數(shù)*/ void main(void) P0 = 0xf7; /數(shù)碼管初始顯示&

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論