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

下載本文檔

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

文檔簡(jiǎn)介

1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流匯編語言八路搶答器設(shè)計(jì).精品文檔.微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告2015-2016學(xué)年第二學(xué)期設(shè)計(jì)題目: _小組成員: 所學(xué)專業(yè): 指導(dǎo)教師: _完成時(shí)間: _目錄一、課程設(shè)計(jì)目的4二、課程設(shè)計(jì)要求4三、系統(tǒng)功能4四、總體設(shè)計(jì)41.基本工作原理41.1可編程并行接口接口芯片8255A控制字要求41.2可編程定時(shí)器計(jì)數(shù)器8253控制字要求52.硬件總體設(shè)計(jì)52.1系統(tǒng)總成方案52.2內(nèi)存單元編址53.鍵盤、揚(yáng)聲器及顯示功能的定義54.原理圖54.1 硬件原理框圖64.2 原理連線圖65 軟件總體設(shè)計(jì)6五、硬件設(shè)計(jì)8六、軟件設(shè)計(jì)8七、調(diào)試過程21

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

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

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

5、格式為BCD碼,計(jì)數(shù)初值為0。(3)、方式2:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。2.硬件總體設(shè)計(jì)2.1系統(tǒng)總成方案該競(jìng)賽搶答器所要器件:可編程并行接口接口芯片8255、可編程定時(shí)器計(jì)數(shù)器8253,三個(gè)一樣的驅(qū)動(dòng)器,黃、紅、綠三個(gè)發(fā)光二極管,十三個(gè)電阻,一個(gè)8輸入與非門,一個(gè)非門,一個(gè)揚(yáng)聲器,一個(gè)LED顯示器,10個(gè)按鍵。2.2內(nèi)存單元編址(1)可編程并行接口接口芯片8255A的端口地址為60H、61H、62H、63H(2) 可編程定時(shí)器計(jì)數(shù)器8253的端口地址為40H、41H、42H、43H(3) 特殊鍵中斷號(hào)為2A-36,對(duì)應(yīng)地址

6、為00A8-00DB本實(shí)驗(yàn)用到數(shù)字鍵1-8,對(duì)應(yīng)的ASCII為31H-38HLED顯示器1-8對(duì)應(yīng)的十六進(jìn)制是:06H,5BH,4FH,66H,6DH,7CH,07H,7FH3.鍵盤、揚(yáng)聲器及顯示功能的定義一個(gè)開始鍵一個(gè)復(fù)位鍵,另外8個(gè)數(shù)字鍵用做8位選手的搶答按鍵。揚(yáng)聲器用與黃、紅、綠三個(gè)發(fā)光二極管配合使用,黃燈亮揚(yáng)聲器鳴叫表示搶答成功,紅燈亮揚(yáng)聲報(bào)警表示搶答違規(guī)報(bào)警,綠燈亮揚(yáng)聲器不鳴則表示主持人已按下開始鍵。LED顯示器顯示的內(nèi)容與選手號(hào)對(duì)應(yīng),搶答成功或違規(guī)都要顯示。4.原理圖4.1硬件原理框圖按鍵設(shè)置82558 2 5 5 8086CPU82538 2 5 4LED燈LED顯 示 模 塊揚(yáng)

7、聲器聲光報(bào)警鍵盤輸入圖14.2 原理連線圖4.3軟件總體設(shè)計(jì)主程序流程圖:開始置標(biāo)志位值為FFH使IF=1開放中斷點(diǎn)亮綠燈關(guān)閉LED顯示器檢測(cè)開始鍵是否彈起檢測(cè)開始鍵是否按下 設(shè)置搶答鍵中斷向量并使IF置1開放中斷對(duì)8259A、8255、8253進(jìn)行初始化設(shè)置LED字形碼初值、標(biāo)志初值開始檢測(cè)復(fù)位鍵是否按下置標(biāo)志位值為FFH使IF=1開放中斷點(diǎn)亮綠燈關(guān)閉LED顯示器檢測(cè)開始鍵是否彈起檢測(cè)開始鍵是否按下 設(shè)置搶答鍵中斷向量并使IF置1開放中斷對(duì)8259A、8255、8253進(jìn)行初始化設(shè)置LED字形碼初值、標(biāo)志初值開始開始設(shè)置LED字形碼初值、標(biāo)志初值設(shè)置LED字形碼初值、標(biāo)志初值對(duì)8255、82

8、53進(jìn)行初始化對(duì)8259A、8255、8253進(jìn)行初始化設(shè)置搶答鍵鍵盤中斷向量并使IF置1開放中斷設(shè)置搶答鍵中斷向量并使IF置1開放中斷檢測(cè)開始鍵是否按下 檢測(cè)開始鍵是否按下 NY檢測(cè)開始鍵是否彈起檢測(cè)開始鍵是否彈起N Y關(guān)閉LED顯示器關(guān)閉LED顯示器點(diǎn)亮綠燈點(diǎn)亮綠燈置標(biāo)志位值為FFH使IF=1開放中斷置標(biāo)志位值為FFH使IF=1開放中斷檢測(cè)復(fù)位鍵是否按下檢測(cè)復(fù)位鍵是否按下N檢測(cè)復(fù)位鍵是否彈起 YN Y關(guān)閉LED顯示器、指示燈將標(biāo)志位清零,使IF=1開入中斷結(jié)束圖3五、硬件設(shè)計(jì)1.可編程并行接口接口芯片8255A的工作方式8255A具有三個(gè)獨(dú)立的輸入/輸出端口,每個(gè)端口的并行數(shù)據(jù)寬度為8位。

9、三個(gè)端口分別為A端口,B端口,C端口,可分別與不同的外設(shè)進(jìn)行數(shù)據(jù)交換,也可聯(lián)合使用,在中斷方式下實(shí)現(xiàn)CPU與外設(shè)間的數(shù)據(jù)傳遞。8255A提供方式0,方式1,方式2三種工作方式供選擇。2.可編程定時(shí)器計(jì)數(shù)器8253的工作方式(1)方式0:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。(2)方式1:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式1即可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。(3)方式2:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。六、軟件設(shè)計(jì)DATASEGMENTB

10、ZDB 00HDATAENDSCODE SEGMENTASSUMEDS:DATA,CS: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計(jì)數(shù)初值為4000 OUT40H,AL MOVAL,40H OUT40H,AL MOV AL,73H;置8253 方式1控制字 OUT43H,AL MOVAL,00H

11、;置8253方式1計(jì)數(shù)初值為3000 OUT41H,AL MOVAL,30H OUT41H,AL MOV AL,0B7H;置8253方式2控制字 OUT43H,AL MOVAL,00H OUT42H,AL MOVAL,00H;置8253方式2計(jì)數(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

12、 AX, OFFSET KKK2 MOV 00AC,AX MOV AX,0000H 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 KKK

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

14、燈亮 OUT62H,AL;送到C口 MOVBZ, 0FFH;置標(biāo)志 STILOP2:INAL,62H;檢測(cè)復(fù)位鍵 TESTAL,10H;檢測(cè)C口的PC4端 JZLOPM ;復(fù)位鍵未按下即PC4=0,則跳轉(zhuǎn)再檢 ;測(cè)開始鍵LOP3:INAL,62H;檢測(cè)復(fù)位鍵是否彈起,即PC4=0 TEST AL,10H JNZ LOP3;位鍵沒有彈起,則重新檢測(cè) MOVAL,00H;關(guān)LED顯示器、指標(biāo)燈 OUT 61H,AL OUT 62H,AL MOVBZ,00H;清標(biāo)志 STI JMPLOPM ;中斷服務(wù)子程序 KKK1:PUSHAX;保護(hù)現(xiàn)場(chǎng) PUSHBX PUSH DX PUSHDS CLI;并使本

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

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

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

18、=0 MOV AL,7FH OUT61H,AL CALL PUBLIC POPDS;恢復(fù)現(xiàn)場(chǎng) POPDX POPBX POPAX IRET PUBLIC:TESTBZ,0FFH;判斷標(biāo)志位是否為FFH JZLOP5 MOVAL,00H;置8253方式2計(jì)數(shù)值 OUT42H,AL MOVAL,10H OUT42H,AL MOVAL,03H;黃燈亮,搶答成功 OUT 62H,AL JMPKKKLOP5:MOV AL,00H;置8253方式2計(jì)數(shù)值 OUT42H,AL MOV AL,20H OUT 42H,AL MOVAL,05H;紅燈亮,搶答違規(guī) OUT62H,AL KKK:MOVAL,20H;中

19、斷結(jié)束;防止中斷重復(fù)響應(yīng) OUT20H,ALCODEENDSENDSTART七、調(diào)試過程(1)在剛開始編程時(shí),各種功能大部分是由主程序來完成的。由于主程序過于復(fù)雜,可讀性不高。使得在以后的程序的調(diào)試中遇到了很大的麻煩。后來把主程序的部分功能轉(zhuǎn)化成子程序來實(shí)現(xiàn),并在一些重要的地方增加了注釋,使的程序的可讀性大大加強(qiáng)。調(diào)試也變的比較簡(jiǎn)單了。到此基本解決了第一個(gè)問題。(2)在編程時(shí),子程序的調(diào)試也是相當(dāng)重要,由于子程序不可避免的使用AXBXCXDX通用寄存器一個(gè)或幾個(gè)。使得原主程序中的通用寄存器的內(nèi)容很容易被覆蓋,對(duì)子程序中所有的通用寄存器出入棧即可以避免上訴的問題,不用考慮使用的是哪幾個(gè)寄存器,使

20、用起來又比較簡(jiǎn)單方便。所以至此這個(gè)問題也已基本解決。(3)調(diào)試是一個(gè)復(fù)雜煩瑣而漫長(zhǎng)的過程。在調(diào)試的過程中一定要耐下心來去做,否則一旦出現(xiàn)煩躁的心里,就會(huì)事倍功半,適得其反。在本次設(shè)計(jì)中出現(xiàn)的主要問題即如上所述,解決方法也如上所述,在今后的軟件調(diào)試過程中更應(yīng)注意如上問題。八、系統(tǒng)操作說明比賽開始,在主持人按下開始鍵,綠燈亮后,選手才可開始搶答,否則違規(guī)。若選手搶答成功,LED顯示器顯示選手號(hào)碼,揚(yáng)聲器鳴叫。若選手搶答違規(guī)(主持人未按開始鍵),LED顯示器顯示違規(guī)選手號(hào)碼,紅燈亮,揚(yáng)聲器報(bào)警。若系統(tǒng)提示某號(hào)選手搶答違規(guī),主持人仍未按開始鍵,此時(shí)該號(hào)選手又按下?lián)尨疰I,LED顯示器顯示該選手的號(hào)碼。本系統(tǒng)開機(jī)后,若主持人既未按復(fù)位鍵又未按開始鍵,此時(shí)有選手按下?lián)尨疰I,系統(tǒng)提示紅燈亮,并報(bào)警。注: 1、搶答成功,置8253方式2計(jì)數(shù)值為1000,揚(yáng)聲器的鳴

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論