版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p> 課程名稱: 微機原理與接口技術(shù) </p><p> 設(shè)計題目:基于8086CPU的小鍵盤設(shè)計 </p><p> 設(shè)計時間: 2014年6月 </p><p> 班 級: </p>
2、<p> 姓 名: </p><p> 學(xué) 號: </p><p> 一.課程設(shè)計要求:使用行掃描法或者線反轉(zhuǎn)法識別4*4的非編碼小鍵盤,并將鍵入的鍵值(0-9,A-F)顯示在數(shù)碼管上。</p><p><b> 二.課程設(shè)計目的&l
3、t;/b></p><p> 1.掌握 8255的使用和編程方法。</p><p> 2.通過8255設(shè)計鍵盤掃描及它們的輸入輸出方式和它們的控制字。綜合運用本學(xué)期所學(xué)的關(guān)于匯編的知識,在實驗中進一步熟悉本學(xué)期所學(xué)的課程并結(jié)合實際生活,掌握匯編的應(yīng)用。</p><p> 3.注重鍵盤掃描的方法設(shè)計以及解決問題的思路。</p><p&g
4、t; 4.了解任何微機應(yīng)用開發(fā)工作都離不開接口的技術(shù)、選用及連接。微機應(yīng)用系統(tǒng)需要設(shè)計的硬件是一些接口電路,所要編寫的軟件是控制這些接口電路按要求工作的驅(qū)動程序。重點講述可編程并行接口芯片8255A、內(nèi)部結(jié)構(gòu)、工作方式、初始化編程及其應(yīng)用實例。</p><p><b> 總體方案設(shè)計</b></p><p><b> 設(shè)計注意問題</b>&
5、lt;/p><p> 在唐都實驗箱上實現(xiàn)鍵盤掃描并顯示在LED上,比如當(dāng)按下‘6’時,LED會顯示6的字樣。總體設(shè)計方案如下:</p><p> 1.實現(xiàn)鍵盤的掃描(鍵號與鍵值的對應(yīng))。</p><p><b> 2.防抖動措施。</b></p><p><b> 3.防重鍵的措施。</b>&l
6、t;/p><p><b> 總體思路</b></p><p> 本次試驗報告的整體思路如下:</p><p> 行開放,找到列值并保存;</p><p> 逐行掃描,找到行值并保存;</p><p> 行值和列值組合成鍵特征值;</p><p> 根據(jù)鍵特征值找到鍵
7、號;</p><p> 根據(jù)鍵號查表得段碼;</p><p><b> 送出相應(yīng)位碼。</b></p><p> 鍵盤掃描邏輯性很強,步步相扣。思路顯得尤其重要。</p><p><b> 硬件設(shè)計</b></p><p><b> 8255工作原理<
8、;/b></p><p> 并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O設(shè)備或被控制對象之間傳遞信息。CPU和接口之間的數(shù)據(jù)傳送總是并行的,即可以同時傳遞8位、16位或32位等。8255 A可編程外圍接口芯片是Intel 公司生產(chǎn)的通用并行I/O 接口芯片,它具有A、B、C 三個并行接口,用+5V 單電源供電,能以下三種方式下工作:</p><p> 方式0:基 輸入/輸出方式</
9、p><p> 方式1:選通輸入/輸出方式</p><p> 方式2:雙向選通工作方式</p><p> 8255A的內(nèi)部結(jié)構(gòu)及引腳如圖3.1 所示,8255 工作方式控制字和 C口按位 置位/復(fù)位控制字格式如圖3.2所示。</p><p><b> 雙向選通工作方式。</b></p><p&g
10、t; 8255的內(nèi)部結(jié)構(gòu)及引腳如圖3.1所示,</p><p> 8255工作方式控制字和C口按位置位/復(fù)位控制字如圖3.3所示</p><p> 圖3.1 8255的內(nèi)部結(jié)構(gòu)及引腳</p><p> 圖3.2 8255工作方式控制字和C口按位置位/復(fù)位控制字</p><p><b> 鍵盤工作原理</b>&
11、lt;/p><p> 唐都實驗箱提供的是4*4的小鍵盤,如下圖所示, 列為高電平。并且位選口與行控口共用端口。</p><p><b> 鍵盤原理圖3.2:</b></p><p> 圖3.2 鍵盤原理圖</p><p><b> 鍵盤工作原理闡述:</b></p><p&g
12、t; ?、?每一個鍵跨接在行、列線之間;</p><p> ?、?在無按鍵時,列線固定為高電平;</p><p> 列控制口用于讀入列線狀態(tài),即列值。</p><p> ?、?行線電平受控于“行控制口”,行控口輸出的信號稱為行值</p><p> ?、?某鍵未按下,該鍵關(guān)聯(lián)的行、列線不通;按下,則把行線的電平引入列線。設(shè)置行線為低電平,
13、則把行線的低電平引入列線。</p><p><b> 鍵特征值的形成</b></p><p> 根據(jù)鍵盤的工作原理可以得到如下鍵特征值表3.3:</p><p><b> 3.3鍵特征值表</b></p><p><b> 段值的形成</b></p>&l
14、t;p> ?。蹋牛娘@示段值見表3.4</p><p><b> 表3.4 段碼表</b></p><p><b> 8255接線圖</b></p><p><b> +5V </b></p><p> 圖3.5 8255接線圖</p><p&g
15、t;<b> 寄存器地址選取</b></p><p> 根據(jù)唐都實驗儀器提供的手冊,選取IOY1作為8255芯片的片選端口,A1 A0為片內(nèi)譯碼。即:</p><p> PA口地址: 0640H</p><p> PB口地址: 0642H</p><p> PC口地址: 0644PD(控制口) 地址: 0646
16、H.</p><p><b> 軟件設(shè)計</b></p><p><b> 8255初始化</b></p><p><b> 以PC為列控口;</b></p><p> 以PA低4位為行控口;</p><p> 列口為輸入,行口輸出;</
17、p><p> 顯示以PB為段選口;</p><p><b> PB口輸出;</b></p><p><b> PA低6位為位選。</b></p><p> 根據(jù)3.1與3.2 得出8255芯片的控制字為:10001001B,即:89H。</p><p><b>
18、 鍵盤掃描的處理方法</b></p><p> 判斷是否有鍵被按下的方法 </p><p> 行開放:使所有行線輸出低電平,從列控口讀入列狀態(tài)(列值)即: 通過行控口,輸出全0 。4條行線均為低電平。</p><p> 如果沒有鍵按下,則行線低電平不會引入到列線,從列控口讀入的必為全1;</p><p> 只要有一個鍵按
19、下,如‘F’鍵,則行1的低電平引入列3,從列控口讀入的列值為1110,非全1,由此得出判斷是否有鍵按下的條件: </p><p> 讀入的列值為全1,無按鍵;非全1,必有按鍵!</p><p> 判斷是否有鍵被按下的流程:</p><p><b> 讓行線輸出全為0;</b></p><p><b>
20、讀列的值;</b></p><p> 判斷列值是否全為0;</p><p> 若不全為0,則說明有按鍵按下;</p><p> 全為0,則說明沒有按鍵按下,繼續(xù)等待輸入。</p><p> 判斷是否有鍵被按下的源程序</p><p> MOV DX,0640H</p><p&
21、gt; MOV AL,00H </p><p> OUT DX,AL</p><p> JXSR: MOV DX,0644H</p><p><b> IN AL,DX</b></p><p> AND AL,0FH</p><p> CMP AL,0FH</p>
22、<p><b> JE JXSR</b></p><p> 對源程序的解釋:程序中只需要C口低四位,所以用“AND AL,0FH”</p><p><b> 對低4位保存</b></p><p><b> 防抖動</b></p><p> 防抖動措施對按鍵來
23、說是必需的,可以讓微機準確輸入,在課程設(shè)計中,利用延時子程序來實現(xiàn)防抖動。</p><p><b> 防抖動的延時子程序</b></p><p> DELAY PROC NEAR ;延時子程序</p><p> MOV CX,0F000H</p><p> DLP: LOO
24、P DLP</p><p><b> RET</b></p><p> DELAY ENDP</p><p><b> 程序核心部分</b></p><p><b> 逐行掃描</b></p><p> 問題:怎么判斷按鍵說在行的位置
25、?</p><p> 查閱資料,判斷按鍵所在行的位置用逐行掃描的方法。</p><p> 逐行掃描:使行線輸出逐一為低電平,從列控口讀入列狀態(tài)(列值)。</p><p> 此時如果列值讀入為全1,則按鍵不在本行;非全1,在本行。</p><p> 判斷是否有鍵被按下的流程:</p><p> 使第0行為0(掃
26、描0行);</p><p><b> 讀入列值;</b></p><p><b> 判斷列值是否全為0</b></p><p> 若列值全為0,則說明按鍵不在本行;</p><p> 列值移位,再次讀入列值,進行判斷。</p><p><b> 逐行掃描的
27、源程序</b></p><p> LOP1:MOV DX,0640H</p><p><b> OUT DX,AL</b></p><p> MOV DX,0644H</p><p><b> IN AL,DX</b></p><p> AND AL,
28、0FH</p><p> CMP AL,0FH</p><p><b> JNE ZJSC</b></p><p><b> ROL AH,1</b></p><p><b> MOV AL,AH</b></p><p><b> J
29、MP LOP1</b></p><p> 逐行掃描的源程序的解釋:’ROL AH,1’,行值移位后繼續(xù)掃描。 </p><p><b> 源程序代碼</b></p><p> 根據(jù)整體思路以及軟件設(shè)計得到的代碼</p><p> DATA SEGMENT</p><p>
30、DZTABLE DB 3FH,06H,5BH,4FH,66DB 6DH,7DH,07H,7FH,6FH</p><p> DB 77H,7CH,39H,5EH,79H,71H</p><p> JZTABLE DB 7EH,7DH,7BH,77H</p><p> DB 0BEH,0BDH,0BBH,0B7H</p><p> DB
31、0DEH,0DDH,0DBH,0D7H</p><p> DB 0EEH,0EDH,0EBH,0E7H</p><p><b> DATA ENDS</b></p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DATA</p><p> ST
32、ART: MOV AX,DATA</p><p><b> MOV DS,AX</b></p><p> MOV DX,0646H</p><p> MOV AL,89H</p><p> OUT DX,AL ;初始化</p><p> T1: MOV DX,0640H
33、 ;行開放</p><p> MOV AL,00H</p><p><b> OUT DX,AL</b></p><p> JXSR: MOV DX,0644H</p><p><b> IN AL,DX</b></p><p> AND AL,0FH&l
34、t;/p><p> CMP AL,0FH</p><p><b> JE JXSR</b></p><p> CALL DELAY ;防抖動</p><p> MOV BL,AL ;保存列值</p><p> MOV AL,0FEH ;逐行掃描</p><p>
35、;<b> MOV AH,AL</b></p><p> LOP1:MOV DX,0640H</p><p><b> OUT DX,AL</b></p><p> MOV DX,0644H</p><p><b> IN AL,DX</b></p>
36、<p> AND AL,0FH</p><p> CMP AL,0FH</p><p><b> JNE ZJSC</b></p><p><b> ROL AH,1</b></p><p><b> MOV AL,AH</b></p><
37、;p><b> JMP LOP1</b></p><p> ZJSC:SHL BL,4</p><p> AND AH,0FH</p><p> OR BL,AH ;形成鍵特征值</p><p> JNP AAA ;防重鍵</p><p> LEA SI,JZT
38、ABLE</p><p><b> MOV CL,0</b></p><p> LOP3:CMP BL,[SI]</p><p><b> JE LOP2</b></p><p><b> INC CL</b></p><p><b>
39、; INC SI</b></p><p><b> JMP LOP3</b></p><p> LOP2:MOV DX,0640H</p><p> MOV AL,00H</p><p><b> OUT DX,AL</b></p><p> LOP4
40、: MOV DX,0644H</p><p><b> IN AL,DX</b></p><p> AND AL,0FH</p><p> CMP AL,0FH</p><p><b> JNE LOP4</b></p><p> CALL DELAY</p
41、><p> LEA DI,DZTABLE</p><p><b> MOV BX,DI</b></p><p><b> MOV AL,CL</b></p><p><b> XLAT</b></p><p> MOV DX,0642H</p
42、><p><b> OUT DX,AL</b></p><p> MOV DX,0640H</p><p> MOV AL,00H</p><p><b> OUT DX,AL</b></p><p> AAA JMP T1</p><p&
43、gt; MOV DX,0640H</p><p> MOV AL,00H</p><p><b> OUT DX,AL</b></p><p> MOV AH,4CH</p><p><b> INT 21H</b></p><p> DELAY PROC
44、 NEAR ;延時子程序</p><p> MOV CX,0F000H</p><p> DLP: LOOP DLP</p><p><b> RET</b></p><p> DELAY ENDP</p><p><b> CODE
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《微機原理與接口技術(shù)》課程設(shè)計
- 微機原理與接口技術(shù)課程設(shè)計-鍵盤顯示控制器
- 微機原理與接口技術(shù)課程設(shè)計
- 微機原理與接口技術(shù)課程設(shè)計
- 微機原理與接口技術(shù)課程設(shè)計
- 微機原理與接口技術(shù)課程設(shè)計.
- 微機原理與接口技術(shù)課程設(shè)計報告
- 微機原理與接口技術(shù)課程設(shè)計——液晶顯示器與鍵盤系統(tǒng)
- 《微機原理與接口技術(shù)》課程設(shè)計---搶答器
- 《微機原理與接口技術(shù)》課程設(shè)計-交通燈
- 8086微機原理與接口技術(shù)試題庫含答案
- 微機原理與接口技術(shù)課程設(shè)計--流水燈
- 電子鐘課程設(shè)計報告——微機原理與接口技術(shù)
- 微機接口技術(shù)課程設(shè)計
- 微機接口技術(shù)課程設(shè)計
- 微機原理與接口技術(shù)課程設(shè)計-交通燈
- 《微機原理與接口技術(shù)》搶答器課程設(shè)計報告
- 紅外通信-微機原理與接口技術(shù)課程設(shè)計報告
- 微機原理與接口技術(shù)課程設(shè)計 --存儲器
- 微機原理與接口技術(shù)課程設(shè)計報告書
評論
0/150
提交評論