基于單片機的交通燈的設計畢業(yè)論文_第1頁
基于單片機的交通燈的設計畢業(yè)論文_第2頁
基于單片機的交通燈的設計畢業(yè)論文_第3頁
基于單片機的交通燈的設計畢業(yè)論文_第4頁
基于單片機的交通燈的設計畢業(yè)論文_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄TOC\o"1-3"\f\h\u294621.我國的城市交通燈系統(tǒng)現(xiàn)狀 4300111.1國內城市交通燈系統(tǒng)現(xiàn)狀 4146251.2國內城市交通燈系統(tǒng)的不足點 4255082.單片機的概述 6168742.1單片機的介紹 631612.2單片機交通燈控制的優(yōu)點 6166972.3單片機的作用 6231002.3.1單片機交通燈定時原理 6193902.3.2單片機交通燈控制原理 6223453.芯片的介紹 649593.1芯片內部結構簡介 715783.2芯片引腳圖 7120554.程序設計 1033454.1程序主體設計流程圖 1048154.2程序清單 12257965.總結 2016072參考文獻 205320致謝 21基于單片機的交通燈的設計摘要:基于51單片機的特點及交通燈在實際控制中的特點,論文中對在單片機應用中可能遇到的重要技術問題都有涉足。論文中在對十字路口的交通燈狀態(tài)設為兩張:一種是正常狀態(tài),一種是緊急狀態(tài),分別用紅、綠、黃色燈的不同組合來設計。論文中還介紹了控制的基本原理以及控制的表現(xiàn),介紹了用于城市十字路口的三色燈交通信號時間顯示的研制方案,對其電源供電、發(fā)光二極管構成的負載結構、燈色時間檢測都給出了精妙合理的優(yōu)化結構,大幅度地提高了產(chǎn)品可靠性并降低了制造成本。關鍵詞:51單片機;交通燈;時間顯示;定時器;延時我國的城市交通燈系統(tǒng)現(xiàn)狀1.1國內城市交通燈系統(tǒng)現(xiàn)狀隨著經(jīng)濟的發(fā)展,城市現(xiàn)代化程度不斷提高,交通需求和交通量迅速增長,城市交通網(wǎng)絡中交通擁擠日益嚴重,道路運輸所帶來的交通擁堵、交通事故和環(huán)境污染等負面效應也日益突出,逐步成為經(jīng)濟和社會發(fā)展中的全球性共同問題。交通問題已經(jīng)日益成為世界性的難題,城市交通事故、交通阻塞和交通污染問題愈加突出。為了解決車和路的矛盾,常用的有兩種方法:一是控制需求,最直接的辦法就是限制車輛的增加;二是增加供給,也就是修路。但是這兩個辦法都有其局限性。交通是社會發(fā)展和人民生活水平提高的基本條件,經(jīng)濟的發(fā)展必然帶來出行的增加,而且在我國汽車工業(yè)正處在起步階段的時期,因此限制車輛的增加不是解決問題的好方法。而采取增加供給,即大量修筑道路基礎設施的方法,在資源、環(huán)境矛盾越來越突出的今天,面對越來越擁擠的交通,有限的源和財力以及環(huán)境的壓力,也將受到限制。這就需要依靠除限制需求和提供道路設施之外的其他方法來滿足日益增長的交通需求。交通系統(tǒng)正是解決這一矛盾的途徑之一。智能交通系統(tǒng)是將先進的信息技術、數(shù)據(jù)通訊傳輸技術、電子傳感技術、電子控制技術及計算機處理技術等有效的集成運用于整個地面交通管理系統(tǒng)而建立的一種在大范圍內、全方位發(fā)揮作用的實時、準確、高效的綜合交通運輸管理系統(tǒng)。對城市交通流進行智能控制,可以使道路暢通,提高交通效率。合理進行交通控制可以對交通流進行有效的引導和調度,使交通保持在一個平穩(wěn)的運行狀態(tài),從而避免或緩和交通擁擠狀況,大大提高交通運輸?shù)倪\行效率,還可以減少交通事故,增加交通安全,降低污染程度,節(jié)省能源消耗,論文中就是通過對交叉路口交通信號的智能控制,達到優(yōu)化路口交通流的目的。1.2國內城市交通燈系統(tǒng)的不足點交通控制存在的問題我國城市交通運輸?shù)默F(xiàn)狀和存在的問題,借鑒國外城市交通管理的先進經(jīng)驗,強調建立城市交通管理體制的重要性,提出加強城市交通研究的交通規(guī)劃,建立穩(wěn)定的交通基礎設施建設的資金出道,實行公交優(yōu)先政策,建立先進的交通信息系統(tǒng)等對策。隨著城市機動車增長速度的加快。1994年臥軌城市機動車保有量已接近500萬輛。20世紀90年代以來,經(jīng)濟的發(fā)展加快,從1985年到1995年,機動車增長率達13%左右,近幾年更是增多。然而,與此同時,城市道路建設規(guī)模也在加大,我國城市普遍存在道路密度,道路面積率偏低的問題,這是我國城市尤其是大城市有機的一個重要原因。我國城市道路的密度只有6.8km每平方千米,而在20世紀80年代,世界發(fā)達國家就已到達20km每平方千米。20世紀90年代,我國部分城市道路面積率,北京為5.9%,上海為6.4%,而國外東京為13.8%,巴黎為25%,普遍高于我國。近幾年,國家雖不斷加大城市道路建設的力度,但仍趕不上車輛的增長速度,且與世界其他國家相比,差距仍很大。出租車以及公交的發(fā)展經(jīng)營情況并不盡如人意,雖然車輛和線路長度增長,但運營速度成了瓶頸,新增的運動被運輸效率低下所抵消。交通管理方面水平還欠發(fā)展,隨著交通需求越來越旺盛,而我國城市中小交通管理和交通安全的現(xiàn)代化設施卻做得不足。在車輛,道路和交通管理系統(tǒng),城市交通信號燈控制系統(tǒng),城市交通管理中應用人工智能技術,信息采集和信息提供技術等方面都與發(fā)達國家有很大的差距。近幾年,雖然有部分城市研究和引進一些國外先進的交通信號管理系統(tǒng),但是由于交通管理設施不足等原因,我國交通事故率居高不下。城市車流行駛速度逐年下降,目前不少城市交通車運量年年增長,但運輸速度普遍下降,這都源于交通通行不佳。國內的交通燈一般設在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈,加上一個倒計時的顯示計時器來控制行車。而目前絕大多數(shù)交通燈的時間都是設定好的,還存在以下缺點:(1)兩車道的車輛輪流放行時間相同且固定,在十字路口,經(jīng)常一個車道為主干道,車輛較多,放行時間應該長些;另一車道為副干道,車輛較少,放行時間應該短些。(2)沒有考慮緊急車通過時,兩車道應采取的措施,臂如,消防車或急救車執(zhí)行緊急任務通過時,兩車道的車都應停止,讓緊急車通過。這些缺點的存在,決定了傳統(tǒng)交通燈不能適應當前城市交通的要求,不能使城市車流的調節(jié)達到最優(yōu)。2.單片機的概述2.1單片機的介紹單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。通常,單片機由單塊集成電路芯片構成,內部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機只需要和適當?shù)能浖巴獠吭O備相結合,便可成為一個單片機控制系統(tǒng)。單片機經(jīng)過1、2、3、4代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強,內部資源在增多,引角的多功能化,以及低電壓底功耗。2.2單片機交通燈控制的優(yōu)點單片機價格適當,它體積小,運算速度快,定時器通過中斷方式給CPU發(fā)送信號,使CPU可以及時響應,減少了系統(tǒng)開銷降低了系統(tǒng)功耗。單片機通過程序方式控制各種輸入輸出信號,可以方便的設計運行規(guī)則,而且可以在系統(tǒng)運行過程中設定交通燈亮滅的時間和選擇規(guī)則,從而實現(xiàn)多種復雜功能。2.3單片機的作用2.3.1單片機交通燈定時原理當工作在定時器狀態(tài)時,定時器寄存器在每一個時鐘信號時加1,時鐘信號為系統(tǒng)時鐘或系統(tǒng)時鐘的12分頻。每個定時器都有幾種不同的工作方式,其中重載式工作方式可以使定時器在定時結束時,重新裝入定時值,重新開始計數(shù)。即可以作為自動重載的定時器使用。并且計時結束時,通過中斷方式給CPU發(fā)送信號。2.3.2單片機交通燈控制原理單片機根據(jù)接收倒的定時器中斷,輸出控制信號控制信號燈的亮滅,還可以輸出脈沖信號控制數(shù)碼管顯示倒計時時間。單片機控制系統(tǒng)直接控制定時器,外部輸出設備和鍵盤。可以通過鍵盤設定時間和規(guī)則。3.芯片的介紹3.1芯片內部結構簡介中央處理器:中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調度整個單元系統(tǒng)協(xié)調的工作,完成運算和控制輸入輸出功能等操作。數(shù)據(jù)存儲器(內部RAM):數(shù)據(jù)存儲器用于存放變化的數(shù)據(jù)。AT89S51中數(shù)據(jù)存儲器的地址空間為256個RAM單元,但其中能作為數(shù)據(jù)存儲器供用戶使用的僅有前面的128個,后128個被專用寄存器占用。程序存儲器(內部ROM):程序存儲器用于存放程序和固定不變的常數(shù)等。通常采用只讀存儲器,且其又多種類型,在89系列單片機中全部采用閃存。AT89S51內部配置了3KB閃存。定時/計時器(ROM):定時/計數(shù)器用于實現(xiàn)定時和計數(shù)功能。AT89S51共有2個16位定時/計數(shù)器。并行輸入輸出(I/O)口:89S51共有4組8位I/O口(P0、P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。每個口都由1個鎖存器和一個驅動器組成。它們主要用于實現(xiàn)與外部設備中數(shù)據(jù)的并行輸入與輸出,有些I/O還有其他功能。全雙工串行口:AT89S51內置一個全雙工串行通信口,用于與其他設備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。時鐘電路:時鐘電路的作用是產(chǎn)生單片機工作所需要的時鐘脈沖序列。中斷系統(tǒng):中斷系統(tǒng)的作用主要是對外部或內部的終端請求進行管理與處理。AT89S51共有5個中斷源,其中有2個外部中斷源和3個內部中斷源。3.2芯片引腳圖VCC:AT89S51電源正端輸入,接+5V。VSS:電源地端。XTAL1:單芯片系統(tǒng)時鐘的反向放大器輸入端。XTAL2:系統(tǒng)時鐘的反向放大器輸出端,一般在設計上只要在XTAL1和XTAL2上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩個引腳與地之間加入一個20PF的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機。RESET:AT89S51的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統(tǒng)重置的各項動作,使得內部特殊功能寄存器之內容均被設成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。EA/Vpp:表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統(tǒng)會取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內部無程序存儲器空間。如果是使用8751內部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。ALE/PROG:表示地址鎖存器啟用信號。AT89S51可以利用這個引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進鎖存器中,因為ATAT89S51是以多工的方式送出地址及數(shù)。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規(guī)劃的特殊功能來使用。PSEN:為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。PORT0(P0.0~P0.7):端口0是一個8位寬的開路電極(OpenDrain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內部有一提升電路,P0在當作I/O用時可以推動8個LS的TTL負載。如果當EA引腳為低電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設計者必須外加一個鎖存器將端口0送出的地址鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一組完整的16位地址總線,而定位地址到64K的外部存儲器空間。PORT2(P2.0~P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當作一般I/O端口使用外,若是在AT89S51擴充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當作I/O來使用了。PORT1(P1.0~P1.7):端口1也是具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LSTTL負載,同樣地,若將端口1的輸出設為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當作定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)引腳。PORT3(P3.0~P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內容的讀取或寫入控制等功能。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數(shù)器0輸入。P3.5:T1,計時計數(shù)器1輸入。P3.6:WR,外部數(shù)據(jù)存儲器的寫入信號。P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。4.程序設計4.1程序主體設計流程圖整個軟件程序方面主要分三大部分:主程序部分、運行部分程序和中斷處理程序。流程圖如圖所示。開始開始設置中斷工作方式、觸發(fā)方式、初始化是否有中斷運行過程執(zhí)行中斷YN中斷結束,退出中斷,返回主程序運行過程運行過程SN:綠燈(24),EW:紅燈是否到6秒SN:黃燈亮,EW:紅燈Count<10?SN:黃燈滅,EW:紅燈是否到0秒NYYNNEW:綠燈(24s),SN:紅燈是否到6秒EW:黃燈每秒閃一次,SN:紅燈Count<10?EW:黃燈滅,EW:紅燈是否到0秒YYYNNNLED顯示緩沖區(qū)DISPY中斷程序流程4.2程序清單以下是用C語言編寫的交通燈控制程序://晶振11.0592M定時器0定時,方式1,25ms常數(shù)a600,10ms常數(shù)dc00,5ms常數(shù)ee00,//全紅0x55;全綠0xaa;全黃0x00;南北紅,東西綠0x66;南北綠,東西紅0x99;#include<reg51.h>sfrsmdis=0x80;sfrjtd=0xa0;sfrjtdh=0x90;sfrP4=0xC0;sfrP4SW=0xBB;sbitweishuang0=P4^4;sbitweishuang1=P4^5;sbitweishuang2=P4^6;sbitNLR=P3^6;sbitNLG=P3^7;unsignedcharcodemd[]={0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0x85,0xf7,0xd7,0xe7,0x76,0xf0,0x37,0xf2,0xe2,0x00};//0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,Funsignedchartime=0;unsignedcharsec=10;unsignedcharwaittime=10;unsignedcharp33;unsignedcharfangshi=0;bitflag=0;//運行方式控制,立即轉換標志//狀態(tài)數(shù)組中,第一個數(shù)字為P2口的數(shù)據(jù),北紅綠,西紅綠,南紅綠,東紅綠;//第二個數(shù)字為P1口的數(shù)據(jù),北(P1.0)西南東黃燈,南左黃燈,北左黃燈//南左紅(P1.6)綠(P1.6)//第二個數(shù)字為P3口的數(shù)據(jù),僅P3。6接北左紅,P3.7接北左綠unsignedcharS0[]={0x59,0x7f,0x80,35};//狀態(tài)S0unsignedcharS1[]={0xdd,0xca,0xc0,3};//狀態(tài)S1unsignedcharS2[]={0x95,0xbf,0x40,35};//狀態(tài)S2unsignedcharS3[]={0xf7,0xa4,0xc0,3};//狀態(tài)S3unsignedcharS4[]={0x66,0xbf,0x80,20};//狀態(tài)S4unsignedcharS5[]={0x7f,0xd1,0x80,3};//狀態(tài)S5unsignedcharS5[]={0x77,0xb5,0x80,3};//狀態(tài)S5unsignedcharS6[]={0x55,0xbf,0x80,10};//狀態(tài)S6;中斷狀態(tài)或緊急控制狀態(tài) unsignedcharshu0,shu1,shu2,tc=0;voiddissmg() { if(tc==0){smdis=md[shu0];weishuang0=0;weishuang1=1;weishuang2=1;}elseif(tc==1){smdis=md[shu1];weishuang0=1;weishuang1=0;weishuang2=1;}elseif(tc==2){smdis=md[shu2];weishuang0=1;weishuang1=1;weishuang2=0;} }****************************************************定時中斷程序****************************************************voidint_t0()interrupt1using1{TR0=0; time++;tc++; if(tc>=3){tc=0;} if(time==100){waittime--;}elseif(time==200) { waittime--; sec--; time=0; shu0=sec%10; shu1=sec/10; }TH0=0xee;TL0=0x00;if(tc==0){smdis=md[shu0];weishuang0=0;weishuang1=1;weishuang2=1;}elseif(tc==1){smdis=md[shu1];weishuang0=1;weishuang1=0;weishuang2=1;}elseif(tc==2){smdis=md[shu2];weishuang0=1;weishuang1=1;weishuang2=0;} //if(tc>=3){tc=0;} TR0=1;}****************************************************顯示控制函數(shù)*****************************************************voidstatusdis(unsignedchar*status){ sec=1+status[3];waittime=2*sec; //time=100; while(waittime) { if(flag) { flag=0; time=0; sec=1+status[3];waittime=2*sec; }jtd=status[0];//東西南北燈狀態(tài)jtdh=status[1];//東西南北燈狀態(tài)//jtdl=jtdl&0x0f;//jtdl=jtdl|status[1];//南左轉,北左轉燈狀態(tài) p33=status[2]; if(p33&0x40) { NLR=1;//北向左轉紅燈 } else { NLR=0; }if(p33&0x80) { NLG=1;//北向左轉綠燈 } else { NLG=0; } dissmg();//如果用此句,可以增強顯示 }}****************************************************中斷程序****************************************************voidint_int0()interrupt0using2{unsignedcharwaittime1,sec1,time1,jtd1,jtdh1,p331;//進中斷時保存現(xiàn)場用的 EX0=0; waittime1=waittime;sec1=sec;time1=time;jtd1=jtd;jtdh1=jtdh;p331=p33 statusdis(S6); waittime=waittime1;sec=sec1;time=time1;jtd=jtd1;jtdh=jtdh1;p33=p331; EX0=1; }voidint_int1()interrupt2using3{unsignedlongk; EX1=0;for(k=65000;k>0;k--)dissmg();//用此句延時去抖,可以增強顯示 fangshi++; flag=1; if(fangshi>=4)fangshi=0; switch(fangshi) { case0://默認的運行方式 S2[3]=S0[3]=35; S4[3]=20; shu2=16;//不顯示 break;case1: S2[3]=S0[3]=50; S4[3]=20; shu2=10;//顯示A break;case2: S2[3]=S0[3]=60; S4[3]=30; shu2=11;//顯示b break;case3: S2[3]=S0[3]=35; S4[3]=35; shu2=12;//顯示C break;default: break; } for(k=80000;k>0;k--)dissmg();//用此句延時去抖,可以增強顯示 EX1=1; }********************************************主程序********************************************voidmain(){//unsignedinti;P4SW=0xff;//把P4口設置成I/O口TMOD=0x01;//定時器0方式1********************************************中斷入口程序********************************************TH0=0xee;TL0=0x00;EA=1;ET0=1; PT0=1; PX0=0;PX1=0; EX0=1; IT0=0;EX1=1; IT1=1;TR0=1;shu0=35%10; shu1=35/10; hu2=16;//不顯示;****************************************************顯示程序**************************************************** //statusdis(S5);while(1);while(1){ //S0 //東西紅燈,南綠北紅0x59 //南左轉綠燈,北左轉紅燈0x60 //等待35秒 35statusdis(S0);//S1//東西紅;南北黃燈0x11//東西紅燈3秒,南北左轉均為黃燈0x00//等待3秒3statusdis(S1);//S2//東西紅燈,南紅北綠0x95//南轉左紅燈,北轉左綠燈

溫馨提示

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

評論

0/150

提交評論