版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 前言</b></p><p><b> 課程設(shè)計的意義</b></p><p> 微機原理是計算機、電子類專業(yè)的專業(yè)基礎(chǔ)課,在課程體系種占有重要的位置。課程設(shè)計的目的是配合平時的教學和實驗,以達到鞏固和消化課堂教學內(nèi)容,進一步加強綜合應用能力,啟發(fā)創(chuàng)新思維的目的。是培養(yǎng)學生綜合素質(zhì),提高動手能力,提高發(fā)現(xiàn)問題和解
2、決問題能力的重要階段。</p><p> 通過課程設(shè)計培養(yǎng)同學們的系統(tǒng)設(shè)計能力,使同學們達到以下能力訓練:</p><p> ?、拧⒄{(diào)查研究、分析問題的能力;</p><p> ?、?、使用設(shè)計手冊、技術(shù)規(guī)范的能力;</p><p> ?、恰⒉殚喼型馕墨I的能力;</p><p> ⑷、制定設(shè)計方案的能力;</p
3、><p> ⑸、計算機應用的能力;</p><p> ?、?、設(shè)計計算和繪圖的能力;</p><p> ?、恕⒓夹g(shù)經(jīng)濟指標的分析能力;</p><p> ⑻、語言文字表達的能力。</p><p><b> 目錄</b></p><p> 課程設(shè)計任務書…………………………
4、……………………………3</p><p><b> 正文</b></p><p> 一、總體設(shè)計…………………………………………………………4</p><p><b> 二、硬件設(shè)計</b></p><p> 1、硬件總體設(shè)計………………………………………………6</p>&l
5、t;p> 2、芯片使用情況………………………………………………8</p><p> 3、芯片連接……………………………………………………14</p><p><b> 三、軟件設(shè)計</b></p><p> 1、標志位含義…………………………………………………15</p><p> 2、程序流程圖…………
6、………………………………………16</p><p> 四、總結(jié) ……………………………………………………………21</p><p> 參考文獻 ……………………………………………………………23</p><p> 課程設(shè)計圖紙 ………………………………………………………24</p><p> 程序清單 …………………………………………
7、…………………25</p><p><b> 課程設(shè)計任務書</b></p><p> 具有4路搶答的搶答器,啟動計算機,計算機自動為系統(tǒng)各</p><p> 芯片進行初始化,搶答器開始工作。</p><p><b> 基本要求:</b></p><p> (1)可
8、供4組同時搶答,由按鈕控制。</p><p> ?。?)比賽開始,在主持人按下開始鍵,綠燈亮后,選手才可開始搶答,否則違規(guī)。</p><p> (3)能顯示出最先搶答的組號,而對其他組的搶答不予理睬,黃燈亮并揚聲器提示搶答成功。</p><p> ?。?)對主持人未曾按啟動鍵之前就按搶答按鍵的犯規(guī)組,顯示其組號,亮紅燈并揚聲器提示警告。</p>&l
9、t;p> ?。?)對搶答后的回答時間25秒進行倒計時控制,如回答超時,則</p><p><b> 以揚聲器報警。</b></p><p><b> 注:</b></p><p> 1、搶答成功,揚聲器的鳴叫聲音頻率為1KHz。</p><p> 2、搶答失敗,揚聲器的鳴叫聲音頻率為0
10、.5KHz。</p><p> 3、搶答計時時間到,揚聲器的鳴叫頻率為0.75KHz.</p><p> 4、聲器鳴叫或報警的時間為12s。</p><p><b> 總體設(shè)計</b></p><p> 比賽開始,在主持人按下開始鍵,綠燈亮后,選手才可開始搶答,否則違規(guī)。利用并行接口和開關(guān)鍵。邏輯開關(guān)K0——K3
11、代表搶答按鈕,當某個邏輯開關(guān)閉合時,相當于搶答按鈕按下。若選手搶答成功,黃燈亮,七段數(shù)碼管顯示選手號碼,揚聲器鳴叫。若選手搶答違規(guī)(主持人未按開始鍵),七段數(shù)碼管顯示違規(guī)選手號碼,紅燈亮,揚聲器報警。</p><p> 若系統(tǒng)提示某號選手搶答違規(guī),主持人仍未按開始鍵,此時該號選手又按下?lián)尨疰I,七段數(shù)碼管顯示該選手的號碼。本系統(tǒng)開機后,若主持人既未按復位鍵又未按開始鍵,此時有選手按下?lián)尨疰I,系統(tǒng)提示紅燈亮,并報警
12、。</p><p> 由于本次實驗要用到數(shù)碼顯示、中斷控制、倒計時等功能,故初步分析,需要8255、8259、8253(或8254)等芯片。</p><p> 經(jīng)過分析,實驗的關(guān)鍵是準確判斷出最先搶答者的信號并鎖存,而同時不理睬其他搶答者的信號。為此,可將4個搶答按鈕信號通過一個8位并行輸入口接至微機中。當主持人啟動搶答過程后,微機通過該并行輸入口對4路搶答信號進行采樣,并作檢測。&l
13、t;/p><p> 開關(guān)接通時為高電平,當4組均未按下?lián)尨鸢粹o時,送入到并行接口的8位搶答狀態(tài)都是0,而當微機采樣到這8位數(shù)據(jù)不為0時,則表示有一組獲得了搶答機會,然后通過比較查詢,即可判斷出哪一組搶答成功,最后利用并行輸出接口將搶答成功的組號現(xiàn)實出來。在實驗中,可以僅用一位7段數(shù)碼管來顯示搶答選手的組號。顯示組號同時,調(diào)用揚聲器發(fā)出提示音。</p><p> 為了對搶答后的回答時間進行計
14、時控制,可以利用一個可編程定時計時器,先置計數(shù)初值,再計時,當計時時間到后,由并行接口輸出一個響鈴信號提示搶答選手的回答時間已到。響鈴信號同樣需要有計時器控制響鈴時間和聲音頻率。</p><p> 由于本系統(tǒng)要求對犯規(guī)的組亮紅燈警告,所以要設(shè)置一個啟動按鍵,啟動鍵信號可由并行輸入接口輸入。在主持人按下啟動按鍵之前,如果有搶答鈕被按下,則該搶答選手犯規(guī),可以通過并行接口輸出一個信號使該組的紅色發(fā)光二級管點亮以示該
15、組選手犯規(guī)。</p><p><b> 硬件設(shè)計</b></p><p><b> 一、硬件總體設(shè)計</b></p><p> 1、硬件電路設(shè)計結(jié)構(gòu)示意圖</p><p><b> 2、系統(tǒng)方案</b></p><p> 該搶答器所要器件:中斷
16、優(yōu)先級管理器8259A、可編程并行接口芯片8255、可編程定時器/計數(shù)器8254,黃、紅、綠三個發(fā)光二極管,若干個多輸入端的與非門,一個揚聲器,一個LED數(shù)碼顯示器,6個按鍵以及其他基本電路元件。本設(shè)計中使用了更通用的8354代替了8253。</p><p><b> 3、內(nèi)存單元編址</b></p><p> 本設(shè)計按照一般微機原理實驗的習慣,事先給主要芯片編好
17、端口地址,便于編程,譯碼電路連接時按下面地址連線。</p><p> ?、僦袛鄡?yōu)先級管理器8259A的端口地址為20H、21H;</p><p> ②可編程并行接口接口芯片8255A的端口地址為80H、81H、82H、83H;</p><p> ③可編程定時器/計數(shù)器8254的端口地址為40H、41H、42H、43H</p><p>
18、4、鍵盤、揚聲器及顯示功能的定義</p><p> 6個按鍵中,一個開始鍵一個復位鍵,另外4個用做8位選手的搶答按鍵。揚聲器用與黃、紅、綠三個發(fā)光二極管配合使用,黃燈亮揚聲器鳴叫表示搶答成功,紅燈亮揚聲報警表示搶答違規(guī)報警,綠燈亮揚聲器不鳴則表示主持人已按下開始鍵。LED顯示器顯示的內(nèi)容與選手號對應,搶答成功或違規(guī)都要顯示。搶答成功后黃燈熄滅,開始計時。</p><p><b>
19、; 二、芯片使用情況</b></p><p> 1、中斷優(yōu)先級管理器8259A</p><p> ?。?)8259A主要的外部引腳</p><p> D0~D7:雙向數(shù)據(jù)線,CPU與8259間利用這個數(shù)據(jù)總路線傳送數(shù)據(jù)及命令。</p><p> ?。簩懣刂戚斎胄盘?,同控制總路線上的 信號相連。</p><
20、p> ?。鹤x控制輸入信號,同控制總路線上的信號相連。</p><p> A0:地址選擇信號,用來對8259A內(nèi)部的兩個可編程寄存器進行選擇。</p><p> :片選輸入信號,低電平有效。有郊時可通過數(shù)據(jù)總路線設(shè)置命令并對內(nèi)部寄存器進行讀出。當進入中斷響應時序時,該引腳狀態(tài)與進行的處理無關(guān)。</p><p> INT:由8259A向CPU發(fā)出的中斷請求信
21、號。</p><p> :輸入信號,接收CPU送來的中斷響應信號INTA。</p><p> IR0~IR7:8個中斷請求輸入信號,高電平或上升沿有效。用于接收外設(shè)接口來的中斷請求。</p><p> ?。?)8259A工作方式</p><p> a.優(yōu)先級設(shè)置方式:全嵌套方式(固定優(yōu)先級方式)、特殊全嵌套方式(可響應同級中斷方式)、輪
22、轉(zhuǎn)優(yōu)先級方式、特殊輪轉(zhuǎn)優(yōu)先級方式。</p><p> b.中斷源屏蔽方式:普通屏蔽方式、特殊屏蔽方式。</p><p> c.中斷結(jié)束方式:中斷自動結(jié)束方式、中斷非自動結(jié)束方式(包括一般中斷結(jié)束方式、特殊中斷結(jié)束方式)。</p><p> e.系統(tǒng)總路線連接方式:緩沖方式、非緩沖方式。</p><p> f.中斷請求信號觸發(fā)方式:邊沿
23、觸發(fā)方式、電平觸發(fā)方式。</p><p> (3)8259A初始化控制字格式</p><p> (4)8259A操作命令字格式</p><p> (5)本設(shè)計中8259A的工作方式</p><p> a.芯片控制ICW1:采用邊沿觸發(fā),單片8259,要寫入ICW4控制字;</p><p> b.中斷類型碼IC
24、W2:設(shè)置IR0~IR7的中斷類型碼依次為08H、09H、…、0FH;</p><p> c.方式控制ICW4:優(yōu)先級設(shè)置方式為全嵌套方式即固定優(yōu)先級方式,系統(tǒng)總線連接方式為主片工作在緩沖方式下,中斷結(jié)束方式采用中斷非自動結(jié)束方式,8259工作在80X86系統(tǒng)上。</p><p> 2、可編程定時器/計數(shù)器8254</p><p> ?。?)8254的內(nèi)部結(jié)構(gòu)&
25、lt;/p><p> 8254采用NMOS工藝制成,有24個引腳,所有輸入、輸出端均TTL電平兼容,單一電源(Vcc=+5V)供電,最高計數(shù)速率為10MHz。它包括3個計數(shù)器(即計數(shù)器0、1、2)、數(shù)據(jù)總路線緩沖器、讀/寫邏輯以及控制寄存器等4個部分。</p><p> ?。?)8254的外部引腳</p><p> A1、A0:地址輸入線,用來編址8254內(nèi)部的4個
26、端口,即3個計數(shù)器和1個控制字寄存器與CPU系統(tǒng)地址線相連。</p><p> CLK0、CLK1、CLK2:時鐘脈沖輸入端,用于輸入定時脈沖或計數(shù)脈沖信號。CLK可以是系統(tǒng)的時鐘脈沖,也可以由系統(tǒng)時鐘分頻或者其他脈沖源提供。當用于定時時,這個脈沖必須是均勻的、連續(xù)的、周期精確的,而用于計數(shù)時,這個脈沖可以是不均勻的、斷續(xù)的、周期不定的。</p><p> GATE0、GATE1、GA
27、TE3:門控輸入端,用于外部控制計數(shù)器的啟動計數(shù)和停止計數(shù)的操作。兩個或兩個以上計數(shù)器連用時,可用此信號同步,也可用于與外部某信號的同步。</p><p> OUT0、OUT1、OUT2:計數(shù)輸出,當計數(shù)器從初值開始完成計數(shù)操作進,OUT引腳輸出相應的信號。</p><p> ?。?)8254的工作方式</p><p> a.方式0:減1計數(shù)到0,產(chǎn)生中斷請求信
28、號。</p><p> b.方式1:減1計數(shù)到0,產(chǎn)生可重復觸發(fā)的單穩(wěn)態(tài)負脈沖信號。</p><p> c.方式2:減1計數(shù)到1,分頻器(速率信號發(fā)生器)。</p><p> d.方式3:減1計數(shù)到初值的1/2,方波發(fā)生器。</p><p> e.方式4:減1計數(shù)到0,軟件觸發(fā)產(chǎn)生選通負脈沖信號。</p><p&g
29、t; f.方式5:減1計數(shù)到0,硬件觸發(fā)產(chǎn)生選通負脈沖信號。</p><p> (4)8254方式控制字格式</p><p> ?。?)8254控制字要求</p><p> 8254的CLK0和CLK1級聯(lián),實現(xiàn)對時間長度的控制,CLK0用工作方式3,CLK0用工作方式0。CLK1用工作方式3,控制響鈴頻率。</p><p> 3、可
30、編程并行接口接口芯片8255A</p><p> ?。?)8255A內(nèi)部結(jié)構(gòu)</p><p> 8255A芯片是一個采用NMOS工藝制造的40引腳雙列直插式(DIP)封裝組件。8255A有3個8位數(shù)據(jù)端口,即A口、B口及C口,它們都可以分別作為輸入口或輸出口使用;A組控制與B組控制;讀/寫控制邏輯;數(shù)據(jù)總路線緩沖器。</p><p> ?。?)8255A主要的外部
31、引腳</p><p> PA7~PA0:A口的8條I/O線。8條線只能同時作為輸入或輸出,不能分開使用,可設(shè)置成雙向口,也只有A口允許這樣做。</p><p> PB7~PB0:B口的8條I/O線。不可以設(shè)置成雙向口,其它和A口一樣。</p><p> PC7~PC0:C口的8條I/O線。不可以設(shè)置成雙向口,但它可以分拆為兩組即高4位和低4位,這兩組可以任意設(shè)
32、置為輸入或輸出。除了作為獨立的I/O線外,C口還經(jīng)常為A口、B口服務,配合A口、B口作聯(lián)絡線使用。</p><p> A1、A0:端口地址選擇信號。用于選擇8255A的3個數(shù)據(jù)端口和一個控制口。當A1A0=00時,選擇端口A;為01時,選擇端口B;為10,選擇端口C;為11時,選擇控制口。</p><p> (3)8255A工作方式</p><p> a.方式
33、0:基本的輸入/輸出方式。A口、B口、C口都可以工作在些方式下。</p><p> b.方式1:選通輸入/輸出方式(應答方式)。A口、B口工作在此方式下。</p><p> c.方式2:雙向傳輸方式。只有A口可以工作在此方式下。</p><p> ?。?)8255A方式控制字格式</p><p> ?。?)8255A控制字要求</p
34、><p> A口工作在方式0,作為輸入端口用于連接選手按鍵(S3~S0依次對應按鍵4~1);B口工作在方式0,作為輸出端口,連接LED顯示器(PB7~PB0依次對應連接LED顯示器的dp、g、f、e、d、c、b、a七段數(shù)碼管管腳);C口也必須工作在方式0,低4 位做輸入端口(本次設(shè)計中用PC2、PC1,分別用于連接復位鍵和開始鍵,PC3連接計數(shù)器輸出信號),高4位做輸出端口(PC4、PC5、PC6分別用于連接黃、紅
35、、綠三個發(fā)光二極管,PC7連接到一個與門輸入,控制揚聲器是否發(fā)聲音)。</p><p><b> 三、芯片連接</b></p><p> 1、各芯片與CPU的連接</p><p> 連接時參考各芯片的管腳功能。8259A、8255A、8254的數(shù)據(jù)總線D7~D0端、端、端、端、端、INT端分別與CPU的D7~D0數(shù)據(jù)總線、片選端、端、端、
36、端、INTR端。8255A、8253的A1、A0端分別接入CPU地址線的A1、A0端,8259的A0端接到CPU地址線的A0端; CPU其余地址線通過譯碼電路與相應的芯片連接。在電路原理圖中,用多輸入的或非門簡化了譯碼電路。</p><p> 2、各芯片之間的連接和與外設(shè)的連接</p><p> 8259A的IR2端接選手按鍵信息輸出端;8255A的A口的PA0~PA3依次接“按鍵1”
37、~“按鍵3”,B口的PB7~PB0接到LED八段數(shù)碼顯示器,C口的PC2、PC1分別接復位鍵和開始鍵,PC6、PC5、PC4分別接綠燈發(fā)光二極管、紅燈發(fā)光二極管、黃燈發(fā)光二極管,PC7接到揚聲器控制與非門的一個輸入端;8253的GATE0 、GATE1、 GATE2端接+5V電壓,OUT0的輸出接入CLK1端,OUT1的輸出接入PC3端,CLK0和CLK1接入1.8432MHz的頻率發(fā)生器,OUT2接揚聲器控制輸入信號端。</p&
38、gt;<p> 3、存儲器及其他設(shè)備的連接</p><p> 在此電路圖中,存儲器和其他相關(guān)設(shè)備被省略。在實際電路中需要按各芯片的規(guī)格接入電路,構(gòu)成完整的系統(tǒng)。</p><p><b> 軟件設(shè)計</b></p><p><b> 一、標志位含義</b></p><p> 1
39、、定義一個TAB變量用來存儲1~4和E的字形碼信息,如果兩人或多人同時搶答顯示“E”,同樣轉(zhuǎn)到報警。字形信息如下表:</p><p> 2、定義一個BZ變量作為標志位,用來選手搶答是否違規(guī),BZ=0FFH時表示主持人已經(jīng)按下開始鍵選手可以搶答,BZ=00H表示主持人未按下開始按鍵,選手不可以搶答。</p><p><b> 二、程序流程圖</b></p>
40、;<p><b> 1、主程序流程圖</b></p><p> 2、中斷子程序流程圖</p><p> 3、搶答成功和搶答犯規(guī)處理程序流程圖</p><p> 搶答成功后,揚聲器首先以1KHz的頻率鳴叫12s。本設(shè)計中8254使用的時鐘脈沖為1.8432MHz。對于用于計時的計數(shù)器1和0,共計需計數(shù)次數(shù)為1843200*1
41、2,因此,給計數(shù)器0賦值為18432,即4800H;計數(shù)器1賦值為1200,即4B0H。搶答犯規(guī)時的12s與此相同,可以在給數(shù)顯管賦值時同時做這個工作。</p><p> 對于1KHz的頻率,計數(shù)器2使用方式3產(chǎn)生方波,對輸入時鐘信號進行1843分頻即可,因此賦初值為1843,即733H。</p><p> 計時時間為25s,給計數(shù)器0賦初值18432,即4800H,計數(shù)器1賦初值25
42、00,即9C4H。計時時間到后,揚聲器鳴叫頻率為0.75KHz,對應地給計數(shù)器2賦初值2458,即99AH。</p><p> 搶答失敗后,揚聲器以0.5KHz的頻率鳴叫12s。與搶答成功后的情況類似。對應地,給計數(shù)器0賦值為18432,即4800H;計數(shù)器1賦值為1200,即4B0H。對于0.5KHz的頻率,給計數(shù)器2因此賦初值為3686,即0E66H。</p><p><b&g
43、t; 具體流程圖如下:</b></p><p><b> 搶答成功流程圖</b></p><p> 搶答犯規(guī)程序流程圖:</p><p> 以上具體程序清參見程序清單,此處不再列出。</p><p><b> 總結(jié)</b></p><p> 微機原理課
44、程設(shè)計與我以前所做的電路實驗或編程有很大的不同。這個需要將軟件與硬件結(jié)合,編程時要考慮硬件連接的問題,硬件連接更改時,程序也要相應地做更改。相對而言,難度系數(shù)增加不少。</p><p> 首先,說明下我對此課程設(shè)計的理解。此課程設(shè)計使用了8086/8088微機系統(tǒng),為了連線方便我使用了8088。8086/8088微機系統(tǒng)相對于現(xiàn)在的計算機,性能上要差了很多。但這并不意味著它的功能簡單。本課程設(shè)計需要完成的4路搶
45、答器這樣的功能其實是浪費資源了。但這課程設(shè)計可以通過這樣一個相對簡單的應用讓我們了解微機的基本原理、基本結(jié)構(gòu)。完成此項設(shè)計還需要綜合考慮各方面因素,可以提高我們綜合應用能力。</p><p> 此課程設(shè)計的要求為4路搶答器,實際上8255的PCA端口只用了4個輸入端,可以根據(jù)需要增加搶答鍵的數(shù)目,通過級聯(lián)8255可以接入更多路。改變搶答鍵數(shù)目時需要對程序相關(guān)部分做出修改。通過可編程器件完成的設(shè)計一般都有較好的擴
46、展性。</p><p> 此次課程設(shè)計完成得比較倉促,存在很多不足。首先,由于資源有限,本次課程設(shè)計僅僅停留在了理論上,沒有經(jīng)過實際檢驗。其次,相關(guān)程序并沒有進行深入思考,可能存在不合理之處;在電路原理圖繪圖時,也沒有進行較好的布局。最后,此搶答器功能上可以有更多的擴展,比如加上一個計分環(huán)節(jié),但由于時間關(guān)系沒有去嘗試。</p><p> 此次課程設(shè)計使我系統(tǒng)地認識了微機原理這門課程,之
47、前對各知識點的理解都只是片面的,各個芯片理解時都是單一理解的,沒有考慮過它們的相互配合。而此課程設(shè)計使我將這些內(nèi)容串聯(lián)起來,對各項內(nèi)容有了一個整體的概念,對微機原理有了更全面、深刻的認識。</p><p><b> 參考文獻</b></p><p> 王忠民?《微型計算機原理(第二版)》?西安電子科技大學出版社</p><p> 鄭榕?《
48、微機原理與接口技術(shù)實驗指導書(修改版)(非計算機專業(yè))》?北京科技大學信息工程學院</p><p><b> 程序清單</b></p><p><b> ;主程序</b></p><p> DATA SEGMENT ;數(shù)據(jù)段</p><p> TAB DB 06H,
49、5BH,4FH,66H,79H ;1~4和E的段碼;</p><p> BZ DB 00H</p><p> DATA ENDS</p><p> STACKS SEGMENT PARASTACK 'STACK'</p><p> DB 100H DUP(?)<
50、;/p><p> STACKS ENDS</p><p> CODE SEGMENT ;代碼段</p><p> ASSUME DS:DATA,CS:CODE</p><p> START: MOV AX,DATA</p><p> MOV DS,AX</p>
51、<p> MOV DX,20H ;初始化實驗系統(tǒng)中8259的ICW1</p><p> MOV AL,13H ;邊沿觸發(fā)、單片8259、需要ICW4</p><p> OUT DX,AL</p><p> MOV DX,21H ;初始化實驗系統(tǒng)中825
52、9的ICW2</p><p> MOV AL, 08H ;根據(jù)ICW2的格式寫入00001000B,即08H</p><p> OUT DX,AL</p><p> MOV DX,21H ;初始化實驗系統(tǒng)中8259的ICW4</p><p> MOV AL
53、, 0DH ;一般中斷結(jié)束方式 </p><p> OUT DX,AL</p><p><b> ;8255A初始化</b></p><p> MOV AL,91H ;置8255A工作方式</p><p> OUT
54、83H,AL</p><p> MOV AL,00H ;B口、C口初始化</p><p> OUT 81H,AL</p><p> OUT 82H,AL</p><p><b> ;8253初始化</b></p><p> MOV
55、 AL,36H ;初始化8254通道0工作方式3,初值為0 </p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT 40H,AL</p><p> MOV AL,00H</p
56、><p> OUT 40H,AL</p><p> MOV AL, 70H ;通道1工作方式0,初始值為0</p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT 41H,AL</
57、p><p> MOV AL,00H</p><p> OUT 41H,AL</p><p> MOV AL, 0B6H ;通道2工作方式3</p><p> OUT 43H,AL </p><p> MOV AL,00H</p&
58、gt;<p> OUT 42H,AL</p><p> MOV AL,00H</p><p> OUT 42H,AL</p><p><b> ;中斷設(shè)置</b></p><p> MOV AH,25H ;設(shè)置搶答按鍵中斷向量&l
59、t;/p><p> MOV AL,0AH ;中斷類型號為入口參數(shù)</p><p> MOV BX,SEG KEYINT ;DS:DX指向4字節(jié)地址</p><p> MOV DS,BX</p><p> MOV DX,OFFSET KEYINT</p>
60、<p> INT 21H</p><p> STI ;使IF置1,開放可屏蔽中斷</p><p><b> ;主循環(huán)</b></p><p> LOPM: IN AL,82H ;檢測開始鍵</p><p> T
61、EST AL,02H ;檢測C口的PC1端</p><p> JZ LOP2 ;開始鍵未按下即PC1=0,則跳轉(zhuǎn)檢測復位鍵</p><p> LOP1: IN AL,82H ;檢測開始鍵是否已經(jīng)彈起,即PC1=0</p><p> TEST AL,02H</p>
62、<p> JNZ LOP1 ;開始鍵沒有彈起再重新檢測</p><p> MOV AL,00H ;關(guān)LED顯示器</p><p> OUT 81H,AL ;送到B口</p><p> MOV AL,40H ;綠燈亮</p><p&g
63、t; OUT 82H,AL ;送到C口</p><p> MOV BZ,0FFH ;置標志</p><p><b> STI</b></p><p> LOP2: IN AL,82H ;檢測復位鍵</p><p> TEST AL,
64、04H ;檢測C口的PC2端</p><p> JZ LOPM ;復位鍵未按下即PC2=0,則跳轉(zhuǎn)再檢測開始鍵</p><p> LOP3: IN AL,82H ;檢測復位鍵是否彈起,即PC2=0</p><p> TEST AL,04H</p><p>
65、JNZ LOP3 ;復位沒有彈起,則重新檢測</p><p> MOV AL,00H ;關(guān)LED顯示器、指標燈</p><p> OUT 81H,AL</p><p> OUT 82H,AL</p><p> MOV BZ,00H ;清標志
66、</p><p><b> STI</b></p><p> JMP LOPM </p><p> ;中斷服務子程序……</p><p> KEYINT PROC FAR</p><p> PUSH AX ;保護現(xiàn)場<
67、/p><p> PUSH BX</p><p> PUSH DX</p><p> PUSH DS</p><p> CLI ;并使本次中斷壓入堆棧中的IF=0(關(guān)中斷)</p><p> IN AL,80H ;從8255
68、的A口獲取選手按鍵信息</p><p> CMP AL,01H ;比較選手號碼是否為1</p><p> JE SHOW1</p><p> CMP AL,02H ; 比較選手號碼是否為2</p><p> JE SHOW2</p><p>
69、; CMP AL,04H ; 比較選手號碼是否為3</p><p> JE SHOW3</p><p> CMP AL,08H ; 比較選手號碼是否為4</p><p> JE SHOW4</p><p> JMP SHOWE ;搶答錯誤
70、</p><p> SHOW1: MOV AL,OFFSET TAB</p><p> JMP SHOW</p><p> SHOW2: MOV AL,OFFSET TAB+1</p><p> JMP SHOW</p><p> SHOW3: MOV
71、 AL,OFFSET TAB+2</p><p> JMP SHOW</p><p> SHOW4: MOV AL,OFFSET TAB+3</p><p> JMP SHOW</p><p> SHOWE: MOV AL,OFFSET TAB+4</p>&l
72、t;p> MOV BZ,00H ; 通過標志位強制轉(zhuǎn)入犯規(guī)處理</p><p> JMP SHOW</p><p> SHOW: OUT 81H,AL</p><p><b> ;8253初始化</b></p><p> MOV AL,36H
73、 ;初始化8254通道0工作方式3 </p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT 40H,AL</p><p> MOV AL,00H</p><p> OUT
74、 40H,AL</p><p> MOV AL, 70H ;通道1工作方式0</p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT 41H,AL</p><p> MOV AL,00H&l
75、t;/p><p> OUT 41H,AL</p><p> IN AL,82H</p><p> OR AL,80H</p><p> OUT 82H,AL ;使PC7為1</p><p> TEST BZ,0FFH ;判斷標志位是否為F
76、FH</p><p> JNZ QDCG</p><p> QDFG: MOV AL, 0B6H ;搶答犯規(guī)處理,通道2工作方式3</p><p> OUT 43H,AL</p><p> MOV AL,66H</p><p> OUT 42
77、H,AL</p><p> MOV AL,0EH</p><p> OUT 42H,AL</p><p> IN AL,82H</p><p> AND AL,0E0H ;紅燈亮,搶答違規(guī)</p><p> OUT 82H,AL</p
78、><p> LOP4: IN AL,82H ;讀PC3數(shù)據(jù),確定是否終止,終止通過使PC7為0</p><p> TEST AL,01H</p><p> JZ LOP4</p><p> IN AL,82H</p><p> AND
79、AL,7FH</p><p> OUT 82H,AL;使PC7為0</p><p> JMP KKK</p><p> QDCG: MOV AL, 0B6H ;搶答成功處理,通道2工作方式3</p><p> OUT 43H,AL</p><p>
80、MOV AL,33H</p><p> OUT 42H,AL</p><p> MOV AL,07H</p><p> OUT 42H,AL</p><p> IN AL,82H</p><p> AND AL,0D0H ;黃燈
81、亮,搶答成功</p><p> OUT 82H,AL</p><p> LOP5: IN AL,82H ;讀PC3數(shù)據(jù),確定是否終止,終止通過使PC7為0</p><p> TEST AL,01H</p><p> JZ LOP5</p><p>
82、 IN AL,82H</p><p> AND AL,7FH</p><p> OUT 82H,AL ;使PC7為0</p><p> IN AL,82H</p><p> AND AL,0E0H ;滅黃燈,開始計時</p><p&
83、gt; OUT 82H,AL</p><p> TIME: MOV AL,36H ;初始化8254通道0工作方式3</p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT 40H,AL ;計數(shù)初值18
84、432</p><p> MOV AL,48H</p><p> OUT 40H,AL</p><p> MOV AL, 70H ;通道1工作方式0</p><p> OUT 43H,AL</p><p> MOV AL,0C4H</
85、p><p> OUT 41H,AL</p><p> MOV AL,09H</p><p> OUT 41H,AL</p><p> LOP6: IN AL,82H ;循環(huán)檢測PC3,電平變高跳出循環(huán)</p><p> TEST AL,0
86、8H</p><p> JZ LOP6</p><p> IN AL,82H ;答題計時結(jié)束,開始響鈴程序</p><p> OR AL,80H</p><p> OUT 82H,AL ;使PC7為1</p><p> MOV
87、 AL,36H ;初始化8254通道0工作方式3 </p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT 40H,AL</p><p> MOV AL,00H</p><
88、p> OUT 40H,AL</p><p> MOV AL, 70H ;通道1工作方式0</p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT 41H,AL</p><p>
89、MOV AL,00H</p><p> OUT 41H,AL</p><p> MOV AL, 0B6H ;通道2工作方式3</p><p> OUT 43H,AL</p><p> MOV AL,00H</p><p> OUT
90、 42H,AL</p><p> MOV AL,00H</p><p> OUT 42H,AL</p><p> KKK: MOV AL,20H ;給8259發(fā)中斷結(jié)束命令,寫OCW2</p><p> OUT 20H,AL</p><p>
91、 POP AX ;恢復現(xiàn)場</p><p> POP BX</p><p> POP DX</p><p> POP DS</p><p><b> IRET</b></p><p> KEYINT ENDP&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機原理課程設(shè)計---競賽搶答器設(shè)計
- 微機原理課程設(shè)計---八路智力競賽搶答器
- 微機原理課程設(shè)計---八路搶答器
- 微機原理課程設(shè)計搶答器
- 微機原理課程設(shè)計報告---競賽搶答器的設(shè)計
- 微機課程設(shè)計--8路搶答器
- 微機原理課程設(shè)計報告--數(shù)字式競賽搶答器
- 4路搶答器課程設(shè)計
- 競賽搶答器課程設(shè)計-微機接口課程設(shè)計報告
- 競賽搶答器課程設(shè)計-微機接口課程設(shè)計報告
- 課程設(shè)計---4路搶答器設(shè)計
- 微機課程設(shè)計報告搶答器
- 微機原理與接口技術(shù)課程設(shè)計--四路搶答的搶答器
- 搶答器課程設(shè)計---八路智力競賽搶答器的設(shè)計
- 競賽搶答器課程設(shè)計
- 搶答器課程設(shè)計--八路搶答器
- 課程設(shè)計----8路智力競賽搶答器
- 《微機原理與接口技術(shù)》課程設(shè)計---搶答器
- eda課程設(shè)計---競賽搶答器
- 四路搶答器課程設(shè)計
評論
0/150
提交評論