匯編語言八路搶答器設(shè)計_第1頁
匯編語言八路搶答器設(shè)計_第2頁
匯編語言八路搶答器設(shè)計_第3頁
匯編語言八路搶答器設(shè)計_第4頁
匯編語言八路搶答器設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理與接口技術(shù)課程設(shè)計報告2015-2016學(xué)年第二學(xué)期設(shè)計題目: _小組成員: 所學(xué)專業(yè): 指導(dǎo)教師: _完成時間: _目錄一、課程設(shè)計目的4二、課程設(shè)計要求4三、系統(tǒng)功能4四、總體設(shè)計41.基本工作原理41.1可編程并行接口接口芯片8255A控制字要求41.2可編程定時器計數(shù)器8253控制字要求52.硬件總體設(shè)計52.1系統(tǒng)總成方案52.2內(nèi)存單元編址53.鍵盤、揚聲器及顯示功能的定義54.原理圖54.1 硬件原理框圖64.2 原理連線圖65 軟件總體設(shè)計6五、硬件設(shè)計8六、軟件設(shè)計8七、調(diào)試過程21八、系統(tǒng)操作說明21九、總結(jié)22十、參考文獻22八路搶答器設(shè)計一、設(shè)計目的1、掌握微機

2、系統(tǒng)的開發(fā)步驟;2、掌握搶答器控制編程方法和芯片8255、8253的邏輯功能、鍵盤中斷及使用方法和數(shù)碼管的用法;3、掌握一定的匯編語言知識,培養(yǎng)自己的動手操作能力。4、學(xué)習(xí)程序設(shè)計的基本思路和方法。因此,本次設(shè)計要求對微機原理的理論知識,8255A,8253,鍵盤顯示區(qū)的工作方式、工作原理熟練掌握。二、設(shè)計要求當按開始鍵,綠燈亮后,選手搶答,1-8號選手中先按下按鍵者,LED數(shù)碼管顯示其選手號碼(后按下無效),并進行聲光報警(黃燈亮)提示。當按開始鍵未按下時,如果有選手搶答,LED數(shù)碼管顯示其選手號碼,并進行聲光報警(紅燈亮)提示。三、系統(tǒng)功能一個具有8路搶答的搶答器,利用并行接口和開關(guān)鍵。鍵

3、盤上數(shù)字鍵1-8代表搶答按鈕,當某個邏輯開關(guān)閉合時(開始鍵按下未按起時),相當于搶答按鈕按下,此時在七段數(shù)碼管上將其號碼顯示出來,并使喇叭響一聲(或者以發(fā)光二極管代替)。四、總體設(shè)計1. 基本工作原理當按開始鍵按下時,綠燈亮后,選手才可搶答,否則違規(guī)。若搶答成功,LED顯示器顯示選手號碼,黃燈亮,揚聲器鳴叫;若搶答違規(guī)(未按下開始鍵),LED顯示器顯示違規(guī)選手號碼,紅燈亮,揚聲器報警。1.1可編程并行接口接口芯片8255A控制字要求(1)、B口工作在方式0,做為輸出端口,經(jīng)驅(qū)動器1連接LED顯示器(PB7PB0依次對應(yīng)連接LED顯示器的dp、g、f、e、d、c、b、a七段數(shù)碼管管腳);(2)、

4、C口也必須工作在方式0,高4 位做輸入端口(本次設(shè)計中只用PC4、PC5,分別用于連接復(fù)位鍵和開始鍵),低4位做輸出端口(PC3PC0,經(jīng)驅(qū)動器2后PC1、PC2、PC3分別用于連接黃、紅、綠三個發(fā)光二極管,PC0連接到8253的GATE1端,以控制方式1的計數(shù))。1.2可編程定時器計數(shù)器8253控制字要求(1)、方式0:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計數(shù)格式為BCD碼,計數(shù)初值為0。(2)、方式1:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式1即可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器,計數(shù)格式為BCD碼,計數(shù)初值為0。(3)、方式2:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作

5、在方式3即方波發(fā)生器,計數(shù)格式為BCD碼,計數(shù)初值為0。2.硬件總體設(shè)計2.1系統(tǒng)總成方案該競賽搶答器所要器件:可編程并行接口接口芯片8255、可編程定時器計數(shù)器8253,三個一樣的驅(qū)動器,黃、紅、綠三個發(fā)光二極管,十三個電阻,一個8輸入與非門,一個非門,一個揚聲器,一個LED顯示器,10個按鍵。2.2內(nèi)存單元編址(1)可編程并行接口接口芯片8255A的端口地址為60H、61H、62H、63H(2) 可編程定時器計數(shù)器8253的端口地址為40H、41H、42H、43H(3) 特殊鍵中斷號為2A-36,對應(yīng)地址為00A8-00DB本實驗用到數(shù)字鍵1-8,對應(yīng)的ASCII為31H-38HLED顯示

6、器1-8對應(yīng)的十六進制是:06H,5BH,4FH,66H,6DH,7CH,07H,7FH3.鍵盤、揚聲器及顯示功能的定義一個開始鍵一個復(fù)位鍵,另外8個數(shù)字鍵用做8位選手的搶答按鍵。揚聲器用與黃、紅、綠三個發(fā)光二極管配合使用,黃燈亮揚聲器鳴叫表示搶答成功,紅燈亮揚聲報警表示搶答違規(guī)報警,綠燈亮揚聲器不鳴則表示主持人已按下開始鍵。LED顯示器顯示的內(nèi)容與選手號對應(yīng),搶答成功或違規(guī)都要顯示。4.原理圖4.1硬件原理框圖按鍵設(shè)置82558 2 5 5 8086CPU82538 2 5 4LED燈LED顯 示 模 塊揚聲器聲光報警鍵盤輸入 圖14.2 原理連線圖4.3軟件總體設(shè)計主程序流程圖:開始置標志

7、位值為FFH使IF=1開放中斷點亮綠燈關(guān)閉LED顯示器檢測開始鍵是否彈起檢測開始鍵是否按下 設(shè)置搶答鍵中斷向量并使IF置1開放中斷對8259A、8255、8253進行初始化設(shè)置LED字形碼初值、標志初值開始檢測復(fù)位鍵是否按下置標志位值為FFH使IF=1開放中斷點亮綠燈關(guān)閉LED顯示器檢測開始鍵是否彈起檢測開始鍵是否按下 設(shè)置搶答鍵中斷向量并使IF置1開放中斷對8259A、8255、8253進行初始化設(shè)置LED字形碼初值、標志初值開始開始設(shè)置LED字形碼初值、標志初值設(shè)置LED字形碼初值、標志初值對8255、8253進行初始化對8259A、8255、8253進行初始化設(shè)置搶答鍵鍵盤中斷向量并使I

8、F置1開放中斷設(shè)置搶答鍵中斷向量并使IF置1開放中斷檢測開始鍵是否按下 檢測開始鍵是否按下 NY檢測開始鍵是否彈起檢測開始鍵是否彈起N Y關(guān)閉LED顯示器關(guān)閉LED顯示器點亮綠燈點亮綠燈置標志位值為FFH使IF=1開放中斷置標志位值為FFH使IF=1開放中斷檢測復(fù)位鍵是否按下檢測復(fù)位鍵是否按下N檢測復(fù)位鍵是否彈起 YN Y關(guān)閉LED顯示器、指示燈將標志位清零,使IF=1開入中斷結(jié)束圖3五、硬件設(shè)計1.可編程并行接口接口芯片8255A的工作方式8255A具有三個獨立的輸入/輸出端口,每個端口的并行數(shù)據(jù)寬度為8位。三個端口分別為A端口,B端口,C端口,可分別與不同的外設(shè)進行數(shù)據(jù)交換,也可聯(lián)合使用,

9、在中斷方式下實現(xiàn)CPU與外設(shè)間的數(shù)據(jù)傳遞。8255A提供方式0,方式1,方式2三種工作方式供選擇。2.可編程定時器計數(shù)器8253的工作方式(1)方式0:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計數(shù)格式為BCD碼,計數(shù)初值為0。(2)方式1:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式1即可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器,計數(shù)格式為BCD碼,計數(shù)初值為0。(3)方式2:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計數(shù)格式為BCD碼,計數(shù)初值為0。六、軟件設(shè)計DATASEGMENTBZDB 00HDATAENDSCODE SEGMENTASSUMEDS:DATA,C

10、S:CODESTART:MOVAX,DATA MOVDS,AX;8255A初始化 MOV AL,88H;置8255A工作方式 OUT 63H,AL XORAL,AL;B口、C口初始化 OUT 61H,AL OUT62H,AL ;8253初始化 MOV AL,37H;置8253方式0控制字 OUT 43H,AL MOV AL,00H;置8253方式0計數(shù)初值為4000 OUT40H,AL MOVAL,40H OUT40H,AL MOV AL,73H;置8253 方式1控制字 OUT43H,AL MOVAL,00H;置8253方式1計數(shù)初值為3000 OUT41H,AL MOVAL,30H OUT

11、41H,AL MOV AL,0B7H;置8253方式2控制字 OUT43H,AL MOVAL,00H OUT42H,AL MOVAL,00H;置8253方式2計數(shù)初值為0 OUT42H,AL ;中斷設(shè)置 MOV AX,0000H MOV DS,AX; MOV BX,0457H MOV AL,31H MOV CX,8 LOP4:MOV BX,AL INC BX INC AL LOOP LOP4 MOV AX, OFFSET KKK1 MOV 00A8,AX MOV AX,0000H MOV 00AA,AX MOV AX, OFFSET KKK2 MOV 00AC,AX MOV AX,0000H

12、MOV 00AE,AX MOV AX, OFFSET KKK3 MOV 00B0,AX MOV AX,0000H MOV 00B2,AX MOV AX, OFFSET KKK4 MOV 00B4,AX MOV AX,0000H MOV 00B6,AX MOV AX, OFFSET KKK5 MOV 00B8,AX MOV AX,0000H MOV 00BA,AX MOV AX, OFFSET KKK6 MOV 00BC,AX MOV AX,0000H MOV 00BE,AX MOV AX, OFFSET KKK7 MOV 00C0,AX MOV AX,0000H MOV 00C2,AX MOV

13、 AX, OFFSET KKK8 MOV 00C4,AX MOV AX,0000H MOV 00C6,AX STI;使IF置1,開放可屏蔽中斷;主循環(huán)LOPM:INAL,62H;檢測開始鍵 TESTAL,20H;檢測C口的PC5端 JZ LOP2;開始鍵未按下即PC5=0,則跳轉(zhuǎn)檢測 ;復(fù)位鍵LOP1:INAL,62H;檢測開始鍵是否已經(jīng)彈起,即PC5=0 TESTAL,20H JNZ LOP1;開始鍵沒有彈起再重新檢測 MOVAL,00H;關(guān)LED顯示器 OUT 61H,AL;送到B口 MOVAL,08H;綠燈亮 OUT62H,AL;送到C口 MOVBZ, 0FFH;置標志 STILOP2:

14、INAL,62H;檢測復(fù)位鍵 TESTAL,10H;檢測C口的PC4端 JZLOPM ;復(fù)位鍵未按下即PC4=0,則跳轉(zhuǎn)再檢 ;測開始鍵LOP3:INAL,62H;檢測復(fù)位鍵是否彈起,即PC4=0 TEST AL,10H JNZ LOP3;位鍵沒有彈起,則重新檢測 MOVAL,00H;關(guān)LED顯示器、指標燈 OUT 61H,AL OUT 62H,AL MOVBZ,00H;清標志 STI JMPLOPM ;中斷服務(wù)子程序 KKK1:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,06H OUT61H,AL CALL PU

15、BLIC POPDS;恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET KKK2:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,5BH OUT61H,AL CALL PUBLIC POPDS;恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET KKK3:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,4FH OUT61H,AL CALL PUBLIC POPDS;恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET KKK4:PU

16、SHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,66H OUT61H,AL CALL PUBLIC POPDS;恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET KKK5:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,6DH OUT61H,AL CALL PUBLIC POPDS;恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET KKK6:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧

17、中的IF=0 MOV AL,7CH OUT61H,AL CALL PUBLIC POPDS;恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET KKK7:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,07H OUT61H,AL CALL PUBLIC POPDS;恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET KKK8:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,7FH OUT61H,AL CALL PUBLIC POPDS;

18、恢復(fù)現(xiàn)場 POPDX POPBX POPAX IRET PUBLIC:TESTBZ,0FFH;判斷標志位是否為FFH JZLOP5 MOVAL,00H;置8253方式2計數(shù)值 OUT42H,AL MOVAL,10H OUT42H,AL MOVAL,03H;黃燈亮,搶答成功 OUT 62H,AL JMPKKKLOP5:MOV AL,00H;置8253方式2計數(shù)值 OUT42H,AL MOV AL,20H OUT 42H,AL MOVAL,05H;紅燈亮,搶答違規(guī) OUT62H,AL KKK:MOVAL,20H;中斷結(jié)束;防止中斷重復(fù)響應(yīng) OUT20H,ALCODEENDSENDSTART七、調(diào)試

19、過程(1)在剛開始編程時,各種功能大部分是由主程序來完成的。由于主程序過于復(fù)雜,可讀性不高。使得在以后的程序的調(diào)試中遇到了很大的麻煩。后來把主程序的部分功能轉(zhuǎn)化成子程序來實現(xiàn),并在一些重要的地方增加了注釋,使的程序的可讀性大大加強。調(diào)試也變的比較簡單了。到此基本解決了第一個問題。(2)在編程時,子程序的調(diào)試也是相當重要,由于子程序不可避免的使用AXBXCXDX通用寄存器一個或幾個。使得原主程序中的通用寄存器的內(nèi)容很容易被覆蓋,對子程序中所有的通用寄存器出入棧即可以避免上訴的問題,不用考慮使用的是哪幾個寄存器,使用起來又比較簡單方便。所以至此這個問題也已基本解決。(3)調(diào)試是一個復(fù)雜煩瑣而漫長的

20、過程。在調(diào)試的過程中一定要耐下心來去做,否則一旦出現(xiàn)煩躁的心里,就會事倍功半,適得其反。在本次設(shè)計中出現(xiàn)的主要問題即如上所述,解決方法也如上所述,在今后的軟件調(diào)試過程中更應(yīng)注意如上問題。八、系統(tǒng)操作說明比賽開始,在主持人按下開始鍵,綠燈亮后,選手才可開始搶答,否則違規(guī)。若選手搶答成功,LED顯示器顯示選手號碼,揚聲器鳴叫。若選手搶答違規(guī)(主持人未按開始鍵),LED顯示器顯示違規(guī)選手號碼,紅燈亮,揚聲器報警。若系統(tǒng)提示某號選手搶答違規(guī),主持人仍未按開始鍵,此時該號選手又按下?lián)尨疰I,LED顯示器顯示該選手的號碼。本系統(tǒng)開機后,若主持人既未按復(fù)位鍵又未按開始鍵,此時有選手按下?lián)尨疰I,系統(tǒng)提示紅燈亮,并報警。注: 1、搶答成功,置8253方式2計數(shù)值為1000,揚聲器的鳴叫聲音頻率為1MHz/1000=1KHz。2、搶答失敗,置82

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論