版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、重慶大學(xué)課 程 設(shè) 計(jì) 報(bào) 告課程名稱: 微機(jī)原理與接口技術(shù) 設(shè)計(jì)題目: 鍵盤LED顯示 院 系:電氣信息學(xué)院 班 級(jí): 2007級(jí) 設(shè)計(jì)時(shí)間:2009年12月 第一章 概述21.1學(xué)習(xí)目的21.2 計(jì)算機(jī)的應(yīng)用21.3學(xué)習(xí)計(jì)算機(jī)的意義31.4課程設(shè)計(jì)目的3第二章 總體方案設(shè)計(jì)42.1 設(shè)計(jì)注意問題42.2 總體思路4第三章 硬件設(shè)計(jì)53.1 8255工作原理53.2 鍵盤工作原理73.3 鍵特征值的形成83.4段值的形成83.5 8255接線圖9第四章 軟件設(shè)計(jì)104.1 8255初始化104.2 鍵盤掃描的處理方法104.2.1. 判斷是否有鍵被按下的方法104.2.2. 判斷是否有鍵被按
2、下的源程序114.2.3 防抖動(dòng)114.2.4.防抖動(dòng)的延時(shí)子程序124.3 程序核心部分124.3.1 逐行掃描124.3.2逐行掃描的源程序12第五章 源程序代碼135.1 根據(jù)整體思路以及軟件設(shè)計(jì)得到的代碼135.2 以上代碼存在問題分析16第六章 難點(diǎn)分析16第七章 體會(huì) 感慨 建議19第八章 參考文獻(xiàn)20 第一章 概述1.1學(xué)習(xí)目的“微機(jī)原理與接口技術(shù)”是電氣工程及其自動(dòng)化專業(yè)的一門重要的專業(yè)基礎(chǔ)課程。我們通過該門課的學(xué)習(xí),知道了微機(jī)的工作原理,微型計(jì)算機(jī)的基本結(jié)構(gòu),接口技術(shù)及匯編語(yǔ)言程序設(shè)計(jì),為后續(xù)的課程的學(xué)習(xí)和今后的工作打下堅(jiān)實(shí)的基礎(chǔ)。通過實(shí)驗(yàn)可以培養(yǎng)學(xué)生利用計(jì)算機(jī)技術(shù)和編程手段
3、分析,解決專業(yè)領(lǐng)域的各種問題的能力和意識(shí),并進(jìn)一步感受微機(jī)發(fā)展的微機(jī)發(fā)展的新技術(shù)和新方法。1.2 計(jì)算機(jī)的應(yīng)用目前計(jì)算機(jī)的應(yīng)用已經(jīng)遍布各個(gè)行業(yè),如科學(xué)計(jì)算、數(shù)據(jù)處理、過程控制、人工智能、網(wǎng)絡(luò)應(yīng)用等??茖W(xué)和工程計(jì)算:科學(xué)和工程計(jì)算的特點(diǎn)是計(jì)算量大,而邏輯關(guān)系相對(duì)簡(jiǎn)單,它是計(jì)算機(jī)重要應(yīng)用領(lǐng)域之一。數(shù)據(jù)和信息處理:數(shù)據(jù)處理是指對(duì)數(shù)據(jù)的收集、存儲(chǔ)、加工、分析和傳送的全過程。這些數(shù)據(jù)處理應(yīng)用的特點(diǎn)是數(shù)據(jù)量很大,但計(jì)算相對(duì)簡(jiǎn)單。多媒體技術(shù)的發(fā)展,為數(shù)據(jù)處理增加了新鮮內(nèi)容,都涉及更廣泛的數(shù)據(jù)類型,這些數(shù)據(jù)處理過程不僅數(shù)據(jù)量大,而且還會(huì)帶來大量的運(yùn)算和復(fù)雜的運(yùn)算過程。過程控制:過程控制是生產(chǎn)自動(dòng)化的重要技術(shù)內(nèi)
4、容和手段,它是由計(jì)算機(jī)對(duì)所采集到的數(shù)據(jù)按一定方法經(jīng)過計(jì)算,然后輸出到指定執(zhí)行機(jī)構(gòu)去控制生產(chǎn)的過程。人工智能:人們把計(jì)算機(jī)模擬人腦力勞動(dòng)的過程成為人工智能。人工智能是利用計(jì)算機(jī)來模擬人的思維過程,并利用計(jì)算機(jī)程序來實(shí)現(xiàn)這些過程。 1.3學(xué)習(xí)計(jì)算機(jī)的意義電子計(jì)算機(jī)是一種能自動(dòng)高速地進(jìn)行大量運(yùn)算的電子機(jī)器。電子計(jì)算機(jī)的出現(xiàn)和發(fā)展,是科學(xué)技術(shù)和生產(chǎn)力的卓越成就之一,反過來,它也極大地促進(jìn)了科學(xué)技術(shù)和生產(chǎn)力的發(fā)展。微型計(jì)算機(jī)的發(fā)展前景是不可估量的。微型計(jì)算機(jī)功能強(qiáng),體積小,使用方便,可靠性高,價(jià)格低廉,因而應(yīng)用范圍非常廣泛,航天工業(yè),交通運(yùn)輸,醫(yī)藥衛(wèi)生甚至家庭生活及教學(xué)儀器等方面都廣泛地使用了微型計(jì)算機(jī)
5、。毫無(wú)疑問,今后微型計(jì)算機(jī)在人類社會(huì)和日常生活中的影響將會(huì)越來越大。感受接口的重要作用,學(xué)會(huì)微機(jī)與接口的綜合應(yīng)用。掌握接口的編程技術(shù)。1.4課程設(shè)計(jì)目的 1.掌握 8255的使用和編程方法。 2.通過8255設(shè)計(jì)鍵盤掃描及它們的輸入輸出方式和它們的控制字。綜合運(yùn)用本學(xué)期所學(xué)的關(guān)于匯編的知識(shí),在實(shí)驗(yàn)中進(jìn)一步熟悉本學(xué)期所學(xué)的課程并結(jié)合實(shí)際生活,掌握匯編的應(yīng)用。 3.注重鍵盤掃描的方法設(shè)計(jì)以及解決問題的思路。 4.了解任何微機(jī)應(yīng)用開發(fā)工作都離不開接口的技術(shù)、選用及連接。微機(jī)應(yīng)用系統(tǒng)需要設(shè)計(jì)的硬件是一些接口電路,所要編寫的軟件是控制這些接口電路按要求工作的驅(qū)動(dòng)程序。重點(diǎn)講述可編程并行接口芯片8255A
6、、內(nèi)部結(jié)構(gòu)、工作方式、初始化編程及其應(yīng)用實(shí)例。第二章 總體方案設(shè)計(jì)2.1 設(shè)計(jì)注意問題 在唐都實(shí)驗(yàn)箱上實(shí)現(xiàn)鍵盤掃描并顯示在LED上,比如當(dāng)按下6時(shí),LED會(huì)顯示6的字樣??傮w設(shè)計(jì)方案如下: 1.實(shí)現(xiàn)鍵盤的掃描(鍵號(hào)與鍵值的對(duì)應(yīng))。 2.防抖動(dòng)措施。 3.防重鍵的措施。2.2 總體思路 本次試驗(yàn)報(bào)告的整體思路如下:1. 行開放,找到列值并保存;2. 逐行掃描,找到行值并保存;3. 行值和列值組合成鍵特征值;4. 根據(jù)鍵特征值找到鍵號(hào);5. 根據(jù)鍵號(hào)查表得段碼;6. 送出相應(yīng)位碼。鍵盤掃描邏輯性很強(qiáng),步步相扣。思路顯得尤其重要。第三章 硬件設(shè)計(jì)3.1 8255工作原理并行接口是以數(shù)據(jù)的字節(jié)為單位與
7、I/O設(shè)備或被控制對(duì)象之間傳遞信息。CPU和接口之間的數(shù)據(jù)傳送總是并行的,即可以同時(shí)傳遞8位、16位或32位等。8255 A可編程外圍接口芯片是Intel 公司生產(chǎn)的通用并行I/O 接口芯片,它具有A、B、C 三個(gè)并行接口,用+5V 單電源供電,能以下三種方式下工作:方式0:基 輸入/輸出方式方式1:選通輸入/輸出方式方式2:雙向選通工作方式8255A的內(nèi)部結(jié)構(gòu)及引腳如圖3.1 所示,8255 工作方式控制字和 C口按位 置位/復(fù)位控制字格式如圖3.2所示。 雙向選通工作方式。8255的內(nèi)部結(jié)構(gòu)及引腳如圖3.1所示,8255工作方式控制字和C口按位置位/復(fù)位控制字如圖3.3所示圖3.1 825
8、5的內(nèi)部結(jié)構(gòu)及引腳圖3.2 8255工作方式控制字和C口按位置位/復(fù)位控制字3.2 鍵盤工作原理 唐都實(shí)驗(yàn)箱提供的是4*4的小鍵盤,如下圖所示, 列為高電平。并且位選口與行控口共用端口。鍵盤原理圖3.2:FE7dCbA9876543210列0列1列2列3 0 0+5 圖3.2 鍵盤原理圖鍵盤工作原理闡述: 每一個(gè)鍵跨接在行、列線之間; 在無(wú)按鍵時(shí),列線固定為高電平;列控制口用于讀入列線狀態(tài),即列值。 行線電平受控于“行控制口”,行控口輸出的信號(hào)稱為行值 某鍵未按下,該鍵關(guān)聯(lián)的行、列線不通;按下,則把行線的電平引入列線。設(shè)置行線為低電平,則把行線的低電平引入列線。3.3 鍵特征值的形成根據(jù)鍵盤的
9、工作原理可以得到如下鍵特征值表3.4: 鍵值列值行值鍵特征值鍵值列值行值鍵特征值00111B1110B7EH10111B1101B7DH20111B1011B7BH30111B0111B77H41011B1110BBEH51011B1101BBDH61011B1011BBBH71011B0111BB7H81101B1110BDEH91101B1101BDDHA1101B1011BDBHb1101B0111BD7HC1110B1110BEEHd1110B1101BEDHE1110B1011BEBHF1110B0111BE7H .3鍵特征值表3.4段值的形成 DpgfedcbaD7D6D5D4D3
10、D2D1D0000111111 3FH100000110 06H2010110115BH301001111 4FH 401100110 66H501101101 6DH601111101 7DH700000111 07H801111111 7FH901101111 6FHA01110111 77Hb01111100 7CHC00111001 39H d01011110 5EHE01111001 79HF0111000171H顯示段值見表3.5表3.4 段碼表3.5 8255接線圖 PB PA0 PA1 PA2 PA3 PC3 PC2PC1 PC0 LED6 LED5 LED4 LED3 LED
11、2 LED1 列控位控行控+5V 圖3.5 8255接線圖3.6 寄存器地址選取 根據(jù)唐都實(shí)驗(yàn)儀器提供的手冊(cè),選取IOY1作為8255芯片的片選端口,A1 A0為片內(nèi)譯碼。即:PA口地址: 0640HPB口地址: 0642HPC口地址: 0644PD(控制口) 地址: 0646H第四章 軟件設(shè)計(jì)4.1 8255初始化以PC為列控口;以PA低4位為行控口;列口為輸入,行口輸出;顯示以PB為段選口;PB口輸出;PA低6位為位選。根據(jù)3.1與3.2 得出8255芯片的控制字為:10001001B,即:89H。4.2 鍵盤掃描的處理方法4.2.1. 判斷是否有鍵被按下的方法 行開放:使所有行線輸出低電
12、平,從列控口讀入列狀態(tài)(列值)即: 通過行控口,輸出全0 。4條行線均為低電平。如果沒有鍵按下,則行線低電平不會(huì)引入到列線,從列控口讀入的必為全1;只要有一個(gè)鍵按下,如F鍵,則行1的低電平引入列3,從列控口讀入的列值為1110,非全1,由此得出判斷是否有鍵按下的條件: 讀入的列值為全1,無(wú)按鍵;非全1,必有按鍵!判斷是否有鍵被按下的流程:1. 讓行線輸出全為0;2. 讀列的值;3. 判斷列值是否全為0;4. 若不全為0,則說明有按鍵按下;5. 全為0,則說明沒有按鍵按下,繼續(xù)等待輸入。 4.2.2. 判斷是否有鍵被按下的源程序 MOV DX,0640H MOV AL,00H OUT DX,AL
13、JXSR: MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH JE JXSR對(duì)源程序的解釋:程序中只需要C口低四位,所以用“AND AL,0FH”對(duì)低4位保存4.2.3 防抖動(dòng)防抖動(dòng)措施對(duì)按鍵來說是必需的,可以讓微機(jī)準(zhǔn)確輸入,在課程設(shè)計(jì)中,利用延時(shí)子程序來實(shí)現(xiàn)防抖動(dòng)。4.2.4.防抖動(dòng)的延時(shí)子程序 DELAY PROC NEAR ;延時(shí)子程序 MOV CX,0F000HDLP: LOOP DLP RETDELAY ENDP4.3 程序核心部分4.3.1 逐行掃描 問題:怎么判斷按鍵說在行的位置? 查閱資料,判斷按鍵所在行的位置用逐行掃描的方法。 逐行掃描:
14、使行線輸出逐一為低電平,從列控口讀入列狀態(tài)(列值)。 此時(shí)如果列值讀入為全1,則按鍵不在本行;非全1,在本行。 判斷是否有鍵被按下的流程:1. 使第0行為0(掃描0行);2. 讀入列值;3. 判斷列值是否全為04. 若列值全為0,則說明按鍵不在本行;5. 列值移位,再次讀入列值,進(jìn)行判斷。4.3.2逐行掃描的源程序 LOP1:MOV DX,0640H OUT DX,AL MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH JNE ZJSC ROL AH,1 MOV AL,AH JMP LOP1逐行掃描的源程序的解釋:ROL AH,1,行值移位后繼續(xù)掃描。 第
15、五章 源程序代碼5.1 根據(jù)整體思路以及軟件設(shè)計(jì)得到的代碼 DATA SEGMENT DZTABLE DB 3FH,06H,5BH,4FH,66DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71H JZTABLE DB 7EH,7DH,7BH,77H DB 0BEH,0BDH,0BBH,0B7H DB 0DEH,0DDH,0DBH,0D7H DB 0EEH,0EDH,0EBH,0E7HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,06
16、46H MOV AL,89H OUT DX,AL ;初始化 T1: MOV DX,0640H ;行開放 MOV AL,00H OUT DX,AL JXSR: MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH JE JXSR CALL DELAY ;防抖動(dòng) MOV BL,AL ;保存列值 MOV AL,0FEH ;逐行掃描 MOV AH,AL LOP1:MOV DX,0640H OUT DX,AL MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH JNE ZJSC ROL AH,1 MOV AL,AH JMP LOP1
17、ZJSC:SHL BL,4 AND AH,0FH OR BL,AH ;形成鍵特征值 LEA SI,JZTABLE MOV CL,0 LOP3:CMP BL,SI JE LOP2 INC CL INC SI JMP LOP3 LOP2:MOV DX,0640H MOV AL,00H OUT DX,AL LOP4: MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH JNE LOP4 CALL DELAY LEA DI,DZTABLE MOV BX,DI MOV AL,CL XLAT MOV DX,0642H OUT DX,AL MOV DX,0640H MOV
18、 AL,00H OUT DX,AL MOV AH,4CH INT 21H DELAY PROC NEAR ;延時(shí)子程序 MOV CX,0F000HDLP: LOOP DLP RETDELAY ENDPCODE ENDS5.2 以上代碼存在問題分析 以上源代碼在理論上已經(jīng)準(zhǔn)確了,但是任然不能調(diào)試成功,經(jīng)過細(xì)心檢查,發(fā)現(xiàn)源程序中的延時(shí)子程序出現(xiàn)問題。DELAY PROC NEAR ;延時(shí)子程序 MOV CX,0F000HDLP: LOOP DLPRETDELAY ENDPCODE ENDS在延時(shí)子程序中用了寄存器CX,但是后面程序中還要用CX,沒有保存現(xiàn)場(chǎng)。應(yīng)該改為:DELAY PROC NEAR
19、 PUSH CX MOV CX,0F000HDLP: LOOP DLP POP CXRETDELAY ENDPCODE ENDS第六章 難點(diǎn)分析本課程設(shè)計(jì)的難點(diǎn)之一是行掃描的實(shí)現(xiàn)。以上工作做完后,已經(jīng)能顯示了,鍵盤掃描問題就基本解決了。但是本課程設(shè)計(jì)的又一難點(diǎn)怎么實(shí)現(xiàn)防重鍵?我想的方法是根據(jù)鍵特征值去判斷:觀察鍵特征值,發(fā)現(xiàn)鍵特征值0的個(gè)數(shù)均是偶數(shù)。就利用此條件去判斷,若出現(xiàn)奇數(shù)則是重鍵,具體操做見一下程序 DATA SEGMENT DZTABLE DB 3FH,06H,5BH,4FH,66DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71H JZ
20、TABLE DB 7EH,7DH,7BH,77H DB 0BEH,0BDH,0BBH,0B7H DB 0DEH,0DDH,0DBH,0D7H DB 0EEH,0EDH,0EBH,0E7HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,0646H MOV AL,89H OUT DX,AL ;初始化 T1: MOV DX,0640H ;行開放 MOV AL,00H OUT DX,AL JXSR: MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH J
21、E JXSR CALL DELAY ;防抖動(dòng) MOV BL,AL ;保存列值 MOV AL,0FEH ;逐行掃描 MOV AH,AL LOP1:MOV DX,0640H OUT DX,AL MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH JNE ZJSC ROL AH,1 MOV AL,AH JMP LOP1 ZJSC:SHL BL,4 AND AH,0FH OR BL,AH ;形成鍵特征值 JNP AAA ;防重鍵 LEA SI,JZTABLE MOV CL,0 LOP3:CMP BL,SI JE LOP2 INC CL INC SI JMP LOP3
22、 LOP2:MOV DX,0640H MOV AL,00H OUT DX,AL LOP4: MOV DX,0644H IN AL,DX AND AL,0FH CMP AL,0FH JNE LOP4 CALL DELAY LEA DI,DZTABLE MOV BX,DI MOV AL,CL XLAT MOV DX,0642H OUT DX,AL MOV DX,0640H MOV AL,00H OUT DX,ALAAA JMP T1MOV DX,0640H MOV AL,00H OUT DX,AL MOV AH,4CH INT 21H DELAY PROC NEAR ;延時(shí)子程序 MOV CX,0F000HDLP: LOOP DLP RETDELAY ENDPCODE ENDS這才是本次課程設(shè)計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學(xué)通關(guān)題庫(kù)(附帶答案)
- 2024年度山西省高校教師資格證之高等教育法規(guī)題庫(kù)練習(xí)試卷A卷附答案
- 2024年度年福建省高校教師資格證之高等教育學(xué)能力測(cè)試試卷B卷附答案
- 2024年企業(yè)金融項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年防霧涂料項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 山東省臨沂一中2024-2025學(xué)年高三11月測(cè)試語(yǔ)文試題含答案
- 第六章 社區(qū)營(yíng)養(yǎng)管理和營(yíng)養(yǎng)干預(yù)課件
- 五年級(jí)數(shù)學(xué)(小數(shù)除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 2024年期房屋建筑施工協(xié)議范例大全
- 2024電力供應(yīng)與消費(fèi)合規(guī)協(xié)議樣式
- 管桁架施工方案
- 全國(guó)高考物理高考題說題比賽一等獎(jiǎng)?wù)n件物理說題李煥景
- 華為MA5800配置及調(diào)試手冊(cè)
- 汽車坡道玻璃雨棚施工方案
- 二輪復(fù)習(xí)微專題湖泊專題
- 2024年德陽(yáng)發(fā)展控股集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 餐前檢查表(標(biāo)準(zhǔn)模版)
- 重大風(fēng)險(xiǎn)管控方案及措施客運(yùn)站
- 陜西方言的文化價(jià)值與保護(hù)策略
- (2024年)剪映入門教程課件
- 2023年12月教師數(shù)字素養(yǎng)測(cè)評(píng)試題及參考答案
評(píng)論
0/150
提交評(píng)論