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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、0依次對應連接LED顯示器的dp、g、f、e、d、c、b、a七段數(shù)碼管管腳);(2)、C口也必須工作在方式0,高4 位做輸入端口(本次設計中只用PC4、PC5,分別用于連接復位鍵和開始鍵),低4位做輸出端口(PC3PC0,經驅動器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ù)

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

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

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

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

9、三個端口分別為A端口,B端口,C端口,可分別與不同的外設進行數(shù)據(jù)交換,也可聯(lián)合使用,在中斷方式下實現(xiàn)CPU與外設間的數(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。六、軟件設計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計數(shù)初值為4000 OUT40H,AL MOVAL,40H OUT40H,AL MOV AL,73H;置8253 方式1控制字 OUT43H,AL MOVAL,00H

11、;置8253方式1計數(shù)初值為3000 OUT41H,AL MOVAL,30H OUT41H,AL MOV AL,0B7H;置8253方式2控制字 OUT43H,AL MOVAL,00H OUT42H,AL MOVAL,00H;置8253方式2計數(shù)初值為0 OUT42H,AL ;中斷設置 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;檢測開始鍵 TESTAL,20H;檢測C口的PC5端 JZ LOP2;開始鍵未按下即PC5=0,則跳轉檢測 ;復位鍵LOP1:INAL,62H;檢測開始鍵是否已經彈起,即PC5=0 TESTAL,20H JNZ LOP1;開始鍵沒有彈起再重新檢測 MOVAL,00H;關LED顯示器 OUT 61H,AL;送到B口 MOVAL,08H;綠

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

15、次中斷壓入堆棧中的IF=0 MOV AL,06H OUT61H,AL CALL PUBLIC POPDS;恢復現(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;恢復現(xiàn)場 POPDX POPBX POPAX IRET KKK3:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,4FH OUT61H,AL CALL PUBLIC

16、 POPDS;恢復現(xiàn)場 POPDX POPBX POPAX IRET KKK4:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,66H OUT61H,AL CALL PUBLIC POPDS;恢復現(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;恢復現(xiàn)場 POPDX POPBX POPAX IRET KKK6:PUSHAX

17、;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF=0 MOV AL,7CH OUT61H,AL CALL PUBLIC POPDS;恢復現(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;恢復現(xiàn)場 POPDX POPBX POPAX IRET KKK8:PUSHAX;保護現(xiàn)場 PUSHBX PUSH DX PUSHDS CLI;并使本次中斷壓入堆棧中的IF

18、=0 MOV AL,7FH OUT61H,AL CALL PUBLIC POPDS;恢復現(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;中

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論