單片機(jī)課程設(shè)計(jì)報告-十字路口交通燈控制系統(tǒng)設(shè)計(jì)_第1頁
單片機(jī)課程設(shè)計(jì)報告-十字路口交通燈控制系統(tǒng)設(shè)計(jì)_第2頁
單片機(jī)課程設(shè)計(jì)報告-十字路口交通燈控制系統(tǒng)設(shè)計(jì)_第3頁
單片機(jī)課程設(shè)計(jì)報告-十字路口交通燈控制系統(tǒng)設(shè)計(jì)_第4頁
單片機(jī)課程設(shè)計(jì)報告-十字路口交通燈控制系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、中南大學(xué)課程設(shè)計(jì)報告十字路口交通燈控制系統(tǒng)設(shè)計(jì)學(xué) 院 : 地球科學(xué)與信息物理學(xué)院專業(yè)班級 : 生醫(yī)0902班 姓 名: 學(xué) 號: 9 同 組 者: 學(xué) 號: 指導(dǎo)老師: 目 錄一、內(nèi)容摘要2二、設(shè)計(jì)內(nèi)容及要求2三、總設(shè)計(jì)原理2 1. 設(shè)計(jì)思想圖及設(shè)計(jì)說明22. 硬件原理框圖334. 程序流程圖45. 源程序清單46設(shè)計(jì)總結(jié)67參考文獻(xiàn)6四、系統(tǒng)硬件設(shè)計(jì)6678五、系統(tǒng)軟件設(shè)計(jì)9六、設(shè)計(jì)總電路圖及時間安排11七、硬件簡介13八、設(shè)計(jì)過程中發(fā)現(xiàn)的問題及解決方案17九、心得體會18附錄19一、內(nèi)容摘要近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實(shí)時檢測和自

2、動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。在城鎮(zhèn)街道的十字交叉路口,為了保證交通秩序和行人安全,一般在每條道路上各有一組紅、黃、綠交通信號燈,其中紅燈亮,表示該條道路禁止通行;黃燈亮表示該條道路上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行;綠燈亮表示該條道路允許通行。交通燈控制電路自動控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,指揮各種車輛和行人安全通行,實(shí)現(xiàn)十字路口交通管理的自動化。本系統(tǒng)采用MSC-51系列單片機(jī)AT89C51為中心器件來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了紅綠燈循環(huán)點(diǎn)亮,綠燈變紅燈中間5秒為

3、黃燈閃爍警示的功能。本系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。 二、設(shè)計(jì)內(nèi)容及要求:設(shè)計(jì)一個十字路口的交通燈定時控制系統(tǒng),基本要求如下: 利用單片機(jī)的定時器產(chǎn)生秒信號,控制十字路口的紅、綠、黃燈交替點(diǎn)亮和熄滅,并且利用4只LED數(shù)碼管顯示十字路口兩個方向通行或禁止的剩余時間。要求能用按鍵設(shè)置兩個方向的通行時間(紅、綠燈點(diǎn)亮的時間)和暫緩?fù)ㄐ袝r間(黃燈點(diǎn)亮的時間)。在課程設(shè)計(jì)時完成如下文檔資料:三、總設(shè)計(jì)原理:1、設(shè)計(jì)思路圖及設(shè)計(jì)說明 系統(tǒng)開始運(yùn)行后,首先東西紅燈亮30秒,南北先先綠燈亮25秒,再黃燈閃爍亮5秒,黃燈每隔0.5秒亮一次。然后南北紅燈亮30秒,東西先綠燈亮25秒,再黃燈閃爍亮5秒,黃燈

4、每隔0.5秒亮一次。最后,回到開始狀態(tài)顯示,照此循環(huán)往復(fù),控制十字路口的交通通行。同時,以倒計(jì)數(shù)的方式將剩余時間顯示在每隔干線對應(yīng)的兩位數(shù)碼管顯示器上。再增加4個按鈕,還可以對每個干線的車輛通行時間進(jìn)行調(diào)整。交通燈狀態(tài)轉(zhuǎn)換表: 東西 南北 順序 時間 綠燈 黃燈 紅燈 綠燈 黃燈 紅燈 1 25s 0 0 1 1 0 02 5s 0 0 1 0 1 (閃爍) 03 25s 1 0 0 0 0 14 5s 0 1(閃爍) 0 0 0 1 設(shè)計(jì)說明:每四個狀態(tài)為一個周期,T(綠)+T(黃)=T(紅)=30s。這張表用1表示亮,0表示滅是為了理解上的方便而這樣設(shè)計(jì)的,而實(shí)際仿真時用單片機(jī)P1口輸出控

5、制6盞交通燈亮滅,由于交通燈為共陽極解法,所以實(shí)際上輸出為1時燈是滅的,為0時燈才亮,特此說明。2、硬件原理框圖時鐘電路單片機(jī)AT89C51紅綠燈裝置驅(qū)動裝置倒計(jì)時裝置3、存儲器的單元分配各存儲單元中的存放的數(shù)據(jù)內(nèi)容和意義:P0:輸出數(shù)字段碼P1:輸出交通燈亮滅控制碼P2:輸出位顯碼R0:用數(shù)碼管顯示的一位BCD碼數(shù)字R1:位顯碼,控制數(shù)碼管顯示哪位數(shù)字 R2:東西干線時間R3:南北干線時間R4:記錄5ms中斷次數(shù),控制黃燈閃爍R5:記錄5ms中斷次數(shù),累加形成1秒信號R6:用于延時子程序R7:用于延時子程序70H:南北時間高位 71H:南北時間低位 72H:東西時間高位 73H:東西時間低位

6、 開始4、程序流程圖東西黃燈閃爍5s狀態(tài)1南北綠燈亮,東西紅燈亮狀態(tài)4南北紅燈亮,東西黃燈閃延時25s延時25s狀態(tài)2南北黃燈閃,東西紅燈亮狀態(tài)3南北紅燈亮,東西綠燈亮南北黃燈閃爍5s5、源程序清單ORG 0000HAJMP MAINORG 000BHAJMP INTMAIN:MOV SP,#50H MOV IE,#82H ;允許T0中斷 MOV TMOD,#01H ;T0定時方式1 MOV TL0,#78H MOV TH0,#0ECH ;晶振12Mhz,定時5ms MOV R5,#00H SETB TR0N0: MOV R2,#30 ;東西紅燈亮30s,R2存東西時間 MOV R3,#25

7、;南北綠燈25s,R3存南北時間 MOV P1,#1EHN01: CJNE R3,#00,$ MOV R3,#5 ;南北黃燈5sN02: MOV P1,#1DHN1: MOV R4,#00H ;R4記錄5ms中斷次數(shù) CJNE R3,#00,N1 ;黃燈是否閃爍5sN2: MOV R3,#30 MOV R2,#25 MOV P1,#33H CJNE R2,#00,$ MOV P1,#2BH MOV R2,#5N3: MOV R4,#00HN31: CJNE R4,#64H,$ CJNE R2,#00,N3 MOV R2,#30 MOV R3,#25 SJMP N0INT: MOV TL0,#7

8、8H ;每5ms中斷一次,顯示一次時間(四位輪流顯示一次) MOV TH0,#0ECH INC R4 INC R5 ;R5記錄5ms中斷次數(shù) CJNE R5,#0C8H,T01;每1s減小一次R2,R3 MOV R5,#00H DEC R2 DEC R3T01: ACALL DISP ;轉(zhuǎn)顯示程序 RETIDISP:MOV B,#0AH MOV A,R3 DIV AB ;將時間轉(zhuǎn)換成兩位BCD碼 MOV 70H,A ;南北時間高位 MOV 71H,B ;南北時間低位 MOV B,#0AH MOV A,R2 DIV AB MOV 72H,A ;東西時間高位 MOV 73H,B ;東西時間低位 M

9、OV R0,#70H ;R0存要顯示的數(shù)字 MOV DPTR,#TAB MOV R1,#01HDISP0:MOV P2,R1 ;R1存位顯碼,從南北時間高位開始顯示,依次顯示南北低位、東西高位、東西低位 MOV A,R0 MOVC A,A+DPTR ;A存數(shù)字段碼 MOV P0,A INC R0 MOV A,R1 JB ACC.3,DISP1 ;四位輪流顯示是否完畢 RL A MOV R1,A SJMP DISP0DISP1:RETDL: MOV R6,#0FFHDL1: DJNZ R6,DL1 DJNZ R7,DL RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H

10、,82H,0F8H,80H,90H,88H ;字形碼表,共陽極段碼END6、設(shè)計(jì)總結(jié) 本設(shè)計(jì)思路清晰,設(shè)計(jì)簡潔,功能實(shí)用?;就瓿闪嗽O(shè)計(jì)要求,能夠很好得實(shí)現(xiàn)預(yù)期的效果。7、參考文獻(xiàn)單片機(jī)原理及應(yīng)用 高等教育出版社 張毅剛主編單片機(jī)原理及應(yīng)用教程(第2版) 機(jī)械工業(yè)出版社 趙全利,肖興達(dá)主編四、系統(tǒng)硬件設(shè)計(jì) 1、時鐘電路設(shè)計(jì)用12Mhz石英晶體振蕩器,兩個30pF的電阻,如圖連接,接到AT89C51的XTAL1和XTAL2兩端便構(gòu)成了時鐘電路設(shè)計(jì),在芯片內(nèi)部產(chǎn)生1us的時鐘脈沖信號。實(shí)際上使用proteus仿真,軟件自動設(shè)置使AT89C51自帶時鐘脈沖,默認(rèn)頻率為12Mhz。所以不需要在電路圖上

11、對單片機(jī)外接時鐘電路,如此設(shè)計(jì)是為了強(qiáng)調(diào)時鐘信號的產(chǎn)生原理和過程,不可被忽視。2、交通燈電路的設(shè)計(jì)如圖所示,用P1口輸出交通燈亮滅控制碼,LED交通燈為共陽極解法,所以輸出為高電平時燈滅,為低電平時燈亮。交通燈布局為東西南北兩方向,便于仿真運(yùn)行時觀察理解。本實(shí)驗(yàn)采用7SEG-MPX4-CC顯示器,4位共陰極7段數(shù)碼顯示器。使用動態(tài)顯示方式。用P0口輸出數(shù)字段碼,由于PO口本身驅(qū)動不足,需要接反相器(74LS04)以增強(qiáng)驅(qū)動力,使數(shù)碼管亮起來,輸出反向了,所以采用共陽極數(shù)字的段碼。用P2口輸出位顯碼,顯示器接口1對應(yīng)最左邊數(shù)碼管,接口2、3、4依次對應(yīng)右邊數(shù)碼管。因?yàn)轱@示器是共陰極的,所以位顯碼

12、為高電平時不顯示數(shù)字,為低電平時顯示數(shù)字。在動態(tài)顯示時,輸出位顯碼,主要是用0001中的1循環(huán)左移位更為方便,但輸出1時不顯示數(shù)字,輸出0時顯示數(shù)字,不符合動態(tài)顯示同一時刻只顯示一位的方式,所以對P0輸出也要采用取反,變?yōu)?110中的0循環(huán)左移位,就能實(shí)現(xiàn)動態(tài)顯示效果了。由于proteus軟件中沒有找到成塊的74LS04,只好采用11個單個原件連接電路,實(shí)際連電路時可采用下面的兩塊74LS04就行。芯片74LS04如圖所示: 五、系統(tǒng)軟件設(shè)計(jì) 我們使用proteus軟件進(jìn)行電路仿真,芯片AT89C51還需要載入代碼文件來支持其正常工作以實(shí)現(xiàn)預(yù)期功能要求。程序代碼編寫是整塊設(shè)計(jì)的核心內(nèi)容,下面簡

13、要介紹下各段程序代碼的意義和功能。初始賦值ORG 0000HAJMP MAINORG 000BH ;T0中斷入口AJMP INTMAIN:MOV SP,#50HMOV IE,#82H ;允許T0中斷 MOV TMOD,#01H ;T0定時方式1 MOV TL0,#78H MOV TH0,#0ECH ;晶振12Mhz,定時5msT0定時方式1為16為定時器,T0初始值為0EC78H(60536),終值為0FFFFH(65536)所以定時為(6553660536) 1/12Mhz12= 5000us=5ms,即系統(tǒng)每5ms中斷一次,程序跳轉(zhuǎn)到INT處執(zhí)行程序。2、交通燈循環(huán)顯示代碼N0: MOV

14、R2,#30 ;東西紅燈亮30s,R2存東西時間 MOV R3,#25 ;南北綠燈25s,R3存南北時間 MOV P1,#1EHN01: CJNE R3,#00,$程序用R2存儲東西向的時間,R3存儲南北的時間,P1的初值為1EH,即初始時東西紅燈亮,南北綠燈亮。CJNE R3,#00,$不停跳轉(zhuǎn)自己,是為了等待R3變?yōu)?,此時時間過了25s。MOV R3,#5 ;南北黃燈5sN02: MOV P1,#1DHN1: MOV R4,#00H ;R4記錄5ms中斷次數(shù) CJNE R3,#00,N1 ;黃燈是否閃爍5然后東西依然是紅燈,南北的綠燈變?yōu)辄S燈,用R4記錄5ms中斷的次數(shù),當(dāng)R4為100時

15、,即時間過了5msX100=0.5s,CPL P1.1使南北黃燈亮或滅一次。最后當(dāng)R3為0時,即黃燈閃爍5s后繼續(xù)執(zhí)行下面的程序。之后程序與上面相似,只是南北和東西的時間與交通燈亮滅對換了一次,再用SJMP N0跳轉(zhuǎn)回初始狀態(tài),主程序依此循環(huán),不再累述。3、T0定時器中斷程序INT: MOV TL0,#78H ;每5ms中斷一次,顯示一次時間(四位輪流顯示一次) MOV TH0,#0ECH INC R4 INC R5 ;R5記錄5ms中斷次數(shù) CJNE R5,#0C8H,T01;每1s減小一次R2,R3 MOV R5,#00H DEC R2 DEC R3T01: ACALL DISP ;每5m

16、s顯示一次倒計(jì)時數(shù)字 RETI程序每5ms中斷一次,進(jìn)入中斷后,繼續(xù)給TO賦值初值,使T0繼續(xù)定時循環(huán)。每次中斷,使R4和R5加1。R4最大為100,控制黃燈每0.5s亮或滅依次,R5最大為200,形成1s信號。系統(tǒng)每5ms顯示一次當(dāng)前倒計(jì)時數(shù)字,每1s減小一次R2,R3,即南北東西的時間減1,同時顯示出來。顯示完畢后,RETI返回中斷口繼續(xù)執(zhí)行主程序。4、顯示子程序DISP:MOV B,#0AH MOV A,R3 DIV AB ;將時間轉(zhuǎn)換成兩位BCD碼 MOV 70H,A ;南北時間高位 MOV 71H,B ;南北時間低位 MOV B,#0AH MOV A,R2 DIV AB MOV 72

17、H,A ;東西時間高位 MOV 73H,B ;東西時間低位 MOV R0,#70H ;R0存要顯示的數(shù)字用70H、71H、72H、73H依次存南北時間高位、南北低位、東西高位、東西低位。MOV DPTR,#TAB MOV R1,#01HDISP0:MOV P2,R1 MOV A,R0 MOVC A,A+DPTR ;A存數(shù)字段碼 MOV P0,A INC R0 MOV A,R1 JB ACC.3,DISP1 ;四位輪流顯示是否完畢 RL A MOV R1,A SJMP DISP0DISP1:RET用R0存儲要顯示的數(shù)字的地址,MOV A,R0,將值送A,再用MOVC A,A+DPTR和MOV P

18、0,A將要顯示的數(shù)字的段碼送出PO口。ACALL DLAY調(diào)用延時子程序使每個數(shù)字顯示0.5ms,再顯示下一位數(shù)字,在同一時刻只顯示四位中的一位數(shù)字。由于顯示器的余輝和人眼的視覺暫留作用,造成多位同時顯示的表面現(xiàn)象。用R1存儲位顯碼,初值為0001B,取反后為1110B。R1的值傳送給A,A中1位置不停左移,取反后為0依次左移,以控制同一時刻顯示一位數(shù)字,顯示順序依次為南北時間高位、南北低位、東西高位、東西低位。當(dāng)R1為1000B時,一輪顯示完畢,返回中斷程序調(diào)用處,而后執(zhí)行RETI,返回中斷口。所以為每5ms中斷一次,輪流顯示各位數(shù)字一次。六、總設(shè)計(jì)電路圖及時間安排1、時間安排時間進(jìn)度(20

19、11年12月12日2011年12月26日) 時間 設(shè)計(jì)內(nèi)容12日14日 共同合作,查閱資料,構(gòu)想思路,方案比較,設(shè)計(jì)與論證, 理論分析與計(jì)算15日19日 確定設(shè)計(jì)思路,分工合作,完成硬件原理框架圖,完成硬件調(diào)試,19日初步交給老師檢查20日22日 完成仿真,檢查電路,排除故障,實(shí)現(xiàn)基本功能要求, 實(shí)現(xiàn)創(chuàng)新,提交檢查。23日25日 完成實(shí)驗(yàn)日記、報告和總結(jié)。 2、總設(shè)計(jì)電路圖完整proteus仿真電路圖如下:七、硬件簡介 AT89C51單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)

20、在我們具體說明:1、AT89C51 引腳說明 引腳說明如下:VCCAT89C51 電源正極輸入,接+5V 電壓。GND電源接地端。XTAL1接外部晶振的一個引腳。在單片機(jī)內(nèi)部,它是一反相放大器輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。它采用外部振蕩器時,些引腳應(yīng)接地。XTAL2接外部晶振的一個引腳。在片內(nèi)接至振蕩器的反相放大器輸出端和內(nèi)部時鐘發(fā)生器輸入端。當(dāng)采用外部振蕩器時,則此引腳接外部振蕩信號的輸入。RSTAT89C51 的復(fù)位信號輸入引腳,高電位工作,當(dāng)要對芯片又時,只要將此引腳電位提升到高電位,并持續(xù)兩個機(jī)器周期以上的時間,AT89C51 便能完成系統(tǒng)復(fù)位的各項(xiàng)工作,使得內(nèi)部特殊功能寄存器的

21、內(nèi)容均被設(shè)成已知狀態(tài)。ALE/PROGALE 是英文ADDRESS LATCH ENABLE的縮寫,表示允許地址鎖存允許信號。當(dāng)AT89C51訪問外部存儲器時,ALE 信號負(fù)跳變來觸發(fā)外部的8 位鎖存器 (如74LS373),將端口P0 的地址總線(A0-A7)鎖存進(jìn)入鎖存器中。在非訪問外部存儲器期間,ALE 引腳的輸出頻率系統(tǒng)工作頻率的 1/16,因此可以用來驅(qū)動其他外圍芯片的時鐘輸入。當(dāng)問外部存儲器期間,將以1/12 振蕩頻率輸出。EA/VPP該引腳為低電平時,則讀取外部的程序代碼 (存于外部EPROM 中)來執(zhí)行程序。使用AT89C51,此引腳接成高電平使程序運(yùn)行時訪問內(nèi)部程序存儲器,當(dāng)

22、程序指針PC 值超過片內(nèi)程序存儲器地址(如8051/8751/89C51 的PC 超過0FFFH)時,將自動轉(zhuǎn)向外部程序存儲器繼續(xù)運(yùn)行。PSEN此為Program Store Enable的縮寫。訪問外部程序存儲器選通信號,低電平有效。在訪問外部程序存儲器讀取指令碼時,每個機(jī)器周期產(chǎn)生二次PSEN 信號。在執(zhí)行片內(nèi)程序存儲器指令時,不產(chǎn)生PSEN 信號,在訪問外部數(shù)據(jù)時,亦不產(chǎn)生PSEN 信號。P0P0 口(P0.0P0.7)是一個8 位漏極開路雙向輸入輸出端口,當(dāng)訪問外部數(shù)據(jù)時,它是地址總線(低8 位)和數(shù)據(jù)總線復(fù)用。外部不擴(kuò)展而單片應(yīng)用時,則作一般雙向IO 口用。P0 口每一個引腳可以推動

23、8 個LSTTL 負(fù)載。P2P2 口(P2.0P2.7)口是具有內(nèi)部提升電路的雙向I/0 端口(準(zhǔn)雙向并行I/O口),當(dāng)訪問外部程序存儲器時,它是高8 位地址。外部不擴(kuò)展而單片應(yīng)用時,則作一般雙向IO 口用。每一個引腳可以推動4 個LSTL 負(fù)載。P1P1 口(P1.0P1.7)口是具有內(nèi)部提升電路的雙向I/0 端口(準(zhǔn)雙向并行I/O口),其輸出可以推動4 個LSTTL 負(fù)載。僅供用戶作為輸入輸出用的端口。P3P3 口(P3.0P3.7)口是具有內(nèi)部提升電路的雙向I/0 端口(準(zhǔn)雙向并行I/O口),它還提供特殊功能,包括串行通信、外部中斷控制、計(jì)時計(jì)數(shù)控制及外部隨機(jī)存儲器內(nèi)容的讀取或?qū)懭肟刂频?/p>

24、功能。其特殊功能引腳分配如下:P3.0 RXD 串行通信輸入P3.1 TXD 串行通信輸出P3.2 INT0 外部中斷0 輸入,低電平有效P3.3 INT1 外部中斷1 輸入,低電平有效P3.4 T0 計(jì)數(shù)器0 外部事件計(jì)數(shù)輸入端P3.5 T1 計(jì)數(shù)器1 外部事件計(jì)數(shù)輸入端P3.6 WR 外部隨機(jī)存儲器的寫選通,低電平有效P3.7 RD 外部隨機(jī)存儲器的讀選通,低電平有效2、AT89C51 內(nèi)存空間(1)內(nèi)部程序存儲器(FLASH)4K 字節(jié)。(2)外部程序存儲器(ROM)64K 字節(jié)。(3)內(nèi)部數(shù)據(jù)存儲器(RAM)256 字節(jié)。(4)外部數(shù)據(jù)存儲器(RAM)64K 字節(jié)。3、主要特殊功能寄存

25、器說明PSW(Program Status Word)程序狀態(tài)字位地址 D7 D6 D5 D4 D3 D2 D1 D0符號 CY AC F0 RS1 RS0 OV PCY() :高位進(jìn)位標(biāo)志位。常用“C”表示。AC() :輔助進(jìn)位木標(biāo)志。F0() :用戶標(biāo)志位。RS1() :寄存器組選擇位1。RS0() :寄存器組選擇位0。OV() :溢出標(biāo)志位。() :保留位,無定義。P() :奇偶校驗(yàn)位,在每一個指令周期中,若累加器(A)中的“1”的位個數(shù)是奇數(shù)個則P1,偶數(shù)個則P0。寄存器組的選擇:RS1 RS0 寄存器組 RAM 中的地址0 0 0 00H07H0 1 1 08H0FH1 0 2 10

26、H17H1 1 3 18H1FHIE 中斷允許寄存器位地址 AF AD AC AB AA A9 A8符號 EA ET2 ES ET1 EX1 ET0 EX0EA() :EA0 時,所有中斷停用(禁止中斷)。EA1 時,各中斷的產(chǎn)生由個別的允許位決定。() :保留位,無定義。ET2() :允許計(jì)時器2 溢出的中斷(8052 使用)。ES() :允許串行端口的中斷(ES1 允許,ES0 禁止)。ET1() :允許計(jì)時器1 中斷(ET11 允許,ET10 禁止)。EX1() :允許外部中斷INT1 的中斷(EX11 允許,EX10 禁止)。ET0() :允許計(jì)時器0 中斷(ET01 允許,ET00

27、禁止)。EX0() :允許外部中斷INT0 的中斷(EX01 允許,EX00 禁止)。IP 中斷優(yōu)先次序寄存器位地址 BD BC BB BA B9 B8符號 PT2 PS PT1 PX1 PT0 PX0() :保留位,無定義。() :保留位,無定義。PT2() :設(shè)定計(jì)時器2 的優(yōu)先次序(8052 使用)。PS() :設(shè)定串行端口的中斷優(yōu)先次序。PT1() :設(shè)定時計(jì)時器1 的優(yōu)先次序。PX1() :設(shè)定外部中斷INT1 的優(yōu)先次序。PT0() :設(shè)定計(jì)時器0 的優(yōu)先次序。PX0() :設(shè)定外部中斷INT0 的優(yōu)先次序。上述每位IP.*1 時,則定義為高優(yōu)先級中斷,IP.*0 時,則定義為低優(yōu)

28、先級中斷。如果同時有兩個或兩個以上優(yōu)先級相同的中斷請求時,則由內(nèi)部按查詢優(yōu)先順序來確定該響應(yīng)的中斷請求,其優(yōu)先順序由高向低順序排列。優(yōu)先順序排列如下:順序 中斷請求標(biāo)志中斷源優(yōu)先圖示1 IE0 外部中斷0(INT0) 最高2 TF0 定時計(jì)數(shù)器0 溢出中斷3 TE1 外部中斷1(INT1)4 TF1 定時計(jì)數(shù)器1 溢出中斷5 RITI 串行通訊中斷 最低TMOD 定時計(jì)數(shù)器工作方式控制寄存器位地址 不 可 位 尋 址符號 GATE CT M1 M0 GATE CT M1 M0類別 定時計(jì)數(shù)器1 定時計(jì)數(shù)器2GATE :當(dāng)GATE1 時,INT0 或INT1 引腳且為高電平,同時TCON 中的T

29、R0或TR1 控制位如為1 時,定時計(jì)數(shù)器0 或1 才會工作。若 GATE0,同時只要TCON 中的TR0 或TR1 控制位如為1 時,定時計(jì)數(shù)器0 或1 即可工作。CT :選擇定時或計(jì)數(shù)器模式。當(dāng)CT1 為計(jì)數(shù)器,由外部引腳T0 或T1 輸入計(jì)數(shù)脈沖。CT0 時為計(jì)時器,由內(nèi)部系統(tǒng)時鐘提供計(jì)時工作脈沖。M1 :方式選擇位1。M0 :方式選擇位0。M1、M2 的操作方式選擇定義如下:M1 M0 操作方式 功 能 說 明0 0 方式0 13 位定時計(jì)數(shù)器0 1 方式1 16 位定時計(jì)數(shù)器1 0 方式2 自動再裝入的8 位定時計(jì)數(shù)器1 1 方式3 定時計(jì)時器1 無效,將定時計(jì)數(shù)器0 分成兩個8 位

30、計(jì)數(shù)器4、定計(jì)器初值計(jì)算公式:TCM(TT 計(jì)數(shù))其中 TC 為初值,M 為計(jì)數(shù)器模值,T 定時器定時時間,T 計(jì)數(shù)為fosc/12工作方式 M模值 T計(jì)數(shù) 最大定時時間方式 0 213 213fosc/12方式 1 216 fosc/12 216fosc/12方式 2 28 28fosc/12方式 3 28 28fosc/12八、設(shè)計(jì)過程中發(fā)現(xiàn)的問題及解決方案1、設(shè)計(jì)剛開始時,我們不清楚十字路口交通燈的亮滅轉(zhuǎn)換情況,于是我們在來去學(xué)校的路上仔細(xì)觀察路口交通燈,經(jīng)過研究思考最終得到了上述的交通燈狀態(tài)轉(zhuǎn)換表。2、在眾多MCS-51系列單片機(jī)中,不確定用那塊更好,經(jīng)過反復(fù)比較衡量,我們選擇用AT8

31、9C51這塊功能強(qiáng)大實(shí)用的單片機(jī),同時根據(jù)實(shí)際管腳分布分配好各存儲單元的內(nèi)容,使得連線時方便美觀。在電路圖中對交通燈采用共陽極接法,對顯示器使用共陰極的7段數(shù)碼管顯示器,并采用動態(tài)顯示的方式顯示時間數(shù)字。最后完成了整個硬件設(shè)計(jì)。3、連接顯示電路時,我們發(fā)現(xiàn)直接用P0輸出口輸出數(shù)字段碼無法使數(shù)碼管顯示。經(jīng)過上網(wǎng)查閱資料,得知P0口驅(qū)動不足,于是增加反相器以增強(qiáng)其驅(qū)動,所以原本是共陰極的數(shù)字段碼這時要修改為共陽極的段碼。4、在設(shè)計(jì)軟件代碼時,我們很好得完成了延時系統(tǒng)和控制交通燈亮滅的循環(huán)系統(tǒng),實(shí)現(xiàn)了預(yù)期的效果。但是無法正常顯示交通燈倒計(jì)時數(shù)字,是編寫控制動態(tài)顯示倒計(jì)時數(shù)字的代碼時出了問題,我們發(fā)現(xiàn)

32、原設(shè)計(jì)簡單且錯誤明顯。通過對教科書和參考資料上面的數(shù)碼管動態(tài)顯示原理的研究學(xué)習(xí),結(jié)合硬件的搭設(shè),我們創(chuàng)造性地實(shí)現(xiàn)了僅使用7位輸出就能夠顯示4位數(shù)字的功能,這個問題最為復(fù)雜,調(diào)整耗時也最多。5、整體設(shè)計(jì)基本完成后,運(yùn)行時發(fā)現(xiàn)倒計(jì)時時間走得太快,于是檢查代碼設(shè)計(jì)是否出現(xiàn)了問題,仔細(xì)檢查后發(fā)現(xiàn)完全正確,于是試著修改晶振的頻率,卻發(fā)現(xiàn)無論如何修改倒計(jì)時速率沒變。經(jīng)過觀察研究發(fā)現(xiàn)了proteus軟件會自動給單片機(jī)帶上時鐘脈沖,默認(rèn)的是12Mhz,沒1us產(chǎn)生一次脈沖,所以外連的時鐘電路實(shí)際上不起效果。而我們本來的程序代碼設(shè)計(jì)是使用6Mhz的晶振,比proteus默認(rèn)的小,所以電路圖上時間倒計(jì)時速率為正常的兩倍(每0.5s減1

溫馨提示

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

最新文檔

評論

0/150

提交評論