版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 報(bào) 告</p><p> 課程名稱: 微機(jī)原理與接口技術(shù) </p><p> 設(shè)計(jì)題目:基于8086CPU的小鍵盤(pán)設(shè)計(jì) </p><p> 設(shè)計(jì)時(shí)間: 2014年6月 </p><p> 班 級(jí): </p>
2、<p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 一.課程設(shè)計(jì)要求:使用行掃描法或者線反轉(zhuǎn)法識(shí)別4*4的非編碼小鍵盤(pán),并將鍵入的鍵值(0-9,A-F)顯示在數(shù)碼管上。</p><p><b> 二.課程設(shè)計(jì)目的&l
3、t;/b></p><p> 1.掌握 8255的使用和編程方法。</p><p> 2.通過(guò)8255設(shè)計(jì)鍵盤(pán)掃描及它們的輸入輸出方式和它們的控制字。綜合運(yùn)用本學(xué)期所學(xué)的關(guān)于匯編的知識(shí),在實(shí)驗(yàn)中進(jìn)一步熟悉本學(xué)期所學(xué)的課程并結(jié)合實(shí)際生活,掌握匯編的應(yīng)用。</p><p> 3.注重鍵盤(pán)掃描的方法設(shè)計(jì)以及解決問(wèn)題的思路。</p><p&g
4、t; 4.了解任何微機(jī)應(yīng)用開(kāi)發(fā)工作都離不開(kāi)接口的技術(shù)、選用及連接。微機(jī)應(yīng)用系統(tǒng)需要設(shè)計(jì)的硬件是一些接口電路,所要編寫(xiě)的軟件是控制這些接口電路按要求工作的驅(qū)動(dòng)程序。重點(diǎn)講述可編程并行接口芯片8255A、內(nèi)部結(jié)構(gòu)、工作方式、初始化編程及其應(yīng)用實(shí)例。</p><p><b> 總體方案設(shè)計(jì)</b></p><p><b> 設(shè)計(jì)注意問(wèn)題</b>&
5、lt;/p><p> 在唐都實(shí)驗(yàn)箱上實(shí)現(xiàn)鍵盤(pán)掃描并顯示在LED上,比如當(dāng)按下‘6’時(shí),LED會(huì)顯示6的字樣。總體設(shè)計(jì)方案如下:</p><p> 1.實(shí)現(xiàn)鍵盤(pán)的掃描(鍵號(hào)與鍵值的對(duì)應(yīng))。</p><p><b> 2.防抖動(dòng)措施。</b></p><p><b> 3.防重鍵的措施。</b>&l
6、t;/p><p><b> 總體思路</b></p><p> 本次試驗(yàn)報(bào)告的整體思路如下:</p><p> 行開(kāi)放,找到列值并保存;</p><p> 逐行掃描,找到行值并保存;</p><p> 行值和列值組合成鍵特征值;</p><p> 根據(jù)鍵特征值找到鍵
7、號(hào);</p><p> 根據(jù)鍵號(hào)查表得段碼;</p><p><b> 送出相應(yīng)位碼。</b></p><p> 鍵盤(pán)掃描邏輯性很強(qiáng),步步相扣。思路顯得尤其重要。</p><p><b> 硬件設(shè)計(jì)</b></p><p><b> 8255工作原理<
8、;/b></p><p> 并行接口是以數(shù)據(jù)的字節(jié)為單位與I/O設(shè)備或被控制對(duì)象之間傳遞信息。CPU和接口之間的數(shù)據(jù)傳送總是并行的,即可以同時(shí)傳遞8位、16位或32位等。8255 A可編程外圍接口芯片是Intel 公司生產(chǎn)的通用并行I/O 接口芯片,它具有A、B、C 三個(gè)并行接口,用+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> 鍵盤(pán)工作原理</b>&
11、lt;/p><p> 唐都實(shí)驗(yàn)箱提供的是4*4的小鍵盤(pán),如下圖所示, 列為高電平。并且位選口與行控口共用端口。</p><p><b> 鍵盤(pán)原理圖3.2:</b></p><p> 圖3.2 鍵盤(pán)原理圖</p><p><b> 鍵盤(pán)工作原理闡述:</b></p><p&g
12、t; ?、?每一個(gè)鍵跨接在行、列線之間;</p><p> ② 在無(wú)按鍵時(shí),列線固定為高電平;</p><p> 列控制口用于讀入列線狀態(tài),即列值。</p><p> ③ 行線電平受控于“行控制口”,行控口輸出的信號(hào)稱為行值</p><p> ④ 某鍵未按下,該鍵關(guān)聯(lián)的行、列線不通;按下,則把行線的電平引入列線。設(shè)置行線為低電平,
13、則把行線的低電平引入列線。</p><p><b> 鍵特征值的形成</b></p><p> 根據(jù)鍵盤(pán)的工作原理可以得到如下鍵特征值表3.3:</p><p><b> 3.3鍵特征值表</b></p><p><b> 段值的形成</b></p>&l
14、t;p> ?。蹋牛娘@示段值見(jiàn)表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ù)唐都實(shí)驗(yàn)儀器提供的手冊(cè),選取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è)計(jì)</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、 鍵盤(pán)掃描的處理方法</b></p><p> 判斷是否有鍵被按下的方法 </p><p> 行開(kāi)放:使所有行線輸出低電平,從列控口讀入列狀態(tài)(列值)即: 通過(guò)行控口,輸出全0 。4條行線均為低電平。</p><p> 如果沒(méi)有鍵按下,則行線低電平不會(huì)引入到列線,從列控口讀入的必為全1;</p><p> 只要有一個(gè)鍵按
19、下,如‘F’鍵,則行1的低電平引入列3,從列控口讀入的列值為1110,非全1,由此得出判斷是否有鍵按下的條件: </p><p> 讀入的列值為全1,無(wú)按鍵;非全1,必有按鍵!</p><p> 判斷是否有鍵被按下的流程:</p><p><b> 讓行線輸出全為0;</b></p><p><b>
20、讀列的值;</b></p><p> 判斷列值是否全為0;</p><p> 若不全為0,則說(shuō)明有按鍵按下;</p><p> 全為0,則說(shuō)明沒(méi)有按鍵按下,繼續(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> 對(duì)源程序的解釋:程序中只需要C口低四位,所以用“AND AL,0FH”</p><p><b> 對(duì)低4位保存</b></p><p><b> 防抖動(dòng)</b></p><p> 防抖動(dòng)措施對(duì)按鍵來(lái)
23、說(shuō)是必需的,可以讓微機(jī)準(zhǔn)確輸入,在課程設(shè)計(jì)中,利用延時(shí)子程序來(lái)實(shí)現(xiàn)防抖動(dòng)。</p><p><b> 防抖動(dòng)的延時(shí)子程序</b></p><p> DELAY PROC NEAR ;延時(shí)子程序</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> 問(wèn)題:怎么判斷按鍵說(shuō)在行的位置
25、?</p><p> 查閱資料,判斷按鍵所在行的位置用逐行掃描的方法。</p><p> 逐行掃描:使行線輸出逐一為低電平,從列控口讀入列狀態(tài)(列值)。</p><p> 此時(shí)如果列值讀入為全1,則按鍵不在本行;非全1,在本行。</p><p> 判斷是否有鍵被按下的流程:</p><p> 使第0行為0(掃
26、描0行);</p><p><b> 讀入列值;</b></p><p><b> 判斷列值是否全為0</b></p><p> 若列值全為0,則說(shuō)明按鍵不在本行;</p><p> 列值移位,再次讀入列值,進(jìn)行判斷。</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è)計(jì)得到的代碼</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、 ;行開(kāi)放</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 ;防抖動(dòng)</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 ;延時(shí)子程序</p><p> MOV CX,0F000H</p><p> DLP: LOOP DLP</p><p><b> RET</b></p><p> DELAY ENDP</p><p><b> CODE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-鍵盤(pán)顯示控制器
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì).
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)——液晶顯示器與鍵盤(pán)系統(tǒng)
- 《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)---搶答器
- 《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)-交通燈
- 8086微機(jī)原理與接口技術(shù)試題庫(kù)含答案
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)--流水燈
- 電子鐘課程設(shè)計(jì)報(bào)告——微機(jī)原理與接口技術(shù)
- 微機(jī)接口技術(shù)課程設(shè)計(jì)
- 微機(jī)接口技術(shù)課程設(shè)計(jì)
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈
- 《微機(jī)原理與接口技術(shù)》搶答器課程設(shè)計(jì)報(bào)告
- 紅外通信-微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì) --存儲(chǔ)器
- 微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告書(shū)
評(píng)論
0/150
提交評(píng)論