微機原理與接口技術(shù)課程設(shè)計智能搶答器_第1頁
微機原理與接口技術(shù)課程設(shè)計智能搶答器_第2頁
微機原理與接口技術(shù)課程設(shè)計智能搶答器_第3頁
微機原理與接口技術(shù)課程設(shè)計智能搶答器_第4頁
微機原理與接口技術(shù)課程設(shè)計智能搶答器_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機與接口課程設(shè)計報告智能搶答器班級:學(xué)號:姓名:指導(dǎo)教師:成績:年1月11H目錄1、課程設(shè)計目的及要求32、系統(tǒng)功能33、總體設(shè)計3&1基本工作原理3工1.1中斷優(yōu)先級管理器8259A控制字要求3工1.2可編程并行接口接口芯片8255A控制字要求32L3可編程定時器/計數(shù)器8253控制字要求312硬件總體設(shè)計33.2. 1系統(tǒng)總成方案31 .2.2內(nèi)存單元編址4323鍵盤、揚聲器及顯示功能的泄義4(1)硬件原理框圖4(2)原理連線圖423軟件總體設(shè)計63 3.1主程序流程圖:64、硬件設(shè)計84 1所使用芯片功能8生1.1可編程并行輸入/輸出接口芯片8255A841.2可編程上時器川數(shù)

2、器8253/825494.1.3中斷優(yōu)先級管理器8259A104.2系統(tǒng)所選用各芯片的工作方式124.2.1 中斷優(yōu)先級管理器8259A的工作方式124.2.2 可編程并行接口接口芯片8255A的工作方式12生2.3可編程左時器/訃數(shù)器8253的工作方式135、軟件設(shè)計136、調(diào)試過程167、系統(tǒng)操作說明168、總結(jié)169、參考文獻171、課程設(shè)計目的及要求目的:掌握微機系統(tǒng)的開發(fā)步驟;掌握8255A、數(shù)碼管的用法;掌握匯編程序的設(shè)計。因此,本次設(shè)訃要求對微機原理的理論知識,8255A.8253,鍵盤顯示區(qū)的工作方式、工作原理熟練掌握。設(shè)計要求:1 .1-8號選手中先按下按鍵者,LED數(shù)碼管顯

3、示其選手號碼(后按下無效),且60s倒計時開始,計時結(jié)束進行聲光報警提示。2 .由裁判掌握,若回答正確,該選手對應(yīng)綠燈亮,否則紅燈亮。3 .回答正確時,計分牌加1。分,不正確減10分(滿分100分)°4 .選手號碼及選手分數(shù)用LED數(shù)碼管顯示。2、系統(tǒng)功能一個具有8路搶答的搶答器,利用并行接口和開關(guān)鍵。邏輯開關(guān)K0-K7代表搶答按鈕,當(dāng)某個邏借開關(guān)閉合時,相當(dāng)于搶答按鈕按下,此時在七段數(shù)碼管上將英號碼顯示出來,并使喇叭響一聲(或者以發(fā)光二極管代替)。3、總體設(shè)計3.1 基本工作原理主持人按開始鍵,綠燈這后,選手才可搶答,否則違規(guī)。若搶答成功,LED顯示器顯示選手號碼,黃燈亮,揚聲器鳴

4、叫:若搶答違規(guī)(主持人示按開始鍵),LED顯示器顯示違規(guī)選手號碼,紅燈亮,揚聲器報警。3.1.1 中斷優(yōu)先級管理器8259A控制字要求芯片控制字:采用邊沿觸發(fā),單片8259,要寫入ICW4控制字中斷類型碼控制字:設(shè)置IR0IR7的中斷類型碼依次為08H.09H、OFH方式控制字:優(yōu)先級設(shè)宜方式為全嵌套方式即固定優(yōu)先級方式,主片工作在緩沖方式下,中斷結(jié)束方式采用中斷非自動結(jié)束方式,8259工作在8086系統(tǒng)上。3.1.2 可編程并行接口接口芯片8255A控制字要求A口工作在方式0,做為輸入端口用于連接選手按鍵(PA7PAO依次對應(yīng)按鍵1-8):B口工作在方式0,做為輸出端口,經(jīng)驅(qū)動器1連接LED

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

6、,計數(shù)格式為BCD碼,計數(shù)初值為3000。通道2:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計數(shù)格式為BCD碼,計數(shù)初值為0。3.2硬件總體設(shè)計3.2.1系統(tǒng)總成方案該競賽搶答器所要器件:中斷優(yōu)先級管理器8259A.可編程并行接口接口芯片8255、可編程泄時器/計數(shù)器8253,三個一樣的驅(qū)動器,黃、紅、綠三個發(fā)光二極管,十三個電阻,一個8輸入與非門,一個非門,一個揚聲器,一個LED顯示器,10個按鍵。322內(nèi)存單元編址(1)、中斷優(yōu)先級管理器8259A的端口地址為20H、21H(2)、可編程并行接口接口芯片8255A的端口地址為80H、81H、82H、83H(3)、可編程泄

7、時器/計數(shù)器8253的端口地址為40H、41H、42H、43H323鍵盤、揚聲器及顯示功能的定義1。個按鍵中,一個開始鍵一個復(fù)位鍵,另外8個用做8位選手的搶答按鍵。揚聲器用與黃、紅、綠三個發(fā)光二極管配合使用,黃燈亮揚聲器鳴叫表示搶答成功,紅燈亮揚聲報警表示搶答違規(guī)報警,綠燈亮揚聲器不鳴則表示主持人已按下開始鍵。LED顯示器顯示的內(nèi)容與選手號對應(yīng),搶答成功或違規(guī)都要顯示。(1)硬件原理框圖按鍵設(shè)置圖1原理連線圖j+5V11址位addbbddbd與AD8-ADI5RDWR(80H-83H)10RIOW808610按a2Too按錠1Ioo按鍵8Ioo按位7Ioo按就6io)按鍵5ADOADI8255

8、PB7.PCOCSAOAlPC3-PORDWRmpb7x>PBORO*RGATEOD7DOOUTOCLKI'GATEIOUTi8253<140H-43f)GATE2bAOclkoA1CLKICLK2Al!NTA(2OH-21H)INTRD7D08259WRRDINTACSAOINT1(0J>INT41KU41R1IR2揚聲器圖23.3軟件總體設(shè)計3.3.1主程序流程圖:圖43. 3. 2子程序流開始圖54、硬件設(shè)計4.1 所使用芯片功能4.1.1 可編程并行輸入/輸出接口芯片8255A8255A具有三個獨立的輸入/輸出端口,每個端口的并行數(shù)據(jù)寬度為8位。三個端口分別為

9、A端口,B端口,C端口,可分別與不同的外設(shè)進行數(shù)據(jù)交換,也可聯(lián)合使用,在中斷方式下實現(xiàn)CPU與外設(shè)間的數(shù)據(jù)傳遞。8255A提供方式0,方式1,方式2三種工作方式供選擇。(1) 8255A的內(nèi)部結(jié)構(gòu)包括以下幾個部分:并行輸入/輸出端口,它有三個輸入/輸出端口,每個端口8位,都可選擇為輸入或輸出。A端口有一閣位數(shù)據(jù)輸出鎖存/緩沖器和一個8位數(shù)據(jù)輸入鎖存器:B端口有一個8位數(shù)據(jù)輸出鎖存/緩沖器和一個8位數(shù)據(jù)輸入緩沖器:C端口有一個8位數(shù)拯輸出鎖存/緩沖器和一個8位數(shù)據(jù)輸入緩沖器。通常A端口和B端口作為輸入/輸出數(shù)拯端口,C端口常作為控制或狀態(tài)信息的端口,它可分為兩個4位端口。在與外設(shè)數(shù)據(jù)傳送中需要聯(lián)

10、絡(luò)控制線時,C端口分別與A,B端口配合使用,此時,C端口作控制信號輸出和狀態(tài)信號輸入。圖5(1)A組和B組控制電路,8255A內(nèi)部的三個端口可分為兩組:A組由A口和C高4位組成;B組由B和C低4位組成。A組和B組分別有自己的控制電路,即A組和B組控制電路。瓦功能:負責(zé)接受來自讀寫控制的邏借的各種命令,以及來自數(shù)字總線的控制字,從而決左A組和B組的工作方式,還可根據(jù)CPU的命令對C端口的每一位實現(xiàn)“復(fù)位”或“菅位”-(2) 讀/寫控制邏輯,這是8255A內(nèi)部完成讀/寫控制功能的部件。它與6條輸入控制線相連,負責(zé)接收CPU輸入的地址信號和讀/寫,復(fù)位控制信號,轉(zhuǎn)變成各種命令發(fā)向A組和B組控制電路。

11、(3) 數(shù)據(jù)總線緩沖器,這是一個8位雙向三態(tài)緩沖器,它是8255A與CPU數(shù)據(jù)總線的接口,由讀/寫控制其數(shù)拯傳送方向及三態(tài)。8255A與CPU間的數(shù)拯傳送如輸入/輸出數(shù)據(jù),CPU寫入8255A的控制字,8255A送給CPU的狀態(tài)信息,都是經(jīng)過這個緩沖器傳送的。2. 8255A的控制字:(方式選擇命令字和端口C按位置位/復(fù)位控制字)。方式選擇命令字:D7D6D5D1D3D2D1D0A組方式A口1-輸入0一輸出PC7-PC41一輸入0-輸出B組方式0-方式01一方式1B111F入0一輸出PC3-PCO1-輸入0一輸出1有效標志位00一方式001方式11一方式2端口C按位置位/復(fù)位控制字特征位不用不

12、用不用位選擇位選擇位選擇置位/復(fù)位0D6D5D4D3D2D1D0Ox1Ox10.10.1D3、D2、D1:000-111分別對應(yīng)C17位D0:0為復(fù)位,1為置位3. 8255A有三種工作方式:方式0-基本輸入/輸出方式。這種方式不使用中斷,沒有規(guī)定的聯(lián)絡(luò)信號,三個端口的24條引腳均可做為輸入/輸出線,由程序設(shè)左各端口為輸入端口或輸出端口,完成并行輸入/輸出操作。方式1一選通輸入/輸出方式。這種方式下,端口A或端口B仍做為數(shù)據(jù)端口,同時規(guī)N了端口C的某些位做為控制或狀態(tài)信息位,數(shù)據(jù)的輸入/輸出操作在聯(lián)絡(luò)信號的應(yīng)答控制下完成,因而,可使用中斷,也可使用查詢。方式2-雙向傳送方式。這種方式下,外設(shè)在

13、單一的8位數(shù)據(jù)線上,既能發(fā)送數(shù)拯,也能接受數(shù)據(jù)。在相應(yīng)的控制線配合下,用中斷方式或程序查詢方式輸入/輸出數(shù)據(jù)。端口A可工作于方式0,方式1和方式2,端口B可工作于方式1,端口C通常分成高4位和低4位,分別傳送數(shù)據(jù)或控制,狀態(tài)信息。3.1. 2可編程定時器/計數(shù)器8253/82548253芯片采用24個引腳,雙列直插式封裝,NMOS工藝,單一+5Y電源。片內(nèi)有3個獨立的16位減法計數(shù)器,每個計數(shù)器又可分兩個8位的計數(shù)器。8253有兩種工作方式,即二進制或BCD方式計數(shù):6種工作方式,既可對系統(tǒng)時鐘脈沖訃數(shù)實現(xiàn)左時,又可對外部事件進行計數(shù)??捎绍浖蛴布_始計數(shù)或停止計數(shù)。1 .8253的內(nèi)部結(jié)構(gòu)

14、包括以下幾部分:D0-D7圖68253由訃數(shù)器、控制寄存器、讀/寫控制邏輯和數(shù)據(jù)總線緩沖器4部分和內(nèi)部總線構(gòu)成。(1)數(shù)據(jù)總線緩沖器。該緩沖器為8位雙向三態(tài)的緩沖器,可直接掛在數(shù)據(jù)線上,CPU通過它,一方而可以向控制寄存器寫入控制字,向計數(shù)器寫入計數(shù)初值;另一方而也可由CPU通過該緩沖器讀出計數(shù)器的當(dāng)前計數(shù)值。讀/寫控制邏輯。功能是接收來自CPU的控制信號,完成對8253各計數(shù)器的讀/寫操作。(3)控制寄存器。接收從CPU來的控制字,并由控制字的D7、D6位的編碼決宦控制字寫入哪個計數(shù)器的控制寄存器。(4)計數(shù)器。8253有三個計數(shù)器通道:計數(shù)器0、計數(shù)器1、計數(shù)器2。每個計數(shù)器都由16位鎖存

15、寄存器和一個16位的減1計數(shù)器組成。每個計數(shù)器有3根信號線。其中2根為輸入信號:時鐘信號CLK和門控GATE信號:1根輸出信號OUT。2.8253的工作方式:方式0-計數(shù)結(jié)束產(chǎn)生中斷方式。這種方式的計數(shù)過程為當(dāng)寫入方式。后,計數(shù)器輸出OUT立即變?yōu)榈碗娖?,并且在計?shù)過程中一起維持低電平。賦初值后,CLK第一個下降沿至IJ,汁數(shù)值裝入計數(shù)器,隨后每一個CLK脈沖下降沿到,計數(shù)器減1.計數(shù)器減到零時,OUT輸出變?yōu)楦唠娖?,并且一直保持到該通道重新裝入訃數(shù)值或重新設(shè)置工作方式為止。方式1一可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器。這種方式的計數(shù)過程為當(dāng)裝入計數(shù)初值后OUT輸出為高電平,當(dāng)GATE上升沿到,OUT輸出為

16、低電平,開始汁數(shù):計數(shù)結(jié)束時,輸出變?yōu)楦唠娖綇亩a(chǎn)生一個寬度為N個T的負脈沖。方式2-一分頻器。這種方式的計數(shù)過程為寫入控制字后的時鐘上升沿,輸出端OUT變成高電平,寫入計數(shù)初值后的第一個時鐘下降沿開始減1計數(shù)。減到1時輸出端OUT變?yōu)榈碗娖?,減到0時,輸出OUT又變?yōu)楦唠娖?,同時從初值開始新的計數(shù)過程。方式3方波發(fā)生器。這種方式的計數(shù)過程分兩種情況。第一種情況:計數(shù)初值為偶數(shù)。寫入控制字后的時鐘上升沿,輸出端OUT變成高電平,寫入計數(shù)初值后的第一個時鐘下降沿開始減1計數(shù)。減到N/2時,輸出端OUT為為低電平,減到。時,輸出OUT又變?yōu)楦唠娖剑⒅匦聫某踔甸_始新的計數(shù)過程。第二種情況:計數(shù)初值

17、為奇數(shù)。寫入控制字后的時鐘上升沿,輸出端OUT變成高電平,寫入計數(shù)初值后的第一個時鐘下降沿開始減1計數(shù)。減到(N+l)/2以后,輸出端OUT變?yōu)榈碗娖剑瑴p到。時,輸出端OUT又變?yōu)楦唠娖?,并重新從初值開始新的計數(shù)過程。方式4-一軟件觸發(fā)選通。這種方式的計數(shù)過程與方式。非常相似。當(dāng)方式控制字宜入后,OUT輸出高電平。置入初值后經(jīng)過一個CLK脈沖開始減1計數(shù),計數(shù)到達0值,OUT輸出為低電平,持續(xù)一個CLK脈沖周期后再恢復(fù)到高電平。方式5-硬件觸發(fā)選通。這種方式的汁數(shù)過程為輸出OUT即為高電平,寫入初值后,計數(shù)器并不立即開始汁數(shù),而是由門控脈業(yè)的上升沿觸發(fā)。計數(shù)結(jié)束,輸出一個持續(xù)時間為一個TCLK

18、的負脈沖,然后輸出恢復(fù)為高電平,直到GATE信號再次觸發(fā)。2 .1.3中斷優(yōu)先級管理器8259A1.8259A內(nèi)部結(jié)構(gòu):8259A采用NMOSI藝制成,有28根引腳,所有輸入、輸出端與TTL電平兼容,單一電源(Vcc=+5V)供電。8259的內(nèi)部主要組成部分,包括處理部件(中斷請求寄存器IRR、優(yōu)先級鑒別器PR及現(xiàn)行服務(wù)寄存器ISR)、控制部件(控制邏輯及中斷屏蔽寄存器IMR)、數(shù)據(jù)總路線緩沖器、讀/寫邏輯以及級聯(lián)緩沖器/比較器等5個部分。INTINTA; 數(shù)據(jù)總線D7Do <=>緩沖器<=ORDWRAo讀/寫邏輯CASo 一CASi 一CAS: 一SP/EN級聯(lián)緩沖比較器-

19、<=>優(yōu)先 級分 析器 (PRi當(dāng)前中斷 服務(wù) 寄存器 (ISR)中斷 請求 寄存器 (IRR)中斷屏蔽寄存器(IMR)-IRo-IRi-IR2. 8259A主要的外部引腳:DOD7:雙向數(shù)拯線,CPU與8259A間利用這個數(shù)據(jù)總線傳送數(shù)據(jù)及命令。柿:寫控制輸入信號,同控制總線上的如信號相連。TO:讀控制輸入信號,同控制總線上的飾信號相連。A0:地址選擇信號,用來對8259A內(nèi)部的兩個可編程寄存器進行選擇。rs:片選輸入信號,低電平有效。有效時刻通過數(shù)據(jù)總線設(shè)卷命令并對內(nèi)部寄存器進行讀出。當(dāng)進入中斷響應(yīng)時序時,該引腳狀態(tài)與進行的處理無關(guān)。INT:由8259A向CPU發(fā)出的中斷請求信

20、號。INTA:輸入信號,接收CPU送來的中斷響應(yīng)信號INTA.IR0IR7:8個中斷請求輸入信號,高電平或上升沿有效。用于接收外設(shè)接口來的中斷請求。CASOCAS2:三條信號線試8259A級聯(lián)時使用的,用來構(gòu)成8259A的主從式級聯(lián)控制結(jié)構(gòu)。SP/EN:從片編程/允許緩沖器信號,雙向,低電平有效。3. 8259A工作方式(1)、優(yōu)先級設(shè)置方式:全嵌套方式(固左優(yōu)先級方式)、特殊全嵌套方式(可響應(yīng)同級中斷方式)、輪轉(zhuǎn)優(yōu)先級方式、特殊輪轉(zhuǎn)優(yōu)先級方式。(2)、中斷源屏蔽方式:普通屏蔽方式、特殊屏蔽方式。(3)、中斷結(jié)束方式:中斷自動結(jié)束方式、中斷非自動結(jié)束方式(包括一般中斷結(jié)束方式、特殊中斷結(jié)束方式

21、)。(4)、系統(tǒng)總路線連接方式:緩沖方式、非緩沖方式。(5)、中斷請求信號觸發(fā)方式:邊沿觸發(fā)方式、電平觸發(fā)方式。4. 8259A初始化控制字格式ICW1(芯片控制字)D7D6D5D4D3D2D1D0000特征位1觸發(fā)方式0邊沿級發(fā)1電平級發(fā)0取片選擇信號0多片8259級聯(lián)1單片8259是不要ICW40不翌(8080/8085)1要(80X86)ICW2(中斷類型碼控制字D7D3設(shè)迓中斷類型碼)D7D6D5D4D3D2D1D0XXXXX000ICW3(主片,級聯(lián)時才用設(shè)犁.各位為1則表示接有從片)D7D6D5D4D3D2D1DOIR7IR6IR5IR4IR3IR2IR1IROICW3(從片級聯(lián)時

22、才用設(shè)ii)D7D6D5D4D3D2DIDO00000ID2ID1ID0從片INT接于主片的引腳0001R0001IR11111R7ICW4(方式控制字D7D6D5D4D3D2D1D0000嵌套方式0全嵌套方式1特殊全嵌套方式緩沖方式0非緩沖方式1緩沖方式緩沖方式下0木片為從片1本片為主片中斷結(jié)束方式。中斷非自動結(jié)束1中斷H動結(jié)束系統(tǒng)類型08080/8085180X865. 8259A操作命令字格式OCWO(中斷屏蔽字各位為1則被屏蔽)D7D6D5D4D3D2D1DOIR7IR6IR5IR4IR3IR2IRIIR0OCW1(輪轉(zhuǎn)優(yōu)先級和中斷結(jié)束字)D7D6D5D4D3D2D1DO輪轉(zhuǎn)位0L2-

23、L0兀效0非輪轉(zhuǎn)1輪轉(zhuǎn)1效中斷結(jié)束位特征標志侍.0非中斷結(jié)束位000IR0優(yōu)先級最低1中斷結(jié)束0G0011R1優(yōu)先級最低OCW2(特殊屏蔽、查詢和狀態(tài)讀取字)D7D6D5D4D3D2DID0特殊屏蔽方式允許位特殊屏蔽方式位00禁止特殊屏蔽方式0非特殊屏蔽方式A11允許特殊屏蔽方式1特殊屏蔽方式UI中斷查詢位讀寄存器。讀IRR。非中斷查詢0禁止讀1中斷查詢1允許讀4. 2系統(tǒng)所選用各芯片的工作方式4. 2.1中斷優(yōu)先級管理器8259A的工作方式(1)、芯片控制ICW1:采用邊沿觸發(fā),單片8259,要寫入ICW4控制字(2)、中斷類型碼ICW2:設(shè)置IROIR7的中斷類型碼依次為08H、09H、O

24、FH(3)、方式控制ICW4:優(yōu)先級設(shè)程方式為全嵌套方式即固定優(yōu)先級方式,系統(tǒng)總線連接方式為主片工作在緩沖方式下,中斷結(jié)束方式采用中斷非自動結(jié)束方式,8259工作在8086系統(tǒng)上。5. 2.2可編程并行接口接口芯片8255A的工作方式(1)、A口工作在方式0,做為輸入端口用于連接選手按鍵(PA7PA0依次對應(yīng)按鍵1-8):(2)、B口工作在方式0,做為輸出端口,經(jīng)驅(qū)動器1連接LED顯示器(PB7PB0依次對應(yīng)連接LED顯示器的dp、g、f、c、d、c、b、a七段數(shù)碼管管腳):、C口也必須工作在方式。,高4位做輸入端口(本次設(shè)計中只用PC4、PC5,分別用于連接復(fù)位鍵和開始鍵),低4位做輸出端口

25、(PC3PCO,經(jīng)驅(qū)動器2后PCI、PC2、PC3分別用于連接黃、名匚、綠三個發(fā)光二極管,PCO連接到8253的GATE1端,以控制通道1的計數(shù))。6. 2.3可編程定時器/計數(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。5、軟件設(shè)計DATASEGMENTTABDB06H.5

26、BH.4FH.66H.6DHJCH,07H,7FH.67H;19的段碼;(字形碼)BZDBOOHDATAENDSSTACKSEGMENTPARASTACK'STACK,DB STACKCODEASSUMESTART:100HDUP(?)ENDSSEGMENTDS:DATA.CS:CODEMOVAX.DATAMOVDS.AX;8259A初始化MOVAL.13HOUT20H.ALMOVAL.08HOUT21H.ALMOVAL.ODHOUT21H.AL;8255A初始化MOVAU98HOUT83H.ALXORAL.ALOUT81H.ALOUT82H.AL;8253初始化MOVAL.37HOU

27、T43HALMOVAL.00H;初始化8259A的ICW1;送中斷類型碼基值,8259A的ICW2;一般中斷結(jié)束方式,8259A的ICW48255A工作方式:B口、C口初始化;置8253通道0控制字;置8253通道0計數(shù)初值為4000OUT 40H.ALMOV AL.40HOUT 40H.ALMOV AL.73HOUT 43H.ALMOV AL.OOHOUT 41H.ALMOV AL.30HOUT 41H、ALMOV AL.B7HOUT 43HALMOV AL.OOHOUT 42H.ALMOV AL.OOH;設(shè)置搶答按鍵中斷向量;中斷類型號為入口參數(shù):DS: DX指向4字節(jié)地址;置8253通道

28、1控制字;置8253通道1計數(shù)初值為3000;置8253通道2控制字;置8253通道2控制字;置8253通遹2計數(shù)初值為0OUT42H.ALMOVAL,OOHOUT42H.AL中斷設(shè)置MOVAH.25HMOVAL.OAHMOVBX.SEGKEYINTMOVDS.BXMOVDX.OFFSETKEYINTINT21HSTI;主循環(huán)LOPM:INAU82H;使IF置1,開放可屏蔽中斷;檢測開始鍵檢測C 口的PC5端開始鍵未按下即PC5=0,則跳轉(zhuǎn)檢測TESTAL.20HJZLOP2LOP1:INAU82HTESTAL.20H;復(fù)位鍵;檢測開始鍵是否已經(jīng)彈起,即PC5=0JNZ LOP1MOV AL.

29、OOHOUT 81H.ALMOV AL.08HOUT 82H.ALMOV BZ.OFFHSTI;開始鍵沒有彈起再重新檢測;關(guān)LED顯示器;送到B口;綠燈亮;送到CD;置標志LOP2:INTESTALJOHAL.82H;檢測復(fù)位鍵;檢測C口的PC4端JZ LOPMLOP3:IN AU82H復(fù)位鍵未按下即PC4=0,則跳轉(zhuǎn)再檢;測開始鍵;檢測復(fù)位鍵是否彈起,即PC4=0TESTALJOHJNZLOP3MOVAL.OOHOUT81H,ALOUT82H.ALMOVB乙OOHSTIJMPLOPM;中斷服務(wù)子程序一CODEENDSENDSTART中斷服務(wù)子程序:KEYINTPROCFARPUSHAX;位鍵

30、沒有彈起,則重新檢測;關(guān)LED顯示器、指標燈;清標志;保護現(xiàn)場PUSHBXPUSH DXPUSH DSCLIIN AL.80HNOT ALMOV CX.8LOP4:SHR AL, 1LOOPNZ LOP4MOV AX.CXMOV BX.OFFSET TABXLATOUT81 HALTEST BZ.OFFHJZ LOP5MOV AL.OOH;黃燈亮,搶答成功;并使本次中斷壓入堆棧中的IF=O;(關(guān)中斷);從8255的A口獲取選手按鍵信息;將按鍵字節(jié)信息取反;計數(shù)8次;獲取選手號碼;把選手號傳給AX;查段碼(字形碼);將選手號轉(zhuǎn)換成TAB中對應(yīng)的LED;字形碼;判斷標志位是否為FFH;S8253通

31、道2計數(shù)值OUT42H.ALMOVALJOHOUT42H.ALMOVAL.03HOUT82H.ALJMPKKKLOP5:MOVAUOOH;g8253通道2計數(shù)值OUT42H、ALMOVAL.20HOUT42H、ALMOVAL.05H;紅燈亮,搶答違規(guī)OUT82H,ALKKK:MOVAL,20H;給8259發(fā)中斷結(jié)束命令,寫OCW2OUT20H,ALPOPAX;恢復(fù)現(xiàn)場POPBXPOPDXPOPDSIRETKEYINTENDP6、調(diào)試過程(1)在剛開始編程時,各種功能大部分是由主程序來完成的。由于主程序過于復(fù)雜,可讀性不高。使得在以后的程序的調(diào)試中遇到了很大的麻煩。后來把主程序的部分功能轉(zhuǎn)化成子程序來實現(xiàn),并在一些重要的地方增加了注釋,使的程序的可讀性大大加強。調(diào)試也變的比較簡單了。到此基本解決了第一個問題。(2)在編程時,子程序的調(diào)試也是相當(dāng)重要,由于子程序不可避免的使用AXBXCXDX通用寄存器一個或幾個。使得原主程序中的通用寄存器的內(nèi)容很容易被覆蓋,對子程序中所有的通用寄存器出入棧即可以避免上訴的問題,不用考慮使用的是哪幾個寄存器,使用起來又比較簡單方便。所以至此這個問題也已基本解決。(3)調(diào)試是

溫馨提示

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

評論

0/150

提交評論