微機(jī)課程設(shè)計(jì)--搶答計(jì)時(shí)器_第1頁
微機(jī)課程設(shè)計(jì)--搶答計(jì)時(shí)器_第2頁
微機(jī)課程設(shè)計(jì)--搶答計(jì)時(shí)器_第3頁
微機(jī)課程設(shè)計(jì)--搶答計(jì)時(shí)器_第4頁
微機(jī)課程設(shè)計(jì)--搶答計(jì)時(shí)器_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、東南大學(xué)自動(dòng)化學(xué)院微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)專業(yè)綜合設(shè)計(jì)報(bào)告姓 名: XXX 學(xué) 號(hào): xxxxxxxx 專 業(yè): XXX 實(shí) 驗(yàn) 室: 516 組 別: 同組人員: XXX 設(shè)計(jì)時(shí)間: 2011年 9月 19日 2011年 10月 17日評(píng)定成績(jī): 審閱教師: 目 錄一專業(yè)綜合設(shè)計(jì)的目的與要求2二原理設(shè)計(jì)3三方案論證4四方案實(shí)現(xiàn)與測(cè)試8五分析與總結(jié)9附錄11一. 專業(yè)綜合設(shè)計(jì)的目的與要求1、課程設(shè)計(jì)目的(1)深入理解與運(yùn)用匯編語言進(jìn)行程序設(shè)計(jì),加強(qiáng)對(duì)指令的靈活調(diào)用,以完成特定的課程設(shè)計(jì)課題要求;(2)將匯編程序設(shè)計(jì)與微機(jī)接口的連接相結(jié)合,從硬件角度深入理解與運(yùn)用8255的并行輸入輸出功能;(3)通過

2、對(duì)實(shí)際應(yīng)用中的問題分析解剖,細(xì)化為一個(gè)個(gè)小功能,分別構(gòu)造微機(jī)實(shí)驗(yàn)的模型。(4)加強(qiáng)團(tuán)隊(duì)內(nèi)部隊(duì)員交流、合作的能力,增強(qiáng)合作意識(shí)。2、課程設(shè)計(jì)的指標(biāo)和要求搶答反應(yīng)測(cè)試儀1)基本要求 (難度系數(shù)1.0)設(shè)計(jì)一個(gè)用于智力競(jìng)賽的搶答計(jì)時(shí)器,同時(shí)能測(cè)試人的反應(yīng)時(shí)間。按啟動(dòng)鈕,測(cè)試開始,2 個(gè)八段碼倒計(jì)時(shí)開始(如從10 秒或20 秒倒計(jì)時(shí)),在隨機(jī)時(shí)間的內(nèi)點(diǎn)亮搶答允許燈,參賽雙方(或三方)分別按各自的搶答按鈕參與搶答。一旦其中一位按下按鈕,相應(yīng)的LED 顯示燈亮并響“嘟”的一聲,此時(shí)若其它按鈕按下均無效。若一直計(jì)數(shù)到零,無一人按下按鈕,則搶答結(jié)束(以后再按搶答鈕無效)。按測(cè)試鈕,在PC 機(jī)上顯示反應(yīng)時(shí)間XX

3、.XX 秒。要求:(1) 編制1 個(gè)隨機(jī)數(shù)產(chǎn)生子程序,由隨機(jī)數(shù)決定從按啟動(dòng)鈕到點(diǎn)亮搶答允許燈的時(shí)間(如在3 秒15 秒之間內(nèi)任意變動(dòng)),使被測(cè)試者對(duì)LED 亮的時(shí)間無法預(yù)見,以確保測(cè)試結(jié)果的可信;(2) 必須在見到LED 亮后按測(cè)試鈕才有效,即一直按著按鈕或提前按下按鈕無效;(3) 反應(yīng)時(shí)間顯示XX.XX 秒,準(zhǔn)確到百分之一秒。2)設(shè)計(jì)提示(1) 為確保從每次按啟動(dòng)按鈕到LED 亮?xí)r間是不同的(真正隨機(jī)變化的),一開始可隨機(jī)讀取某100個(gè)RAM 單元值求和作為初始值,以后由測(cè)試到的反應(yīng)時(shí)間作為下一個(gè)隨機(jī)初始值;(2) 搶答允許燈亮后立即檢測(cè)搶答按鈕狀態(tài),若未按下有效(若已按下無效),然后不斷掃

4、描按鈕狀態(tài),直到有按下代表“響應(yīng)”動(dòng)作。3)進(jìn)一步設(shè)計(jì)要求(1)用88 點(diǎn)陣顯示反應(yīng)時(shí)間XX.XX 秒(用紅色代表秒, 綠色代表0.01 秒,交替顯示);(2)在倒計(jì)時(shí)過程中附音樂伴奏;(3)增加測(cè)試功能,測(cè)試人對(duì)不同事物的反應(yīng)(響應(yīng))時(shí)間。功能要求:按啟動(dòng)鈕,測(cè)試開始,一旦紅燈亮,立即按紅燈測(cè)試鈕,一旦綠燈亮,立即按綠燈測(cè)試鈕,但黃燈亮為干擾。若按錯(cuò)鈕,則顯示出錯(cuò)并響“嘟”一聲。編制2 個(gè)隨機(jī)數(shù)產(chǎn)生子程序,一個(gè)決定從按啟動(dòng)鈕到LED 亮的時(shí)間,另一個(gè)決定亮何種顏色燈。二. 原理設(shè)計(jì)實(shí)驗(yàn)主要使用到8253和8255兩塊芯片。1、主體設(shè)計(jì)輸入為一系列開關(guān)量和時(shí)鐘,輸出為數(shù)碼管的7段碼和LED顯示

5、以及計(jì)算機(jī)屏幕信息。本次實(shí)驗(yàn)使用8253和8255來實(shí)現(xiàn)搶答的功能,并且來測(cè)試選手的反應(yīng)時(shí)間。數(shù)碼管用于倒計(jì)時(shí),LED燈來顯示允許搶答以及選手對(duì)應(yīng)的搶答燈,乒乓按鈕則用于主持人的各種操作和兩位選手的搶答。2、隨機(jī)數(shù)的產(chǎn)生為了使測(cè)試者對(duì)LED亮的時(shí)間無法預(yù)見,確保測(cè)試結(jié)果的可信性,程序使用隨機(jī)數(shù)(在3 秒15 秒之間內(nèi)任意變動(dòng))來確定按下啟動(dòng)鈕到點(diǎn)亮搶答允許燈的時(shí)間。為確保從每次按啟動(dòng)按鈕到LED 亮?xí)r間是不同的(真正隨機(jī)變化的),一開始可隨機(jī)讀取某100個(gè)RAM 單元值求和作為初始值,以后由測(cè)試到的反應(yīng)時(shí)間作為下一個(gè)隨機(jī)初始值。3、倒計(jì)時(shí)倒計(jì)時(shí)從20S開始,程序使用面板上的1MHZ脈沖,利用8

6、253進(jìn)行 10000分頻得到0.01S的基本計(jì)數(shù)脈沖,然后利用計(jì)數(shù)器計(jì)數(shù),例如計(jì)到N個(gè)脈沖,則反應(yīng)時(shí)間為(2000-N)*0.01S,取前兩位用于數(shù)碼管顯示倒計(jì)時(shí),單位為S。4、數(shù)碼管顯示倒計(jì)時(shí)預(yù)置數(shù)碼管斷碼:LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共陰七段碼由于倒計(jì)時(shí)需使用兩位數(shù)碼管,故程序中將實(shí)現(xiàn)數(shù)碼管的動(dòng)態(tài)顯示,電路參考實(shí)驗(yàn)書中的動(dòng)態(tài)顯示模塊,通過8255的輸出口C口的C0、C1控制數(shù)碼管的亮滅,將計(jì)數(shù)得到的整數(shù)時(shí)間逐個(gè)顯示出來。5、PC機(jī)顯示反應(yīng)時(shí)間在檢測(cè)到測(cè)試牛按下后調(diào)用存在某內(nèi)存中的反應(yīng)時(shí)間進(jìn)行顯示即可。主持人按下?lián)尨鹪试S鍵

7、則數(shù)碼管開始從20倒計(jì)時(shí),一段隨機(jī)時(shí)間后,搶答允許燈亮,開始搶答,搶答到的選手對(duì)應(yīng)的搶答燈亮,并且其他人不可以再做搶答。這是主持人再按下讀數(shù)按鈕,則在PC機(jī)上顯示該選手的反應(yīng)時(shí)間。三. 方案論證1、系統(tǒng)實(shí)現(xiàn)硬件電路圖連接如圖2所示圖2 硬件連線圖8255設(shè)置為A口輸入,BC口輸出工作方式,A口檢測(cè)按鍵狀態(tài)。倒計(jì)時(shí)采用8253三個(gè)計(jì)數(shù)器級(jí)聯(lián)方式,計(jì)數(shù)器0接實(shí)驗(yàn)箱上1MHZ脈沖,從計(jì)數(shù)器2的OUT端口輸出1HZ時(shí)鐘,設(shè)其初值為20,則從20開始倒計(jì)時(shí),從而用硬件實(shí)現(xiàn)倒計(jì)時(shí)功能。2、程序流程圖圖1 程序流程圖3、重要模塊(1)倒計(jì)時(shí) 8253的計(jì)數(shù)器0接實(shí)驗(yàn)箱上1MHZ脈沖,設(shè)初值為1000,工作方

8、式為2,OUT0產(chǎn)生頻率1KHZ低脈沖;OUT0接計(jì)數(shù)器1時(shí)鐘端,初值設(shè)為1000,工作方式為2,OUT1產(chǎn)生頻率為1HZ的第脈沖,所以計(jì)數(shù)器1表示倒計(jì)時(shí)MS;OUT1接計(jì)數(shù)器2時(shí)鐘端,初值設(shè)為20,工作方式設(shè)為2,實(shí)現(xiàn)20秒倒計(jì)時(shí)功能。 MOV DX , P8253M ; 8253初始化 MOV AL , 00111100B ;8253 CNT0=10000 方式2 B OUT DX , ALMOVAX , 1000 ;賦初值 MOV DX , P8253A OUT DX , AL MOVAL , AH OUTDX , AL MOV DX , P8253M MOV AL , 01011101

9、B ; CNT1=100 方式2 OUT DX , ALMOVAL , 1000 MOV DX , P8253B OUT DX , AL MOV DX , P8253M MOV AL , 10011101B ; CNT2=20 方式2 D OUT DX , ALMOVAL , 20H ;數(shù)碼管顯示初值為20 MOV DX , P8253C OUT DX , AL(2)隨機(jī)數(shù)產(chǎn)生為確保從每次按啟動(dòng)鍵到LED燈點(diǎn)亮的時(shí)間是不同的,一開始可隨機(jī)讀取某100個(gè)RAM單元值求和作為初始值,這可以通過設(shè)置一個(gè)RANDOM變量,在程序初始化部分調(diào)用隨機(jī)數(shù)產(chǎn)生子程序RAND給其賦值實(shí)現(xiàn):PRORAND PRO

10、CPUSH CXPUSH SIMOV CX , 100MOV SI , 34HADDR: XOR AL,ALMOV AL , SIADDRANDOM , ALINC SILOOPADDRAND RANDOM 07HPOPSIPOPCXRETPRORAND ENDP(3)反應(yīng)時(shí)間的計(jì)算在點(diǎn)亮搶答允許燈前提取當(dāng)前時(shí)間,記錄為START_S , START_MS 。在檢測(cè)到有選手搶答后,再次提取當(dāng)前時(shí)間,記錄為END_S,END_MS。兩次相減,考慮邊界條件,則得到反應(yīng)時(shí)間 REACT_S,REACT_MS。按測(cè)試鍵,再將反應(yīng)時(shí)間顯示在屏幕上。;取當(dāng)前時(shí)間MOVDX , P8253CINAL ,DX

11、MOVAH , ALMOVC_TIME , AL AND AL , 0FH MOVLEDL , AL MOVCL , 4RORAH , CLANDAH , 0FHMOVLEDH , AH;DOS功能調(diào)用取點(diǎn)亮搶答燈時(shí)的精確時(shí)間 用于計(jì)算反應(yīng)時(shí)間PUSH CX PUSH DX MOVAH , 2CH INT21H MOVSTART_S , DHMOVSTART_MS , DLPOPDX POPCX;計(jì)算反應(yīng)時(shí)間MOVAL,END_S MOVREACT_S , ALMOVAL , START_SSUBREACT_S , ALMOVAL,END_MSMOV REACT_MS , ALADD REAC

12、T_MS , 100DEC REACT_SMOVAL , START_MSSUBREACT_MS , ALCMP REACT_MS , 100JL NDEALSUBREACT_MS , 100INC REACT_S(4)搶答時(shí)“嘟”的響聲INT 21H的功能號(hào)02H 功能描述:響鈴。入口參數(shù):AH02H。通過DL輸入ASCII碼為07。本程序用這個(gè)中斷響鈴。MOV DL,7 ;響鈴 ASCII碼為07MOV AH,2INT 21H(5)使搶答按鍵在搶答允許燈亮后按下才有效設(shè)置ENABLEA、ENABLEB變量表示選手有無搶答,如果搶答則屏蔽其答題信息。首先在搶答允許燈亮之前使其值賦0。在點(diǎn)亮搶

13、答燈后立即(下一行程序)檢測(cè)按鍵狀態(tài),如果此時(shí)A鍵為1,則說明A提前按鍵了,跳過檢測(cè)B,否則使其賦1,表示沒有提前按鍵。同理檢測(cè)B有無提前。在檢測(cè)A、B誰先搶答前,要先判斷對(duì)應(yīng)的ENABLE值,如果為1,則繼續(xù)檢測(cè)A鍵是否為1,否則跳過再次循環(huán)檢測(cè)。四. 方案實(shí)現(xiàn)與測(cè)試調(diào)試分硬件調(diào)試和軟件調(diào)試,在實(shí)驗(yàn)時(shí),應(yīng)先進(jìn)行硬件調(diào)試,確保試驗(yàn)箱、各個(gè)芯片、連線均完好,在進(jìn)行軟件調(diào)試。硬件調(diào)試可通過一個(gè)簡(jiǎn)單的方法進(jìn)行:選取一個(gè)以前實(shí)驗(yàn)調(diào)試好的標(biāo)準(zhǔn)程序運(yùn)行,所選程序要用到本次試驗(yàn)用到的各個(gè)部件(8255各口,8253各口,280和288口),觀察運(yùn)行結(jié)果是否正常,如果正確,基本上說明硬件完好。也可DEBUG相

14、關(guān)指令測(cè)試各個(gè)部件。軟件調(diào)試可以使用TD單步跟蹤,但是在前期這樣很浪費(fèi)時(shí)間,前期最好分模塊進(jìn)行調(diào)試,將每個(gè)小功能分別寫成一個(gè)程序,一個(gè)一個(gè)調(diào)試,調(diào)試小程序較為簡(jiǎn)單。確保每個(gè)模塊均能實(shí)現(xiàn)相應(yīng)功能的前提下,用“滾雪球”的方式,將他們拼起來。在調(diào)試拼接程序時(shí)盡量不要改每個(gè)模塊內(nèi)部代碼,因?yàn)樽钣锌赡艿膯栴}是時(shí)序和跳轉(zhuǎn)關(guān)系的問題。如果還是有問題,就可以用TD跟蹤。測(cè)試方案及結(jié)果如下表所示:測(cè)試方案實(shí)驗(yàn)結(jié)果主持人按搶答允許(START)數(shù)碼管開始倒計(jì)時(shí), 倒計(jì)時(shí)至系統(tǒng)產(chǎn)生的一個(gè)隨機(jī)數(shù),搶答允許燈亮選手搶答搶答燈亮,并響“嘟”的一聲主持人按下讀數(shù)件PC機(jī)顯示反應(yīng)時(shí)間主持人按復(fù)位鍵開始新一輪的搶答按ESC退出

15、搶答狀態(tài)由上面的測(cè)試方案及結(jié)果可得:設(shè)計(jì)的程序符合課程設(shè)計(jì)的要求。五分析與總結(jié)1、分析這個(gè)實(shí)驗(yàn)僅完成了基礎(chǔ)實(shí)驗(yàn)的部分,還可以通過改進(jìn)實(shí)現(xiàn)更多的功能。但是由于時(shí)間的問題就沒能完成進(jìn)一步設(shè)計(jì)要求。時(shí)候?qū)嶒?yàn)只能進(jìn)行一次搶答,通過做了一些其它的修改終于可以進(jìn)行多次搶答。由于程序框架設(shè)計(jì)的問題,程序的跳轉(zhuǎn)關(guān)系看起來有一些混亂。雖然,我僅僅完成了實(shí)驗(yàn)的基本要求,但是,我覺得自己已經(jīng)學(xué)到了很多。2、總結(jié)這個(gè)課程設(shè)計(jì)實(shí)驗(yàn)的驗(yàn)收,意味著微機(jī)系統(tǒng)與接口這門課程的結(jié)束。通過這門課程的學(xué)習(xí),我對(duì)硬件設(shè)計(jì)有了一個(gè)較為系統(tǒng)的認(rèn)識(shí)。而實(shí)驗(yàn)課程的安排則讓我們對(duì)抽象理論知識(shí)有了一個(gè)更為直觀的認(rèn)識(shí),也幫助我們加深了對(duì)這門課程的理

16、解。之前的小實(shí)驗(yàn)我們緊緊是完成一些簡(jiǎn)單的輸入輸出、中斷、一些芯片的使用、A/D及D/A轉(zhuǎn)換等待,而這次實(shí)驗(yàn)將以前的小實(shí)驗(yàn)結(jié)合并且加以修改,則實(shí)現(xiàn)了許多可以在現(xiàn)實(shí)生活中應(yīng)用的程序。雖然實(shí)驗(yàn)的過程中遇到了一些問題,很多從未見過的問題都不知道該怎么解決,但是通過查閱書籍與其他同學(xué)的交流,最終還是克服了這些問題,完成了這個(gè)實(shí)驗(yàn)。程序并不完美,還有許多可以加以修改的地方,但是在實(shí)驗(yàn)的過程中學(xué)到了很多知識(shí),并且弄明白了一些以前一直并不十分理解的問題。并且,通過本次設(shè)計(jì)實(shí)驗(yàn),我基本掌握了軟硬件調(diào)試問題,從硬件角度深入理解與運(yùn)用8255的并行輸入輸出功能。同時(shí)這次課程設(shè)計(jì)也讓我體會(huì)到團(tuán)隊(duì)合作的重要性和在已有的

17、學(xué)習(xí)實(shí)驗(yàn)任務(wù)重的情況下如何合理安排時(shí)間和協(xié)調(diào)組員工作進(jìn)度的重要性。總之,這次綜合設(shè)計(jì)實(shí)驗(yàn)讓我收獲很多。參考書目:1 楊素行微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用,北京,清華大學(xué)出版社,2004年2 微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)教程(試用版3.0),東南大學(xué)微機(jī)系統(tǒng)與接口課程組,2010年3月附錄DATA SEGMENTMESS1 DB *,0AH,0DH DB * QIANG DA QI *,0AH,0DH DB * 08009313 08009303 *,0AH,0DH DB * DU CONGYUAN WO YINGGE *,0AH,0DH DB *,0AH,0DH,$IOPORT EQU 0EC00H-280H

18、P8255A EQU IOPORT+288H;開關(guān)輸入P8255B EQUIOPORT+289HP8255CEQU IOPORT+28AHP8255M EQUIOPORT+28BHIO0832 EQU IOPORT+298HP8253AEQUIOPORT+280HP8253B EQUIOPORT+281HP8253C EQUIOPORT+282HP8253M EQUIOPORT+283HLED7EQUIOPORT+289H ;接數(shù)碼管七段輸入LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;共陰七段碼START_S DB ?START_MS DB?

19、END_SDB?END_MSDB?REACT_S DB 0REACT_MS DB ?LEDHDB?LEDLDB?RANDOMDB0 C_TIMEDB?ENABLEADB?ENABLEBDB?DATA ENDSSTACKSSEGMENT STACKDB100 DUP(?)STACKSENDSCODE SEGMENTASSUME CS:CODE , DS:DATA,SS:STACKSSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,09H MOV DX,OFFSET MESS1 ;顯示提示信息 INT 21H MOV AX , DATA MOV DS ,

20、AX MOV AX , STACKS MOVSS , AX MOVDX , P8255M ;8255初始化 MOV AL , 90H ;初始化8255控制字 A口輸入,B、C輸出 OUT DX , AL MOV DX , P8253M ;8253初始化 MOV AL , 00111100B ;8253 CNT0=10000 方式2 B OUT DX , ALMOVAX , 10000;賦初值 MOV DX , P8253A OUT DX , AL MOVAL , AH OUTDX , AL MOV DX , P8253M MOV AL , 01011101B ;8253 CNT1=100 方式

21、2 D OUT DX , ALMOVAL , 100 MOV DX , P8253B OUT DX , AL MOV DX , P8253M MOV AL , 10011101B ;8253 CNT2=20 方式2 D OUT DX , ALMOVAL , 20H MOV DX , P8253C OUT DX , AL CALL PRORAND ;產(chǎn)生初始隨機(jī)數(shù)WAIT_FOR_START : MOVAL , 00000110B MOVDX , P8255M OUTDX , ALMOVAL , 00001000B MOVDX , P8255M OUTDX , ALMOVAL , 0000110

22、0B MOVDX , P8255M OUTDX , ALMOVAL , 00001010B MOVDX , P8255M OUTDX , AL MOVAL , 0;7段LED滅 MOVDX , LED7 OUTDX , AL MOVAL , 00000100B MOVDX , P8255M OUTDX , AL;關(guān)斷7段MOVAL , 00000000B; 數(shù)字低位MOVDX , P8255M OUTDX , ALMOVAL , 00000010B ;數(shù)字高位MOVDX , P8255M OUTDX , AL MOV DX , P8255A IN AL , DX TEST AL , 01H ;

23、判斷主持人開關(guān)是復(fù)位還是啟動(dòng) JZ WAIT_FOR_START ;按下啟動(dòng)鈕MOVAL , 00000111B MOVDX , P8255M OUTDX , AL;開始計(jì)數(shù);C2-GATE0,1,2MOVAL , 00000101B MOVDX , P8255M OUTDX , ALSTART_GAME : MOV DX , P8255A IN AL , DX TEST AL , 01H ;判斷主持人開關(guān)是復(fù)位還是啟動(dòng)JZ WAIT_FOR_START;按下啟動(dòng)鈕取當(dāng)前時(shí)間MOVDX , P8253CINAL ,DXMOVAH , ALMOVC_TIME , AL AND AL , 0FH

24、MOVLEDL , AL MOVCL , 4RORAH , CLANDAH , 0FHMOVLEDH , AH ;動(dòng)態(tài)顯示7段MOV BL , LEDHMOV BH , 0LEA SI , LEDADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL;開啟CS0MOVAL , 0000001B MOVDX , P8255M OUTDX , ALCALLDELAY;延時(shí)一點(diǎn) ;關(guān)閉CS0MOVAL , 00000000B MOVDX , P8255M OUTDX , ALMOV BL , LEDLMOV BH , 0LEA SI , LED

25、ADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL ;開啟CS1MOVAL , 00000011B MOVDX , P8255M OUTDX , ALCALLDELAY;延時(shí)一點(diǎn);關(guān)閉CS1MOVAL , 00000010B MOVDX , P8255M OUTDX , AL MOVENABLEA , 0 ;屏蔽先搶答行為 MOVENABLEB , 0 MOVBL , C_TIME SUB BL , 20NEG BL ;求 20-BL MOVDL , RANDOM CMPBL , DL ;是否到了點(diǎn)亮搶答燈的時(shí)間 JGLIGHT1 J

26、MPSTART_GAME LIGHT1: PUSH CX ;DOS功能調(diào)用取點(diǎn)亮搶答燈時(shí)的精確時(shí)間 用于計(jì)算反應(yīng)時(shí)間 PUSH DX MOVAH , 2CH INT21H MOVSTART_S , DH MOVSTART_MS , DL POPDX POPCXLIGHT:MOVAL , 00001001B MOVDX , P8255M OUTDX , ALMOVDX , P8255A ;檢測(cè)開關(guān)狀態(tài)INAL , DX TESTAL , 01000000B;如果燈亮的時(shí)候是沒有按下就開啟搶答使能JNZNEXT1MOVENABLEA , 1NEXT1: TESTAL , 00100000B JNZ

27、NEXT2MOVENABLEB , 1NEXT2:CMPENABLEA , 1;如果搶答使能而且按下了搶答鍵JNENEXTBTEST AL , 01000000BJZNEXTBMOVAL , 00001101B ;點(diǎn)亮A搶答燈MOVDX , P8255M OUTDX , AL MOV DL,7 ;響鈴 ASCII碼為07MOV AH,2INT 21HJMPQUITNEXTB:CMPENABLEB , 1JNENEXT;B搶到了,亮L7TEST AL , 00100000BJZNEXTMOVAL , 00001111B ;點(diǎn)亮B搶答燈MOVDX , P8255M OUTDX , AL MOV D

28、L,7 ;響鈴 ASCII碼為07MOV AH,2INT 21HJMPQUITSKIP1: JMP WAIT_FOR_START;跳板NEXT:;A、B都搶答無效或A、B都沒搶答 MOV DX , P8255A IN AL , DX TEST AL , 01H ;判斷主持人開關(guān)是復(fù)位還是啟動(dòng) JZ SKIP1;取當(dāng)前時(shí)間MOVDX , P8253CINAL ,DXMOVAH , ALMOVC_TIME , AL AND AL , 0FH MOVLEDL , AL MOVCL , 4RORAH , CLANDAH , 0FHMOVLEDH , AH ;7段燈掃描不能停止MOV BL , LEDH

29、MOV BH , 0LEA SI , LEDADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL;開啟CS0MOVAL , 0000001B MOVDX , P8255M OUTDX , ALCALLDELAY;延時(shí)一點(diǎn) ;關(guān)閉CS0MOVAL , 00000000B MOVDX , P8255M OUTDX , ALMOV BL , LEDLMOV BH , 0LEA SI , LEDADD SI , BXMOV AL , BYTE PTR SIMOV DX , LED7OUT DX , AL ;開啟CS1MOVAL , 000000

30、11B MOVDX , P8255M OUTDX , ALCALLDELAY;延時(shí)一點(diǎn);關(guān)閉CS1MOVAL , 00000010B MOVDX , P8255M OUTDX , ALJMPLIGHT;繼續(xù)檢測(cè)按鍵,是否有人搶答QUIT:PUSH CX PUSHDX MOVAH , 2CH INT21H MOVEND_S , DHMOVEND_MS , DLPOPDX POPCXMOV AL,END_S ;計(jì)算反應(yīng)時(shí)間MOV REACT_S , ALMOV AL , START_SSUB REACT_S , ALMOV AL,END_MSMOV REACT_MS , ALADD REACT_MS , 100DEC REACT_SMOV AL , START_MSSUB REACT_MS , ALCMP REACT_MS , 100JL NDEALSUB REACT_MS , 100INC REACT_SNDEAL:MOVDX , P8

溫馨提示

  • 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)論