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

下載本文檔

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

文檔簡介

PAGE66畢業(yè)論文基于STC89C51單片機的交通燈控制器設計姓名:所在系部:機電工程系班級名稱:12級電氣1班學號:指導老師:基于STC89C51單片機的交通燈控制器設計摘要隨著社會經濟的發(fā)展,交通在人們的日常生活中占有重要的地位,城市交通問題越來越引起人們的關注。人、車、路三者關系的協(xié)調,已成為交通管理部門需要解決的重要問題之一。所以,如何采用合適的控制方法,最大限度利用好耗費巨資修建的城市高速道路,緩解主干道與匝道、城區(qū)同周邊地區(qū)的交通擁堵狀況,越來越成為交通運輸管理和城市規(guī)劃部門亟待解決的主要問題。本設計根據(jù)十字路口南北和東西車流量的實時監(jiān)控,基于STC89C51單片機設計了一種交通燈控制器,利用發(fā)光二極管和數(shù)碼管實現(xiàn)了設置紅、綠燈亮滅時間的功能,紅、綠燈循環(huán)點亮,綠燈倒計時結束為5秒的黃燈閃爍警示,利用按鍵使得系統(tǒng)具有倒計時,時間設置,緊急情況處理,根據(jù)具體情況手動控制的功能。軟件上采用KEILC編程,主要編寫了主程序,數(shù)碼管顯示程序,中斷程序,延時程序等。通過實驗證明了本系統(tǒng)能夠很好地實現(xiàn)本次設計要求的功能,還擁有增減、倒計時時間、南北通行、東西通行和緊急模式等5個功能,而且精確度夠高、操作簡單、穩(wěn)定性較強等優(yōu)點。關鍵詞:交通燈;單片機;模擬ThetrafficlightcontrollerdesignAbstractWiththedevelopmentofsocialeconomy,thetransportationisveryimportantinPeople'sDailylife,andtheurbantransportationproblemmoreandmorearousedpeople'sconcern.TherelationscoordinationofPeople,carsandtheroadhasbecomeoneoftheimportantissuesthatthetrafficmanagementdepartmentneedstosolve.So,ithasincreasinglybecomemajorproblemsofthetraffictransportationmanagementandtheurbanplanningdepartmentstosolvethathowtotakethesuitablecontrolmethodtomakethebestuseofurbanfreewaywhichhasconsumedmanpowerandmaterialresources,andtorelievetrafficcongestionofthemainroad-ramp,andthesurroundingareasofurban.Accordingtoreal-timemonitoringcrossroadsofnorth-southandeast-westtraffic,thissystemdesignofatrafficlightcontrollerbasedonSTC89C51microcontroller,usingdigitaltubeLEDandasetofredandgreenlightwillconsumetimefunction,trafficlightcyclelight,greenlightfor5secondsoftheendofthecountdownyellowlightsFlashingwarning,usingthebuttonmakesthesystemhasacountdown,timeSettings,emergencyprocessing,manualcontrolandvehicleviolationdetectionbasedonthespecificsituation,andotherfunctions.InthelightoftheKEILCsoftwareprogramming,mainlytowritethemainprogram,LEDdigitaltubedisplayprogram,interruptprogramdelayprocedures,etc.Provedbyexperimentsthatthesystemcanachievegoodfunctionsofthisdesign’srequirements,alsohasacountdowntimeincreaseordecrease,north-southtraffic,east-westtrafficandemergencymodeandotherfivefunctions,besideshasadvantagesofprecisionandhighstability,simpleoperation,strongenough.目錄1緒論 11.1交通燈控制器的研究背景 11.2交通燈控制器的研究意義 21.3交通燈控制器的發(fā)展前景 32總體設計方案 52.1設計思路 52.2系統(tǒng)總框圖 62.3系統(tǒng)工作原理 63硬件設計 83.1系統(tǒng)設計 \h83.2主控模塊設計 83.2.1STC89C51內部結構 93.2.2STC89C51單片機的I/O口功能 104軟件設計 224.1編程語言 224.2控制程序設計 234.3主程序模塊 244.4定時器T0 254.5按鍵子程序設計 284.6顯示程序模塊 0743\h315調試與檢測 345.1硬件調試 345.2軟件調試 355.3軟硬聯(lián)試 355.4性能測試結果 356結論 37參考文獻 750\h38謝辭 39附錄A:系統(tǒng)原理圖 40附錄B:系統(tǒng)實物圖 41附錄C:系統(tǒng)元件清單 42附錄D:系統(tǒng)源程序 431緒論1.1交通燈控制器的研究背景交通信號燈關系著人們的生命和財產安全,目前,紅綠燈安裝在各個路口上,已經成為疏導交通車輛最常見和最有效的手段。但這一技術在19世紀就已出現(xiàn)了。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的扳手式信號燈,用以指揮車馬通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩塊以旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。1914年,電氣啟動的紅綠燈出現(xiàn)在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠色亮表示“通行”。1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,當車輛接近時,紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下喇叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。信號燈的出現(xiàn),使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左右轉彎車輛都必須讓合法地正在路口內行駛的車輛和過人行道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。隨著經濟的發(fā)展,交通運輸中出現(xiàn)了一些傳統(tǒng)方法難以解決的問題。道路擁擠現(xiàn)象日趨嚴重,造成的經濟損失越來越大,并一直保持大比例的增長?,F(xiàn)在交通系統(tǒng)已不能滿足經濟發(fā)展的需求。由于生活水平的提高,人們對交通運輸?shù)陌踩约胺账教岢隽烁叩囊?。在交通管理中引入單片機交通燈控制代替交管人員在交叉路口服務,有助于提高交通運輸?shù)陌踩浴⑻岣呓煌ü芾淼姆召|量。并在一定程度上盡可能的降低由道路擁擠造成的經濟損失,同時也減小了工作人員的勞動強度。中國車輛數(shù)量不斷增加,交通控制在未來的交通管理中起著越來越重要的作用。智能交通燈的管理比重修一條馬路無論在經濟、交通運行速率上都有很好的效益、更加節(jié)約資源。使交管人員有更多的精力投入到管理整個城市交通控制,帶來更大的經濟和社會效益,為創(chuàng)造美好的城市交通形象發(fā)揮更多的作用。1.2交通燈控制器的研究意義交通是城市經濟活動的命脈,對城市經濟發(fā)展、人民生活水平的提高起著十分重要的作用。汽車現(xiàn)已成為人們日常生活中必不可少的交通工具。汽車在給人們帶來便利的同時,也帶來了一系列令人困惑的問題,如環(huán)境污染、交通擁擠、交通事故頻繁發(fā)生,給人們的生命和財產帶來了很大的損失。城市交通問題困擾城市發(fā)展、制約城市經濟建設的重要因素,人們對交通有效控制的意識越來越強烈。隨著我國國民經濟和城市化的迅速發(fā)展,城市交通堵塞問題越來越嚴重,而街道各十字路口,又是車輛通行的瓶頸所在。解決城市交叉口的交通擁擠問題越來越緊迫。對于拓寬道路,投資甚多,且征用土地在城市中難于實現(xiàn),因此改善道路交通設施,提高現(xiàn)有道路的利用率不失為解決道路擁塞比較好的方案。交通信號燈的出現(xiàn),使交通得以有效管制。對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。世界衛(wèi)生組織的報告指出,全世界每天有3000多人死于道路交通傷害。因道路交通傷害引起的85%的死亡以及90%的傷殘調整壽命年發(fā)生在中、低收入國家。研究表明,2000到2020年,道路交通事故死亡人數(shù)在高收入國家將下降30%左右,而在中、低收入國家則會大幅度增加,如果不采取適當措施,到2020年,道路交通傷害預計將成為全球疾病與傷害負擔的重要原因。交通安全問題不僅僅是交通領域的問題,它的嚴重程度已經成為社會問題。根據(jù)聯(lián)合國和世界衛(wèi)生組織的有關報告,人們每天所而對的各種問題中,道路交通傷害是最復雜也是最危險的。據(jù)估計,全世界每年約有120萬人死于道路交通事故,受傷者多達5000萬人。如果不采取強有力的預防措施,今后20年中道路交通事故致死和受傷人數(shù)將增加65%左右。交通安全已經成為一個波及社會各個部門的全球性問題。交通問題是世界各國面臨的共同問題。交通擁擠造成了巨大的時間浪費,加大了環(huán)境污染。我國大多數(shù)城市的平均行車速度已降至20km/h以下,有些路段甚至只有7-8km/h;由于車輛速度過慢,尾氣排放增加,使得城市的空氣質量進一步惡化。交通問題造成了巨大的經濟損失,據(jù)研究報道,美國每年因交通阻塞造成的經濟損失約410億美元,日木東京每年因交通擁擠造成的時間損失相當于1000多億美元。為了緩解經濟發(fā)展帶來的交通運輸方面的壓力,盡量的利用現(xiàn)有的資源,使其發(fā)揮最大的作用,各國都加大了對智能交通系統(tǒng)的研究和建設的力度。交通控制和管理性能方面通常是評估一些重要的屬性,例如:成本、時間、可靠性和安全性。一個有效的和高效的流量控制和管理系統(tǒng)有利于社會的大量減少燃料消耗,保護環(huán)境,促進發(fā)展,減少交通擁堵,提高安全性。交通控制燈是我們日常生活中重要的交通控制設施,安裝在各個交叉路口,在疏導車輛通行中有著很重要的意義。1.3交通燈控制器的發(fā)展前景我國對城市交通燈控制系統(tǒng)的分析與研究工作起步較晚,20世紀80年代,我國一方面把城市交通燈技術的提高放在了交通改變的核心地位;另一方面制定了開發(fā)與引進相結合的方針政策,逐漸建立了一些簡單的城市交通燈控制系統(tǒng)。在北京和上海等大城市,采用簡易單點的信號燈,并與國外的幾個交通燈控制系統(tǒng)相結合使用,但對于西安、成都等中小城市,主要采用的仍然是簡易單點信號燈以及與集中協(xié)調式的信號燈。而以上系統(tǒng)的紅綠燈的時間,都是事先預設好的,在運行期間固定不變。這些交通信號燈控制系統(tǒng)暫時雖然獲得較好的效果,對其交通起到了一定的作用。隨著我國機動車的增多,這些簡單的控制系統(tǒng)已經遠遠不能夠滿足當前我國交通的需求。為了解決上述問題,我國的交通燈控制系統(tǒng)需要進行的改進主要包括:完善交通燈控制系統(tǒng)的實時性;降低成本、使其安裝及維修方便;合理解決混合交通流問題:實現(xiàn)區(qū)域網絡協(xié)調控制:對于小型的路口,應研制并設計能夠對交通流量進行監(jiān)控的交通信號燈系統(tǒng)。所以,現(xiàn)今的交通控制系統(tǒng)不斷趨向智能化。智能交通系統(tǒng)是指人們將先進的信息技術、數(shù)據(jù)通訊傳輸技術、電子控制技術、傳感器技術以及計算機處理技術等有效地綜合運用于整個運輸體系中,從而建立起的一種在大范圍內、全方位發(fā)揮作用的實時、準確、高效的運輸綜合管理系統(tǒng)。實施智能交通系統(tǒng)工程不僅能夠提高交通的效益與效率,增強交通安全性,降低環(huán)境污染,而且有利于合理利用土地與能源,甚至對于國民經濟的持續(xù)發(fā)展與社會經濟效益的全而提高都是至關重要的。2總體設計方案2.1設計思路交通燈是城市交通的重要指揮系統(tǒng),與人們的日常生活密切相關。隨著經濟的快速發(fā)展,城市中的車輛逐漸增多,交通擁擠和堵塞現(xiàn)象日趨嚴重,引起交通事故頻發(fā)、環(huán)境污染加劇等一系列問題。交通燈控制系統(tǒng)為解決這些問題起到重要的作用。本設計是采用MSC-51系列單片機STC89C52為中心器件來設計交通燈控制器,發(fā)光二極管和數(shù)碼管實現(xiàn)了設置紅、綠燈燃亮時間和顯示的功能,控制十字路口紅綠燈以及人行道紅綠燈交替亮和熄滅。通過按鍵進行對交通控制系統(tǒng)的控制,實現(xiàn)增減數(shù)碼管倒計時時間、南北通行、東西通行和全路禁行等功能。近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據(jù)具體硬件結構軟硬件結合,加以完善。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊??康木褪墙煌ㄐ盘枱舻淖詣又笓]系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用STC89C51單片機以及單片機最小系統(tǒng)和三極管驅動電路以及外圍的按鍵和數(shù)碼管顯示等部件,設計一個基于單片機的交通燈設計。設計通過兩位一體共陰極數(shù)碼管顯示,并能通過按鍵對定時進行設置。本系統(tǒng)實用性強、操作簡單、擴展功能強。設計通過STC89C51單片機以及單片機最小系統(tǒng)和74HC245驅動數(shù)碼管(數(shù)碼管更亮,白天看的很清楚)以及外圍的按鍵和數(shù)碼管顯示等部件,數(shù)碼管倒計時顯示時間。使其能模仿城市十字路口交通燈的能力,并滿足對特殊情況的控制要求。每條道路上各配有一組紅、黃、綠交通信號燈,其中紅燈亮,表示該道路禁止通行;黃燈亮表示該道路上未過停車線的車輛禁止通行,已過停車線的車輛繼續(xù)通行;綠燈表示該道路允許通行。用數(shù)碼管顯示各燈燃亮倒計時時間。該電路自動控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉換,實現(xiàn)十字路口自動化。并設定黃燈常亮(深夜模式)、禁行、東西通行、南北通行、切換多種燃亮模式,最后實現(xiàn)燃亮時間可調的功能。用以滿足各時段各中路況的通行能力。2.2系統(tǒng)總框圖本設計以單片機為控制核心,采用模塊化設計。主要有以下幾個功能模塊:單片機控制系統(tǒng)模塊、驅動顯示模塊、LED倒計時模塊、信號燈狀態(tài)模塊、按鍵控制模塊、復位電路、振蕩電路和最小系統(tǒng)外圍接口組成。單片機單片機紅黃綠信號燈8段LED數(shù)碼管復位電路最小系統(tǒng)外圍接口按鍵控制驅動顯示圖2-1系統(tǒng)的總體框圖單片機設計交通燈控制系統(tǒng),可用單片機直接控制信號燈的狀態(tài)變化,基本上可以指揮交通的具體通行。接入LED數(shù)碼管可以顯示倒計時以提醒行駛者,更具人性化。按鍵設置模塊可對系統(tǒng)輸入模式進行選擇及設置具體通行時間。2.3系統(tǒng)工作原理(1)按鍵輸入設置交通燈初始模式,并設置燃亮時間。通過89C51的P3口輸入到系統(tǒng);(2)通過89C51單片機的P0口向驅動電路的數(shù)據(jù)口傳送信息,再由驅動電路驅動LED數(shù)碼管顯示倒計時的時間;(3)通過89C51單片機的P2口顯示紅、黃、綠三色燈的燃亮時間。3硬件設計3.1系統(tǒng)設計根據(jù)系統(tǒng)框圖,可知本系統(tǒng)主要有單片機控制系統(tǒng)模塊、驅動顯示模塊、LED倒計時模塊、信號燈狀態(tài)模塊、按鍵控制模塊、復位電路、振蕩電路等組成。單片機89C51單片機89C51信號燈發(fā)光二極管時間顯示LED數(shù)碼管復位電路按鍵74HC245圖3-1硬件結構圖按鍵主要是用來設置各信號燈燃亮的模式和時間,74HC245用來驅動8段LED數(shù)碼管顯示時間,用發(fā)光二極管模擬信號燈。單片機RST引腳上接復位電路,XTAL1和XTAL2接入晶振時鐘電路。3.2主控模塊設計主控模塊是對整個系統(tǒng)進行控制,是整個系統(tǒng)的“大腦”,在本次設計中,采用STC89C51作為主控芯片。與MCS-51單片機產品兼容,8K字節(jié)在系統(tǒng)可編程Flash存儲器,1000次擦寫周期,全靜態(tài)操作:0Hz~33Hz,三級加密程序存儲器,32個可編程I/O口線,三個16位定時器/計數(shù)器,八個中斷源,全雙工UART串行通道,低功耗空閑和掉電模式,掉電后中斷、可喚醒,雙數(shù)據(jù)指針,掉電標識符。其有以下主要優(yōu)點:高速,高可靠;低功耗,超低價;加密性強,無法解密;強抗靜電,強抗干擾。3.2.1STC89C51內部結構STC89C51是一種低功耗,高性能的CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用高密度非易失性存儲器技術制造,與工業(yè)80C51產品指令和引腳完全兼容,片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有8位CPU和在線系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。圖3-2內部結構圖STC89C51具有以下標準功能:8K字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,STC89C51可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式,空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作暫停,直到下一個中斷或硬件復位為止。3.2.2STC89C51單片機的I/O口功能圖3-389C51單片機引腳圖在STC89C51中,有四個雙向I/O端口P0~P3口,每個端口都是由鎖存器、輸出驅動器、輸入緩沖器組成。當CPU控制系統(tǒng)與外部設備交換信息時,都是通過端口鎖存器進行的。四個I/O端口都可作輸入輸出使用,其中P0和P2口通常用于對外部存儲器的訪問。P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平,對P0端口寫“1”時,引腳用作高阻抗輸入。而訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內部上拉電阻。而在Flash編程時,P0口也用來接收指令字節(jié),在程序校驗時,輸出指令字節(jié),程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動4個TTL邏輯電平,對P1端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用,作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下所示。在Flash編程和校驗時,P1口接收低8位地址字節(jié)。引腳號第二功能:P1.0:T29(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出;P1.1:T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制);P1.5:MOSI(在線系統(tǒng)編程用);P1.6:MISO(在線系統(tǒng)編程用);P1.7:SCK(在線系統(tǒng)編程用);P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口。P2輸出緩沖器能驅動4個TTL邏輯電平,對P2端口寫“1”時,內部上拉電阻把端口拉高,可以作為輸入口使用。而作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器時,P2口送出高八位地址,在這種應用中,P2口使用很強的內部上拉發(fā)送1。在使用8位地址訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內容。在Flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流。P3口亦作為STC89C51特殊功能(第二功能)使用,如下所示。在Flash編程和校驗時,P3口也接收一些控制信號。端口引腳第二功能:P3.0:RXD(串行輸入口);P3.1:TXD(串行輸出口);P3.2:INTO(外中斷0);P3.3:INT1(外中斷1);P3.4:TO(定時/計數(shù)器0);P3.5:T1(定時/計數(shù)器1);P3.6:WR(外部數(shù)據(jù)存儲器寫選通);P3.7:RD(外部數(shù)據(jù)存儲器讀選通);P3口還接收一些用于Flash閃存編程和程序校驗的控制信號。RST:復位輸入,當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平為單片機復位。ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當STC89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP:外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態(tài)。如EA端為高電平,接(VCC端),CPU則執(zhí)行內部程序存儲器的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源VPP,當然這必須是該器件是使用12V編程電壓VPP。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3.3復位電路的設計單片機芯片的第9腳RST是復位信號輸入端。單片機系統(tǒng)在開機時或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復位。復位的作用是使中央處理器CPU以及其他功能部件都恢復到一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。STC89C51單片機的復位靠外部電路實現(xiàn),信號從RST引腳輸入,高電平有效,只要保持RST引腳高電平2個機器周期,單片機就能正常復位。常見的復位電路有上電復位電路和按鍵復位電路二種,本設計使用按鍵復位。圖3-4復位電路圖3.4時鐘電路的設計時鐘電路用于產生MCS-51單片機工作時所必須的時鐘控制信號。其內部電路在時鐘信號控制下,嚴格地按時序執(zhí)行指令進行工作。在執(zhí)行指令時,CPU首先要到程序存儲器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時序電路產生一系列控制信號去完成指令所規(guī)定操作。圖3-5晶振電路單片機是一種時序電路,必須要有時鐘信號才能正常工作。單片機芯片的18腳、19腳分別為片內反向放大器的輸出端和輸入端,只要在18腳(XTAL2)和19腳(XTAL1)之間接上一個12MHz的晶振,再加上2個30pF的瓷片電容即可構成單片機所需的時鐘電路。他們構成一個穩(wěn)定的自激振蕩器。該電容的大小影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。為單片機提供標準時鐘。其中兩個瓷片電容起微調作用。此外,當采用外部時鐘時,19腳(XTAL1)接地,18腳(XTAL2)接外部時鐘信號。3.574HC245總線收發(fā)器74HC245是一種典型的CMOS型三態(tài)緩沖門電路,雙向三態(tài)輸出,八線雙向收發(fā)器。主要應用于大屏顯示,以及其它的消費類電子產品中增加驅動。電壓工作范圍:3V~5V。圖3-674HC245引腳圖第1腳DIR,為輸入輸出端口轉換用,DIR=“1”高電平時信號由“A”端輸入“B”端輸出,DIR=“0”低電平時信號由“B”端輸入“A”端輸出。第2-9腳“A”信號輸入輸出端,A0=B0,A7=B7,A0與B0是一組,如果DIR=“1”O(jiān)E=“0”則A1輸入B1輸出,其它類同。如果DIR=“0”O(jiān)E=“0”則B1輸入A1輸出,其它類同。第11-18腳“B”信號輸入輸出端,功能與“A”端一樣,不再描述。第19腳OE,使能端,若該腳為“1”A/B端的信號將不導通,只有為“0”時A/B端才被啟用,該腳也就是起到開關的作用。第10腳GND,邏輯地。第20腳VCC,電源正極。本設計中使用74HC245用于實現(xiàn)數(shù)據(jù)總線的雙向異步通信。為了保護脆弱的主控芯片,通常在主控芯片的并行接口與外部受控設備的并行接口間添加緩沖器。當主控芯片與受控設備之間需要實現(xiàn)雙向異步通信時,自然就得選用雙向的八路緩沖器了,74HC245就是面向這種需求的。表3-174HC245真值表控制輸入運行GDIRLLB數(shù)據(jù)到A總線LHA數(shù)據(jù)到B總線HX隔開3.6LED數(shù)碼管數(shù)碼管按段數(shù)分為7段數(shù)碼管和8段數(shù)碼管,8段數(shù)碼管比7段數(shù)碼管多一個發(fā)光二極管單元(由小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等數(shù)碼管,按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。LED數(shù)碼管顯示器是由發(fā)光二極管顯示字段的51單片機輸出設備,LED數(shù)碼管的結構簡單。因此,單片機應用系統(tǒng)常采用八段LED數(shù)碼管作為顯示器,這種顯示器具有耗電低、配置靈活、線路簡單、安裝方便、耐轉動、價格低廉且壽命長等優(yōu)點。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管,共陽數(shù)碼管在應用時應將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。圖3-7共陽極共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。圖3-8共陰極數(shù)碼管要正常顯示,就要用驅動電路來驅動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。第一類為靜態(tài)顯示驅動:靜態(tài)驅動也稱直流驅動。靜態(tài)驅動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅動,要知道一個89C51單片機可用的I/O端口才32個,實際應用必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。第二類為動態(tài)顯示驅動:數(shù)碼管動態(tài)顯示接口是單片機中應用最廣泛的一種顯示方式之一,動態(tài)驅動是將所有數(shù)碼管的8個顯示筆劃“a、b、c、d、e、f、g、dp”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯出字形,沒有選通的數(shù)碼管就不亮。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅動,在輪流顯示過程中,每位數(shù)碼管的點亮時間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度夠快,給人的感覺就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍的感覺,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,但能夠節(jié)省大量的I/O端口,而且功耗更低?;诮煌羲獙崿F(xiàn)的的功能要求,所以選用第二種,動態(tài)顯示驅動。本設計采用的是0.36英寸10個管腳的2位共陽極數(shù)碼管。圖3-9內部結構圖3.7信號燈電路設計本設計用紅、黃、綠三色發(fā)光二極管模擬紅、黃、綠三色交通信號燈。發(fā)光二極管簡稱LED,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內部結構為一個PN結,具有單向導電性。當在發(fā)光二極管PN結上加正向電壓時,PN結勢壘降低,載流子的擴散運動大于漂移運動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會產生復合,此時產生的能量大部分以光的形式出現(xiàn),因此而發(fā)光,當所有二極管都發(fā)出光時,大多數(shù)都不是很有效的,在普通二極管里,半導體材料本身吸引大量的光能而結束。發(fā)光二極管是由一個塑性燈泡覆蓋集中燈光于一個特定方向。由于不同材料的禁帶寬度不同,所以由不同材料制成的發(fā)光二極管會發(fā)出不同波長的光。另外,有些材料由于組分和摻雜不同,例如,有的具有很復雜的能帶結構,相應的還有間接躍遷輻射等,因此有各種各樣的發(fā)光二極管。發(fā)光二極管在制作時,使用的材料有所不同,那么就可以出現(xiàn)不同顏色的光。發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等等。發(fā)光二極管的外形有圓形、長方形、三角形、正方形、組合形、特殊形等。常用的發(fā)光二極管應用電路有4種,即直流驅動電路,交流驅動電路,脈沖驅動電路,變色發(fā)光驅動電路。因此我們選的二極管顏色為紅色、黃色、綠色。綠燈是通行信號,面對綠燈的車輛可以直行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線。發(fā)光二極管有兩個引腳,其中長引腳接電源正端,較短的引腳接電源負端。根據(jù)本設計的特點,紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極管。每個方向上設置紅、綠、黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對稱分布的,如圖所示。圖3-10信號燈分布圖在本設計中,實際控制的燈只有6個,即:東西紅燈、東西綠燈、東西黃燈,南北紅燈、南北綠燈、南北黃燈。其中均是高電平有效。3.8按鍵控制電路本設計設置了8個按鍵,K0、K1、K2、K3、k4、k5、k6、K7。每個按鍵一段接地,另一端89C51單片機P3口各接口,低電平有效。P接增加倒計時時間、P接減少倒計時時間、P接南北通行、P接東西通行、P接緊急模式、P接深夜模式和P接切換狀態(tài)。當按鍵按下端口接地,單片機捕獲到低電平,從而知道相應的中斷輸入信息。時間可調:當主干道方向的車輛過多發(fā)生堵塞,正常的信號燈時序將會使交通狀況更加惡化。所以設立增加倒計時時間、減少倒計時時間這2個功能按鍵,通過按鍵對時間進行手動設置,增加了人為的可控性,避免車少長等和減緩車多交通堵塞的麻煩。南北、東西通行:交通路口出現(xiàn)各種狀況在所難免,如救護車等急行車通過時,必須其中一個方向暢通無阻。因此需要在設計中加入按鍵進行中斷控制。使其需要通行的方向綠燈一直燃亮,而另一端紅燈一直燃亮。等到緊急情況結束,切換正常模式恢復交通指揮。緊急模式:交通路口出現(xiàn)緊急狀況在所難免,如發(fā)生交通事故,我們都必須立刻停止當前車輛的行駛,畢竟這種情況應該是分秒必爭的,時時刻刻關系著公共財產安全和個人安危。因此需要在設計中加入按鍵進行中斷控制,當急行情況發(fā)生時,南北綠燈東西紅燈或東西綠燈南北紅燈,倒計時顯示變?yōu)?0不動。通過倒計時顯示就可以知道路面情況正處于特殊狀況后,提高人們的注意力。按鍵彈起,交通燈恢復中斷前狀態(tài),數(shù)碼管繼續(xù)倒計時。深夜模式:在深夜時段,交通路口的車流量大幅度減少,這時正常的交通模式不適合實際情況的需要。因此設置按鍵進行控制,當深夜時間車輛很少時,東西、南北方向四個黃燈同時燃亮,提醒人們注意交通情況,減速慢行,相互謙讓,安全的通過交通十字路口。既保證了交通的安全,同時也減短通過交通路口的時間,提高效率。本設計采用輕觸按鍵,其原理圖如下所示。圖3-11輕觸按鍵結構原理圖1腳和2腳是導通的,3腳和4腳是導通的。所以說電路中只要接1、3腳或1、4腳或2、3腳或2、4腳就可以導通了。3.9電源電路單片機芯片一般外接+5V電壓,74HC245總線收發(fā)器外接電壓VCC也是+5V。所以整個電路中所提供的電源為+5V。本設計采用DC電源提供電路電壓,用USB電源線外接電源,DC電源接口連接自鎖開關,作為整個電路的總開關。圖3-12DC電源及自鎖開關原理圖DC電源的2、3腳接地,1腳實際是VCC(電源),但是電路中要接自鎖開關,然后開關的另一個腳再接電源。自鎖開關在電路中起到電源的開關作用,常開的其中一腳接DC電源插口電源腳,常開的另一腳接電路的VCC。4軟件設計4.1編程語言在基于51單片機交通燈控制器的軟件設計當中,采用C語言作為開發(fā)語言。與匯編語言相比,C語言在功能上、結構上、可讀性、可維護性上有明顯的優(yōu)勢,易學易用,因此出現(xiàn)了專門用于51系列單片機編程的C語言——C51.目前最先進、功能最強大的C51編譯器是KeilC51。在單片機的開發(fā)應用中,逐漸引入了高級語言,C語言就是其中的一種。對用習慣了的匯編語言的人來說,高級語言可控性不好,不如匯編語言那樣能夠隨心所欲。但是使用匯編語言會遇到很多問題,首先它的可讀性和可維護性不強,特別是當程序沒有很好標注的時候,其次就是代碼的可重用性也比較低。使用C語言就可以很好的解決這些問題。C語言具有良好的模塊化,容易閱讀和維護等優(yōu)點。由于模塊化,用C語言編寫的程序有很好的可移植性,功能化的代碼能夠很方便地從一個工程移植到另一個工程,從而減少了開發(fā)時間。用C語言編寫程序比用匯編語言更符合人們的思考習慣,開發(fā)者可以更專心地考慮算法而不是考慮一些細節(jié)問題,這樣就減少了開發(fā)和調試的時間。很多系統(tǒng)特別是實時時鐘系統(tǒng)都是用C語言和匯編語言聯(lián)合編寫的。對時鐘要求嚴格時,使用匯編語言是唯一的方法。除此之外,包括硬件接口的操作都應該用C語言來編寫。語言的特點就是可以使程序員盡量少地對硬件進行操作,它是一種功能性和結構性很強的語言。對于大多數(shù)51系列單片機,使用C語言這樣的高級語言與使用匯編語言相比具有如下優(yōu)點:(1)不需要了解處理器的指令集,也不必了解存儲器的結構;(2)寄存器分配和尋址方式由編譯器進行管理,編程時不需要考慮存儲器的尋址和數(shù)據(jù)類型等細節(jié);(3)指定操作的變量選擇組合提高了程序的可讀性;(4)可使用與人的思維更相近的關鍵字和操作函數(shù);(5)與使用匯編語言編程相比,程序的開發(fā)和調試時間大大縮短;(6)C語言中的庫文件提供許多標準的列程,例如格式化輸出、數(shù)據(jù)轉換和浮點運算等;(7)通過C語言可實現(xiàn)模塊化編程技術,從而可將已編制好的程序加入到信程序中;(8)C語言可移植性好且非常普及,C語言編譯器幾乎適用于所有的目標系統(tǒng),已完成的軟件項目可以很容易地轉換到其他的處理器或環(huán)境中。由于單片機硬件的限制。有些場合無法用C語言編寫,而只能用匯編語言來編寫程序。大多數(shù)情況下匯編程序能和用C語言編寫的程序很好地結合在一起。4.2控制程序設計本設計的全部控制程序實際上分為若干子程序:T0中斷子程序,延時子程序,按鍵掃描子程序,鍵處理子程序,時間顯示子程序、黃燈閃爍5s子程序等。根據(jù)設計的要求和功能,系統(tǒng)的工作流程可以按如下方式進行:(1)程序設置初始時間,通過89C51單片機內部相應寄存器來實現(xiàn);(2)由89C51單片機的定時器每秒鐘通過P0口向74HC245的輸入口輸入信息,由74HC245的輸出口顯示紅、綠、黃燈的燃亮時間,由89C51的P2口顯示4組紅、綠、黃燈的燃亮情況;(3)89C51通過程序設置每組信號燈的燃亮時間,通過程序設置紅、綠、黃每組信號燈的燃亮狀態(tài);(4)當系統(tǒng)出現(xiàn)異常,通過手動復位方式,引起RESET復位信號復位系統(tǒng)。4.3主程序模塊主程序初始化和按鍵控制,首先將時間子程序、中斷子程序、延時子程序、按鍵掃描子程序、鍵處理子程序和顯示子程序分別進行初始化,然后啟動定時器對時間進行判斷,將時間送數(shù)據(jù)緩沖區(qū),調用顯示程序,同時掃描按鍵程序,用無條件跳轉指定返回,再調用顯示程序,如此周而復始的循環(huán),如下圖所示。圖4-1主程序循環(huán)流程圖LED狀態(tài)信號燈總共有4個狀態(tài),中間間隔著一個5秒的黃燈閃爍時間。程序可根據(jù)按照流程圖一步一步進行設計,然后把P2端口作為信號燈的輸出端口來用二進制編碼,編成8個狀態(tài),然后一個一個狀態(tài)的輸出,就可以實現(xiàn)信號燈的交替亮滅。再把P0端口作為數(shù)碼管時間顯示的輸出端口。就可以實現(xiàn)數(shù)碼管倒計時時間的功能。該交通信號燈控制系統(tǒng)的工作狀態(tài):(1)東西方向直行綠燈亮,南北方向紅燈亮。表示東西方向車道允許直行,南北方向車道禁止通行。經過一定時間倒計時完成后,南北紅燈不變,東西黃燈閃爍5秒,轉到下一工作狀態(tài)。(2)南北方向直行綠燈亮,東西方向紅燈亮。表示南北方向車道允許直行,東西方向車道禁止通行。經過一定時間倒計時完成后,東西紅燈不變,南北黃燈閃爍5秒,轉到下一個工作狀態(tài)。東西方向綠燈亮,南北方向紅燈亮,如此循環(huán)。圖4-2主程序流程圖4.4定時器T0延時方法可以有兩種,一中是利用89C51內部定時器生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。本設計采用T0定時器方法來設定1S時間。其中T0定時又有兩種方法:中斷和查詢。這里采用T0定時器中斷方法。定時器工作的基本原理其實就是給初值,讓它不斷加1直至減完為模值,這個初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時自動產生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值,即所要求的計數(shù)值設定為C,把計數(shù)初值設定為TC,可得到如下計算通式:式中:M為計數(shù)器模值。計數(shù)值并不是目的,目的是時間值,設計1次的時間,即定時器計數(shù)脈沖的周期為,它是單片機系統(tǒng)主頻周期的12倍,設要求的時間值為T,則有:。計算通式變?yōu)椋耗V岛陀嫈?shù)器工作方式有關。在方式0時M為8192;在方式1時M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時。如單片機的主脈沖頻率為12MHz,經過12分頻后,若采用方式0最大延時只有8.129毫秒,采用方式1最大延時也只有65.536毫秒。這就是為什么掃描周期為50ms的原因。若使用軟件則會耽擱程序流程,顯然不可行。相反,時間計時方面卻不可能只用計數(shù)器,因為顯然1秒鐘已經超過了計數(shù)器的最大定時時間,所以我們還必須采用定時器和軟件相結合的辦法才能解決這個問題。延時子程序:voiddelay(intms) //延時子程序{ uintj,k; for(j=0;j<ms;j++) //延時ms for(k=0;k<124;k++); //大約1毫秒的延時}在主程序中設定一個初值為20的軟件計數(shù)器使定時器T0工作于方式1定時50毫秒,這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入它的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為0,為0表示1秒已到。定時器工作時必須給計數(shù)器送初值,將這個值送到TH和TL中。它是以加法計數(shù)的,并能從全1到全0時自動產生溢出中斷請求。因此工作于方式1,定時器為16位計數(shù)器,其定時時間由下式計算:式中X為T0的初始值,該值和計數(shù)器工作方式有關。如單片機的主脈沖頻率為12MHz,經過12分頻方式0方式1所以,定時器T0工作于方式1,定時20次,就可定時1秒。定時中斷子程序:voidtime0(void)interrupt1using1 //定時中斷子程序{ TH0=0X3C; //重賦初值 TL0=0XB0; TR0=1; //重新啟動定時器 countt0++; //軟件計數(shù)加1 if(countt0==10) { if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //東西黃燈閃 { Green_dx=0; Yellow_dx=0; Buzz=0; } if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黃燈閃 { Green_nb=0; Yellow_nb=0; Buzz=0; } } if(countt0==20) //定時器中斷次數(shù)=20時(即1秒時) { countt0=0; //清零計數(shù)器 sec_dx--; //東西時間減1 sec_nb--; //南北時間減1if((sec_nb<=5)&&(dx_nb==0)&&(shanruo==1)) //東西黃燈閃 { Green_dx=0; Yellow_dx=1; Buzz=1; } if((sec_dx<=5)&&(dx_nb==1)&&(shanruo==1)) //南北黃燈閃 { Green_nb=0; Yellow_nb=1; Buzz=1; } } }4.5按鍵子程序設計目前,89C51單片機應用系統(tǒng)上的按鍵常采用機械觸點式按鍵,機械觸點在閉合及斷開瞬間均有抖動過程,時間長短與開關的機械特性有關,一般為5-10ms。由于抖動,會造成被查詢的開關狀態(tài)無法準確讀出。例如,一次按鍵產生的正確開關狀態(tài),由于鍵的抖動,CPU多次采集到低電平信號,會被誤認為按鍵被多次按下,就會多次進行鍵輸入處理,這是不允許的。為了保證CPU對鍵的一次閉合僅在按鍵穩(wěn)定時作一次鍵輸入處理,必須消除產生的前沿(后沿)抖動影響。去除抖動,可以從軟件方面得到實現(xiàn),如下就是針對按鍵的去抖程序:Unsignedcharkey_det(void)//keydetected:return1{Staticbuf=0xff;Buf<<=1;If(KEY)Buf=0x01;If((buf&0x1f)==0x10)//判斷是否是抖動return1;return0;}本設計使用了8個按鍵,根據(jù)其功能,得到其相應程序流程圖。圖4-3按鍵流程圖按鍵掃描子程序:voidkey(void) //按鍵掃描子程序{ if(k1!=1) //當K1(時間加)按下時 { display(); //調用顯示,用于延時消抖 if(k1!=1) { TR0=0; //關定時器 shanruo=0; P2=0x00; if(set==0) set_timedx++; //南北加1S else set_timenb++; //東西加1S if(set_timenb==100) set_timenb=1; if( set_timedx==100) set_timedx=1; //加到100置1 sec_nb=set_timenb; //設置的數(shù)值賦給東西南北 sec_dx=set_timedx; // do { display(); } while(k1!=1); } }4.6顯示程序模塊本設計采用動態(tài)顯示方式。LED動態(tài)顯示方法:LED動態(tài)顯示就是利用單片機依次輸出每一位數(shù)碼管的段選碼和對應于該位數(shù)碼管的位選控制信號,一位一位輪流點亮各七段數(shù)碼管。對每位數(shù)碼管來說,每隔一段時間點亮一次,如此循環(huán)。利用人眼的“視覺暫?!毙?,只要每位顯示間隔足夠短就可以給人以同時顯示的感覺。在動態(tài)顯示方式中,同一時刻,只有一位LED數(shù)碼管在顯示,其他各位是關閉的。在段選碼和位選碼每送出一次后,應保持1ms左右,這個時間應根據(jù)實際情況而定。不能太小,因而發(fā)光二極管從導通到發(fā)光有一定的延時,導通時間太短、發(fā)光太弱人眼無法看清。但也不能太長,因為畢竟要受限于臨界閃爍頻率,而且此時間越長占用CPU時間也越多。圖4-4時間顯示流程圖交通信號燈控制系統(tǒng)在正常工作情況下,為方便提示路上行人及車輛交通燈轉換的剩余時間,專門為控制系統(tǒng)提供了一個倒計時的顯示裝置。該裝置采用2位八段數(shù)碼管來顯示,每個路口需要1個,共4個。本設計使用八段共陽極數(shù)碼管完成倒計時顯示功能。以南北方向為例,數(shù)碼管顯示的數(shù)值從綠燈的設置時間最大值往下減,每秒鐘減1,一直減到0。然后又從紅燈設置時間的最大值往下減,一直減到0。接下來又顯示綠燈的時間,如此循環(huán)。經過倒計時功能的實現(xiàn),軟件程序通過選段碼與動態(tài)位選來實現(xiàn)倒計時功能在數(shù)碼管上顯示出來。子程序如下:voiddisplay(void)//顯示子程序{ buf[1]=sec_nb/10; //第1位東西秒十位 buf[2]=sec_nb%10; //第2位東西秒個位 buf[3]=sec_dx/10; //第3位南北秒十位 buf[0]=sec_dx%10; //第4位南北秒個位 P1=0xff; //初始燈為滅的 P0=0x00; P1=0xfe; //片選LED1 P0=table[buf[1]]; //送東西時間十位的數(shù)碼管編碼 delay(1); //延時 P1=0xff; //關顯示 P0=0x00; P1=0xfd; //片選LED2 P0=table[buf[2]]; delay(1); P1=0xff; P0=0x00; P1=0Xfb; //片選LED3 P0=table[buf[3]]; delay(1); P1=0xff; P0=0x00; P1=0Xf7; P0=table[buf[0]]; //片選LED4 delay(1);}5調試與檢測本設計系統(tǒng)的調試分為三大部分:硬件調試、軟件調試和軟硬件聯(lián)調。而且本設計系統(tǒng)在設計中采用模塊化設計,所以方便對各電路模塊功能模板的逐級檢測。單片機軟件先在最小系統(tǒng)板上調試,確保工作正常之后,再與硬件聯(lián)調。最后將各模塊組合一起后進行整體測試,是系統(tǒng)的所有功能得以實現(xiàn)。5.1硬件調試硬件調試步驟如下:第一步:目測。檢查外部的各種元件是否安裝正常和電路是否有斷點。第二步:用萬用表測試。先用萬用表復核目測中有疑問的連接點,在檢測各種電源與地線之間是否有短路現(xiàn)象。第三步:接通電源,檢查單片機是否正常工作。使用萬用表對輸出的端口進行檢測,觀察所輸出的信號是否與理論值相符合。第四步:對LED狀態(tài)信號燈模塊進行調試。逐一對各個信號燈進行測試,觀察信號燈是否完好。檢查信號燈間的連線是否正常,有無短路等。第五步:對按鍵模塊進行檢查。觀察按鍵是否接錯,有無短路。二極管有沒有接反,連接各端口有無接錯。第六步:對復位電路進行檢查。按下復位鍵能否正常進行復位。第七步:對數(shù)碼管顯示電路進行檢查。觀察數(shù)碼管顯示是否正常。若不正常,檢查數(shù)碼管有無接錯和時鐘電路有沒有問題。調試電路中遇到的問題與解決:在電路調試中,發(fā)現(xiàn)數(shù)碼管顯示電路不正常。經過檢查,原來是網絡上百度的數(shù)碼管管腳圖是不正確的。所以只能把焊接上的數(shù)碼管全部拆掉。然后給數(shù)碼管管腳進行通電,一根一根的試。最后,終于把數(shù)碼管所有的管腳測試出來,焊接上去就解決問題。5.2軟件調試本設計系統(tǒng)是使用C51來編寫的。軟件調試步驟如下:第一步:根據(jù)本次設計的方案畫出本程序的流程圖。第二步:根據(jù)流程圖編寫好程序,然后用KEIL軟件對已編寫完的程序進行編譯,觀察是否有錯誤。如果出現(xiàn),則對相應的錯誤進行修正。5.3軟硬聯(lián)試經過硬件調試和軟件調試后,進行系統(tǒng)的完整調試。步驟如下:第一步:把KEIL上的程序通過開發(fā)板下載到單片機芯片上。第二步:檢查線路是否接錯,有無短路,然后接上電源。第三步:對單片機最小系統(tǒng)進行調試,確保單片機正常運行。第四步:接通所有的電路并進行通電測試。第五步:觀察數(shù)碼管顯示是否正常計數(shù),若不正常,檢測管腳是否接錯,單片機是否正常工作。第六步:觀察LED狀態(tài)顯示燈是否正常的替換亮滅,若不正常,檢測管腳是否接錯,單片機是否正常工作。第七步:按下增減倒計時時間按鈕,觀察是否正常增加或減少倒計時時間。第八步:按下南北通行、東西通行和緊急模式按鈕,觀察是否LED狀態(tài)顯示燈顯示是否正常。5.4性能測試結果經過對整個系統(tǒng)的調試后,交通燈系統(tǒng)的LED狀態(tài)信號燈顯示正常,能夠正常的轉換信號燈來實行交通指揮,但是LED狀態(tài)信號燈中的綠燈亮度不夠。倒計時顯示數(shù)碼管的倒計時時間與設計的時間的誤差很小,精確度較高。造成誤差的原因是電路焊接的線路上有電阻以及各元件都有各種各樣的小誤差。而且人為方面測試的反應時間也是一個存在誤差的原因。電路增減倒計時時間、南北通行、東西通行、緊急模式都顯示正常。能夠正常的顯示該按鈕所設定的功能。6結論本設計以單片機STC89C51為核心,以LED發(fā)光二極管作為十字路口的指示燈,以雙位共陽數(shù)碼管作為倒計時指示,加上一些按鍵等完成本次設計要求的所有功能。在此基礎上,增加了增加、減少倒計時時間,南北通行,東西通行,緊急模式等功能,使該交通等控制系統(tǒng)更加適應道路上可能發(fā)生的各種情況。在一開始根據(jù)設計要求以及增加的功能,大概設定好本設計所需要的硬件模塊。然后根據(jù)所需要的要求以及功能畫出程序流程圖。根據(jù)程序流程圖在KEIL軟件上編寫程序以及編譯,遇到錯誤的話則仔細檢查修改。再根據(jù)電路原理圖去買元器件并進行焊接。焊接前注意檢查導線、元器件是否有問題。若沒有問題則上網查看本設計相關芯片信息,計劃好管腳、線路的連接。做好以上準備工作后則開始焊接。在焊接的過程中注意不要短接和虛焊。焊接好后則對整個設計進行測試。詳細測試本設計的各個功能,檢查LED狀態(tài)顯示燈的交替顯示是否正常、數(shù)碼管計數(shù)顯示是否正常與個功能是否正常。若不正常,則進行相應的修改。經過測試,本設計的各個功能顯示正常并且較為穩(wěn)定。而且操作容易。倒計時計數(shù)精確度夠強。LED狀態(tài)顯示燈交替亮滅正常。但是其中綠燈的亮度不高。雖然本設計完成了設計的要求并增設了一些功能,但是還是跟實際情況有很大一部分差距的,沒有對車流量進行檢測并智能控制倒計時時間的增減,沒有對一些急救車特別車輛的自動檢測、放行的功能,需要人為控制。本設計沒有網絡功能,應當在交通燈控制系統(tǒng)上擁有一個專業(yè)的網絡平臺。每個交通燈十字路口都有相應的傳感器來感應到該路口相應的信息并傳上平臺。通過平臺來協(xié)調好每個十字路口交通的情況,增加道路的利用率,減少道路擁堵的幾率,使交通燈控制系統(tǒng)更加智能化。參考文獻[1]陳艷,何春明.智能交通系統(tǒng)應用現(xiàn)狀及其存在問題分析[J].交通標準化,2007,(8):62-65.[2]梁琳.淺談我國智能交通系統(tǒng)的發(fā)展[J].廣西質量監(jiān)督導報,2008,(10):58-59.[3]歐玉榮.視頻圖像與交通燈智能控制的分析與設計[D].昆明理工大學,2012.[4]邱燁,葛亦斌,羅維等.基于AT89C51的交通燈設計研究[J].科技傳播,2009,8(3):68-69.[5]宋依青,張潤.自適應交通燈控制系統(tǒng)的設計與實現(xiàn)[J].計算機測量與控制,2008,16(4):497-499.[6]蘇玉萍.基于單片機的交通燈控制系統(tǒng)的設計與仿真[J].甘肅科技,2011,27(19):32-33.[7]孫玉芳.基于單片機的智能交通燈控制系統(tǒng)的研究[D].哈爾濱工程大學,2009.[8]覃嫻.基于單片機的新型智能交通燈控制系統(tǒng)[J].福建電腦,2012,(4):153-154.[9]王笑京.智能交通系統(tǒng)研發(fā)歷程與動態(tài)述評[J].城市交通,2008,6(1):6-12.[10]夏天.城市慢行交通系統(tǒng)設計策略分析[J].交通信息與安全,2010,28(5):81-84.[11]JohnWiley,Sons,Ltd.Trafficcontrolandmanagementrecentmethodologicaladvances[J].JournalofAdvancedTransportation,2013,47(1):1-3.謝辭歲月如梭,光陰似箭。轉眼間幾個月的畢業(yè)論文設計即將結束。在畢業(yè)論文結尾之

溫馨提示

  • 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

提交評論