




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告專(zhuān)專(zhuān) 業(yè):業(yè):班班 級(jí):級(jí):姓姓 名:名:學(xué)學(xué) 號(hào):號(hào):指導(dǎo)教師評(píng)語(yǔ):成績(jī): 簽名: 年 月 日小鍵盤(pán)按鍵識(shí)別一一課題任務(wù)與要求實(shí)驗(yàn)箱上有一個(gè) 24 鍵小鍵盤(pán),出廠時(shí)按鍵接點(diǎn)已經(jīng)按圖所示連接。小鍵盤(pán)有 8 根橫向引出線。實(shí)驗(yàn)前將 8 根橫向引出線與 PA0PA7 相連,3 根縱向引出線與 PB0PB2 相連,再?gòu)摹癐/O 口地址譯碼器選擇一個(gè)譯碼器輸出連接到 8255 的片選端,做好上述連接之后,就構(gòu)成了以 8255 為核心的鍵盤(pán)輸入電路要求:在實(shí)際的自動(dòng)控制系統(tǒng)中,鍵盤(pán)輸入電路的作用是輸入數(shù)據(jù)09,AF或者輸入控制信號(hào)G,M,P,R,W,*,Y,S 。實(shí)
2、現(xiàn)上述功能的核心程序是“按鍵識(shí)別。本實(shí)驗(yàn)要求設(shè)計(jì)按鍵識(shí)別程序,當(dāng)按下小鍵盤(pán)上*一個(gè)鍵的時(shí)候,主機(jī)屏幕顯示閉合鍵的鍵名,按下小鍵盤(pán)“R鍵之后停頓演示。-. z二二完成任務(wù)的方法或方案簡(jiǎn)介本程序顯示數(shù)字 0 到 9,剛剛開(kāi)場(chǎng)提出兩中解決方案一是用跳轉(zhuǎn)法直接顯示數(shù)值,二是用查找法間接顯示數(shù)值,本程序是用第一種方案,雖然程序多了些,但直觀容易理解,故采納第一種方案。DISPLAY 函數(shù)用來(lái)將 BUFFER 中的鍵值顯示在數(shù)碼管上。設(shè)定 A 口方式 0 輸出,B 口方式 0 輸入。GETINPUT 函數(shù)通過(guò)行值和列值查出輸入的鍵值,并將它保存在 AL 中,如果輸入是R,則 AL 賦值為 FFH;如果輸入
3、非法字符,則 AL 賦值為 0AH。設(shè)定如果是 R 則退出程序.CHANGE 函數(shù)用來(lái)改變 BUFFER 中保存的鍵值,將 BUFFER 中的鍵值移位,最后一位參加 AL 中的新鍵值。CLOSEALL 此函數(shù)用在退出程序時(shí)將數(shù)碼管關(guān)閉.以上是主題函數(shù),在設(shè)計(jì)過(guò)程中還碰到了一些細(xì)節(jié)問(wèn)題,例數(shù)碼管的顯示才用延遲 20MS 的方法解決,具體方案在 DISPLAY 函數(shù)中。三實(shí)現(xiàn)系統(tǒng)1 1、程序框圖、程序框圖: :-. z預(yù)置:A 口為方式 0 輸出 B 口為方式 0 輸入0PA7-PA0PB2-PB0 AHAH=7?延時(shí) 20ms預(yù)置:B 口為方式 0 輸出A 口為方式 0 輸入列值 PB2-PB0
4、PA7-PA0 AL根據(jù) A*內(nèi)容,查找鍵值表,顯示相應(yīng)的鍵值。是 R.完畢演示2 2、實(shí)驗(yàn)電路圖:、實(shí)驗(yàn)電路圖:3 3、82558255 方式選擇控制字方式選擇控制字 1 D6 D5 D4 D3 D2 D1 D0方式選擇控制字標(biāo)志A 組方式:00方式 001方式 11*方式 2A 口 IO1輸入0輸出C 上半口 IO:1輸入0輸出B 組方式:0方式 01方式 1B 口IO:1輸入0輸出C 下半口 IO:1=輸入0輸出 -. z4 4、源程序:、源程序:TITLE LITTLEKEYBOARDSSEG SEGMENT PARA STACK STACK DB 256 DUP (0)SSEG EN
5、DSDSEG SEGMENT A_8255 EQU 210HB_8255 EQU 211HCON_8255 EQU 213HBUFFER DB 6 DUP(0)HANG DB ?LIE DB ?NEWHANG DB ?NEWLIE DB ? TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,DSEG ENDSCSEG SEGMENT ASSUMECS:CSEG, DS:DSEG,SS:SSEG START PROC NEAR MOV A*,DSEG MOV DS,A*CALL CLOSEALL(關(guān)掉數(shù)碼管,防止因?yàn)樽畛鯏?shù)碼管有顯示而使程序執(zhí)行不正
6、常。)CMPAGAIN: CALL DISPLAY(DISPLAY 函數(shù)用來(lái)將 BUFFER 中的鍵值顯示在數(shù)碼管上。)MOV D*,CON_8255MOV AL,10000010BOUT D*,AL 設(shè)定 A 口方式 0 輸出,B 口方式 0 輸入-. zAGAIN: CALL DISPLAY MOV D*,A_8255 MOV AL,0 OUT D*,AL 0PA7-PA0 MOV D*,B_8255 IN AL,D*AND AL,00000111B (取出 PB0PB2CMP AL,00000111B JE AGAIN MOV LIE,AL將列值保存 CALL DELAY1延時(shí) 20ms
7、 MOV D*,CON_8255MOV AL,10010000BOUT D*,AL預(yù)置 A 口方式 0 輸入,B 口方式 0 輸入 MOV D*,A_8255 IN AL,D* MOV HANG,AL將行值保存CALL GETINPUTGETINPUT 函數(shù)通過(guò)行值和列值查出輸入的鍵值,并將它保存在 AL 中,如果輸入是 R,則AL 賦值為 FFH;如果輸入非法字符,則 AL 賦值為 0AH。 CMP AL,0AHJE CMPAGAIN如果是非法字符則跳回 CMP AL,0FFHJNE CONTINUE如果是 R 則退出程序. CALL CLOSEALL MOV AH,4CH-. z INT
8、21HCONTINUE:CALL CHANGE(CHANGE 函數(shù)用來(lái)改變 BUFFER 中保存的鍵值) MOV D*,CON_8255MOV AL,10000010BOUT D*,AL 設(shè)定 A 口方式 0 輸出,B 口方式 0 輸入LLL:CALL DISPLAYMOV D*,B_8255IN AL,D*AND AL,00000111B (取出 PB0PB2)CMP AL,00000111BJNE LLLJMP CMPAGAIN(不斷掃描,如果不松開(kāi)按鍵,則就循環(huán)等待;直到按鍵松開(kāi)就跳回。) RETSTART ENDP;*此函數(shù)用以延時(shí) 20MSDELAY1 PROC NEAR PUSH
9、A* PUSH C* PUSH D* MOV AH,86H MOV C*,0 MOV D*,20000 INT 15H-. z POP D* POP C* POP A*RETDELAY1 ENDP;*GETINPUT 函數(shù)通過(guò)行值和列值查出輸入的鍵值,并將它保存在 AL 中,如果輸入是 R,則AL 賦值為 FFH;如果輸入非法字符,則 AL 賦值為 0AH。 GETINPUT PROC NEAR CMP LIE,00000110B JE LIE0 CMP LIE,00000101B JE LIE1 CMP LIE,00000011B JE LIE2 MOV AL,0AH RETLIE2:CMP
10、 HANG,00010000B JE NE*T MOV AL,0AH RETNE*T:MOV AL,0FFH RETLIE0:CMP HANG,01111111B JE KEY8 CMP HANG,10111111B JE KEY9 MOV AL,0AH RETKEY8:MOV AL,8-. z RETKEY9:MOV AL,9 RETLIE1:CMP HANG,01111111B JE KEY0 CMP HANG,10111111B JE KEY1 CMP HANG,11011111B JE KEY2 CMP HANG,11101111B JE KEY3 CMP HANG,11110111B
11、 JE KEY4 CMP HANG,11111011B JE KEY5CMP HANG,11111101B JE KEY6 CMP HANG,11111110B JE KEY7 MOV AL,0AH RETKEY0:MOV AL,0 RETKEY1:MOV AL,1 RETKEY2:MOV AL,2 RETKEY3:MOV AL,3 RETKEY4:MOV AL,4-. z RETKEY5:MOV AL,5 RETKEY6:MOV AL,6 RETKEY7:MOV AL,7 RETGETINPUT ENDP;*(CHANGE 函數(shù)用來(lái)改變 BUFFER 中保存的鍵值,將 BUFFER 中的鍵值
12、移位,最后一位參加 AL中的新鍵值。)CHANGE PROC NEAR PUSH A* PUSH SI MOV SI,OFFSET BUFFER MOV AH,SI+1 MOV SI,AH MOV AH,SI+2 MOV SI+1,AH MOV AH,SI+3 MOV SI+2,AH MOV AH,SI+4 MOV SI+3,AH MOV AH,SI+5 MOV SI+4,AH MOV SI+5,AL POP SI POP A*RETCHANGE ENDP-. z;*(DISPLAY 函數(shù)用來(lái)將 BUFFER 中的鍵值顯示在數(shù)碼管上。)DISPLAY PROC NEAR PUSH A* PUS
13、H B* PUSH C* PUSH D* PUSH SI MOV B*,OFFSET TABLE MOV SI,OFFSET BUFFER MOV CL,1*UNHUAN: MOV AL,SI *LAT MOV D*,201H OUT D*,AL MOV D*,200H MOV AL,CL OUT D*,AL MOV D*,200H MOV AL,0 OUT D*,AL INC SI SHL CL,1 CMP CL,40H JNE *UNHUAN POP SI POP D* POP C* POP B*-. z POP A* RETDISPLAY ENDP;*此函數(shù)用在退出程序時(shí)將數(shù)碼管關(guān)閉.C
14、LOSEALL PROC NEAR PUSH A* PUSH C* PUSH D* MOV CL,1*UNHUAN1: MOV D*,200H MOV AL,CL OUT D*,AL MOV AL,0 OUT D*,AL SHL CL,1 CMP CL,20H JNE *UNHUAN1 POP D* POP C* POP A* RETCLOSEALL ENDPCSEG END END START四、程序運(yùn)行結(jié)果分析:六實(shí)驗(yàn)總結(jié):六實(shí)驗(yàn)總結(jié): 1實(shí)驗(yàn)電路板上 8255 的端口地址位 210H213H,這與書(shū)上給的不一樣,開(kāi)場(chǎng)時(shí)在這方面花費(fèi)了較多時(shí)間。-. z2通過(guò)此次程序設(shè)計(jì),我對(duì)計(jì)算機(jī)讀取鍵盤(pán)值的過(guò)程有了一定的認(rèn)識(shí)。最開(kāi)場(chǎng)編程序時(shí)并沒(méi)有想到如果始終按同一個(gè)鍵不放,數(shù)碼管上就會(huì)一下子出來(lái)很多字符。調(diào)試時(shí)發(fā)現(xiàn)了這個(gè)問(wèn)題,想到的解決方法有兩種,一種是每一次按鍵后檢測(cè)鍵是否松開(kāi),直到松開(kāi)后再繼續(xù)執(zhí)行下一次判斷;另一種
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來(lái)市場(chǎng)與企業(yè)戰(zhàn)略風(fēng)險(xiǎn)管控試題及答案
- 網(wǎng)絡(luò)管理員考試問(wèn)題解答試題及答案
- 未來(lái)公司戰(zhàn)略與心理安全風(fēng)險(xiǎn)的關(guān)系研究試題及答案
- 2025屆黑龍江北安市八下數(shù)學(xué)期末學(xué)業(yè)水平測(cè)試試題含解析
- 系統(tǒng)網(wǎng)絡(luò)分析技巧試題及答案
- 山東省臨沂2025年數(shù)學(xué)八下期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2025年軟件設(shè)計(jì)師考試復(fù)習(xí)試題及答案分類(lèi)
- 企業(yè)戰(zhàn)略市場(chǎng)分析試題及答案
- 浙江省湖州市南潯區(qū)實(shí)驗(yàn)學(xué)校2025屆七年級(jí)數(shù)學(xué)第二學(xué)期期末綜合測(cè)試試題含解析
- 網(wǎng)絡(luò)管理員考試個(gè)人發(fā)展試題及答案
- 2025年中國(guó)科技成果轉(zhuǎn)化服務(wù)行業(yè)市場(chǎng)集中度、企業(yè)競(jìng)爭(zhēng)格局分析報(bào)告-智研咨詢(xún)發(fā)布
- 第16課《有為有不為》公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 體育賽事經(jīng)濟(jì)影響評(píng)估模型-深度研究
- 2025年上海奉賢區(qū)社區(qū)工作者及事業(yè)單位招聘177人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 專(zhuān)題24-圖像題-中考化學(xué)重難點(diǎn)復(fù)習(xí)精講精練(上海專(zhuān)用)(原卷版)
- 小學(xué)一年級(jí)奧數(shù)經(jīng)典100試題(五篇)
- 2025年中國(guó)消防救援學(xué)院第二批面向應(yīng)屆畢業(yè)生招聘28人歷年管理單位筆試遴選500模擬題附帶答案詳解
- T-CIRA 46-2023 核電廠液態(tài)流出物中鍶89和鍶90分析 液體閃爍法
- 介入手術(shù)室感染控制管理
- 1學(xué)會(huì)尊重-尊重自己(說(shuō)課稿 )-2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版
- 會(huì)計(jì)案例分析-終結(jié)性考核-國(guó)開(kāi)(SC)-參考資料
評(píng)論
0/150
提交評(píng)論