硬件課程設(shè)計實驗報告_模擬交通燈_第1頁
硬件課程設(shè)計實驗報告_模擬交通燈_第2頁
硬件課程設(shè)計實驗報告_模擬交通燈_第3頁
硬件課程設(shè)計實驗報告_模擬交通燈_第4頁
硬件課程設(shè)計實驗報告_模擬交通燈_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、硬件部件設(shè)計與調(diào)試實驗題目:模擬交通燈實驗?zāi)康呐c要求: 了解交通燈管理的基本工作原理熟悉8259A中斷控制器的工作原理和應(yīng)用編程熟悉8255A并行接口的各種工作方式和應(yīng)用熟悉8253計數(shù)器/定時器的工作方式及應(yīng)用編程,掌握利用軟硬件相結(jié)合定時的方法掌握多位LED顯示問題的解決實驗原理與方法:l 8259、8255A和8253的工作原理:一、8259的工作原理:1、數(shù)據(jù)總線緩沖器:8259A與系統(tǒng)數(shù)據(jù)總線的接口,是8位雙向三態(tài)緩沖器。CPU與8259A之間的控制命令信息、狀態(tài)信息以及中斷類型信息,都是通過緩沖器傳送的。2、讀/寫控制邏輯:CPU通過它實現(xiàn)對8259A的讀/寫操作。3、級連緩沖器:

2、用以實現(xiàn)8259A芯片之間的級連,使得中斷源可以由8級擴展至64級。4、控制邏輯電路:對整個芯片內(nèi)部各部件的工作進行協(xié)調(diào)和控制。5、中斷請求寄存器IRR:8位,用以分別保存8個中斷請求信號,當響應(yīng)的中斷請求輸入腳有中斷請求時,該寄存器的相應(yīng)位置1。6、中斷屏蔽寄存器IMR:8位,相應(yīng)位用以對8個中斷源的中斷請求信號進行屏蔽控制。當其中某位置“0“時,則相應(yīng)的中斷請求可以向CPU提出;否則,相應(yīng)的中斷請求被屏蔽,即不允許向CPU提出中斷請求。該寄存器的內(nèi)容為8259A的操作命令字OCW1,可以由程序設(shè)置或改變。7、中斷服務(wù)寄存器ISR:8位,當CPU正在處理某個中斷源的中斷請求時,ISR寄存器中

3、的相應(yīng)位置1。8、用以比較正在處理的中斷和剛剛進入的中斷請求之間的優(yōu)先級別,以決定是否產(chǎn)生多重中斷或中斷嵌套。二、8255A的工作原理:1、8255A的內(nèi)部結(jié)構(gòu):1) 數(shù)據(jù)總線緩沖器:這是一個雙向三態(tài)的8位數(shù)據(jù)緩沖器,它是8255A與微機系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)、CPU輸出的控制字以及CPU輸入的狀態(tài)信息都是通過這個緩沖器傳送的。2) 三個端口A,B和C:A端口包含一個8位數(shù)據(jù)輸出鎖存器和緩沖器,一個8位數(shù)據(jù)輸入鎖存器。B端口包含一個8位數(shù)據(jù)輸入/輸出鎖存器和緩沖器,一個8位數(shù)據(jù)輸入緩沖器。C端口包含一個8位數(shù)據(jù)輸出鎖存器和緩沖器,一個8位數(shù)據(jù)輸入緩沖器(輸入沒有鎖存器)。3) A組

4、和B組控制電路:這是兩組根據(jù)CPU輸出的控制字控制8255工作方式的電路,它們對于CPU而言,共用一個端口地址相同的控制字寄存器,接收CPU輸出的一字節(jié)方式控制字或?qū)口按位復位字命令。方式控制字的高5位決定A組的工作方式,低3位決定B組的工作方式。對C口按位復位命令字可對C口的每一位實現(xiàn)置位或復位。A組控制電路控制A口和C口上半部,B組控制電路控制B口和C口下半部。4) 讀寫控制邏輯:用來控制把CPU輸出的控制字或數(shù)據(jù)送至相應(yīng)端口,也由它來控制把狀態(tài)信息或輸入數(shù)據(jù)通過相應(yīng)的端口送到CPU。2、8255A的 工作方式:方式0-基本輸入輸出方式;方式1-選通輸入輸出方式;方式2-雙向選通輸入輸出

5、方式。三、8253的工作原理:8253是可編程的計數(shù)器/定時器,其內(nèi)部有三個獨立的16位計數(shù)器/定時器通道,每個計數(shù)器通道均可按6種不同的方式工作,并且都可以按二進制或十進制計數(shù)。其CLK0CLK2是計數(shù)器02的時鐘脈沖輸入端, GATE0GATE2是門控脈沖輸入端, OUT0OUT2是輸出端。l 交通信號燈實時控制和管理的總體設(shè)計 芯片選擇及端口選擇1 用實驗系統(tǒng)8255A實現(xiàn)對信號燈的控制(所用端口自定);2位數(shù)碼顯示用8255A實現(xiàn)控制。2 用實驗系統(tǒng)8235的計數(shù)器2定時向?qū)嶒炏到y(tǒng)主片8259A的IRQ7請求中斷,以實現(xiàn)要求的1分鐘、5秒鐘和20秒的定時。實驗系統(tǒng)8235的計數(shù)器2的C

6、LK2接OPCLK,頻率為1.19318MHZ;GATE2已接+5V;定時采用軟硬件相結(jié)合的方式實現(xiàn)。3、 用實驗系統(tǒng)的發(fā)光二極管模擬紅綠燈。 注:8259A的端口地址為:218H、219H8255A的端口地址為:端口A-200H、端口B-201H、端口C-202H、控制端口-203H8253的端口地址為:計數(shù)器0-208H、計數(shù)器1-209H、計數(shù)器2-20aH、控制寄存器0-20bH。本設(shè)計硬件由定時模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。定時模塊采用硬件定時和軟件定時相結(jié)合的方法,用8253定時/計數(shù)器定時100ms,再用軟件計時實現(xiàn)所需的定時。發(fā)光二極管模塊由8255控

7、制發(fā)光二極管來實現(xiàn)。數(shù)碼管顯示模塊由實驗平臺上的LED顯示模塊實現(xiàn)。緊急中斷模塊是由單脈沖發(fā)生單元和8259中斷控制器組成。程序主要是由定時子程序、發(fā)光二極管顯示子程序、數(shù)碼管顯示子程序和中斷服務(wù)程序組成。包括對8253、8255以及8259等可編程器件的編程。l 方案論證: 軟件延時,設(shè)計簡單,使用方便,但是無法進行精確計時,無法在實際應(yīng)用中進行使用,本次設(shè)計采用了,定時器0進行計時,每10ms產(chǎn)生一個脈沖信號,可以準確的計時并方便8段數(shù)碼管進行顯示。使用中斷比較麻煩,在試驗中需要兩次加載初始化程序和中斷服務(wù)程序,并且需要手工指定中斷服務(wù)地址和中斷向量號;但是使用中斷可以進行多樣化設(shè)計,強化

8、程序功能與執(zhí)行效率。在本設(shè)計中程序每10MS請求一次中斷,實現(xiàn)精確定時與數(shù)碼管顯示刷新。實驗設(shè)計思路與實現(xiàn):l 硬件設(shè)計:本課題的設(shè)計可通過實驗平臺上的一些功能模塊電路組成,由于各模塊電路內(nèi)部已經(jīng)連接,用戶在使用時只要設(shè)計模塊間電路的連接,因此,硬件電路的設(shè)計及實現(xiàn)相對簡單。完整系統(tǒng)的硬件連接如圖1所示。硬件電路由定時模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。定時模塊是由8253的計數(shù)器0來實現(xiàn)定時100ms。Clk0接實驗平臺分頻電路輸出Q6,f46875hz。GATE0接8255的PA0,由8255輸出來控制計數(shù)器的起停。OUT0接8259的IRQ2,定時完成申請中斷,進入中

9、斷服務(wù)程序。發(fā)光二極管顯示模塊由8255輸出來控制發(fā)光二極管的亮滅。8255輸出為低電平時,對應(yīng)的發(fā)光二極管就點亮,否則就熄滅。8255的接口電路如圖2所示。交通燈的對應(yīng)關(guān)系如下:L7L6L5L2L1L0PC7PC6PC5PC2PC1PC013紅燈13黃燈13綠燈24紅燈24黃燈24綠燈實驗平臺上提供一組六個LED數(shù)碼管。插孔CS1用于數(shù)碼管段選的輸出選通,插孔CS2用于數(shù)碼管位選信號的輸出選通。本設(shè)計用4個數(shù)碼管來倒計時。緊急中斷模塊是由單脈沖發(fā)生單元和8259中斷控制器,單脈沖發(fā)生單元主要用來請求中斷,然后做出緊急情況處理。Q6OUT0 8253 GATE0 Clk0 PA0 8255 P

10、C地址 CS1譯碼 CS2電路 CS3 CS4路數(shù)碼管顯示模塊IRQ28259IRQ3發(fā)光二極管電路單脈沖發(fā)生單元PC BUS圖1 系統(tǒng)硬件電路圖圖2 8255接口電路l 軟件設(shè)計思路:設(shè)計數(shù)器0的計數(shù)初值為25000,由于CLK0接脈沖信號,頻率為2.5MHZ,所以每10ms中斷一次。利用CX對不同的狀態(tài)時間計數(shù),用來實現(xiàn)計數(shù)器0對1分鐘,20秒鐘,5秒鐘的定時。中斷子程序分為數(shù)碼顯示刷新部分和紅綠黃燈各種狀態(tài)切換部分。每進入中斷即刷新LED顯示。用對于東西車道和南北車道黃燈閃爍利用標志位判斷實現(xiàn),滿足比較條件就暗,不滿足條件就亮。8253計數(shù)的起停由8255的PA0控制,8255的PA0輸

11、出1時,8253開始計數(shù),交通燈按正常狀態(tài)切換工作,PA0輸出0時,計數(shù)器停止工作,交通燈不再按正常狀態(tài)切換。8253開始計數(shù)后每100ms發(fā)出一個中斷申請信號,在中斷子程序中先刷新數(shù)碼管,然后判斷當前狀態(tài),進入相應(yīng)的處理程序進行處理。主程序負責系統(tǒng)的初始化,然后數(shù)碼管數(shù)據(jù)輸出顯示,同時檢測PC鍵盤按鍵,有按鍵就退出程序。主程序的流程圖如圖3所示。Y初始化8253初始化8255設(shè)置中斷向量設(shè)置交通燈初態(tài)啟動計數(shù)器數(shù)碼管數(shù)據(jù)輸出開始有按鍵結(jié)束N 圖3 主程序的流程圖定時中斷子程序是本設(shè)計的重點,負責完成數(shù)碼管輸出數(shù)據(jù)刷新和各個狀態(tài)的處理切換。中斷子程序包括數(shù)碼管輸出數(shù)據(jù)刷新程序和各狀態(tài)處理程序。

12、數(shù)碼管輸出數(shù)據(jù)刷新子程序是實現(xiàn)倒計時25s,用LEDOUT表示輸出的數(shù)據(jù),cnt用來軟件計時1s,就是計數(shù)10個100ms。LED輸出是要將輸出的數(shù)據(jù)轉(zhuǎn)化為段選碼。根據(jù)當前的狀態(tài)跳轉(zhuǎn)到相應(yīng)的處理程序,在處理程序中完成定時和狀態(tài)的切換。狀態(tài)1和3的流程是一樣的,先點亮對應(yīng)的交通燈,再判斷定時到了就可以切換了。狀態(tài)2和4要實現(xiàn)黃燈的閃爍,間隔點亮和熄滅就可以了。狀態(tài)1和3處理程序的流程圖(以狀態(tài)1為例)如圖6所示,其中NUM是狀態(tài)1對應(yīng)的PC口輸出。外部中斷服務(wù)子程序主要用來處理緊急情況,將2個方向的車都停止運行,點亮所有紅燈。下次中斷來時恢復以前的狀態(tài)。用一個標志位FLAG判斷是第一次進入還是恢

13、復狀態(tài)。l 源程序清單:本次設(shè)計中,選用8235的計數(shù)器0定時向?qū)嶒炏到y(tǒng)主片8259A的IRQ0請求中斷。設(shè)置8253的計數(shù)器0每10ms請求一次中斷,工作于模式3;8255的A端口控制交通燈。 初始化程序:DATASEGMENTLEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;存放七段代碼表DB7FH,6FH,77H,7CH,39H,5EH,79H,71HD1EQU10HD2EQU200H;8255A端口AEAEQU200H;8259端口地址EEEQU203HCONTROLEQU20bH;8253端口地址COUNT0EQU208HCOUNT1EQU209HCOUNT2

14、EQU20aHZ8279EQU222HD8279EQU220HLEDMODEQU00;左邊輸入,八位顯示外部譯碼八位顯示LEDFEQEQU38H;掃描頻率DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATACODESEGMENTASSUMECS:CODECONTDB0CONT1DB0CONT2DB0BKSDDB0BKADDB0BKDADB0TEMPDB0;*START:MOVAX,0MOVDS,AXMOVAX,OFFSETIRQ0ADDAX,2000HMOVSI,0FH*4MOVSI,AXMOVAX,0MOVSI+2,AXINAL,218HANDAL,7FHOUT2

15、19H,ALCLIMOVAL,80H;初始化8255OUTEE,ALMOVAL,00OUTEA,ALMOVAL,0f0HOUTEA,ALMOVDX,218H;8259初始化MOVAL,bOUTDX,ALMOVAL,08HMOVDX,219HOUTDX,ALMOVDX,203H;設(shè)置為全輸出MOVAL,80HOUTDX,ALMOVDX,200HMOVAL,0ffhOUTDX,AL;清LEDMOVDX,200H;全紅MOVAL,0F0HOUTDX,ALMOVAL,b;初始化8253OUTCONTROL,ALMOVAX,2500MOVDX,COUNT0OUTDX,ALMOVAL,AHOUTCOUNT

16、0,ALMOVAX,DATAMOVDS,AX中斷服務(wù)程序:A1:STIHLTJMPA1IRQ0:;寫數(shù)碼管程序,暫缺JMPCOMPARECOMPARE:CMPDL,0JZSTATE0CMPDL,1JZSTATE1CMPDL,2JZSTATE2CMPDL,3JZSTATE3STATE0:;狀態(tài)0:東西紅南北綠moval,boutD2,alDECSIJNZCHANGE1DECDHMOVSI,100CHANGE1:DECCXCMPCX,0JNZM0MOVCX,500STATE1:DECDI;狀態(tài)1:東西方向黃燈閃爍,南北綠燈CMPDI,0JNZSHINE1MOVAL,b;東西滅,南北綠OUTD2,A

17、LMOVDI,50JMPCHANGESHINE1:MOVAL,B;東西黃,南北綠OUTD2,ALCHANGE:DECSIJNZCHANGE2DECDIMOVSI,100CHANGE2:DECCXCMPCX,0JNZM1MOVCX,2000MOVDH,25STATE2:MOVAL,b;狀態(tài)2:東西綠燈,南北紅燈OUTD2,ALDECSIJNZCHANGE3DECDHMOVSI,100CHANGE3:DECCXCMPCX,0JNZM2MOVCX,500STATE3:DECDI;狀態(tài)3:東西綠燈,南北黃燈閃爍CMPDI,0JNZSHINE2MOVAL,B;東西綠燈,南北滅OUTD2,ALMOVDI,

18、50JMPSOURCESHINE2:MOVAL,B;東西綠,南北黃OUTD2,ALSOURCE:DECSIJNZCHANGE4DECDHMOVSI,100CHANGE4:DECCXCMPCX,0JNZM3MOVCX,6000MOVDH,65M0:MOVDL,0;下次進入狀態(tài)0JMPEXITM1:MOVDL,1;下次進入狀態(tài)1JMPEXITM2:MOVDL,2;下次進入狀態(tài)2JMPEXITM3:MOVDL,3;下次進入狀態(tài)3EXIT:MOVAL,20HOUT218H,ALIRETCODEENDSENDSTARTl 程序運行結(jié)果:1即東西方向的綠燈和南北方向的紅燈同時點亮1分鐘;21分鐘后,東西方

19、向的黃燈閃爍5秒鐘,。此時南北方向仍維持紅燈點亮。3東西方向的黃燈閃爍5秒鐘后,轉(zhuǎn)為東西方向的紅燈和南北方向的綠燈同時點亮20秒鐘;420秒鐘后,轉(zhuǎn)為南北方向的黃燈閃爍5秒鐘,此時東西方向仍維持紅燈點亮。5南北方向的黃燈閃爍5秒鐘后,東西方向的綠燈和南北方向的紅燈同時點亮1分鐘。如此循環(huán)重復。l 課程設(shè)計總結(jié)1. 軟件延時與定時器計時 軟件延時,設(shè)計簡單,使用方便,但是無法進行精確計時,無法在實際應(yīng)用中進行使用,本次設(shè)計采用了,定時器0進行計時,每10ms產(chǎn)生一個脈沖信號,可以準確的計時并方便8段數(shù)碼管進行顯示2. 使用中斷的好處 使用中斷比較麻煩,在試驗中需要兩次加載初始化程序和中斷服務(wù)程序

20、,并且需要手工指定中斷服務(wù)地址和中斷向量號;但是使用中斷可以進行多樣化設(shè)計,強化程序功能與執(zhí)行效率。3. 關(guān)于本次設(shè)計在本次設(shè)計中,使用了8259A中斷控制器、8253計數(shù)器、8255可編程并行接口實現(xiàn)了,對南北、東西方向交通的分別計時、分別控制,但是程序沒有實現(xiàn)對雙向交通的數(shù)碼顯示,數(shù)碼顯示模塊空缺,我們會盡快將程序補全,使其具有完整的交通燈功與其他設(shè)計相比,并非復制并修改老師的代碼,做到了自主設(shè)計,在設(shè)計中掌握的計算機接口設(shè)計的基本方法、鍛煉了能力。十字道口的紅綠燈是交通法規(guī)的無聲命令,是司機和行人的行為準則。十字道口的交通紅綠燈控制是保證交通安全和道路暢通的關(guān)鍵。當前,國內(nèi)大多數(shù)城市正在采用“自動”紅綠交通燈,它具有固定的“紅燈綠燈”轉(zhuǎn)換間隔,并自動切換。它們一般由“通行與禁止時間控制顯示、紅黃綠三色信號燈和方向指示燈”三部分組成。在交通燈的通行與禁止時間控制顯示中,通常要么東西、南北兩方向各50秒;要么根據(jù)交通規(guī)律,東西方向60秒,南北方向40秒,時間控制都是固定的。交通燈的時間控制顯示,以固定時間值預先“固化”在單片機中,每次只是以一定周期交替變化。但是,實際上不同時刻的車輛流通狀況是十分復雜的,是高度非線性的、隨機的,還經(jīng)常受認為因素的影響。采用定時控制經(jīng)常

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論