基于STC89C52單片機控制的智能交通燈設計_第1頁
基于STC89C52單片機控制的智能交通燈設計_第2頁
基于STC89C52單片機控制的智能交通燈設計_第3頁
基于STC89C52單片機控制的智能交通燈設計_第4頁
基于STC89C52單片機控制的智能交通燈設計_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州航空工業(yè)管理學院畢 業(yè) 論 文(設 計) 屆 電氣工程及其自動化 專業(yè) 班級題 目 基于單片機控制的智能交通燈 姓 名 學號 指導教師 職稱 二一 三 年 五 月 十五 日摘 要交通燈是現(xiàn)代交通非常重要的一個組成部分,一套好的交通燈系統(tǒng)往往對提升城市交通運輸效率,降低事故發(fā)生率有至關重要的影響。智能交通燈控制系統(tǒng)通常要實現(xiàn)車流量自動控制和在緊急情況下能夠手動切換信號燈讓特殊車輛優(yōu)先通行。該文主要論述了智能交通燈控制系統(tǒng)的軟件實現(xiàn),還對stc89c52單片機的結構特點和重要引腳功能進行了介紹,外接外圍電路構成基本電路,編寫c語言程序,用keil編譯調試,同時對智能交通燈控制系統(tǒng)的設計進行了分

2、析。最后利用proteus軟件對交通燈控制系統(tǒng)進行仿真,用來實現(xiàn)了交通微控制器的模擬。關鍵字:單片機;stc89c52;車流量;智能交通燈;keil;proteusabstracttraffic lights modern transport a very important part of a good set of traffic lights system often have a crucial impact in raising the efficiency of urban transport, reduce the accident rate. intelligent traff

3、ic light control system is usually to achieve automatic control and traffic flow in case of emergency lights can be manually switched to special vehicles priority access. this paper mainly discusses the intelligent traffic light control system software, but also on the structural characteristics and

4、 stc89c52 microcontroller pin functions are introduced important, external peripheral circuits basic circuit, the preparation of c language program, using keil compiler debugging, while the intelligent traffic light control system design were analyzed. finally, proteus software for traffic light con

5、trol system simulation is used to achieve a traffic microcontroller simulation.key word: scm; stc89c52; traffic; intelligent traffic lights; keil; proteus目 錄第1章 概述11.1 交通燈的歷史和現(xiàn)狀11.2 智能交通系統(tǒng)的發(fā)展前景和意義11.3 設計要求2第2章 硬件設計32.1 單片機相關介紹32.2 部分電路設計42.2.1 供電42.2.2 復位電路52.2.3 時鐘電路52.2.4 鎖存器62.2.5 數(shù)碼管7第3章 軟件設計103

6、.1 基本原理103.2 設計方案103.2.1 時間設定103.2.2 緊急狀態(tài)功能113.2.3 車流量監(jiān)控113.3 中斷程序設計123.4 交通燈基本功能的狀態(tài)轉換123.5 總程序流程圖143.5.1 單片機的i/o分布143.5.2 鎖存器74hc573的i/o分布153.6 編程軟件163.6.1 keil軟件的使用173.6.2 編譯18第4章 系統(tǒng)的仿真204.1 仿真軟件204.2 系統(tǒng)仿真204.3 結果分析22第5章 總結24致謝25參考文獻26附 錄27第1章 概述1.1 交通燈的歷史和現(xiàn)狀如今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。但這一

7、技術在19世紀就已出現(xiàn)了。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩色旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈

8、,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。信號燈的出現(xiàn),使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國道路交通和道路標志信號協(xié)定對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉彎和右轉彎,除非另一種標志禁止某一種轉向。左右轉彎車輛都必須讓合法地正在路口內行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁

9、行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。本設計的單片機控制交通燈就是基于信號燈。1.2 智能交通系統(tǒng)的發(fā)展前景和意義雖然我國發(fā)展起步較晚,引入智能交通概念和技術只有十幾年的歷史。但是,近年來我國智能交通技術的應用發(fā)展處于蓬勃上升趨勢。從“十五”開始由國家科技部牽頭,聯(lián)合交通運輸部、公安部、住建部等部門積極開展交通運輸體系研究,加大在國家科技攻關項目計劃中的實施和示范城市的建設。到“十二五”期間,我國智能交通系統(tǒng)的發(fā)展趨勢主要體現(xiàn)在通過智能化和信息化手段;推動綜合交通運輸、城市公共交

10、通的高效發(fā)展;實現(xiàn)交通節(jié)能減排、車輛安全出行等方面?!笆濉睍r期,智能交通將通過綜合運用信息采集、處理、傳輸、發(fā)布等多種技術,加強在路網(wǎng)運行監(jiān)測和應急處理系統(tǒng)、交通出行信息服務系統(tǒng)、交通誘導系統(tǒng)、智能停車系統(tǒng)、不停車收費系統(tǒng)等多方面的應用和發(fā)展。通過這些智能交通系統(tǒng)發(fā)布動態(tài)有效的信息服務,可高效引導車輛出行前、出行中的路徑選擇,提供從出行計劃到實現(xiàn)的一站式服務,從而提高車輛出行效率和交通基礎設施的承載能力,并通過加強對路網(wǎng)的運行監(jiān)測,提高突發(fā)事件處理效率,減少車輛無序和無效出行,降低車輛燃油消耗和尾氣排放,減少城市能耗和碳排放,逐步將傳統(tǒng)的交通出行模式向更加高效、經(jīng)濟、安全的綠色出行模式轉變

11、,從而緩解城市交通擁堵。目前我國公路、鐵路、水路、航空、管道等各種交通運輸方式已經(jīng)初步形成網(wǎng)絡,如何統(tǒng)籌各種運輸方式發(fā)展,積極推進綜合交通運輸體系建設,提升綜合交通運輸網(wǎng)絡的運營效率,將是“十二五”期間面臨的關鍵問題。智能化交通管理控制與服務,交通運行智能化監(jiān)測分析及車路協(xié)同關鍵技術等。通過這些智能交通技術的研究和應用,將加強對道路異常信息及突發(fā)事件的監(jiān)測預警,強化交通事故及事件的預防,提高交通事故處理效率,為車輛出行創(chuàng)造更加安全舒適的交通運行環(huán)境,進一步提高安全服務水平。1.3 設計要求由于現(xiàn)今階段交通問題已經(jīng)成為城市的重要問題,傳統(tǒng)的交通燈控制系統(tǒng)僵化簡單已不適用于今天城市的發(fā)展,所以一種

12、帶有車流量監(jiān)控和多種特殊中斷的智能交通燈系統(tǒng)的設計制作尤其重要。智能交通燈控制系統(tǒng)模型采用單片機作為主控制器,用于雙車道十字路口的車輛的交通管理,每個方向具有通行、等待、禁行三種通行指示燈計時牌顯示路口轉換剩余時間,在出現(xiàn)緊急情況時可由交警手動實現(xiàn)全路口車輛禁行的狀態(tài),并且可對通行時間做出調整,可隨時切換東西通行、南北通行兩種狀態(tài)。最為重要的是改變傳統(tǒng)的交通燈控制系統(tǒng)單調、簡單的缺點,實現(xiàn)信號指示燈通行和禁行顯示時間根據(jù)車流量的變化而變化,有效的解決傳統(tǒng)交通燈的車流不平衡的問題。第2章 硬件設計2.1 單片機相關介紹單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計

13、算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。通常,單片機由單塊集成電路芯片構成,內部包含有計算機的基本功能部件:中央處理器、存儲器和i/o接口電路等。因此,單片機只需要和適當?shù)能浖巴獠吭O備相結合,便可成為一個單片機控制系統(tǒng)。單片機經(jīng)過1、2、3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的cpu功能在增強,內部資源在增多,引腳的多功能化,以及低電壓低功耗。本次智能交通系統(tǒng)選用了市面上較為常見的stc89c52單片機,stc89c52 是一種低功耗、高性能cmos8位微控制器,具有 8k 在系統(tǒng)可編程flash 存儲器。使用高密度非易失性存儲器技術制造,與工業(yè)80c51 產(chǎn)

14、品指令和引腳完全兼容。使得stc89c52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。stc89c52的管腳圖如圖2-1所示:圖2-1 stc89c52管腳圖2.2 部分電路設計智能交通控制系統(tǒng)采用標準stc89c52單片機作為控制器;通行和禁行倒計時顯示采用兩位led數(shù)碼管,仿真時為了更形象地觀察通行和禁行時間采用了4個2位led數(shù)碼管,其中南北兩個并聯(lián),東西兩個并聯(lián);信號指示燈采用單色發(fā)光二極管;led數(shù)碼管顯示采用動態(tài)掃描,以節(jié)省端口數(shù);特殊中斷(緊急情況中斷、時間設定中斷)和南北通行狀態(tài)、東西通行狀態(tài)互換手動完成; 電源端口為usb,可連接至穩(wěn)定的電源,方便快捷,適用范圍廣。

15、按以上系統(tǒng)框架設計,單片機端口資源剛好滿足要求。該系統(tǒng)具有電路簡單,設計方便,顯示亮度高,可靠性高等特點。整個電路組成的大致框圖如圖2-2所示:圖2-2 采用數(shù)碼管的動態(tài)掃描交通燈控制系統(tǒng)2.2.1 供電為使模塊穩(wěn)定工作,須有可靠電源。本設計考慮了兩種電源方案:方案一:采用獨立的穩(wěn)壓電源。此方案的優(yōu)點是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點是各模塊都采用獨立電源,會使系統(tǒng)復雜,且可能影響電路電平。方案二:采用單片機控制模塊提供電源。本方案的優(yōu)點是系統(tǒng)簡明扼要,節(jié)約成本;缺點是輸出功率不高??紤]到實際情況和電路的簡潔,本設計采用了第二套方案,同時在考慮到突發(fā)斷電的情況,還增加了一個后備電源,在

16、打開后備電源的時候,如果主電源斷電,后備電源瞬間接通繼續(xù)供電,這里會利用到二極管的單向導電性。2.2.2 復位電路如圖2-3所示:圖2-3 復位電路圖單片機復位后各寄存器的狀態(tài):a00h,表明累加器已被清零; psw00h,表明選寄存器0組為工作寄存器組;sp07h,表明堆棧指針指向片內ram 07h字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第一個被壓入的內容寫入到08h單元中;p0-p3ffh,表明已向各端口線寫入1,此時,各端口既可用于輸入又可用于輸出;ip00000b,表明各個中斷源處于低優(yōu)先級;ie000000b,表明各個中斷均被關斷。2.2.3 時鐘電路時鐘電路如圖2-4所示:時鐘電路中

17、最為重要的就是晶振,晶振的作用是為系統(tǒng)提供基本的時鐘信號。晶振用一種能把電能和機械能相互轉化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。在通常工作條件下,普通的晶振頻率絕對精度可達百萬分之五十,高級的精度更高。圖2-4 時鐘電路圖通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。晶振結合單片機內部的電路,產(chǎn)生單片機所必須的時鐘頻率,單片機的一切指令的執(zhí)行都是建立在這個基礎上的,晶振提供的時鐘頻率越高,那單片機的運行速度也就越快。2.2.4 鎖存器鎖存器選用兩個74hc573,兩鎖存器連接如圖2-5:圖2-5 兩個鎖存器連接圖通常在鎖存器的前面要添加一個上拉電阻rp1,作用就是將不確定的信

18、號通過一個電阻嵌位在高電平,電阻同時起限流作用,使得鎖存器不至于由于電流過大而燒壞。上拉電阻的2-9號管腳分別接到c52單片機的p0.0-p0.7端口分別定義為d0,d1,d2,d3,d4,d5,d6,d7標號,如圖2-6所示: 圖2-6 單片機與上拉電阻的連接然后分別連接到兩個鎖存器的d0-d7端口。然而u2鎖存器的右端口q0-q7分別接數(shù)碼管的a-g和dp引腳來實現(xiàn)數(shù)碼管的段選任務,當然u2的左下角引腳接地,le引腳接dula端口,而dula端口上接單片機c52的p2.6引腳,目的是來實現(xiàn)數(shù)碼管的段選接通任務,當p2.6端口得到高電平時,此時數(shù)碼管段選得電,可以使得數(shù)碼管顯示出我們想要顯示

19、的數(shù)字。u3鎖存器的右端口q0,q1分別接we1與we2端口,q4,q5分別接we3,we4端口,而we1,we2端口上接南北路方向數(shù)碼管的1和2引腳,we3,we4端口上接東北路方向數(shù)碼管的1和2引腳,來實現(xiàn)兩個方向顯示不同數(shù)字。u3鎖存器的左下角引腳依然接地,le引腳接wela端口,而wela端口上接單片機c52的p2.7引腳。目的是實現(xiàn)數(shù)碼管的位選通任務。2.2.5 數(shù)碼管不管將幾個數(shù)碼管連在一起,數(shù)碼管的顯示原理都是一樣的,都是靠點亮內部的發(fā)光二極管來發(fā)光的,從圖2-7(a)中可看出,一個數(shù)碼管的引腳是10個,顯示一個8字需要7小段,另外還有一個小數(shù)點,所以其內部一共有8個小的發(fā)光二極

20、管,最后還有一個公共端,生產(chǎn)商為了封裝統(tǒng)一,單位數(shù)碼管都封裝10個引腳,其中第3和第8引腳是連接在一起的。而它們的公共端又可分為共陽極和共陰極,圖2-7(b)為共陽極內部原理圖,本次設計就是應用的共陽極顯示數(shù)碼管。 (a) 引腳 (b) 共陽極圖2-7 數(shù)碼管的內部原理圖共陽極數(shù)碼管其內部8個發(fā)光二極管的所有陽極全部連接在一起,電路鏈接時,公共端接高電平,因此我們要點亮那個發(fā)光二極管就需要給陰極送上低電平,此時顯示數(shù)字的編碼與共陰極編碼是相反的關系,數(shù)碼管內部發(fā)光二極管點亮時,也需要5ma以上的電流,而且電流不宜過大,否則會燒毀發(fā)光二極管。由于單片機的i/o口送不出如此大的電流,所以數(shù)碼管與單

21、片機連接時需要加驅動電路,可以用上拉電阻的方法或使用專門的數(shù)碼管驅動芯片,然而這里使用的上拉電阻與75hc573鎖存器的聯(lián)合運用,其輸出電流較大,電路接口簡單,可以借鑒使用。本設計中的數(shù)碼管是四個兩位的數(shù)碼管,其本質與一位的一樣,十字路口南北方向的倒計時數(shù)碼管如圖2-8所示:圖2-8 數(shù)碼管的連接數(shù)碼管的a-g和dp引腳分別接到鎖存器u2的q0-q7端口,來實現(xiàn)數(shù)碼管的段選顯示,當單片機的p2.7端口得到高電平時,鎖存器u3選通,即位選選通。而鎖存器u2,u3都上接單片機的p0端口,當p0=0x01時,數(shù)碼管的十位點亮,然后讓p2.6端口得電,鎖存器u2選通,由于本次設計是連接的共陽極的數(shù)碼管

22、,所以再令p0=0xc0時,段選成功,數(shù)碼管十位顯示出“0”。東西方向的數(shù)碼管顯示類似。共陽極數(shù)碼管顯示p0口賦值如表2-1:表2-1共陽極數(shù)碼管顯示p0口賦值數(shù)字0123456789p0值0xc00xf90xa40xb00x990x920x820xf80x800x90第3章 軟件設計3.1 基本原理由于本設計采用單片機stc89c52設計交通燈控制系統(tǒng),用單片機直接控制信號燈的狀態(tài)變化,基本上可以指揮交通的具體通行,當然,接入led數(shù)碼管就可以顯示倒計時以提醒行使者,更具人性化。據(jù)此,智能交通系統(tǒng)以單片機為控制核心,連接成最小系統(tǒng),由按鍵設置模塊產(chǎn)生輸入,信號燈狀態(tài)模塊,led倒計時模塊模塊

23、接受輸出。系統(tǒng)的總體框圖如圖3-1所示:圖3-1系統(tǒng)的總體框圖單片機上電后,系統(tǒng)進入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時將時間數(shù)據(jù)倒計時輸入到led數(shù)碼管上實時顯示。在此過程中隨時調用急停按鍵和時間調節(jié)中斷。3.2 設計方案智能交通系統(tǒng)設計了時間設定、緊急狀態(tài)、南北通行與東西通行選擇三種特殊功能和流量監(jiān)控等重要創(chuàng)意功能。3.2.1 時間設定時間設定功能是為自由設定通行時間設計的,使用外部中斷0實現(xiàn),當int0(p3.2)端口輸入低電平時中斷程序執(zhí)行,進入中斷后,先關閉全局中斷,此時可根據(jù)p3.6和p3.7調整綠燈通行時間,其中p3.6可以增加東西綠燈發(fā)亮時間,p3.7 可以增加南北綠燈發(fā)

24、亮時間。當時間調節(jié)完畢時可按返回鍵(p3.0)開啟全局中斷并跳出時間設定。3.2.2 緊急狀態(tài)功能緊急狀態(tài)功能是為交通路口出現(xiàn)緊急狀況時能及時停止交通運行,讓特殊車輛通過設計的,由外部中斷1控制來實現(xiàn),當int1(p3.3)端口輸入低電平時中斷程序執(zhí)行,進入中斷后,各路禁止通行,通行時間顯示為0并關閉全局中斷,計數(shù)器停止計數(shù),按下返回鍵時,開啟全局中斷并返回到斷點。 3.2.3 車流量監(jiān)控高速公路車流量監(jiān)測系統(tǒng)實現(xiàn)了智能化的高速公路車流量實時監(jiān)測和管理,在改善交通環(huán)境,保證高速公路交通安全和道路暢通、提升服務質量和運營水平等方面將起到重要的作用。流量監(jiān)控體現(xiàn)了交通控制的智能性,使得交通燈的通行

25、時間能根據(jù)車流的大小進行自動變換,其中流量監(jiān)測的方案有三:方案一:空氣管道檢測技術空氣管道檢測是接觸式的檢測方法,在高速公路主線的檢測點拉一條空心的塑料管道并作固定,一端封閉,另一端連接計數(shù)器,當車輛經(jīng)過塑料管道時,車輪壓到空氣管道,管內空氣被擠壓而觸動計數(shù)器進行計算車流量的方法。顯然,該方法只能獲取單一的車輛信息,且方法繁瑣,壽命短,已經(jīng)被磁感應檢測等技術所取代。方案二:超聲波檢測技術 超聲波檢測器是基于聲波的傳播和反射原理,通過對發(fā)射波和反射波的時差測量實現(xiàn)位移測量的設備。由超聲波發(fā)生器發(fā)射一束超聲波,再接收從車輛或地面的反射波,根據(jù)反射波返回時間的差別,來判斷有無車輛通過。方案三:紅外檢

26、測技術紅外檢測器是頂置式或路側式的交通流檢測器,一般采用反射式檢測技術。反射式檢測探頭由一個紅外發(fā)光管和一個紅外接收管組成。由調制脈沖發(fā)生器產(chǎn)生調制脈沖,經(jīng)紅外探頭向道路上輻射,當有車輛通過時,紅外脈沖從車體反射回來,被接收管接收后經(jīng)過解調、放大、整流濾波后輸出一個檢測信號送入單片機。顯然,方案一有方法繁瑣、壽命短的缺點;方案二由于信號衰減,以及馬路噪聲源較多的緣故穩(wěn)定性和抗干擾性不好;方案三最好,因為方案三不必安裝多余的車輛檢測硬件,從而減少開支,經(jīng)濟實用,而且當前技術已經(jīng)非常成熟,因此本設計采用方案三。通過監(jiān)控系統(tǒng)的實施,可完成準確及時采集高速公路車流的各種數(shù)據(jù)和信息;對高速公路車流實現(xiàn)全

27、程、實時、不間斷的監(jiān)控;建立多種信息發(fā)布渠道,為駕駛員提供信息服務,以便調整行駛路線,進而達到交通流動態(tài)平衡;根據(jù)已掌握的車流量信息,迅速做出有針對性的處理和優(yōu)化控制方案;對交通事故、突發(fā)狀況等能做出快速反應,迅速排除事故根源,采取相應的應急措施,提供救援服務;建立高速公路車流量數(shù)據(jù)庫,用以支持道路運行狀況評價,為改善道路經(jīng)營和交通管理的決策提供數(shù)據(jù)支持。 3.3 中斷程序設計中斷是分優(yōu)先級的,本程序的緊急中斷和時間設定中斷優(yōu)先級是最高的,當響應這兩個中斷程序的時候cpu關閉全局中斷ea=0,當中斷程序執(zhí)行完畢時開啟全局中斷令ea=1;而定時器中斷優(yōu)先級列在緊急中斷和時間設定中斷之后,所以在緊

28、急中斷和時間設定中斷程序執(zhí)行時數(shù)碼管是不計時的,中斷執(zhí)行過程如圖3-2所示; 鍵盤掃描是實時刷新的,而且每個按鍵都寫有去抖動程序以免產(chǎn)生不必要的仿真和實物演示結果紊亂。圖3-2 中斷執(zhí)行過程3.4 交通燈基本功能的狀態(tài)轉換由于交通燈包含直行、左拐和黃燈閃爍,所以基本狀態(tài)可以分為六種s1-s6,狀態(tài)之間的轉換及條件如圖3-3所示: 圖3-3 各狀態(tài)基本功能其中車流量大小的判斷方法為:本次設計設定30秒內南往北通過車輛達不到15輛時,判斷該方向為少車,設定通行為30秒,當30秒時間內南往北或者北往南任意一個方向通過的車輛達到15輛及以上時證明該狀態(tài)車輛較多,下一次該方向綠燈方形時間延長10秒,改為

29、40秒,當40秒內通過車輛達到25輛時判斷為擁擠,下一次綠燈放行時間仍為40秒,當40秒內通過車輛達不到25輛時判斷為少車,下次綠燈放行時間改為30秒,依次類推。這樣檢測,某次可能不準確,但下次肯定能補回來,累積計算是很準確的。由于南往北、北往南顯示時間相同,所以只要一個方向多車,下次時間就要加長。東往西、西往東也一樣,如圖3-4所示:圖3-4 車流量大小判斷規(guī)則3.5 總程序流程圖 智能交通燈控制系統(tǒng)要求車流量檢測及倒計時的顯示,程序包含了外部中斷、定時器中斷、按鍵掃描、車流量按鍵模擬等部分,在程序編寫中南北車流量檢測計數(shù)使用的是計數(shù)器t1按鍵模擬,而東西車流量使用的是普通按鍵模擬。其中車流

30、量大小判斷條件已經(jīng)給出,流程圖如圖3-5所示:圖3-5 總程序流程圖3.5.1 單片機的i/o分布智能交通燈中stc89c52單片機的i/o分配表如下所示:表3-1 c52單片機控制系統(tǒng)的i/o分配表p0.0d0p1.5green_bp0.1d1p2.0k8p0.2d2p2.6dulap0.3d3p2.7welap0.4d4p3.0k7p0.5d5p3.1k6p0.6d6p3.2k5p0.7d7p3.3k4p1.0red_ap3.4k3p1.1yellow_ap3.5k2p1.2green_ap3.6k1p1.3red_bp3.7k0p1.4yellow_b如表4-1所示對于c52單片機的端口

31、p0.0- p0.7接9引腳上拉電阻rp1的下端8個引腳,最上端的引腳接高電平。p1.0- p0.5分別接,red_a(南北向紅燈),yellow_a(南北向黃燈),green_a(南北向綠燈),red_b(東西向紅燈),yellow_b(東西向黃燈),green_b(東西向綠燈),分別控制其路燈的亮滅。p2.0接k8, p2.6接dula控制鎖存器的段選,p2.7接wela控制鎖存器的位選,p3.0- p0.7分別接k7,k6,k5,k4,k3,k2,k1,k0來用于實現(xiàn)按鍵控制。3.5.2 鎖存器74hc573的i/o分布智能交通系統(tǒng)中74hc573鎖存器u2,u3的接口分配表如下所示:表

32、3-2 74hc573鎖存器u2,u3的接口分配表d0(u2,u3)d0q3(u2)dd1(u2,u3)d1q4(u2)ed2(u2,u3)d2q5(u2)fd3(u2,u3)d3q6(u2)gd4(u2,u3)d4q7(u2)hd5(u2,u3)d5q0(u3)we1d6(u2,u3)d6q1(u3)we2d7(u2,u3)d7q4(u3)we3q0(u2)aq5(u3)we4q1(u2)ble(u2)dulaq2(u2)cle(u3)wela如表4-2所示對于74hc573鎖存器u2,u3的d0-d7分別接到c52單片機的p0.0-p0.7引腳。u2的le引腳接到c52單片機的p2.6端口

33、,也就是dula端口,來實現(xiàn)鎖存器的段選功能,而u3的le引腳接到c52單片機的p2.7端口,也就是wela端口來實現(xiàn)鎖存器的位選功能。u2的q0-q7分別接到數(shù)碼管的a,b,c,d,e,f,g,h引腳,來實現(xiàn)數(shù)碼管的數(shù)字顯示,最后u3中的q0,q1分別接we1,we2。q4,q5分別接we3,we4來選擇某一位的數(shù)碼管顯示。3.6 編程軟件硬件平臺結構一旦確定,大的功能框架基本形成。軟件在硬件平臺上構筑,完成各部分硬件的控制和協(xié)調。系統(tǒng)功能是由軟硬件共同實現(xiàn)的,因為軟件的可伸縮性,最終實現(xiàn)的系統(tǒng)功能可強可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設計方法,不但易于編程和調試,

34、也可減小軟件故障率和提高軟件的可靠性。同時,對軟件進行全面測試也是檢驗錯誤排除故障的重要手段。運用keil軟件來進行編程,但由于匯編比較繁瑣,在這次設計中我采用了常用的c語言編程來實現(xiàn),更易于編寫與調試。3.6.1 keil軟件的使用首先是啟動keil4,建立一個工程,設置工程存儲路徑,并為自己建立的工程起一個名字“智能交通燈”如圖3-6所示:圖3-6 工程起名其次是選擇選用單片機的型號:stc89c52 ,這一步是建立工程中的c文件,稍后要在這里面編寫程序。點擊新建保存按鈕,并給文件起名為智能交通燈.c:注意后綴名為.c,如圖3-7所示:圖3-7 建立c文件最后點擊target1文件樹,再點

35、擊source group1右鍵單擊鼠標,顯示如下,選中add file to source group 1,將保存的c文件添加到文件樹中:圖3-8 將c文件添加到工程中3.6.2 編譯用keil軟件環(huán)境編寫和修改程序,keil里面帶有單片機89c52運行很多的庫程序,方面快捷。當程序編寫完畢編譯無錯誤時,點擊左上角的按鈕,點擊output項,并且在“create hex file”前面打上對勾,通過編譯可以生成后綴名為.hex的文件,此文件用于仿真和實物程序下載所用,如圖3-9所示:圖3-9 keil軟件中生成hex文件方法點擊左上角的按鍵,進行編譯,查看所編的c語言程序是否存在語句方面錯誤

36、,如圖3-10所示:圖3-9 編譯顯示結果是否錯誤在此操作的同時就已經(jīng)在所保存的文件夾里生成了hex文件,該操作對后續(xù)的proteus軟件進行仿真有著直接的關系。第4章 系統(tǒng)的仿真了解虛擬物理原型的功能,在目標板沒有制作或投產(chǎn)前,就可以對硬件系統(tǒng)的功能、合理性和性能指標進行充分調整,并可以在沒有硬件的情況下,進行相應的程序設計和調試,也可由仿真電路圖直接導出繪制成印制電路板(pcb)。4.1 仿真軟件本次設計使用的是proteus軟件,proteus是世界上著名的eda工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到pcb設計,真正實現(xiàn)了從概念到產(chǎn)品的完整設計。是

37、目前世界上唯一將電路仿真軟件、pcb設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年又增加了cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar、keil和mplab等多種編譯器。proteus軟件具有其它eda工具軟件的功能。這些功能是:1原理布圖2pcb自動或人工布線3spice電路仿真。革命性的特點:1互動的電路仿真用戶甚至可以實時采用諸如ram,rom,鍵盤,馬達,led,lcd,ad/da,部分spi器件,部

38、分iic器件。2仿真處理器及其外圍電路可以仿真51系列、avr、pic、arm、等常用主流單片機。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,proteus建立了完備的電子設計開發(fā)環(huán)境。4.2 系統(tǒng)仿真按照硬件要求將仿真軟件的界面中的各個器件進行連接,如圖4-1所示:圖4-1 proteus仿真界面將各個部件連接好之后,雙擊單片機c52在program file中選擇keil生成的hex文件,將其導入單片機即可仿真,如圖4-2所示:圖4-2 仿真時選中keil生成的hex文件最后點擊proteus左下角的運行按鍵

39、即可進入仿真界面,如圖4-3所示:圖4-3 點擊play運行仿真4.3 結果分析1、初始狀態(tài)南設定北通行30s,初始狀態(tài)南北設定通行30s,因為 東西禁行時間=南北通行時間+黃燈閃爍時間5s+南北左行時間10s,所以東西禁行時間為45s,在沒有其他操作的情況下仿真效果圖就如圖4-4所示:圖4-4 初始狀態(tài)/車流量較小顯示仿真效果圖由于本次設計使用的是兩個鎖存器來實現(xiàn)數(shù)碼管的動態(tài)掃描顯示,來顯示兩位數(shù)字的,而在仿真軟件中卻不能實時的體現(xiàn)出來,因此不能完全的顯示出兩位數(shù)字,若是做成實物再使得掃描的時間間隔短些,根據(jù)人類的視覺暫留即可看到兩位數(shù)的遞減顯示。2、 在沒有任何操作的情況下,南北綠燈通行時

40、間顯示完畢后南北黃燈閃爍五秒,東西禁行時間=南北左行時間10s+黃燈閃爍時間5s,所以東西禁行的時間為15s,仿真效果圖就如圖4-5所示:圖4-5 黃燈閃爍效果圖這次仿真實現(xiàn)了課題任務的要求,通過這次仿真發(fā)現(xiàn)和解決了很多問題,例如,在調試過程中還是遇到了硬件電路圖布局不合理,按鍵抖動的現(xiàn)象,不過通過調整布局電路圖趨于規(guī)范合理,通過增加去抖動函數(shù)顯示也穩(wěn)定了很多。第5章 總結本次設計以stc89c52單片機為核心,程序是有c語言實現(xiàn),用keil軟件進行編譯,可大大加快調試進度。設計的交通燈可用于十字路口的車流量控制車輛的交通管理,顯示采用兩位的數(shù)碼管,可以直觀的顯示紅綠燈的開放和關閉的時間,當遇

41、到緊急狀況時可以啟動緊急模式;交通燈的通行時間可根據(jù)大中小城市進行更改。南北通行時間相同,東西通行時間相同,不能單獨控制。當然設計中還是存在了一些問題未能解決掉,比如南北通行狀態(tài)、東西通行狀態(tài)互換是由手動完成的,并沒有完全的實現(xiàn)全自動的控制;數(shù)碼管的顯示在仿真軟件界面的顯示未能直觀的看到具體的兩位數(shù)字,數(shù)字是跳動的,沒能夠截出一個完整的數(shù)字,而在實際的十字路口數(shù)碼管的動態(tài)掃描還是可以運用的。通過這次畢業(yè)設計,我不僅將理論很好地應用到實際當中去,而且我還學會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。本次畢設使我在單片機的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及在常用編程設計思路技巧

42、(特別是c語言)的掌握方面都能向前邁了一大步,為日后成為合格的應用型人才打下良好的基礎。創(chuàng)新可以是在原有的基礎上進行改進,使之功能不斷完善,成為真己的東西。在整個畢業(yè)設計過程中,我花費了大量的時間和精力,更重要的是,我在學會創(chuàng)新的基礎上,同時還懂得合作精神的重要性,學會了與他人合作。我在老師的精心指導和嚴格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,單片機領域這對我今后進一步學習計算機方面的知識有極大的幫助。在此,忠心感謝老師以及許多同學的指導和支持。我會繼續(xù)努力的學習,大膽創(chuàng)新,使自己得到更大的提升。致謝本科兩年的學習生活即將結束,回顧這兩年來的學習生活,感受頗深,最重要的是收獲豐厚

43、。在論文的寫作過程中,有很多困難,無論是在開始的理論學習階段,還是在論文的選題、資料查詢、開題、研究和撰寫的每一個環(huán)節(jié),都沒有離開過老師的指導和同學的幫助。借此機會我向導師和授課老師表示衷心的感謝!同時,我要感謝各位幫助我的同學,感謝他們給予我的幫助,他們?yōu)槲易珜懻撐奶峁┝瞬簧俳ㄗh和幫助。再次感謝我的指導老師,謝謝您的教誨。經(jīng)歷了五年的大學生活,也感謝我的家人和那些永遠也不能忘記的朋友,他們的支持與情感,是我永遠的財富。參考文獻1 郭天祥.新概念51單片機c語言教程m.電子工業(yè)出版社,2009.2 彭偉. 單片機c語言程序設計實訓120例m. 電子工業(yè)出版社,2010.63 趙佩華.單片機接口

44、技術及應用m.北京:機械工業(yè)出版社 ,2003.4 繞慶和.mcs - 51 單片機實用技術m.北京:電子工業(yè)出版社 ,2003.5 李廣弟.單片機基礎m.北京:北京航空航天大學出版社,1992.6 何立民.單片機應用技術大全m.北京:北京航空航天大學出版社, 1994.7 張毅剛.單片機原理及接口技術m.哈爾濱:哈爾濱工業(yè)大學出版社,1990.8 譚浩強.單片機課程設計m. 北京:清華大學出版社,1989.附 錄附錄:源程序#include #define uchar unsigned char /*定義字符串類型為無符號型*/#define uint unsigned int /*定義整型

45、為無符號整型*/uchar code a10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*數(shù)碼管顯示單位*/uchar code b4=0xf4,0xf8,0xf1,0xf2; /*p2口,低有效,數(shù)碼管選通*/uchar code c6=0xf3,0xf5,0xb6,0xde,0xee,0x76; /*p1口,低有效*/char sn2=45,we2=30,sn=30,we=45,sn1=30,we1=45 ; /定義變量 char sn_g=30,we_g=30,y=5;char lsn=0,lwe=0,m=0,n=0; ucha

46、r i,k=0,count=0; void delay(uchar t);/*定義延時函數(shù)*/void light();/*定義交通燈閃爍函數(shù)*/void led(); /*定義數(shù)碼管顯示函數(shù)*/void count1();/計算下次南北車流量void count2();/計算下次東西車流量void flow1();/監(jiān)測南北車流量void flow2();/監(jiān)測東西車流量/定義按鍵sbit dula=p26;sbit wela=p27;sbit k0=p37;/*開關k0接p37管腳*/sbit k1=p36;/*開關k1接p36管腳*/sbit k2=p35;/*開關k2接p35管腳*/s

47、bit k3=p34;/*開關k3接p34管腳*/sbit k4=p33;/*開關k4接p33管腳*/sbit k5=p32;/*開關k5接p32管腳*/sbit k6=p31;/*開關k6接p31管腳*/sbit k7=p30;/*開關k7接p30管腳*/sbit k8=p20;/*開關k8接p20管腳*/*程序初始化*/void init(void) /*12mhz */ tmod=0x51; /*計數(shù)器t1用模式1,為16位計數(shù)器,定時器用模式1*/ th1=0; /計數(shù)清零 tl1=0; /計數(shù)清零 th0=(65536-50000)/256; /*0x3c*/ tl0=(65536-

48、50000)%256; /*0xb0,1機器周期1us,計50000個數(shù),用時50ms*/ it0=1;/*外部中斷0為邊沿觸發(fā)方式*/ et0=1;/*允許t0中斷*/ et1=1;/*允許t1中斷*/ tr0=1;/*啟動計數(shù)器*/ tr1=1;/*啟動計數(shù)器*/ ea=1;/*cpu開放總中斷*/ ex0=1;/*允許外部中斷0中斷,即允許響應端口p32中斷*/ ex1=1;/*允許外部中斷1中斷,即允許響應端口p33中斷*/監(jiān)測南北車流量void flow1()n=th1*256+tl1;lsn=n;/監(jiān)測東西車流量void flow2() if(k8=0) /*p20=0*/ del

49、ay(10);/*延時,把抖動的時間拋掉*/ if(k8=0) while(!k8)/*當松開k1開關時,跳出空循環(huán),執(zhí)行后面的程序*/ light(); led(); m+; lwe=m; /*計算下次交通燈亮的時間*/void count1()if(k=6)if(sn1=sn_g)if(lsn15)sn1=sn_g;we1=sn_g+15;else sn1=sn_g+10,we1=sn_g+25;elseif(sn1=sn_g+10)if(lsn25)sn1=sn_g,we1=sn_g+15;else sn1=sn_g+10,we1=sn_g+20;void count2()/計算東西方向

50、if(k=3)if(we2=we_g)if(lwe15)we2=we_g;sn2=we_g+15;else we2=we_g+10,sn2=we_g+25;elseif(we2=we_g+10)if(lwe25)we2=we_g,sn2=we_g+15;else sn2=we_g+25,we2=we_g+10;/*中斷0時間設定處理程序*/void int0(void) interrupt 0 ea=0;/*cpu禁止響應一切中斷*/ p1=0xf6,p0=a0;/東西南北方向均紅燈亮,p0口輸出0 for(;)/*無條件循環(huán)*/dula=1;p0=a(sn_g)/10;dula=0;wela

51、=1;p0=0x01; /南北方向數(shù)碼管顯示可通行時間的十位wela=0;delay(1000); /*延時*/dula=1;p0=a(sn_g)%10;dula=0;wela=1;p0=0x02; /*南北方向數(shù)碼管顯示可通行時間的個位*/ wela=0;delay(1000); /*延時*/dula=1;p0=a(we_g)/10;dula=0;wela=1;p0=0x10; /東西方向數(shù)碼管顯示可通行時間的十位wela=0;delay(1000); /*延時*/dula=1;p0=a(we_g)%10;dula=0;wela=1;p0=0x20; /東西方向數(shù)碼管顯示可通行時間的個位wela=0;delay(1000); /*延時*/

溫馨提示

  • 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

提交評論