微機(jī)系統(tǒng)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第1頁
微機(jī)系統(tǒng)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第2頁
微機(jī)系統(tǒng)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第3頁
微機(jī)系統(tǒng)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第4頁
微機(jī)系統(tǒng)與接口技術(shù)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、微機(jī)系統(tǒng)與接口技術(shù)課程設(shè)計(jì)20122013年度 第1學(xué)期設(shè)計(jì)題目:實(shí)現(xiàn)特定功能的鍵盤及LED顯示院系: 計(jì)算機(jī)學(xué)院學(xué)號: 姓名: 指導(dǎo)教師: 張健 成績評定:完成日期:2014年11月 4 日1. 設(shè)計(jì)說明微機(jī)系統(tǒng)與接口技術(shù)是一門實(shí)踐性很強(qiáng)的課程,本課程設(shè)計(jì)是這門課程的最后一個(gè)教學(xué)環(huán)節(jié),是對這門課程一個(gè)較全面的應(yīng)用設(shè)計(jì)實(shí)踐,目的在于在鞏固學(xué)生在課堂上學(xué)到的基礎(chǔ)知識,加強(qiáng)學(xué)生的綜合能力與系統(tǒng)設(shè)計(jì)能力、創(chuàng)新能力。在本課程設(shè)計(jì)中,我的題目是在TD-PITE實(shí)驗(yàn)箱中實(shí)現(xiàn)特定功能的鍵盤及LED顯示。整個(gè)系統(tǒng)的目標(biāo)實(shí)現(xiàn)功能具體一點(diǎn)是通過鍵盤輸入來控制點(diǎn)陣LED顯示器顯示不同的內(nèi)容,同時(shí)要求有一定的擴(kuò)展能力

2、特性。整個(gè)系統(tǒng)的具體目標(biāo)功能特性如下;1) 按1鍵顯示年,按2鍵顯示月、日。2) 按3鍵顯示自己的姓名。3) 按4鍵由左向右循環(huán)顯示自己的學(xué)號或其它特效功能。1.1. 設(shè)計(jì)思路從上面的任務(wù)說明中可以知道程序的功能很簡單,從總體上可以感受得到關(guān)鍵問題在于獲取鍵盤的輸入、控制點(diǎn)陣LED的輸出顯示。前者在于接收到鍵盤是否被按下以及哪一個(gè)鍵被按下的數(shù)據(jù),在取得這些數(shù)據(jù)后程序就能夠按規(guī)則將后者的顯示內(nèi)容進(jìn)行更改,從而達(dá)到通過鍵盤輸入來控制點(diǎn)陣LED的輸出。系統(tǒng)運(yùn)行流程圖如下:初始化默認(rèn)顯示姓名LED顯示有輸入?切換顯示內(nèi)容上面流程圖中LED的顯示特效是動態(tài)的,同時(shí)系統(tǒng)需要監(jiān)控鍵盤的輸入情況,即系統(tǒng)需要控

3、制LED輸出,也需要控制鍵盤的輸入檢測。在此有兩種方案可以考慮。第一種是使用中斷的方式(8259A芯片)將鍵盤的檢測獨(dú)立出來,當(dāng)鍵盤被按下時(shí),鍵盤就會發(fā)出一個(gè)中斷信號來中斷當(dāng)前的系統(tǒng)操作,進(jìn)而系統(tǒng)可以從鍵盤的掃描結(jié)果來決定是否進(jìn)行功能的切換。第二種則是使用程序查詢的方式進(jìn)行,此方式相對第一種會更加簡單。具體的實(shí)施方式是在每一次的LED輸出后,馬上查詢一個(gè)鍵盤是不是有按鍵被按下,如果發(fā)現(xiàn)存在被按下的鍵,則讀取鍵盤的按鍵住處,進(jìn)而進(jìn)行功能切換,否則繼續(xù)控制LED的動態(tài)效果輸出。相比之下,第二種方式比較簡單實(shí)用,所以本系統(tǒng)采取了程序查詢的方式解決了邊控制LED輸出邊監(jiān)控鍵盤輸入的問題。下面針對鍵盤輸

4、入與LED輸出兩個(gè)關(guān)鍵問題進(jìn)行詳細(xì)的說明。1.1.1. 鍵盤輸入為了得到鍵盤的輸入,本系統(tǒng)使用8255A作為輸入輸出芯片,并連接到一個(gè)4*4的鍵盤上。該鍵盤從左上角到右下角分別是0F的編號。在實(shí)際連接時(shí),主要使用8255A的端口C的低4位來作為讀入鍵盤的掃描碼的輸入端口。由于該鍵盤還帶有數(shù)碼顯示管單元,為了能夠進(jìn)行鍵盤輸入操作的調(diào)試,這里對數(shù)碼顯示管使用端口A與端口B分別連接之,調(diào)試過程中將使用端口A、B來將鍵盤的鍵值使用數(shù)碼管顯示之,注意在最終的執(zhí)行過程中將不會使用到該單元的數(shù)碼顯示管單元器件。下面是系統(tǒng)總線與8255A、4*4的鍵盤單元的連接線路圖?;谏蠄D的芯片單元配置連接圖,在程序中可

5、以通過8255A的端口C來讀取鍵盤的掃描碼。當(dāng)發(fā)現(xiàn)有按鍵被按下時(shí),程序會取得按鍵對應(yīng)的數(shù)字編號,以便進(jìn)一步處理LED的顯示內(nèi)容。關(guān)于詳細(xì)的掃描鍵盤及讀取鍵盤按鍵值的實(shí)現(xiàn)請參考后續(xù)的源代碼實(shí)現(xiàn)。1.1.2. 點(diǎn)陣LED輸出本系統(tǒng)的輸出將采用點(diǎn)陣式的LED單元進(jìn)行輸出,實(shí)驗(yàn)箱自帶的點(diǎn)陣LED的大小是16*16的,即由四塊8*8的點(diǎn)陣塊組成,這四個(gè)點(diǎn)陣塊分別占用了兩行兩列。實(shí)驗(yàn)箱的點(diǎn)陣LED的顯示方式是行為1時(shí),列為0時(shí)對應(yīng)的LED點(diǎn)會亮。具體的點(diǎn)陣LED的示意圖及內(nèi)部結(jié)構(gòu)圖如下: 1616點(diǎn)陣示意圖 1616點(diǎn)陣內(nèi)部結(jié)構(gòu)圖使用點(diǎn)陣LED輸出文字時(shí)的關(guān)鍵在于符合點(diǎn)陣格式的文字點(diǎn)陣數(shù)據(jù),在本系統(tǒng)中將使

6、用DotReader這款中文點(diǎn)陣生成器自動生成目標(biāo)文字的點(diǎn)陣數(shù)據(jù),具體的使用方法可以在參考文獻(xiàn)的相關(guān)引用資料1中找到。在本系統(tǒng)中,每一個(gè)中文的點(diǎn)陣大小是16*16的,在輸出的時(shí)候只要將對應(yīng)的點(diǎn)陣數(shù)據(jù)放到點(diǎn)陣LED的對應(yīng)位置即可,整個(gè)LED會在點(diǎn)陣數(shù)據(jù)填充過程中正確顯示文字。在滑動地顯示文字這個(gè)特效功能上,本系統(tǒng)采用逐行掃描方式,不斷地將文字的點(diǎn)陣數(shù)據(jù)向某一個(gè)方向”滑動”地在LED上面顯示,最終達(dá)到整體上文字的滑動特效顯示。16*16的點(diǎn)陣LED的數(shù)據(jù)端口有一個(gè),通過IOY0IOY4來進(jìn)行片選操作,從而能夠訪問各行各列的點(diǎn)陣.下面是本16*16點(diǎn)陣LED的四個(gè)端口的定義:ROW1EQU 0600

7、H;第07行ROW2EQU 0640H;第815行COL1EQU 0680H ;第07列COL2EQU 06C0H ;第815列下面是16*16點(diǎn)陣LED與系統(tǒng)總線的連接線路圖。1.2. 運(yùn)用技術(shù)本系統(tǒng)整體結(jié)構(gòu)比較簡單,運(yùn)用到實(shí)現(xiàn)技術(shù)主要是: 鍵盤輸入單元 點(diǎn)陣LED輸出單元 并行接口單元8255A芯片 16*16中文字符點(diǎn)陣生成器1.3. 完成情況目前系統(tǒng)的完成情況基本能夠達(dá)到題目要求,按0鍵的功能是從上至下滑動顯示學(xué)生學(xué)號,按1鍵則從下至上是滑動顯示學(xué)生姓名,并進(jìn)行LED顯示內(nèi)容的切換。最后LED的顯示特效也符合預(yù)期,能夠正常自下而上地”滑動式”顯示輸出內(nèi)容2. 源代碼清單本系統(tǒng)結(jié)構(gòu)簡單,

8、主要的代碼量是中文點(diǎn)陣數(shù)據(jù),在此就不列出了。以下整個(gè)系統(tǒng)的匯編源代碼清單。整個(gè)系統(tǒng)初始運(yùn)行時(shí)默認(rèn)是滑動顯示學(xué)生姓名。MY8255_A EQU 0600H;端口定義MY8255_B EQU 0602H;鍵盤輸入相關(guān)接口MY8255_C EQU 0604HMY8255_CONEQU 0606HROW1EQU 0600H ;端口定義ROW2EQU 0640H ;點(diǎn)陣LED輸出相關(guān)接口COL1EQU 0680HCOL2EQU 06C0H;堆棧段STACK1SEGMENT STACKDW 256 DUP(?)STACK1ENDS;數(shù)據(jù)段DATA SEGMENTINPUTS DB ?INCLUDE chu

9、nrong.asm ;所有數(shù)據(jù)漢字點(diǎn)陣DATA ENDS;代碼段CODESEGMENTASSUMECS:CODE, DS:DATASTART:MOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, ALMOV DX, MY8255_CON ;初始化8255AMOV AL, 81HOUT DX, ALJMP SHOW_ZHOU ;默認(rèn)顯示名字;=滑動顯示姓名=SHOW_ZHOU:NAME_BG

10、0:MOV AX, 16*4MOV SI, OFFSET HZDOT_NameNAME_BG1:CALL DISP ;滑動一行SUB SI, 2PUSH SIPUSH AXCALL SCAN_KEYBOARD ;掃描一個(gè)鍵盤碼POP AXPOP SIDEC AXJZ NAME_BG0 ;下一輪滑動JMP NAME_BG1 ;下一行;=滑動顯示學(xué)號=SHOW_XUEHAO:XUEHAO_BG0:MOV AX, 24MOV SI, OFFSET HZDOT_XUEXUEHAO_BG1:CALL DISP ;滑動一行ADD SI, 2PUSH SIPUSH AXCALL SCAN_KEYBOARD

11、;掃描一個(gè)鍵盤碼POP AXPOP SIDEC AXJZ XUEHAO_BG0 ;下一輪滑動JMP XUEHAO_BG1 ;下一行;=掃描鍵盤并選擇功能=SCAN_KEYBOARD:BEGIN: CALL CCSCAN ;掃描JNZ INK1RET;INK1: CALL DALLYCALL DALLYCALL CCSCANJNZ INK2 ;有鍵按下,進(jìn)行取鍵值INK2_BRK:MOV AL, INPUTS ;得到鍵值CMP AL, 0JZ SHOW_ZHOU ;0顯示姓名;default.CMP AL, 1 ;1顯示學(xué)號JZ SHOW_XUEHAORET;=獲取鍵盤輸入的鍵值=INK2:MO

12、V CH,0FEHMOV CL,00HCOLUM:MOV AL,CHMOV DX,MY8255_A OUT DX,ALMOV DX,MY8255_C IN AL,DXL1:TEST AL, 01H ;is Line1?JNZ L2MOV AL, 00H ;Line1JMP KCODEL2:TEST AL, 02H ;is Line2?JNZ L3MOV AL, 04H ;Line2JMP KCODEL3:TEST AL, 04H ;is Line3?JNZ L4MOV AL, 08H ;Line3JMP KCODEL4:TEST AL, 08H ;is Line4?JNZ NEXTMOV AL

13、, 0CH ;Line4KCODE:ADD AL, CLMOV INPUTS, Al ;保存輸入值NEXT:INC CLMOV AL, CHTEST AL, 08HJZ KERRROL AL, 1MOV CH, ALJMP COLUMKERR:JMP INK2_BRK ;返回,并判斷是否需要切換功能;=鍵盤掃描子程序=CCSCAN:MOV AL, 00H ;鍵盤掃描子程序MOV DX, MY8255_AOUT DX, ALMOV DX, MY8255_CIN AL, DXNOT ALAND AL, 0FHRET;= 鍵盤延時(shí)子程序=DALLY:PUSH CX MOV CX,0006HT1:MO

14、V AX, 009FHT2:DEC AXJNZ T2LOOP T1POP CXRET;=顯示漢字子程序=;入口參數(shù): SI = 存放漢字點(diǎn)陣起始地址DISP:MOV CX, 000FHPUSH AXML0:PUSH CXMOV BL, 01H MOV CX, 0008HML1:MOV DX, ROW1 ;控制0-7行MOV AL, 00HOUT DX, ALMOV AL, SInot al ;0 表示高亮MOV DX, COL1 ;0-7列 OUT DX, ALINC SI ;下一個(gè)字節(jié)(下一列)MOV AL, SInot alMOV DX, COL2 ;8-15列OUT DX, ALINC

15、SIMOV DX, ROW1 ;控制0-7行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAYLOOP ML1MOV DX, ROW1MOV AL, 00HOUT DX, ALMOV CX, 0008HML2:MOV DX, ROW2 ;控制8-15行MOV AL, 00HOUT DX, ALMOV AL, SINOT ALMOV DX, COL1 ;0-7列OUT DX, ALINC SIMOV AL, SI NOT ALMOV DX, COL2 ;8-15列OUT DX, ALINC SIMOV DX, ROW2 ;控制8-15行MOV AL, BLOUT DX

16、, ALROL BL, 1CALL DELAYLOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRET;=顯示延時(shí)子程序=DELAY:PUSH CX ;延時(shí)子程序MOV CX, 00C0HDL1:PUSH AXPOP AXLOOP DL1POP CXRETCODEENDSEND START; ;本文件為1616點(diǎn)陣中文字庫文件,字的橫向8點(diǎn)構(gòu)成一字節(jié),左邊點(diǎn)在字節(jié)的高位,字符點(diǎn)陣四角按左上角右上角左下角右下角取字;如你想在以后繼續(xù)用HZDotReader打開文件,追加漢字點(diǎn)陣數(shù)據(jù),請不要修改或增刪所有注

17、釋CD5C5 EQU 00000H;李CBCCC EQU CD5C5+1;俊CB7E5 EQU CBCCC+1;杰 ;杰 CBDDCDB 080H,001H,080H,001H,0FEH,03FH,0FEH,03FHDB 0E0H,003H,0E0H,007H,0B0H,00DH,098H,019HDB 08EH,071H,082H,021H,000H,000H,06CH,033HDB 04CH,066H,0C6H,064H,006H,000H,000H,000H;俊 CBFA1DB 018H,003H,098H,001H,0DCH,018H,0ECH,03FHDB 0EEH,03FH,08E

18、H,019H,0CFH,030H,06DH,023HDB 08CH,01FH,0CCH,01FH,06CH,019H,02CH,00FHDB 00CH,00EH,0CCH,07BH,0ECH,070H,000H,000H;李 CC0EEHZDOT_Name:DB 080H,001H,080H,001H,0FFH,07FH,0FFH,07FHDB 0B0H,007H,09CH,01DH,007H,070H,0FAH,00FHDB 0F8H,00FH,000H,003H,0FEH,07FH,0FEH,07FHDB 080H,001H,0E0H,001H,0C0H,000H,000H,000HHZDOT_XUE:;27 C3237DB 000H,000H,000H,000H,000H,000H,018H,07EHDB 024H,040H,042H,040H,042H,020H,040H,020HDB 020H,020H,010H,010H,008H,010H,004H,010HDB 002H,008H,07EH,008H,000H,000H,000H,

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論