交通燈825382558259_第1頁
交通燈825382558259_第2頁
交通燈825382558259_第3頁
交通燈825382558259_第4頁
交通燈825382558259_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2.218259的工作原理:一、數(shù)據(jù)總線緩沖器:8259A與系統(tǒng)數(shù)據(jù)總線的接口,是8位雙向三態(tài)緩沖器。CPU與8259A之間的控制命令信息、狀態(tài)信息以及中斷類型信息,都是通過緩沖器傳送的。二、讀/寫控制邏輯:CPU通過它實現(xiàn)對8259A的讀/寫操作。三、級連緩沖器:用以實現(xiàn)8259A芯片之間的級連,使得中斷源可以由8級擴展至64級。四、控制邏輯電路:對整個芯片內部各部件的工作進行協(xié)調和控制。五、中斷請求寄存器IRR:8位,用以分別保存8個中斷請求信號,當響應的中斷請求輸入引腳有中斷請求時,該寄存器的相應位置1。六、中斷屏蔽寄存器IMR:8位,相應位用以對8個中斷源的中斷請求信號進行屏蔽控制。當

2、其中某位置“0“時,則相應的中斷請求可以向CPU提出;否則,相應的中斷請求被屏蔽,即不允許向CPU提出中斷請求。該寄存器的內容為8259A的操作命令字OCW1,可以由程序設置或改變。七、中斷服務寄存器ISR:8位,當CPU正在處理某個中斷源的中斷請求時,ISR寄存器中的相應位置1。八、用以比較正在處理的中斷和剛剛進入的中斷請求之間的優(yōu)先級別,以決定是否產生多重中斷或中斷嵌套。8255A的工作原理:一、8255A的內部結構:1、數(shù)據(jù)總線緩沖器:這是一個雙向三態(tài)的8位數(shù)據(jù)緩沖器,它是8255A與微機系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)、CPU輸出的控制字以及CPU輸入的狀態(tài)信息都是通過這個緩沖器傳送

3、的。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組和B組控制電路:這是兩組根據(jù)CPU輸出的控制字控制8255工作方式的電路,它們對于CPU而言,共用一個端口地址相同的控制字寄存器,接收CPU輸出的一字節(jié)方式控制字或對C口按位復位字命令。方式控制字的高5位決定A組的工作方式,低3位決定B組的工作方式。對C口按位復位命令字可對C口的每一位實現(xiàn)置位或復位。A組控制電路控制A口和C口上半部,B組控

4、制電路控制B口和C口下半部。4、讀寫控制邏輯:用來控制把CPU輸出的控制字或數(shù)據(jù)送至相應端口,也由它來控制把狀態(tài)信息或輸入數(shù)據(jù)通過相應的端口送到CPU。二、8255A的工作方式:方式0-基本輸入輸出方式;方式1-選通輸入輸出方式;方式2-雙向選通輸入輸出方式。8253的工作原理:8253是可編程的計數(shù)器/定時器,其內部有三個獨立的16位計數(shù)器/定時器通道,每個計數(shù)器通道均可按6種不同的方式工作,并且都可以按二進制或十進制計數(shù)。其CLKOCLK2是計數(shù)器02的時鐘脈沖輸入端,GATEOGATE2是門控脈沖輸入端,OUT0OUT2是輸出端。3、總體設計和方案論證:3.1交通信號燈實時控制和管理的總

5、體設計芯片選擇及端口選擇用實驗系統(tǒng)8255A實現(xiàn)對信號燈的控制(所用端口自定);2位數(shù)碼顯示用8255A實現(xiàn)控制。用實驗系統(tǒng)8235的計數(shù)器0定時向實驗系統(tǒng)主片8259A的IRQ7請求中斷,以實現(xiàn)要求的20秒、5秒鐘的定時。實驗系統(tǒng)8253的計數(shù)器0的CLK2接OPCLK,頻率為1.19318MHZ;GATE0已接+5V;定時采用軟硬件相結合的方式實現(xiàn)。用實驗系統(tǒng)的發(fā)光二極管模擬紅綠燈。注:8259A的端口地址為:218H、219H8255A的端口地址為:端口A-200H、端口B-201H、端口C-202H、控制端口-203H8253的端口地址為:計數(shù)器0-208H、計數(shù)器1-209H、計數(shù)器

6、0-20AH、控制寄存器0-20BH。本設計硬件由定時模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。定時模塊采用硬件定時和軟件定時相結合的方法,用8253定時/計數(shù)器定時1s,再用軟件計時實現(xiàn)所需的定時。發(fā)光二極管模塊由8255控制發(fā)光二極管來實現(xiàn)。數(shù)碼管顯示模塊由實驗平臺上的LED顯示模塊實現(xiàn)。緊急中斷模塊是由單脈沖發(fā)生單元和8259中斷控制器組成。程序主要是由定時子程序、發(fā)光二極管顯示子程序、數(shù)碼管顯示子程序和中斷服務程序組成。包括對8253、8255以及8259等可編程器件的編程。3.2方案論證:軟件延時,設計簡單,使用方便,本次設計采用了,定時器0進行計時,每1s產生一次中斷

7、,可以準確的計時并方便8段數(shù)碼管進行顯示。在本設計中程序每1秒請求一次中斷,實現(xiàn)精確定時與數(shù)碼管顯示刷新。4、硬件設計:本課題的設計可通過實驗平臺上的一些功能模塊電路組成,由于各模塊電路內部已經連接,用戶在使用時只要設計模塊間電路的連接,因此,硬件電路的設計及實現(xiàn)相對簡單。完整系統(tǒng)的硬件連接如圖所示。硬件電路由定時模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。圖1圖2時模塊是由8253的計數(shù)器0來實現(xiàn)定時Is。由8255輸出來控制計數(shù)器的起停。OUT0接8259的IRQ7,定時完成申請中斷,進入中斷服務程序。發(fā)光二極管顯示模塊由8255輸出來控制發(fā)光二極管的亮滅。8255輸出為低電平

8、時,對應的發(fā)光二極管就點亮,否則就熄滅。交通燈的對應關系如下:(1,3代表東,西;2,4代表南、北)L7L6L5L2L1L013紅燈13黃燈13綠燈24紅燈24黃燈24綠燈實驗平臺上提供一組六個LED數(shù)碼管。本設計用2個數(shù)碼管來倒計時。中斷模塊是由單脈沖發(fā)生單元和8259中斷控制器,單脈沖發(fā)生單元主要用來請求中斷,然后做出情況處理。5、軟件設計思路:設計數(shù)器0的計數(shù)初值為3000,由于CLK0接脈沖信號,頻率為1.288MHZ,所以每1s中斷一次。利用TIME對不同的狀態(tài)時間計數(shù),用來實現(xiàn)計數(shù)器0對20秒鐘,5秒鐘的定時。中斷子程序分為數(shù)碼顯示刷新部分和紅綠黃燈各種狀態(tài)切換部分。每進入中斷即刷

9、新LED顯示。交通燈按正常狀態(tài)切換工作,8253開始計數(shù)后每1s發(fā)出一個中斷申請信號,在中斷子程序中先刷新數(shù)碼管,然后判斷當前狀態(tài),進入相應的處理程序進行處理。主程序的流程圖如圖所示。圖4、定時中斷服務子程序定時中斷子程序是本設計的重點,負責完成數(shù)碼管輸出數(shù)據(jù)刷新和各個狀態(tài)的處理切換。中斷子程序包括數(shù)碼管輸出數(shù)據(jù)刷新程序和各狀態(tài)處理程序。數(shù)碼管輸出數(shù)據(jù)刷新子程序是實現(xiàn)倒計時20s,用LEDOUT表示輸出的數(shù)據(jù),TIME用來軟件計時Is,就是計數(shù)10個100ms。LED輸出是要將輸出的數(shù)據(jù)轉化為段選碼。根據(jù)當前的狀態(tài)跳轉到相應的處理程序,在處理程序中完成定時和狀態(tài)的切換。狀態(tài)0、1、2、3、4、

10、5的流程是一樣的,先點亮對應的交通燈,再判斷定時到了就可以切換了。狀態(tài)0用于實現(xiàn)東西紅、南北綠;狀態(tài)1用來實現(xiàn)東西黃、南北綠;狀態(tài)2用于實現(xiàn)東西綠、南北黃;狀態(tài)3用于實現(xiàn)東西綠、南北紅;狀態(tài)4用于實現(xiàn)東西黃、南北紅;狀態(tài)5用于實現(xiàn)東西紅、南北黃,間隔點亮和熄滅就可以了。狀態(tài)0處理程序的流程圖如圖所示。TIME=O?N4開始T1KJE-2HIJ-X=01WIITIME-5BX-0004JIITIME-5EK-OCglITIME-5axcm4iiTIME-5IJX-CWkillT1ME-2IhBX=*:1O9II中斷返冋LtR顯示DX-1TmDL=O圖5狀態(tài)0處理程序6、源程序清單:1本次設計中,

11、選用8235的計數(shù)器0定時向實驗系統(tǒng)主片8259A的IRQ7請求中斷。設置8253的計數(shù)器0每Is請求一次中斷,工作于模式3;8255的A端口控制交通燈;數(shù)碼管驅動程序采用指導老師提供的程序。初始化程序:DATASEGMENTLEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;存放七段代碼表DB7FH,6FHTIMEDB19D2EQU200H;8255A端口AEAEQU200H;8255端口地址EEEQU203HCONTROLEQU20BH;8253端口地址COUNT0EQU208HCOUNT1EQU209HCOUNT2EQU20AHDATAENDSCODESEGMENT

12、ASSUMECS:CODE,DS:DATACODESEGMENTASSUMECS:CODESTART:MOVAX,0MOVDS,AXMOVAX,OFFSETIRQ7;填中斷矢量表ADDAX,2000HMOVSI,0FH*4MOVSI,AXMOVAX,0MOVSI+2,AXCLIMOVBX,0109H;BH表示要顯示數(shù)的十位,BL表示要顯示數(shù)的個位MOVCX,0MOVDX,0000HMOVAL,80H;初始化8255OUTEE,ALMOVAL,00;對PC0口置0OUTEE,ALMOVAL,02;對PC1口置0OUTEE,ALMOVDX,218H;8259初始化MOVAL,00010010bOU

13、TDX,ALMOVAL,0FHMOVDX,219HOUTDX,ALMOVDX,200H;交通燈初始狀態(tài)為全黃成對應的段碼MOVAL,0BBHOUT201H,AHOUTDX,ALPOPSIMOVAL,00110110b;初始化8253POPBXOUTCONTROL,ALPOPAXNEXT:CMPBL,00H;比較個位數(shù)是否為0MOVAX,3000淀時1秒JNZL1MOVDX,COUNT0CMPBH,00H;比較十位數(shù)是否為0OUTDX,ALJZCOMPAREMOVAL,AHMOVBX,0009H:十位為0,各為變?yōu)?OUTCOUNT0,ALJMPCOMPAREJMPNEXTL1:DECBXMOV

14、AX,DATA;置DS用數(shù)據(jù)段首址COMPARE:MOVDS,AXCMPDL,0JZSTATE0中斷服務程序:CMPDL1A1:STIJZSTATE1HLTCMPDL,2JMPA1JZSTATE2IRQ7:CMPDL,3數(shù)碼管顯示程序JZSTATE3CMPCX,99CMPDL,4JZDISPJZSTATE4INCCXCMPDL5IRETJZSTATE5DISP:STATE0:MOVCX,0MOVAL,7DH;東西紅,南北綠PUSHAXOUTD2,ALPUSHBXJMPCHANG1PUSHSISTATE1:MOVDX,BXMOVAL,BDH;東西黃,南北綠MOVBXOFFSETLEDOUTD2,

15、ALADDBX,2000HJMPCHANGE1MOVAH,00STATE2:MOVAL,DLMOVAL,DBH;東西綠,南北黃MOVSI,AXOUTD2,ALMOVAL,00HJMPCHANGE1OUTEE,ALSTATE3:MOVAL,03H;選通用來顯示個位的數(shù)碼顯示管MOVAL,D7H;東西綠,南北紅OUTEE,ALOUTD2,ALMOVAL,BX+SI;把十進制數(shù)所表示的個位數(shù)轉換JMPCHANGE1成對應的段碼STATE4:OUT201H,ALMOVAL,B7H;東西黃,南北紅MOVAL,DHOUTD2,ALMOVSI,AXJMPCHANGE1MOVAL,01H;選通用來顯示十位的數(shù)

16、碼顯示管STATE5:OUTEE,ALMOVAL,7BH;東西紅,南北黃MOVAL,02HOUTD2,ALOUTEE,ALCHANGE1:MOVAH,BX+SI;把十進制數(shù)所表示的十位數(shù)轉換CMPTIME,0JZA2MOVBX,0004HDECTIMEMOVTIME,4JMPEXITJMPEXITA2:M2:INCDXMOVBX,0004HCMPDL,6MOVTIME,4JNZA3JMPEXITMOVDL,0M3:A3:MOVBX,O109HCMPDL,5MOVTIME,19JZM5JMPEXITCMPDL,4M4:JZM4MOVBX,0004HCMPDL,3MOVTIME,4JZM3JMPE

17、XITCMPDL,2M5:JZM2MOVBX,0004HCMPDL,1MOVTIME,4JZM1JMPEXITCMPDL,0EXIT:JZM0MOVAL,20HM0:OUT218H,ALMOVBXQ109HIRETMOVTIME,19CODEENDSJMPEXITENDSTARTM1:7、程序運行結果:1東西方向的紅燈和南北方向的綠燈同時點亮20秒鐘;220秒鐘后,東西方向的黃燈閃爍5秒鐘。此時南北方向持續(xù)綠燈。3東西方向的黃燈閃爍5秒鐘后,轉為東西方向的綠燈和南北方向的黃燈點亮5秒鐘45秒鐘后,轉為南北方向的紅燈閃爍20秒鐘,此時東西方向仍維持綠燈。5東西方向的黃燈,南北方向紅燈閃爍5秒鐘。6.東西方向為紅燈,南北方向為黃燈閃爍5秒鐘。75秒鐘以后又轉為1,重復執(zhí)行1、模擬交通燈系統(tǒng)設計設計要求:8253定時1秒向8259A請求中斷,在中斷處理程序中:(1)對中斷處理程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論