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

下載本文檔

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

文檔簡介

1、微機(jī)與接口課程設(shè)計(jì)報(bào)告智能搶答器班級(jí): 學(xué)號(hào): 姓名: 指導(dǎo)教師: 成績: 年1月 11日目錄1、課程設(shè)計(jì)目的及要求32、系統(tǒng)功能33、總體設(shè)計(jì)33.1基本工作原理33.1.1中斷優(yōu)先級(jí)管理器8259a控制字要求33.1.2可編程并行接口接口芯片8255a控制字要求33.1.3可編程定時(shí)器計(jì)數(shù)器8253控制字要求33.2硬件總體設(shè)計(jì)33.2. 1系統(tǒng)總成方案33.2.2內(nèi)存單元編址43.2.3鍵盤、揚(yáng)聲器及顯示功能的定義4(1) 硬件原理框圖4(2) 原理連線圖433軟件總體設(shè)計(jì)63.3.1主程序流程圖:64、硬件設(shè)計(jì)84.1所使用芯片功能84.1.1可編程并行輸入/輸出接口芯片8255a84

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

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

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

5、器1連接led顯示器(pb7pb0依次對應(yīng)連接led顯示器的dp、g、f、e、d、c、b、a七段數(shù)碼管管腳);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ù))。3.1.3可編程定時(shí)器計(jì)數(shù)器8253控制字要求通道0:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為bcd碼,計(jì)數(shù)初值為4000。通道1:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式1即可重觸發(fā)的

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

7、3h(3)、可編程定時(shí)器計(jì)數(shù)器8253的端口地址為40h、41h、42h、43h 3.2.3鍵盤、揚(yáng)聲器及顯示功能的定義10個(gè)按鍵中,一個(gè)開始鍵一個(gè)復(fù)位鍵,另外8個(gè)用做8位選手的搶答按鍵。揚(yáng)聲器用與黃、紅、綠三個(gè)發(fā)光二極管配合使用,黃燈亮揚(yáng)聲器鳴叫表示搶答成功,紅燈亮揚(yáng)聲報(bào)警表示搶答違規(guī)報(bào)警,綠燈亮揚(yáng)聲器不鳴則表示主持人已按下開始鍵。led顯示器顯示的內(nèi)容與選手號(hào)對應(yīng),搶答成功或違規(guī)都要顯示。(1) 硬件原理框圖按鍵設(shè)置8 2 5 5cpu8 2 5 4led顯 示 模 塊聲光報(bào)警8259 cpu 圖1(2) 原理連線圖pc4pc5d7d0 8255 pb7pc0csa0a1 pc3pc0rd

8、 wr驅(qū)動(dòng)器1驅(qū)動(dòng)器2與非門按鍵1按鍵2按鍵8按鍵3按鍵7按鍵6按鍵5按鍵4+5vpc0pb0pb7pc1pc2pc3紅燈綠燈黃燈8段led顯示器+5v開始鍵復(fù)位鍵揚(yáng)聲器pa7pa0d7d0ir0ir4ir5d7d08259wrrdintacsa0int(20h21h)ir2ir6ir7ir3ir1int(80h83h)ioriow(40h43h)a1ad8ad15 rdwrad0ad1 inta intr8086 rd wrgate0d7d0 out0 clk1 gate1 out1 8253cs gate2a0 clk0a1 clk1 clk2+5v驅(qū)動(dòng)器31mhz圖233軟件總體設(shè)計(jì)3.

9、3.1主程序流程圖:檢測復(fù)位鍵是否彈起關(guān)閉led顯示器、指示燈將標(biāo)志位清零,使if=1開入中斷結(jié)束檢測復(fù)位鍵是否按下開始設(shè)置led字形碼初值、標(biāo)志初值對8259a、8255、8253進(jìn)行初始化設(shè)置搶答鍵中斷向量并使if置1開放中斷檢測開始鍵是否按下 檢測開始鍵是否彈起關(guān)閉led顯示器點(diǎn)亮綠燈置標(biāo)志位值為ffh使if=1開放中斷置標(biāo)志位值為ffh使if=1開放中斷點(diǎn)亮綠燈關(guān)閉led顯示器檢測開始鍵是否彈起檢測開始鍵是否按下 設(shè)置搶答鍵中斷向量并使if置1開放中斷對8259a、8255、8253進(jìn)行初始化設(shè)置led字形碼初值、標(biāo)志初值開始檢測復(fù)位鍵是否按下置標(biāo)志位值為ffh使if=1開放中斷點(diǎn)亮綠

10、燈關(guān)閉led顯示器檢測開始鍵是否彈起檢測開始鍵是否按下 設(shè)置搶答鍵中斷向量并使if置1開放中斷對8259a、8255、8253進(jìn)行初始化設(shè)置led字形碼初值、標(biāo)志初值開始開始設(shè)置led字形碼初值、標(biāo)志初值對8259a、8255、8253進(jìn)行初始化設(shè)置搶答鍵中斷向量并使if置1開放中斷檢測開始鍵是否按下 ny檢測開始鍵是否彈起n y關(guān)閉led顯示器點(diǎn)亮綠燈置標(biāo)志位值為ffh使if=1開放中斷檢測復(fù)位鍵是否按下n yn y圖3開始保護(hù)現(xiàn)場,將各寄存器值壓入堆棧將本次中斷壓入堆棧中,并置if=0關(guān)閉中斷設(shè)置循環(huán)次數(shù)為8次將al中的值邏輯右移1位從8255的a端口獲取選手按鍵信息,并將其值取反判斷cx

11、是否為0或zf是否為1獲取選手號(hào)碼,并將值傳給ax通過xlat指令將選手號(hào)轉(zhuǎn)換成led顯示相應(yīng)的字形碼將轉(zhuǎn)換好的字形碼值傳給8255的b端口判斷標(biāo)志位是否為ffh置8253 通道2計(jì)數(shù)值將黃燈點(diǎn)亮,搶答成功,揚(yáng)聲器鳴叫置8253 通道2計(jì)數(shù)值將紅燈點(diǎn)亮,搶答違規(guī),揚(yáng)聲器報(bào)警給8259發(fā)中斷結(jié)束命令中斷返回nyyn3.3.2子程序流程圖圖44、硬件設(shè)計(jì) 4.1所使用芯片功能4.1.1可編程并行輸入/輸出接口芯片8255a 8255a具有三個(gè)獨(dú)立的輸入/輸出端口,每個(gè)端口的并行數(shù)據(jù)寬度為8位。三個(gè)端口分別為a端口,b端口,c端口,可分別與不同的外設(shè)進(jìn)行數(shù)據(jù)交換,也可聯(lián)合使用,在中斷方式下實(shí)現(xiàn)cpu

12、與外設(shè)間的數(shù)據(jù)傳遞。8255a提供方式0,方式1,方式2三種工作方式供選擇。 1.8255a的內(nèi)部結(jié)構(gòu)包括以下幾個(gè)部分:resetcsdb數(shù)據(jù)總線緩沖器b組控制a組控制端口c(低位)端口b端口c(高位)端口apb7pb0pc3pc0pc7pc4pa7pa0 圖5rd讀/寫控制邏輯wra0 a1 并行輸入/輸出端口,它有三個(gè)輸入/輸出端口,每個(gè)端口8位,都可選擇為輸入或輸出。a端口有一閣位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸入鎖存器;b端口有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸入緩沖器;c端口有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸入緩沖器。通常a端口和b端口作為輸入/輸出數(shù)據(jù)端口

13、,c端口常作為控制或狀態(tài)信息的端口,它可分為兩個(gè)4位端口。在與外設(shè)數(shù)據(jù)傳送中需要聯(lián)絡(luò)控制線時(shí),c端口分別與a,b端口配合使用,此時(shí),c端口作控制信號(hào)輸出和狀態(tài)信號(hào)輸入。(1)a組和b組控制電路,8255a內(nèi)部的三個(gè)端口可分為兩組:a組由a口和c口高4位組成;b組由b口和c口低4位組成。a組和b組分別有自己的控制電路,即a組和b組控制電路。其功能:負(fù)責(zé)接受來自讀寫控制的邏輯的各種命令,以及來自數(shù)字總線的控制字,從而決定a組和b組的工作方式,還可根據(jù)cpu的命令對c端口的每一位實(shí)現(xiàn)“復(fù)位”或“置位”。(2)讀/寫控制邏輯,這是8255a內(nèi)部完成讀/寫控制功能的部件。它與6條輸入控制線相連,負(fù)責(zé)接收

14、cpu輸入的地址信號(hào)和讀/寫,復(fù)位控制信號(hào),轉(zhuǎn)變成各種命令發(fā)向a組和b組控制電路。(3)數(shù)據(jù)總線緩沖器,這是一個(gè)8位雙向三態(tài)緩沖器,它是8255a與cpu數(shù)據(jù)總線的接口,由讀/寫控制其數(shù)據(jù)傳送方向及三態(tài)。8255a與cpu間的數(shù)據(jù)傳送如輸入/輸出數(shù)據(jù),cpu寫入8255a的控制字,8255a送給cpu的狀態(tài)信息,都是經(jīng)過這個(gè)緩沖器傳送的。2.8255a的控制字:(方式選擇命令字和端口c按位置位/復(fù)位控制字)。方式選擇命令字:d7d6d5d4d3d2d1d0a組方式a口1 輸入0輸出pc7pc41輸入0輸出b組方式0方式01方式1b口1輸入0輸出pc3pc01輸入0輸出1有效標(biāo)志位00方式001

15、方式11方式2端口c按位置位/復(fù)位控制字特征位 不用不用不用位選擇位選擇位選擇置位/復(fù)位 0 d6d5d4d3d2d1d00、10、10、10、1d3、d2、d1 :000111分別對應(yīng)c口17位d0:0為復(fù)位,1為置位3.8255a有三種工作方式:方式0-基本輸入/輸出方式。這種方式不使用中斷,沒有規(guī)定的聯(lián)絡(luò)信號(hào),三個(gè)端口的24條引腳均可做為輸入/輸出線,由程序設(shè)定各端口為輸入端口或輸出端口,完成并行輸入/輸出操作。方式1-選通輸入/輸出方式。這種方式下,端口a或端口b仍做為數(shù)據(jù)端口,同時(shí)規(guī)定了端口c的某些位做為控制或狀態(tài)信息位,數(shù)據(jù)的輸入/輸出操作在聯(lián)絡(luò)信號(hào)的應(yīng)答控制下完成,因而,可使用中

16、斷,也可使用查詢。方式2-雙向傳送方式。這種方式下,外設(shè)在單一的8位數(shù)據(jù)線上,既能發(fā)送數(shù)據(jù),也能接受數(shù)據(jù)。在相應(yīng)的控制線配合下,用中斷方式或程序查詢方式輸入/輸出數(shù)據(jù)。端口a可工作于方式0,方式1和方式2,端口b可工作于方式1,端口c通常分成高4位和低4位,分別傳送數(shù)據(jù)或控制,狀態(tài)信息。4.1.2可編程定時(shí)器/計(jì)數(shù)器8253/82548253芯片采用24個(gè)引腳,雙列直插式封裝,nmos工藝,單一+5v電源。片內(nèi)有3個(gè)獨(dú)立的16位減法計(jì)數(shù)器,每個(gè)計(jì)數(shù)器又可分兩個(gè)8位的計(jì)數(shù)器。8253有兩種工作方式,即二進(jìn)制或bcd方式計(jì)數(shù);6種工作方式,既可對系統(tǒng)時(shí)鐘脈沖計(jì)數(shù)實(shí)現(xiàn)定時(shí),又可對外部事件進(jìn)行計(jì)數(shù)???/p>

17、由軟件或硬件開始計(jì)數(shù)或停止計(jì)數(shù)。d0d71.8253的內(nèi)部結(jié)構(gòu)包括以下幾部分:計(jì)數(shù)器0#計(jì)數(shù)器1#計(jì)數(shù)器2#數(shù)據(jù)總線緩沖器讀/寫邏輯控制字寄存器clk0gate0weout0 rdclk1 a0gate1 a1out1 csclk2 gndgate2 vccout2 圖6 8253由計(jì)數(shù)器、控制寄存器、讀/寫控制邏輯和數(shù)據(jù)總線緩沖器4部分和內(nèi)部總線構(gòu)成。 (1)數(shù)據(jù)總線緩沖器。該緩沖器為8位雙向三態(tài)的緩沖器,可直接掛在數(shù)據(jù)線上,cpu通過它,一方面可以向控制寄存器寫入控制字,向計(jì)數(shù)器寫入計(jì)數(shù)初值;另一方面也可由cpu通過該緩沖器讀出計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值。 (2)讀/寫控制邏輯。功能是接收來自cp

18、u的控制信號(hào),完成對8253各計(jì)數(shù)器的讀/寫操作。 (3)控制寄存器。接收從cpu來的控制字,并由控制字的d7、d6位的編碼決定控制字寫入哪個(gè)計(jì)數(shù)器的控制寄存器。 (4)計(jì)數(shù)器。8253有三個(gè)計(jì)數(shù)器通道:計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2。每個(gè)計(jì)數(shù)器都由16位鎖存寄存器和一個(gè)16位的減1計(jì)數(shù)器組成。每個(gè)計(jì)數(shù)器有3根信號(hào)線。其中2根為輸入信號(hào):時(shí)鐘信號(hào)clk和門控gate信號(hào);1根輸出信號(hào)out。2.8253的工作方式:方式0-計(jì)數(shù)結(jié)束產(chǎn)生中斷方式。這種方式的計(jì)數(shù)過程為當(dāng)寫入方式0后,計(jì)數(shù)器輸出out立即變?yōu)榈碗娖?,并且在?jì)數(shù)過程中一起維持低電平。賦初值后,clk第一個(gè)下降沿到,計(jì)數(shù)值裝入計(jì)數(shù)器,隨后

19、每一個(gè)clk脈沖下降沿到,計(jì)數(shù)器減1.計(jì)數(shù)器減到零時(shí),out輸出變?yōu)楦唠娖?,并且一直保持到該通道重新裝入計(jì)數(shù)值或重新設(shè)置工作方式為止。方式1-可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器。這種方式的計(jì)數(shù)過程為當(dāng)裝入計(jì)數(shù)初值后out輸出為高電平,當(dāng)gate上升沿到,out輸出為低電平,開始計(jì)數(shù);計(jì)數(shù)結(jié)束時(shí),輸出變?yōu)楦唠娖綇亩a(chǎn)生一個(gè)寬度為n個(gè)t的負(fù)脈沖。方式2-分頻器。這種方式的計(jì)數(shù)過程為寫入控制字后的時(shí)鐘上升沿,輸出端out變成高電平,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù)。減到1時(shí)輸出端out變?yōu)榈碗娖剑瑴p到0時(shí),輸出out又變?yōu)楦唠娖剑瑫r(shí)從初值開始新的計(jì)數(shù)過程。方式3-方波發(fā)生器。這種方式的計(jì)數(shù)過程分兩

20、種情況。第一種情況:計(jì)數(shù)初值為偶數(shù)。寫入控制字后的時(shí)鐘上升沿,輸出端out變成高電平,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù)。減到n/2時(shí),輸出端out為為低電平,減到0時(shí),輸出out又變?yōu)楦唠娖?,并重新從初值開始新的計(jì)數(shù)過程。第二種情況:計(jì)數(shù)初值為奇數(shù)。寫入控制字后的時(shí)鐘上升沿,輸出端out變成高電平,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù)。減到(n+1)/2以后,輸出端out變?yōu)榈碗娖?,減到0時(shí),輸出端out又變?yōu)楦唠娖剑⒅匦聫某踔甸_始新的計(jì)數(shù)過程。方式4-軟件觸發(fā)選通。這種方式的計(jì)數(shù)過程與方式0非常相似。當(dāng)方式控制字置入后,out輸出高電平。置入初值后經(jīng)過一個(gè)clk脈沖開始

21、減1計(jì)數(shù),計(jì)數(shù)到達(dá)0值,out輸出為低電平,持續(xù)一個(gè)clk脈沖周期后再恢復(fù)到高電平。方式5-硬件觸發(fā)選通。這種方式的計(jì)數(shù)過程為輸出out即為高電平,寫入初值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而是由門控脈沖的上升沿觸發(fā)。計(jì)數(shù)結(jié)束,輸出一個(gè)持續(xù)時(shí)間為一個(gè)tclk的負(fù)脈沖,然后輸出恢復(fù)為高電平,直到gate信號(hào)再次觸發(fā)。4.1.3 中斷優(yōu)先級(jí)管理器8259a1.8259a內(nèi)部結(jié)構(gòu): 內(nèi)部總線數(shù)據(jù)總線緩沖器讀/寫邏輯級(jí)聯(lián)緩沖比較器 控 制 邏 輯當(dāng)前中斷服務(wù)寄存器(isr)優(yōu)先級(jí)分析器(pr)中斷請求寄存器(irr)中斷屏蔽寄存器(imr)ir0ir1.ir7csd7d0 inta0.ir7cas0cas1

22、cas2/.ir7圖7.8259a采用nmos工藝制成,有28根引腳,所有輸入、輸出端與ttl電平兼容,單一電源(vcc=+5v)供電。8259的內(nèi)部主要組成部分,包括處理部件(中斷請求寄存器irr、優(yōu)先級(jí)鑒別器pr及現(xiàn)行服務(wù)寄存器isr)、控制部件(控制邏輯及中斷屏蔽寄存器imr)、數(shù)據(jù)總路線緩沖器、讀寫邏輯以及級(jí)聯(lián)緩沖器比較器等5個(gè)部分。2.8259a主要的外部引腳:d0d7:雙向數(shù)據(jù)線,cpu與8259a間利用這個(gè)數(shù)據(jù)總線傳送數(shù)據(jù)及命令。wr:寫控制輸入信號(hào),同控制總線上的iow信號(hào)相連。rd:讀控制輸入信號(hào),同控制總線上的ior信號(hào)相連。a0:地址選擇信號(hào),用來對8259a內(nèi)部的兩個(gè)可

23、編程寄存器進(jìn)行選擇。cs:片選輸入信號(hào),低電平有效。有效時(shí)刻通過數(shù)據(jù)總線設(shè)置命令并對內(nèi)部寄存器進(jìn)行讀出。當(dāng)進(jìn)入中斷響應(yīng)時(shí)序時(shí),該引腳狀態(tài)與進(jìn)行的處理無關(guān)。int:由8259a向cpu發(fā)出的中斷請求信號(hào)。inta:輸入信號(hào),接收cpu送來的中斷響應(yīng)信號(hào)inta.ir0ir7:8個(gè)中斷請求輸入信號(hào),高電平或上升沿有效。用于接收外設(shè)接口來的中斷請求。cas0cas2:三條信號(hào)線試8259a級(jí)聯(lián)時(shí)使用的,用來構(gòu)成8259a的主從式級(jí)聯(lián)控制結(jié)構(gòu)。sp/en:從片編程/允許緩沖器信號(hào),雙向,低電平有效。3.8259a工作方式(1)、優(yōu)先級(jí)設(shè)置方式:全嵌套方式(固定優(yōu)先級(jí)方式)、特殊全嵌套方式(可響應(yīng)同級(jí)中

24、斷方式)、輪轉(zhuǎn)優(yōu)先級(jí)方式、特殊輪轉(zhuǎn)優(yōu)先級(jí)方式。(2)、中斷源屏蔽方式:普通屏蔽方式、特殊屏蔽方式。(3)、中斷結(jié)束方式:中斷自動(dòng)結(jié)束方式、中斷非自動(dòng)結(jié)束方式(包括一般中斷結(jié)束方式、特殊中斷結(jié)束方式)。(4)、系統(tǒng)總路線連接方式:緩沖方式、非緩沖方式。(5)、中斷請求信號(hào)觸發(fā)方式:邊沿觸發(fā)方式、電平觸發(fā)方式。4.8259a初始化控制字格式icw1(芯片控制字)d7 d6 d5d4d3d2d1d0 0 0 0特征位1觸發(fā)方式0 邊沿觸發(fā)1 電平觸發(fā)0單片選擇信號(hào)0 多片8259級(jí)聯(lián)1 單片8259是不要icw40 不要(8080/8085)1 要(80x86)icw2(中斷類型碼控制字,d7d3設(shè)

25、置中斷類型碼)d7d6d5d4d3d2d1d0000icw3(主片,級(jí)聯(lián)時(shí)才用設(shè)置,各位為1則表示接有從片)d7d6d5d4d3d2d1d0ir7ir6ir5ir4ir3ir2ir1ir0icw3(從片,級(jí)聯(lián)時(shí)才用設(shè)置)d7d6d5d4d3d2 d1 d000000id2 id1 id0 從片int接于主片的引腳0 0 0 ir00 0 1 ir1 1 1 1 ir7icw4(方式控制字)d7 d6 d5d4d3d2d1d00 0 0嵌套方式0 全嵌套方式1特殊全嵌套方式緩沖方式0非緩沖方式1緩沖方式緩沖方式下0本片為從片1本片為主片中斷結(jié)束方式0中斷非自動(dòng)結(jié)束1中斷自動(dòng)結(jié)束系統(tǒng)類型0 808

26、0/80851 80x865.8259a操作命令字格式ocw0(中斷屏蔽字,各位為1則被屏蔽)d7d6d5d4d3d2d1d0ir7ir6ir5ir4ir3ir2ir1ir0ocw1(輪轉(zhuǎn)優(yōu)先級(jí)和中斷結(jié)束字)d7d6d5d4 d3d2 d1 d0輪轉(zhuǎn)位0 非輪轉(zhuǎn)1 輪轉(zhuǎn)選擇標(biāo)志位0 l2l0無效1 l2l0有效中斷結(jié)束位0 非中斷結(jié)束 1 中斷結(jié)束特征位00標(biāo)志位000 ir0 優(yōu)先級(jí)最低001 ir1 優(yōu)先級(jí)最低ocw2(特殊屏蔽、查詢和狀態(tài)讀取字)d7d6d5d4 d3d2d1d00特殊屏蔽方式允許位0 禁止特殊屏蔽方式1 允許特殊屏蔽方式特殊屏蔽方式位0 非特殊屏蔽方式1 特殊屏蔽方式特

27、征位01中斷查詢位0非中斷查詢1中斷查詢讀寄存器0 禁止讀1 允許讀0讀irr1讀isr4.2系統(tǒng)所選用各芯片的工作方式4.2.1中斷優(yōu)先級(jí)管理器8259a的工作方式(1)、芯片控制icw1:采用邊沿觸發(fā),單片8259,要寫入icw4控制字(2)、中斷類型碼icw2:設(shè)置ir0ir7的中斷類型碼依次為08h、09h、0fh(3)、方式控制icw4:優(yōu)先級(jí)設(shè)置方式為全嵌套方式即固定優(yōu)先級(jí)方式,系統(tǒng)總線連接方式為主片工作在緩沖方式下,中斷結(jié)束方式采用中斷非自動(dòng)結(jié)束方式,8259工作在8086系統(tǒng)上。4.2.2 可編程并行接口接口芯片8255a的工作方式(1)、a口工作在方式0,做為輸入端口用于連接

28、選手按鍵(pa7pa0依次對應(yīng)按鍵18);(2)、b口工作在方式0,做為輸出端口,經(jīng)驅(qū)動(dòng)器1連接led顯示器(pb7pb0依次對應(yīng)連接led顯示器的dp、g、f、e、d、c、b、a七段數(shù)碼管管腳);(3)、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ù))。4.2.3 可編程定時(shí)器計(jì)數(shù)器8253的工作方式(1)、通道0:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)

29、數(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。5、軟件設(shè)計(jì)datasegmenttab db06h,5bh,4fh,66h,6dh,7ch,07h,7fh,67h ;19的段碼;(字形碼)bz db 00hdataendsstacksegmentparastackstackdb100hdup(?)stackendscode segmentassumeds:data,cs:co

30、destart:movax,datamovds,ax;8259a初始化mov al,13h;初始化8259a的icw1out 20h,almoval,08h;送中斷類型碼基值,8259a的icw2out21h,almoval,0dh;一般中斷結(jié)束方式,8259a的icw4out21h,al;8255a初始化mov al,98h;置8255a工作方式out 83h,alxoral,al;b口、c口初始化out 81h,alout82h,al;8253初始化mov al,37h;置8253通道0控制字out 43h,almov al,00h;置8253通道0計(jì)數(shù)初值為4000out40h,almo

31、val,40hout40h,almov al,73h;置8253 通道1控制字out43h,almoval,00h;置8253通道1計(jì)數(shù)初值為3000out41h,almoval,30hout41h,almov al,b7h;置8253通道2控制字out43h,almoval,00h;置8253通道2控制字out42h,almoval,00h;置8253通道2計(jì)數(shù)初值為0out42h,almoval,00hout42h,al;中斷設(shè)置movah,25h;設(shè)置搶答按鍵中斷向量mov al,0ah;中斷類型號(hào)為入口參數(shù)mov bx,seg keyint;ds:dx指向4字節(jié)地址mov ds,bxm

32、ov dx,offset keyintint 21hsti;使if置1,開放可屏蔽中斷;主循環(huán)lopm:inal,82h;檢測開始鍵testal,20h;檢測c口的pc5端jz lop2;開始鍵未按下即pc5=0,則跳轉(zhuǎn)檢測;復(fù)位鍵lop1:inal,82h;檢測開始鍵是否已經(jīng)彈起,即pc5=0testal,20hjnz lop1;開始鍵沒有彈起再重新檢測moval,00h;關(guān)led顯示器out 81h,al;送到b口moval,08h;綠燈亮out82h,al;送到c口movbz,0ffh;置標(biāo)志stilop2:inal,82h;檢測復(fù)位鍵testal,10h;檢測c口的pc4端jzlopm

33、 ;復(fù)位鍵未按下即pc4=0,則跳轉(zhuǎn)再檢;測開始鍵lop3:inal,82h;檢測復(fù)位鍵是否彈起,即pc4=0test al,10hjnz lop3;位鍵沒有彈起,則重新檢測moval,00h;關(guān)led顯示器、指標(biāo)燈out 81h,alout 82h,almovbz,00h;清標(biāo)志stijmplopm;中斷服務(wù)子程序codeendsendstart中斷服務(wù)子程序:keyintprocfarpushax;保護(hù)現(xiàn)場pushbxpush dxpushdscli;并使本次中斷壓入堆棧中的if=0;(關(guān)中斷)inal,80h;從8255的a口獲取選手按鍵信息notal;將按鍵字節(jié)信息取反movcx,8;

34、計(jì)數(shù)8次lop4:shral , 1;獲取選手號(hào)碼loopnz lop4movax,cx;把選手號(hào)傳給axmovbx,offsettab;查段碼(字形碼)xlat;將選手號(hào)轉(zhuǎn)換成tab中對應(yīng)的led;字形碼out81h,altestbz,offh;判斷標(biāo)志位是否為ffhjzlop5moval,00h;置8253通道2計(jì)數(shù)值out42h,almoval,10hout42h,almoval,03h;黃燈亮,搶答成功out 82h,aljmpkkklop5:mov al,00h;置8253通道2計(jì)數(shù)值out42h,almov al,20hout 42h,almoval,05h;紅燈亮,搶答違規(guī)out82h,alkkk:moval,20h;給8259發(fā)中斷結(jié)束命令,寫ocw2out20h,alpopax;恢復(fù)現(xiàn)場popbxpopdxpopdsiretkeyintendp6、調(diào)試過程(1)在剛開始編程時(shí),各種功能大部分是由主程序來完成的。由于主程序過于復(fù)雜,可讀性不高。使得在以后的程序的調(diào)試中遇到了很大的麻煩。后來把主程序的部分功能轉(zhuǎn)化成子程序來實(shí)現(xiàn),并在一些重要的地方增加了注釋,使的程序的可讀性大大加強(qiáng)。調(diào)試也變的比較簡單了。到此基本解決了第一個(gè)問題。(2)在編程時(shí),子程序的調(diào)試也是相當(dāng)重要,由于子程序不可避免的使用axbxcxdx通用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論