實現(xiàn)特定功能的鍵盤及LED顯示 接口課程設計.doc_第1頁
實現(xiàn)特定功能的鍵盤及LED顯示 接口課程設計.doc_第2頁
實現(xiàn)特定功能的鍵盤及LED顯示 接口課程設計.doc_第3頁
實現(xiàn)特定功能的鍵盤及LED顯示 接口課程設計.doc_第4頁
實現(xiàn)特定功能的鍵盤及LED顯示 接口課程設計.doc_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

河北科技大學接口技術課程設計報告學生姓名: 學 號: 專業(yè)班級: 課程名稱: 學年學期: 2 0 2 0 學年第 學期 指導教師: 2 0 年 月課程設計成績評定表學生姓名學 號成績專業(yè)班級起止時間設計題目驗收內(nèi)容課程設計小組驗收結果:硬件設計:優(yōu)秀良好中等及格需努力程序設計:優(yōu)秀良好中等及格需努力實驗結果:優(yōu)秀良好中等及格需努力課程設計個人驗收結果:操作能力:優(yōu)秀良好中等及格需努力軟件理解:優(yōu)秀良好中等及格需努力硬件理解:優(yōu)秀良好中等及格需努力指導教師: 年 月 日目 錄一、設計題目:2二、設計目的:2三、設計原理及方案:21、實驗電路圖22、實驗框圖33、各功能實現(xiàn)方案44、實驗程序4四、實驗方法91、實驗電路測試92、軟件測試9五、實驗結果9六、改進意見及建議9七、設計體會90一、設計題目:實現(xiàn)特定功能的鍵盤及LED顯示。二、設計目的:1、掌握鍵盤和顯示器的接口方法和編程方法。2、掌握鍵盤掃描和LED八段碼顯示器的工作原理。三、設計原理及方案:1、實驗電路圖1說明:使用PC機與偉福lab8000實驗箱連接起來,安裝好相應驅動,做好接線分析,由于lab8000實驗箱已經(jīng)將部分電路接線內(nèi)置,所以接線僅需要將KEY/LED_CS選通端口與CS0相連即可。2、實驗框圖是是否開始輸出列掃描信號列掃描信號移位該列有鍵輸入?讀入行信號返回6列掃描完?初始化地址參數(shù)讀鍵輸入子程序框圖(接下頁)開始顯示緩沖區(qū)初始化 LED顯示讀取鍵值鍵值轉換為顯示數(shù)據(jù)有鍵輸入?是 否主程序框圖 (接上頁)按照行列計算鍵值查表得鍵碼等待按鍵釋放返回3、各功能實現(xiàn)方案(1)功能1:按1鍵顯示年當讀取到寄存器AL=02H時,說明按鍵為1號鍵。關于顯示年份,首先定義一個顯示緩沖區(qū),用于存儲表示年份的數(shù)字。然后依次讀取其值,再顯示到數(shù)碼管上。(2)功能2:按2顯示月日當讀取到寄存器AL=0AH時,說明按鍵為2號鍵。顯示月日方法和顯示年份一樣,首先定義一個顯示緩沖區(qū),用于存儲表示月日的數(shù)字。然后依次讀取其值,再顯示與數(shù)碼管上。(3)功能3:按3顯示GOOD將G,O,O,D分別以七段代碼6FH,3FH,3FH,5EH代替,以顯示GOOD字樣。然后清空LED數(shù)碼管的顯示,通過延時,讓GOOD字樣顯示與數(shù)碼管。(4)功能4:按4鍵數(shù)碼管由左到右8字循環(huán)顯示當8279掃描寄存器AL=01H時,說明按鍵為4號鍵。通過設置循環(huán)及延遲及上述相似的方法顯示出指定效果。4、實驗程序OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN_KEY equ 08001h ; 鍵盤讀入口data segmentLEDBuf db 6 dup(?) ; 顯示緩沖Num db 1 dup(?) ; 顯示的數(shù)據(jù)DelayT db 1 dup(?)LEDMAP: ; 八段管顯示碼 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKeyTable: ; 鍵碼定義 db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hdata ends3code segment assume cs:code, ds:dataDelay proc near push ax ; 延時子程序 push cx mov al, 0 mov cx,ax loop $ pop cx pop ax retDelay endpDelay1 proc near push ax ; 延時子程序 push cx mov al, 0 mov cx,38000 loop $ pop cx pop ax retDelay1 endpDisplayLED proc near mov bx, offset LEDBuf mov cl, 6 ; 共6個八段管 mov ah, 00100000b ; 從左邊開始顯示DLoop: mov dx, OUTBIT mov al, 0 out dx,al ; 關所有八段管 mov al, bx mov dx, OUTSEG out dx,al mov dx, OUTBIT mov al, ah out dx, al ; 顯示一位八段管 push ax4 mov ah, 1 call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0 out dx,al ; 關所有八段管 retDisplayLED endpTestKey proc near mov dx, OUTBIT mov al, 0 out dx, al ; 輸出線置為0 mov dx, IN_KEY in al, dx ; 讀入鍵狀態(tài) not al and al, 0fh ; 高四位不用 retTestKey endpGetKey proc near mov ch, 00100000b mov cl, 6KLoop: mov dx, OUTBIT mov al, ch ; 找出鍵所在列 not al out dx, al shr ch, 1 mov dx, IN_KEY in al, dx not al and al, 0fh jne Goon_ ; 該列有鍵入 dec cl jnz KLoop mov cl, 0ffh ; 沒有鍵按下, 返回 0ffh jmp Exit1Goon_: dec cl shl cl, 2 ; 鍵值 = 列 X 4 + 行 mov ch, 4LoopC: test al, 1 jnz Exit1 shr al, 1 inc cl dec ch jnz LoopCExit1: mov dx, OUTBIT mov al, 0 out dx, al mov ch, 0 mov bx, offset KeyTable add bx, cx mov al, bx ; 取出鍵碼 mov bl, alWaitRelease: mov dx, OUTBIT mov al, 0 out dx, al ; 等鍵釋放 mov ah, 10 call Delay call TestKey jne WaitRelease mov al, bl retGetKey endpStart proc near mov ax, data mov ds, ax mov di,offset LEDBufp1: mov di,offset LEDBuf mov di, 05bh ; 顯示 2015. mov di+1, 03fh mov di+2, 03fh mov di+3, 0ffh mov di+4, 0 mov di+5, 06h jmp MLoopp2: mov di,offset LEDBuf mov di, 03fh ; 顯示 08.08. mov di+1, 0ffh mov di+2, 03fh mov di+3, 0ffh mov di+4, 0 mov di+5, 5bh jmp MLoopp3: mov di,offset LEDBuf mov di,6fh ;顯示good mov di+1,5ch mov di+2,5ch mov di+3,0deh mov di+4,0 mov di+5,4fh jmp MLoop p4: push cx mov cx,08h mov bx,offset LEDBufp4l: mov bx,00 inc bx loop p4l pop cx mov di, 7fh ; 顯示 8 inc di cmp di,offset LEDBuf + 06h jnz next mov di,offset LEDBufnext: call delay1 call DisplayLED ; 顯示 call TestKey jne MLoop jmp p4MLoop: call DisplayLED ; 顯示 call TestKey ; 有鍵入? je MLoop ; 無鍵入, 繼續(xù)顯示 call GetKey ; 讀入鍵碼 and al, 0fh ; 顯示鍵碼 cmp al,01h jz mmpp1 cmp al,02h jz mmpp2 cmp al,03h jz p3 cmp al,04h jz p4 mov ah, 0 mov bx, offset LEDMAP add bx, ax mov al, bx mov LEDBuf+5, al jmp MLoop mmpp1: jmp p1mmpp2: jmp p2 Start endpcode ends end start四、實驗方法1、實驗電路測試(1) 將KEY/LED_CS選通端口與CS0相連。(2) 接通電源,檢查LED數(shù)碼管是否正常工作。2、軟件測試(1) 將實驗箱連接電腦,調(diào)試運行試驗程序。(2) 按實驗要求一次按下1至4號按鍵進行測試,觀察LED數(shù)碼管反應。五、實驗結果1、 按下1鍵:LED顯示“2015.”。2、 按下2鍵:LED顯示“06.13”。3、 按下3鍵:LED顯示“GOOD”。4、 按下4鍵:LED從左至右循環(huán)顯示“8”。六、改進意見及建議可以在實現(xiàn)基本效果的基礎上在添加一些特效顯示。例如,將特定數(shù)字或字母進行閃爍顯示,閃爍10次后不再閃爍。這項功能的實現(xiàn)需要加入中斷技術,通過邊沿觸發(fā)中斷,執(zhí)行中斷服務子程序,進而達到效果。七、設計體會本次課程設計,我看到了自己許多不足之處。這次課程設計完全改變了我以前的錯誤的認識,以前我接觸的那些程序都是很短、很基礎的,但是在課程設計中碰到的那些需要很多代碼才能完成的任務,畫程序方框圖是很有必要的。因為通過程序方框圖,在做設計的過程中,我們

溫馨提示

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

評論

0/150

提交評論