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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  《微機(jī)與接口》</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p><b>  智能搶答器</b></p><p><b>  班級(jí): </b></p><p><b>  學(xué)號(hào): &l

2、t;/b></p><p>  姓名: </p><p><b>  指導(dǎo)教師: </b></p><p>  成績(jī): </p><p><b>  年1月 11日</b></p><p><b>  目錄</b

3、></p><p>  1、課程設(shè)計(jì)目的及要求3</p><p><b>  2、系統(tǒng)功能3</b></p><p><b>  3、總體設(shè)計(jì)3</b></p><p>  3.1基本工作原理3</p><p>  3.1.1中斷優(yōu)先級(jí)管理器8259A控制字要求

4、3</p><p>  3.1.2可編程并行接口接口芯片8255A控制字要求3</p><p>  3.1.3可編程定時(shí)器/計(jì)數(shù)器8253控制字要求3</p><p>  3.2硬件總體設(shè)計(jì)3</p><p>  3.2. 1系統(tǒng)總成方案3</p><p>  3.2.2內(nèi)存單元編址4</p>

5、<p>  3.2.3鍵盤、揚(yáng)聲器及顯示功能的定義4</p><p>  (1) 硬件原理框圖4</p><p>  (2) 原理連線圖4</p><p>  3.3軟件總體設(shè)計(jì)6</p><p>  3.3.1主程序流程圖:6</p><p><b>  4、硬件設(shè)計(jì)8</b&

6、gt;</p><p>  4.1所使用芯片功能8</p><p>  4.1.1可編程并行輸入/輸出接口芯片8255A8</p><p>  4.1.2可編程定時(shí)器/計(jì)數(shù)器8253/82549</p><p>  4.1.3 中斷優(yōu)先級(jí)管理器8259A10</p><p>  4.2系統(tǒng)所選用各芯片的工作方式

7、12</p><p>  4.2.1中斷優(yōu)先級(jí)管理器8259A的工作方式12</p><p>  4.2.2 可編程并行接口接口芯片8255A的工作方式12</p><p>  4.2.3 可編程定時(shí)器/計(jì)數(shù)器8253的工作方式13</p><p><b>  5、軟件設(shè)計(jì)13</b></p>&

8、lt;p><b>  6、調(diào)試過程16</b></p><p>  7、系統(tǒng)操作說明16</p><p><b>  8、總結(jié)16</b></p><p><b>  9、參考文獻(xiàn)17</b></p><p>  1、課程設(shè)計(jì)目的及要求</p>&l

9、t;p>  目的:掌握微機(jī)系統(tǒng)的開發(fā)步驟;掌握8255A、數(shù)碼管的用法;掌握匯編程序的設(shè)計(jì)。因此,本次設(shè)計(jì)要求對(duì)微機(jī)原理的理論知識(shí),8255A,8253,鍵盤顯示區(qū)的工作方式、工作原理熟練掌握。</p><p><b>  設(shè)計(jì)要求:</b></p><p>  1.1-8號(hào)選手中先按下按鍵者,LED數(shù)碼管顯示其選手號(hào)碼(后按下無效),且60S倒計(jì)時(shí)開始,計(jì)時(shí)結(jié)

10、束進(jìn)行聲光報(bào)警提示。 </p><p>  2.由裁判掌握,若回答正確,該選手對(duì)應(yīng)綠燈亮,否則紅燈亮。 </p><p>  3.回答正確時(shí),計(jì)分牌加10分,不正確減10分(滿分100分)。 </p><p>  4.選手號(hào)碼及選手分?jǐn)?shù)用LED數(shù)碼管顯示。 </p>

11、<p><b>  2、系統(tǒng)功能</b></p><p>  一個(gè)具有8路搶答的搶答器,利用并行接口和開關(guān)鍵。邏輯開關(guān)K0---K7代表搶答按鈕,當(dāng)某個(gè)邏輯開關(guān)閉合時(shí),相當(dāng)于搶答按鈕按下,此時(shí)在七段數(shù)碼管上將其號(hào)碼顯示出來,并使喇叭響一聲(或者以發(fā)光二極管代替)。</p><p><b>  3、總體設(shè)計(jì)</b></p>

12、<p><b>  3.1基本工作原理</b></p><p>  主持人按開始鍵,綠燈這后,選手才可搶答,否則違規(guī)。若搶答成功,LED顯示器顯示選手號(hào)碼,黃燈亮,揚(yáng)聲器鳴叫;若搶答違規(guī)(主持人示按開始鍵),LED顯示器顯示違規(guī)選手號(hào)碼,紅燈亮,揚(yáng)聲器報(bào)警。</p><p>  3.1.1中斷優(yōu)先級(jí)管理器8259A控制字要求</p><p

13、>  芯片控制字:采用邊沿觸發(fā),單片8259,要寫入ICW4控制字</p><p>  中斷類型碼控制字:設(shè)置IR0~IR7的中斷類型碼依次為08H、09H、…、0FH</p><p>  方式控制字:優(yōu)先級(jí)設(shè)置方式為全嵌套方式即固定優(yōu)先級(jí)方式,主片工作在緩沖方式下,中斷結(jié)束方式采用中斷非自動(dòng)結(jié)束方式,8259工作在8086系統(tǒng)上。</p><p>  3.1

14、.2可編程并行接口接口芯片8255A控制字要求</p><p>  A口工作在方式0,做為輸入端口用于連接選手按鍵(PA7~PA0依次對(duì)應(yīng)按鍵1~8);B口工作在方式0,做為輸出端口,經(jīng)驅(qū)動(dòng)器1連接LED顯示器(PB7~PB0依次對(duì)應(yīng)連接LED顯示器的dp、g、f、e、d、c、b、a七段數(shù)碼管管腳);C口也必須工作在方式0,高4 位做輸入端口(本次設(shè)計(jì)中只用PC4、PC5,分別用于連接復(fù)位鍵和開始鍵),低4位做輸

15、出端口(PC3~PC0,經(jīng)驅(qū)動(dòng)器2后PC1、PC2、PC3分別用于連接黃、紅、綠三個(gè)發(fā)光二極管,PC0連接到8253的GATE1端,以控制通道1的計(jì)數(shù))。</p><p>  3.1.3可編程定時(shí)器/計(jì)數(shù)器8253控制字要求</p><p>  通道0:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為4000。</p><p&

16、gt;  通道1:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式1即可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為3000。</p><p>  通道2:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。</p><p><b>  3.2硬件總體設(shè)計(jì)</b></p><p>  3.2.

17、1系統(tǒng)總成方案</p><p>  該競(jì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è)按鍵。</p><p>  3.2.2內(nèi)存單元編址</p><p> ?。?)、中斷優(yōu)先級(jí)管理器82

18、59A的端口地址為20H、21H</p><p> ?。?)、可編程并行接口接口芯片8255A的端口地址為80H、81H、82H、83H</p><p> ?。?)、可編程定時(shí)器/計(jì)數(shù)器8253的端口地址為40H、41H、42H、43H</p><p>  3.2.3鍵盤、揚(yáng)聲器及顯示功能的定義</p><p>  10個(gè)按鍵中,一個(gè)開始鍵一

19、個(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)對(duì)應(yīng),搶答成功或違規(guī)都要顯示。</p><p><b>  硬件原理框圖</b></p><p><b>  cpu </b&g

20、t;</p><p><b>  圖1</b></p><p><b>  原理連線圖</b></p><p><b>  圖2</b></p><p><b>  3.3軟件總體設(shè)計(jì)</b></p><p>  3.3.1主程序流

21、程圖:</p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b>&l

22、t;/p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  圖3</b></p><p><b>  圖4</b></

23、p><p><b>  4、硬件設(shè)計(jì)</b></p><p>  4.1所使用芯片功能</p><p>  4.1.1可編程并行輸入/輸出接口芯片8255A</p><p>  8255A具有三個(gè)獨(dú)立的輸入/輸出端口,每個(gè)端口的并行數(shù)據(jù)寬度為8位。三個(gè)端口分別為A端口,B端口,C端口,可分別與不同的外設(shè)進(jìn)行數(shù)據(jù)交換,也可聯(lián)合

24、使用,在中斷方式下實(shí)現(xiàn)CPU與外設(shè)間的數(shù)據(jù)傳遞。8255A提供方式0,方式1,方式2三種工作方式供選擇。</p><p>  1.8255A的內(nèi)部結(jié)構(gòu)包括以下幾個(gè)部分:</p><p>  并行輸入/輸出端口,它有三個(gè)輸入/輸出端口,每個(gè)端口8位,都可選擇為輸入或輸出。A端口有一閣位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸入鎖存器;B端口有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸入緩沖器;

25、C端口有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位數(shù)據(jù)輸入緩沖器。通常A端口和B端口作為輸入/輸出數(shù)據(jù)端口,C端口常作為控制或狀態(tài)信息的端口,它可分為兩個(gè)4位端口。在與外設(shè)數(shù)據(jù)傳送中需要聯(lián)絡(luò)控制線時(shí),C端口分別與A,B端口配合使用,此時(shí),C端口作控制信號(hào)輸出和狀態(tài)信號(hào)輸入。</p><p> ?。?)A組和B組控制電路,8255A內(nèi)部的三個(gè)端口可分為兩組:A組由A口和C口高4位組成;B組由B口和C口低4位組成。A組和

26、B組分別有自己的控制電路,即A組和B組控制電路。其功能:負(fù)責(zé)接受來自讀寫控制的邏輯的各種命令,以及來自數(shù)字總線的控制字,從而決定A組和B組的工作方式,還可根據(jù)CPU的命令對(duì)C端口的每一位實(shí)現(xiàn)“復(fù)位”或“置位”。</p><p>  (2)讀/寫控制邏輯,這是8255A內(nèi)部完成讀/寫控制功能的部件。它與6條輸入控制線相連,負(fù)責(zé)接收CPU輸入的地址信號(hào)和讀/寫,復(fù)位控制信號(hào),轉(zhuǎn)變成各種命令發(fā)向A組和B組控制電路。&l

27、t;/p><p>  (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è)緩沖器傳送的。</p><p>  2.8255A的控制字:(方式選擇命令字和端口C按位置位/復(fù)位控制字)。</p>

28、<p><b>  方式選擇命令字:</b></p><p>  端口C按位置位/復(fù)位控制字</p><p>  D3、D2、D1 :000~111分別對(duì)應(yīng)C口1~7位</p><p>  D0:0為復(fù)位,1為置位</p><p>  3.8255A有三種工作方式:</p><p> 

29、 方式0---基本輸入/輸出方式。這種方式不使用中斷,沒有規(guī)定的聯(lián)絡(luò)信號(hào),三個(gè)端口的24條引腳均可做為輸入/輸出線,由程序設(shè)定各端口為輸入端口或輸出端口,完成并行輸入/輸出操作。</p><p>  方式1---選通輸入/輸出方式。這種方式下,端口A或端口B仍做為數(shù)據(jù)端口,同時(shí)規(guī)定了端口C的某些位做為控制或狀態(tài)信息位,數(shù)據(jù)的輸入/輸出操作在聯(lián)絡(luò)信號(hào)的應(yīng)答控制下完成,因而,可使用中斷,也可使用查詢。</p&g

30、t;<p>  方式2---雙向傳送方式。這種方式下,外設(shè)在單一的8位數(shù)據(jù)線上,既能發(fā)送數(shù)據(jù),也能接受數(shù)據(jù)。在相應(yīng)的控制線配合下,用中斷方式或程序查詢方式輸入/輸出數(shù)據(jù)。</p><p>  端口A可工作于方式0,方式1和方式2,端口B可工作于方式1,端口C通常分成高4位和低4位,分別傳送數(shù)據(jù)或控制,狀態(tài)信息。</p><p>  4.1.2可編程定時(shí)器/計(jì)數(shù)器8253/82

31、54</p><p>  8253芯片采用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種工作方式,既可對(duì)系統(tǒng)時(shí)鐘脈沖計(jì)數(shù)實(shí)現(xiàn)定時(shí),又可對(duì)外部事件進(jìn)行計(jì)數(shù)??捎绍浖蛴布_始計(jì)數(shù)或停止計(jì)數(shù)。</p><p>  1.8253的內(nèi)部結(jié)構(gòu)包括以下幾部分:</

32、p><p><b>  CLK0</b></p><p><b>  GATE0</b></p><p><b>  OUT0</b></p><p><b>  RDCLK1</b></p><p><b>  A0GA

33、TE1</b></p><p><b>  A1OUT1</b></p><p><b>  CSCLK2</b></p><p><b>  GNDGATE2</b></p><p><b>  VCCOUT2</b></p&g

34、t;<p><b>  圖6</b></p><p>  8253由計(jì)數(shù)器、控制寄存器、讀/寫控制邏輯和數(shù)據(jù)總線緩沖器4部分和內(nèi)部總線構(gòu)成。</p><p>  (1)數(shù)據(jù)總線緩沖器。該緩沖器為8位雙向三態(tài)的緩沖器,可直接掛在數(shù)據(jù)線上,CPU通過它,一方面可以向控制寄存器寫入控制字,向計(jì)數(shù)器寫入計(jì)數(shù)初值;另一方面也可由CPU通過該緩沖器讀出計(jì)數(shù)器的當(dāng)前計(jì)

35、數(shù)值。</p><p>  (2)讀/寫控制邏輯。功能是接收來自CPU的控制信號(hào),完成對(duì)8253各計(jì)數(shù)器的讀/寫操作。</p><p>  (3)控制寄存器。接收從CPU來的控制字,并由控制字的D7、D6位的編碼決定控制字寫入哪個(gè)計(jì)數(shù)器的控制寄存器。</p><p>  (4)計(jì)數(shù)器。8253有三個(gè)計(jì)數(shù)器通道:計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2。每個(gè)計(jì)數(shù)器都由16位鎖存寄

36、存器和一個(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。</p><p>  2.8253的工作方式:</p><p>  方式0---計(jì)數(shù)結(jié)束產(chǎn)生中斷方式。這種方式的計(jì)數(shù)過程為當(dāng)寫入方式0后,計(jì)數(shù)器輸出OUT立即變?yōu)榈碗娖?,并且在?jì)數(shù)過程中一起維持低電平。賦初值后,CLK第一個(gè)下降沿到,計(jì)數(shù)值裝入計(jì)數(shù)器,隨后每一

37、個(gè)CLK脈沖下降沿到,計(jì)數(shù)器減1.計(jì)數(shù)器減到零時(shí),OUT輸出變?yōu)楦唠娖?,并且一直保持到該通道重新裝入計(jì)數(shù)值或重新設(shè)置工作方式為止。</p><p>  方式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ù)脈沖。</p><p>  方式2---分頻

38、器。這種方式的計(jì)數(shù)過程為寫入控制字后的時(shí)鐘上升沿,輸出端OUT變成高電平,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù)。減到1時(shí)輸出端OUT變?yōu)榈碗娖?,減到0時(shí),輸出OUT又變?yōu)楦唠娖?,同時(shí)從初值開始新的計(jì)數(shù)過程。</p><p>  方式3---方波發(fā)生器。這種方式的計(jì)數(shù)過程分兩種情況。第一種情況:計(jì)數(shù)初值為偶數(shù)。寫入控制字后的時(shí)鐘上升沿,輸出端OUT變成高電平,寫入計(jì)數(shù)初值后的第一個(gè)時(shí)鐘下降沿開始減1計(jì)數(shù)。減

39、到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ù)過程。</p><p>  方式4---軟件觸發(fā)選通。這種方式的計(jì)數(shù)過程與方式0非常

40、相似。當(dāng)方式控制字置入后,OUT輸出高電平。置入初值后經(jīng)過一個(gè)CLK脈沖開始減1計(jì)數(shù),計(jì)數(shù)到達(dá)0值,OUT輸出為低電平,持續(xù)一個(gè)CLK脈沖周期后再恢復(fù)到高電平。</p><p>  方式5---硬件觸發(fā)選通。這種方式的計(jì)數(shù)過程為輸出OUT即為高電平,寫入初值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而是由門控脈沖的上升沿觸發(fā)。計(jì)數(shù)結(jié)束,輸出一個(gè)持續(xù)時(shí)間為一個(gè)TCLK的負(fù)脈沖,然后輸出恢復(fù)為高電平,直到GATE信號(hào)再次觸發(fā)。&l

41、t;/p><p>  4.1.3 中斷優(yōu)先級(jí)管理器8259A</p><p>  1.8259A內(nèi)部結(jié)構(gòu):</p><p>  8259A采用NMOS工藝制成,有28根引腳,所有輸入、輸出端與TTL電平兼容,單一電源(Vcc=+5V)供電。8259的內(nèi)部主要組成部分,包括處理部件(中斷請(qǐng)求寄存器IRR、優(yōu)先級(jí)鑒別器PR及現(xiàn)行服務(wù)寄存器ISR)、控制部件(控制邏輯及中斷屏

42、蔽寄存器IMR)、</p><p>  數(shù)據(jù)總路線緩沖器、讀/寫邏輯以及級(jí)聯(lián)緩沖器/比較器等5個(gè)部分。</p><p>  2.8259A主要的外部引腳:</p><p>  D0~D7:雙向數(shù)據(jù)線,CPU與8259A間利用這個(gè)數(shù)據(jù)總線傳送數(shù)據(jù)及命令。</p><p>  WR:寫控制輸入信號(hào),同控制總線上的IOW信號(hào)相連。</p>

43、;<p>  RD:讀控制輸入信號(hào),同控制總線上的IOR信號(hào)相連。</p><p>  A0:地址選擇信號(hào),用來對(duì)8259A內(nèi)部的兩個(gè)可編程寄存器進(jìn)行選擇。</p><p>  CS:片選輸入信號(hào),低電平有效。有效時(shí)刻通過數(shù)據(jù)總線設(shè)置命令并對(duì)內(nèi)部寄存器進(jìn)行讀出。當(dāng)進(jìn)入中斷響應(yīng)時(shí)序時(shí),該引腳狀態(tài)與進(jìn)行的處理無關(guān)。</p><p>  INT:由8259A

44、向CPU發(fā)出的中斷請(qǐng)求信號(hào)。</p><p>  INTA:輸入信號(hào),接收CPU送來的中斷響應(yīng)信號(hào)INTA.</p><p>  IR0~IR7:8個(gè)中斷請(qǐng)求輸入信號(hào),高電平或上升沿有效。用于接收外設(shè)接口來的中斷請(qǐng)求。</p><p>  CAS0~CAS2:三條信號(hào)線試8259A級(jí)聯(lián)時(shí)使用的,用來構(gòu)成8259A的主從式級(jí)聯(lián)控制結(jié)構(gòu)。</p><

45、p>  SP/EN:從片編程/允許緩沖器信號(hào),雙向,低電平有效。</p><p>  3.8259A工作方式</p><p> ?。?)、優(yōu)先級(jí)設(shè)置方式:全嵌套方式(固定優(yōu)先級(jí)方式)、特殊全嵌套方式(可響應(yīng)同級(jí)中斷方式)、輪轉(zhuǎn)優(yōu)先級(jí)方式、特殊輪轉(zhuǎn)優(yōu)先級(jí)方式。</p><p>  (2)、中斷源屏蔽方式:普通屏蔽方式、特殊屏蔽方式。</p><

46、;p> ?。?)、中斷結(jié)束方式:中斷自動(dòng)結(jié)束方式、中斷非自動(dòng)結(jié)束方式(包括一般中斷結(jié)束方式、特殊中斷結(jié)束方式)。</p><p> ?。?)、系統(tǒng)總路線連接方式:緩沖方式、非緩沖方式。</p><p>  (5)、中斷請(qǐng)求信號(hào)觸發(fā)方式:邊沿觸發(fā)方式、電平觸發(fā)方式。</p><p>  4.8259A初始化控制字格式</p><p>  

47、5.8259A操作命令字格式</p><p>  4.2系統(tǒng)所選用各芯片的工作方式</p><p>  4.2.1中斷優(yōu)先級(jí)管理器8259A的工作方式</p><p>  (1)、芯片控制ICW1:采用邊沿觸發(fā),單片8259,要寫入ICW4控制字</p><p> ?。?)、中斷類型碼ICW2:設(shè)置IR0~IR7的中斷類型碼依次為08H、09

48、H、…、0FH</p><p>  (3)、方式控制ICW4:優(yōu)先級(jí)設(shè)置方式為全嵌套方式即固定優(yōu)先級(jí)方式,系統(tǒng)總線連接方式為主片工作在緩沖方式下,中斷結(jié)束方式采用中斷非自動(dòng)結(jié)束方式,8259工作在8086系統(tǒng)上。</p><p>  4.2.2 可編程并行接口接口芯片8255A的工作方式</p><p> ?。?)、A口工作在方式0,做為輸入端口用于連接選手按鍵(P

49、A7~PA0依次對(duì)應(yīng)按鍵1~8);</p><p> ?。?)、B口工作在方式0,做為輸出端口,經(jīng)驅(qū)動(dòng)器1連接LED顯示器(PB7~PB0依次對(duì)應(yīng)連接LED顯示器的dp、g、f、e、d、c、b、a七段數(shù)碼管管腳);</p><p> ?。?)、C口也必須工作在方式0,高4 位做輸入端口(本次設(shè)計(jì)中只用PC4、PC5,分別用于連接復(fù)位鍵和開始鍵),低4位做輸出端口(PC3~PC0,經(jīng)驅(qū)動(dòng)器2

50、后PC1、PC2、PC3分別用于連接黃、紅、綠三個(gè)發(fā)光二極管,PC0連接到8253的GATE1端,以控制通道1的計(jì)數(shù))。</p><p>  4.2.3 可編程定時(shí)器/計(jì)數(shù)器8253的工作方式</p><p> ?。?)、通道0:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。</p><p> ?。?)、通道1:操作

51、類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式1即可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。</p><p> ?。?)、通道2:操作類型為先讀寫低字節(jié)再讀寫高字節(jié),工作在方式3即方波發(fā)生器,計(jì)數(shù)格式為BCD碼,計(jì)數(shù)初值為0。</p><p><b>  5、軟件設(shè)計(jì)</b></p><p>  DATASEGMENT</

52、p><p>  TAB DB06H,5BH,4FH,66H,6DH,7CH,07H,7FH,67H ;1~9的段碼</p><p><b>  ;(字形碼)</b></p><p>  BZ DB 00H</p><p>  DATAENDS</p><p>  ST

53、ACKSEGMENTPARASTACK‘STACK’</p><p>  DB100HDUP(?)</p><p>  STACKENDS</p><p>  CODE SEGMENT</p><p>  ASSUMEDS:DATA,CS:CODE</p><p>  START:MOV

54、AX,,DATA</p><p><b>  MOVDS,AX</b></p><p><b>  ;8259A初始化</b></p><p>  MOV AL,13H;初始化8259A的ICW1</p><p>  OUT 20H,AL</p><p>  M

55、OVAL,08H;送中斷類型碼基值,8259A的ICW2</p><p>  OUT21H,AL</p><p>  MOVAL,0DH;一般中斷結(jié)束方式,8259A的ICW4</p><p>  OUT21H,AL</p><p><b>  ;8255A初始化</b></p>&

56、lt;p>  MOV AL,98H;置8255A工作方式</p><p>  OUT 83H,AL</p><p>  XORAL,AL;B口、C口初始化</p><p>  OUT 81H,AL</p><p>  OUT82H,AL</p><p><b>  ;825

57、3初始化</b></p><p>  MOV AL,37H;置8253通道0控制字</p><p>  OUT 43H,AL</p><p>  MOV AL,00H;置8253通道0計(jì)數(shù)初值為4000</p><p>  OUT40H,AL</p><p>  MOVAL,40H

58、</p><p>  OUT40H,AL</p><p>  MOV AL,73H;置8253 通道1控制字</p><p>  OUT43H,AL</p><p>  MOVAL,00H;置8253通道1計(jì)數(shù)初值為3000</p><p>  OUT41H,AL</p>&

59、lt;p>  MOVAL,30H</p><p>  OUT41H,AL</p><p>  MOV AL,B7H;置8253通道2控制字</p><p>  OUT43H,AL</p><p>  MOVAL,00H;置8253通道2控制字</p><p>  OUT42H,AL&l

60、t;/p><p>  MOVAL,00H;置8253通道2計(jì)數(shù)初值為0</p><p>  OUT42H,AL</p><p>  MOVAL,00H</p><p>  OUT42H,AL</p><p><b>  ;中斷設(shè)置</b></p><p>  M

61、OVAH,25H;設(shè)置搶答按鍵中斷向量</p><p>  MOV AL,0AH;中斷類型號(hào)為入口參數(shù)</p><p>  MOV BX,SEG KEYINT;DS:DX指向4字節(jié)地址</p><p>  MOV DS,BX</p><p>  MOV DX,OFFSET KEYINT</p>&l

62、t;p><b>  INT 21H</b></p><p>  STI;使IF置1,開放可屏蔽中斷</p><p><b>  ;主循環(huán)</b></p><p>  LOPM:INAL,82H;檢測(cè)開始鍵</p><p>  TESTAL,20H;檢測(cè)

63、C口的PC5端</p><p>  JZ LOP2;開始鍵未按下即PC5=0,則跳轉(zhuǎn)檢測(cè)</p><p><b>  ;復(fù)位鍵</b></p><p>  LOP1:INAL,82H;檢測(cè)開始鍵是否已經(jīng)彈起,即PC5=0</p><p>  TESTAL,20H</p><

64、;p>  JNZ LOP1;開始鍵沒有彈起再重新檢測(cè)</p><p>  MOVAL,00H;關(guān)LED顯示器</p><p>  OUT 81H,AL;送到B口</p><p>  MOVAL,08H;綠燈亮</p><p>  OUT82H,AL;送到C口</p><

65、;p>  MOVBZ,0FFH;置標(biāo)志</p><p><b>  STI</b></p><p>  LOP2:INAL,82H;檢測(cè)復(fù)位鍵</p><p>  TESTAL,10H;檢測(cè)C口的PC4端</p><p>  JZLOPM ;復(fù)位鍵未按下即P

66、C4=0,則跳轉(zhuǎn)再檢</p><p><b>  ;測(cè)開始鍵</b></p><p>  LOP3:INAL,82H;檢測(cè)復(fù)位鍵是否彈起,即PC4=0</p><p>  TEST AL,10H</p><p>  JNZ LOP3;位鍵沒有彈起,則重新檢測(cè)</p><p&

67、gt;  MOVAL,00H;關(guān)LED顯示器、指標(biāo)燈</p><p>  OUT 81H,AL</p><p>  OUT 82H,AL</p><p>  MOVBZ,00H;清標(biāo)志</p><p><b>  STI</b></p><p><b>  J

68、MPLOPM</b></p><p>  ;中斷服務(wù)子程序……</p><p><b>  CODEENDS</b></p><p><b>  ENDSTART</b></p><p><b>  中斷服務(wù)子程序:</b></p><p

69、>  KEYINTPROCFAR</p><p>  PUSHAX;保護(hù)現(xiàn)場(chǎng)</p><p><b>  PUSHBX</b></p><p><b>  PUSH DX</b></p><p><b>  PUSHDS</b></p>

70、<p>  CLI;并使本次中斷壓入堆棧中的IF=0</p><p><b>  ;(關(guān)中斷)</b></p><p>  INAL,80H;從8255的A口獲取選手按鍵信息</p><p>  NOTAL;將按鍵字節(jié)信息取反</p><p>  MOVCX,8

71、;計(jì)數(shù)8次</p><p>  LOP4:SHRAL , 1;獲取選手號(hào)碼</p><p>  LOOPNZ LOP4</p><p>  MOVAX,CX;把選手號(hào)傳給AX</p><p>  MOVBX,OFFSETTAB;查段碼(字形碼)</p><p>  XLAT

72、;將選手號(hào)轉(zhuǎn)換成TAB中對(duì)應(yīng)的LED</p><p><b>  ;字形碼</b></p><p>  OUT81H,AL</p><p>  TESTBZ,OFFH;判斷標(biāo)志位是否為FFH</p><p><b>  JZLOP5</b></p><p>

73、  MOVAL,00H;置8253通道2計(jì)數(shù)值</p><p>  OUT42H,AL</p><p>  MOVAL,10H</p><p>  OUT42H,AL</p><p>  MOVAL,03H;黃燈亮,搶答成功</p><p>  OUT 82H,AL</p>&

74、lt;p><b>  JMPKKK</b></p><p>  LOP5:MOV AL,00H;置8253通道2計(jì)數(shù)值</p><p>  OUT42H,AL</p><p>  MOV AL,20H</p><p>  OUT 42H,AL</p><p>  MO

75、VAL,05H;紅燈亮,搶答違規(guī)</p><p>  OUT82H,AL</p><p>  KKK:MOVAL,20H;給8259發(fā)中斷結(jié)束命令,寫OCW2</p><p>  OUT20H,AL</p><p>  POPAX;恢復(fù)現(xiàn)場(chǎng)</p><p><b> 

76、 POPBX</b></p><p><b>  POPDX</b></p><p><b>  POPDS</b></p><p><b>  IRET</b></p><p>  KEYINTENDP</p><p>&l

77、t;b>  6、調(diào)試過程</b></p><p> ?。?)在剛開始編程時(shí),各種功能大部分是由主程序來完成的。由于主程序過于復(fù)雜,可讀性不高。使得在以后的程序的調(diào)試中遇到了很大的麻煩。后來把主程序的部分功能轉(zhuǎn)化成子程序來實(shí)現(xiàn),并在一些重要的地方增加了注釋,使的程序的可讀性大大加強(qiáng)。調(diào)試也變的比較簡(jiǎn)單了。到此基本解決了第一個(gè)問題。</p><p> ?。?)在編程時(shí),子程序

78、的調(diào)試也是相當(dāng)重要,由于子程序不可避免的使用AX\BX\CX\DX通用寄存器一個(gè)或幾個(gè)。使得原主程序中的通用寄存器的內(nèi)容很容易被覆蓋,對(duì)子程序中所有的通用寄存器出入棧即可以避免上訴的問題,不用考慮使用的是哪幾個(gè)寄存器,使用起來又比較簡(jiǎn)單方便。所以至此這個(gè)問題也已基本解決。</p><p> ?。?)調(diào)試是一個(gè)復(fù)雜煩瑣而漫長(zhǎng)的過程。在調(diào)試的過程中一定要耐下心來去做,否則一旦出現(xiàn)煩躁的心里,就會(huì)事倍功半,適得其反。

79、</p><p>  在本次設(shè)計(jì)中出現(xiàn)的主要問題即如上所述,解決方法也如上所述,在今后的軟件調(diào)試過程中更應(yīng)注意如上問題。</p><p><b>  7、系統(tǒng)操作說明</b></p><p>  啟動(dòng)計(jì)算機(jī),計(jì)算機(jī)自動(dòng)為系統(tǒng)各芯片進(jìn)行初始化,搶答器開始工作。</p><p>  比賽開始,在主持人按下開始鍵,綠燈亮后,選

80、手才可開始搶答,否則違規(guī)。若選手搶答成功,LED顯示器顯示選手號(hào)碼,揚(yáng)聲器鳴叫。若選手搶答違規(guī)(主持人未按開媽鍵),LED顯示器顯示違規(guī)選手號(hào)碼,紅燈亮,揚(yáng)聲器報(bào)警,并根據(jù)比賽規(guī)則進(jìn)行對(duì)該選手進(jìn)行扣分。</p><p>  若系統(tǒng)提示某號(hào)選手搶答違規(guī),主持人仍未按開始鍵,此時(shí)該號(hào)選手又按下?lián)尨疰I,LED顯示器顯示該選手的號(hào)碼。本系統(tǒng)開機(jī)后,若主持人既未按復(fù)位鍵又未按開始鍵,此時(shí)有選手按下?lián)尨疰I,系統(tǒng)提示紅燈亮,并

81、報(bào)警。</p><p><b>  注: </b></p><p>  1、搶答成功,置8253通道2計(jì)數(shù)值為1000,揚(yáng)聲器的鳴叫聲音頻率為1MHz/1000=1KHz。</p><p>  2、搶答失敗,置8253通道2計(jì)數(shù)值為2000,揚(yáng)聲器的鳴叫聲音頻率為1MHz/2000=0.5KHz。</p><p>  3

82、、揚(yáng)聲器鳴叫或報(bào)警的時(shí)間為12s。</p><p><b>  8、總結(jié)</b></p><p>  這次實(shí)驗(yàn)是一個(gè)綜合性實(shí)驗(yàn),通過這次實(shí)驗(yàn),使我們將以前我們所學(xué)習(xí)到的芯片知識(shí)綜合應(yīng)用到這個(gè)實(shí)驗(yàn)上,從結(jié)構(gòu)、功能、用法上都有了全面的認(rèn)識(shí),并基本達(dá)到了能夠通過我們小組的討論完成從構(gòu)思到設(shè)計(jì)最后到調(diào)試的整個(gè)過程,雖然其中遇到了很多困難阻力,從開始到整個(gè)完成,但我們還是堅(jiān)持了

83、下來,所有的努力換回了成功的喜悅。下面就說說實(shí)驗(yàn)中的一些問題以及一些體會(huì):</p><p>  實(shí)驗(yàn)的初期,由于對(duì)整個(gè)的電路還不能從整體把握,只能從實(shí)驗(yàn)書上的實(shí)驗(yàn)要求出發(fā),結(jié)合查找到的資料提出解決方案。最大的體會(huì)是團(tuán)隊(duì)的力量,幾乎所有的設(shè)計(jì)都是在我們的討論中“誕生”的,盡管每個(gè)人的想法不一樣,但聚到一起后就會(huì)激發(fā)出更多的想法,同時(shí)也可以完善不足之處。設(shè)計(jì)如何用一個(gè)開關(guān)完成這些電路的多功能同時(shí)控制,曾經(jīng)因?yàn)檫@一部分

84、的設(shè)計(jì)而陷入僵局,好在認(rèn)真經(jīng)過分析,終于完成了。這也告訴我們,一定要對(duì)自己有信心,所要做的就是堅(jiān)持,成功就不會(huì)遙遠(yuǎn)。我們調(diào)試時(shí),雖然我們有合理的布局作保證,但也遇到了一些麻煩,但最終還是解決了。</p><p><b>  9、參考文獻(xiàn)</b></p><p>  [1]劉紅玲,邵曉根·微機(jī)原理與接口技術(shù)[M].中國(guó)電力出版社,2007年第一版</p&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)論