隨著現代社會對交通運輸的日趨依賴,交通燈成為了人們生活中不可或缺的一部分。傳統的交通燈控制系統雖然在一定程度上可以滿足指揮路口交通的需要,但隨著城市規模的不斷擴大,原有的交通燈控制系統已經表現出明顯的缺點:紅綠燈時間相對固定,不能伴隨車流量的改變而調整紅綠燈的顯示時間。
本設計以AT89S51單片機為核心,外接外圍電路構成基本電路,使硬件電路能適應所完成的控制功能。在Keil軟件中編寫C語言程序,最后用Proteus軟件進行仿真,基本實現了智能交通燈的模擬。該系統可控制紅、綠、黃燈按時間依次變換,并有倒讀秒功能。在此基礎上,通過傳感器對車流量的情況進行數據采集。將采集的數據傳送給控制中心,進行分析比較。根據比較的結果,將具體的車流量轉換成兩相位車流量大小的比值。根據比值轉換成對紅綠燈時間的控制,使交通信號燈時間可根據車流量改變,提高了交叉口的通行效率。
目錄
2.1 智能交通燈控制系統的通行方案設計
設在十字路口,分為東西向和南北向,在任一時刻只有一個方向通行,另一方向禁行,持續一定時間,經過短暫的過渡時間,將通行禁行方向對換。其具體狀態如下圖所示。說明:黑色表示亮,白色表示滅。交通狀態從狀態1開始變換,直至狀態4然后循環至狀態1,周而復始,即如圖2.1所示:
通過具體的路口交通燈狀態的演示分析我們可以把這四個狀態歸納如下:
(1)南北綠燈亮,東西紅燈亮。此狀態下,南北允許通行,東西禁止通行。
(2)南北黃燈亮,東西保持紅燈亮。此狀態下除了已經正在通行中的其他所以車輛都需等待狀態轉換。
(3)東西綠燈亮,南北紅燈亮。此狀態下,東西允許通行,南北禁止通行。
(4)東西黃燈亮,南北保持紅燈亮。此狀態下除了已經正在通行中的其他所以車輛都需等待狀態轉換。
下面用圖表表示燈狀態和行止狀態的關系如下:
表2-1交通狀態及紅綠燈狀態
| 狀態1 | 狀態2 | 狀態3 | 狀態4 |
南北向 | 通行 | 等待變換 | 禁行 | 等待變換 |
東西向 | 禁行 | 等待變換 | 通行 | 等待變換 |
南北紅燈 | 0 | 0 | 1 | 1 |
南北綠燈 | 1 | 0 | 0 | 0 |
南北黃燈 | 0 | 1 | 0 | 0 |
東西紅燈 | 1 | 1 | 0 | 0 |
東西綠燈 | 0 | 0 | 1 | 0 |
東西黃燈 | 0 | 0 | 0 | 1 |
東西南北四個路口均有紅綠黃3燈和數碼顯示管2個,在任一個路口,遇紅燈禁止通行,轉綠燈允許通行,之后黃燈亮警告行止狀態將變換。狀態及紅綠燈狀態如表2.1所示。說明:0表示滅,1表示亮。
2.2 智能交通燈控制系統的功能要求
本設計能模擬基本的交通控制系統,用紅綠黃燈表示禁行,通行和等待的信號發生,還能進行倒計時顯示,車流量檢測及調整,錯誤報警等功能。
(1)倒計時顯示
倒計時顯示可以提醒駕駛員在信號燈燈色發生改變的時間、在“停止”和“通過”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計時顯示的信號控制方式,并且認為有倒計時顯示的路口更安全。倒計時顯示是用來減少駕駛員在信號燈色改變的關鍵時刻做出復雜判斷的1種方法,它可以提醒駕駛員燈色發生改變的時間,幫助駕駛員在“停止”和“通過”兩者間作出合適的選擇
(2)紅綠燈顯示
紅綠燈顯示可以直觀的告訴駕駛員禁行,通行和等待的信號。本設計紅綠燈有四種狀態:首先南北綠燈亮,東西紅燈亮。一定時間后,南北黃燈開始閃爍,持續5s,東西向保持紅燈亮。接著南北向紅燈亮,東西綠燈亮。一定時間后,東西黃燈閃爍,持續5s,南北向保持紅燈亮。
(3)車流量檢測及調整
隨著我國經濟建設的蓬勃發展,城市人口和機動車擁有量在急劇增長,交通流量日益加大,交通擁擠堵塞現象日趨嚴重,交通事故時有發生。車輛檢測器作為智能交通系統的基本組成部分,在智能交通系統中占有重要的地位。現階段,車輛檢測器檢測方式有很多,各有其優缺點,如遙感微波檢測器、磁感應車輛檢測器、紅外線車輛檢測器等。通過比較南北向和東西向的車流量,調節紅綠燈的間隔時間。
2.3 智能交通燈控制系統的基本構成及原理
單片機設計交通燈控制系統,可用單片機直接控制信號燈的狀態變化,基本上可以指揮交通的具體通行,當然,接入LED數碼管就可以顯示倒計時以提醒行使者,更具人性化。本系統在此基礎上,加入了車流量檢測電路為單片機采集數據,單片機對此進行具體處理,及時調整控制指揮,為了超越視覺指揮的局限性,同時接上蜂鳴器,在聽覺上加強了指揮提醒作用。
本設計系統以單片機為控制核心,由車流量檢測模塊產生輸入,信號燈狀態模塊,LED倒計時模塊和蜂鳴器狀態模塊接受輸出。系統的總體框圖如圖2.2所示。
2.4 本章小結
本章主要對智能交通燈控制系統方案設計進行了介紹,概述了智能交通燈控制系統的功能要求以及系統的總體框架。
實現本設計要求的具體功能,可以用單片機及外圍器件構成最小控制系統,12個發光二極管分成4組紅綠黃三色燈構成信號燈指示模塊,8個LED東西南北各兩個構成倒計時顯示模塊,車流量檢測傳感器采集流量數據,1個蜂鳴器進行報警。
采用AT89S51單片機作為主控制器。AT89S51具有兩個16位定時器/計數器,5個中斷源,便于對車流量進行定時中斷檢測。32根I/O線,使其具有足夠的I/O口驅動數碼管及交通燈。外部存貯器尋址范圍ROM、RAM64K,便于系統擴展。其T0,T1口可以對外部脈沖進行實時計數操作,故可以方便實現車流量檢測信號的輸入。選用AT89S51單片機跟其他單片機相比,經濟實惠,滿足設計要求,故選用AT89S51單片機作為主控制器。
車流量檢測傳感器有三種方案如下:
方案一:
采用遙感微波檢測器(RTMS)。微波交通檢測器是利用雷達線性調頻技術原理,通過發射中心頻率為10.525GHz或24.200GHz的連續頻率調制微波(FMCW);在檢測路面上,投映一個寬度為3-4米,長度為64米的微波帶。每當車輛通過這個微波投映區時,都會向RTMS反射一個微波信號,RTMS接收反射的微波信號,并計算接收頻率和時間的變化參數以得出車輛的速度及長度,提供車流量、道路占有率、速度和車型等實時信息。為了檢測出車道上車的數量,RTMS在微波束的發射方向上以2M為一個層面分展探測物體,微波束在15度范圍內投影形成一個分為32個十層面的橢圓形波束,(橢圓的寬度取決于儀器選擇的工作方式),通過這種方式可檢測出車量數RTMS具有兩種基本的使用模式,分別是路邊側向模式和前方正向模式。路邊側向模式可以使用一臺RTMS同時檢測多至8條車道,并提供每條車道的交通信息。前方正向模式,用一臺RTMS實時檢測一條單一車道的交通情況。RTMS的檢測精度高,且是一個全天候的車輛檢測器。
方案二:
采用磁感應車輛檢測器.這種環形線圈檢測器是傳統的交通檢測器,是目前世界上用量最大的一種檢測設備。這些埋設在道路表面下的線圈可以檢測到車輛通過時的電磁變化進而精確地算出交通流量。交通流量是交通統計和交通規劃的基本數據,通過這些檢測結果可以用來計算占用率(表征交通密度), 在使用雙線圈模式時還可以提供速度、車輛行駛方向、車型分類等數據,這些數據對于交通管理和統計是極為重要的。原理方框圖如下:
圖3.1 磁檢測器方框圖
該方案測量精度較好,且性能穩定。
方案三:
利用紅外線車輛檢測器。紅外線車輛檢測器是利用被檢測物對光束的遮擋或反射,通過同步回路檢測物體有無。物體不限于金屬,所有能反射光線的物體均可被檢測。光電開關將輸入電流在發射器上轉換為光信號射出,接收器再根據接收到的光線的強弱或有無對目標物體進行探測。如當汽車通過光掃描區域時,部分或全部光束被遮擋,從而實現對車輛數據的綜合檢測。常利用光電開關技術,具有高速響應,抗干擾性強,不受惡劣氣象條件或物體顏色的影響的優點,而且安裝簡便。
方案一造價高,且易受環境影響,方案二需將檢測器埋入地底下,對已建成道路使用不方便。方案三性價比高,且設計簡單,權衡利弊,故選用方案三。
在本系統中,采用對射式紅外線光電開關HJS18-M14DNK檢測車流量。該紅外線光電開關工作電壓為直流10-30V,檢測距離為10m,響應時間小于3ms,能在-25℃~55℃的溫度條件下正常工作。當有車輛通過光電開關之間時,輸出端將輸出一個開關信號,送入單片機,單片機執行相應程序自動對輸入信號進行計數,從而完成對車流量的統計。
3.1.3 電源電路的選型
由于單片機工作時需要+5V電壓,所以在設計電源電路時,需要一個三端穩壓器能提供+5V電壓。
三端穩壓器,主要有兩種:一種輸出電壓是固定的,稱為固定輸出三端穩壓器;另一種輸出電壓是可調的,稱為可調輸出三端穩太器。其基本原理相同,均采用串聯型穩壓電路。在線性集成穩壓器中,由于三端穩壓器只有三個引出端子,具有外接元件少,使用方便,性能穩定,價格低廉等優點,因而得到廣泛應用。
三端穩壓器的通用產品有78系列(正電源)和79系列(負電源),輸出電壓由具體型號中的后面兩個數字代表,有5V,6V,8V,9V,12V,15V,18V,24V等檔次。
由于7805能夠提供5V電壓的三端穩壓電源,在實際的電路控制中應用其作為電源電路較為廣泛,在普通的電子元器件商場都有銷售易于購買,并且技術相對成熟.7805一腳為電源輸入端,二腳為公共接地端,三腳即為我們所需要的+5V電壓輸出端.本文采用最典型的7805提供電壓的電路,即在7805的1腳和公共接地端(即2腳)之間接入0.3μF的電容,在公共接地端和三腳+5V電壓輸出端之間接入0.1μF的電容。
3.2 系統硬件總電路構成及原理
3.2.1 系統硬件電路構成
本系統實現的是對城市十字路口交通的控制,它由三大部分組成:
(1)信息的采集部分;
(2)單片機自動控制部分;
(3)顯示部分。
系統以單片機為核心,組成一個集車流量采集、處理、自動控制為一身的開環控制系統。 系統硬件電路由車流量檢測電路、單片機、狀態燈、LED顯示、蜂鳴器組成。其具體的硬件電路總圖如圖所示。
P0接上拉電阻與P2控制LED數碼管,P1用于控制紅綠黃發光二極管, INT1口接蜂鳴器,XTAL1和XTAL2接入晶振時鐘電路,RESET引腳接上復位電路,T1口接車流量傳感器。
圖3.2 總體設計電路圖
3.2.2 系統工作原理
通過車流量傳感器對東西和南北兩條通道的車流量的測量,將車流量信息以脈沖電平的方式傳給單片機。單片機能通過程序運算得到兩條通道車流量的大小來控制路口各方向的紅綠燈時長,并由LED顯示。以一個周期向傳感器取一次數據。
信息采集主要是對路口各方向的車流量進行采集。因為關系到哪個方向通行時間長,哪個方向通行時間短。目前大多采用光學或壓力傳感器,以確定每個路口在一定時間段車輛通過的次數。本設計采用比例的方法利用紅外線傳感器只計算出需比較兩個相對路口車流量的比值即可。
設計車流量傳感器,一個對準東西方向取樣,另一個對南北方向取樣,分別取得兩個代表東西和南北方向車流量a和b。用單片機巡回檢測,并將他們進行比較。若二者相等則按一定時間間隔交替導通。若a>b,進入a方向綠燈延時程序。反之,進入b方向綠燈延時程序。該控制程序又根據具體的比例做時長的變換。這些工作全部由單片機完成。單片機通過接口得到a和b相對應的電壓信號量,然后對其進行處理、分析和判斷,改變信號燈輸出時長,直接控制信號燈驅動電路,實現單片機對信號燈的智能控制。
本系統先顯示狀態燈及LED數碼管,將狀態碼值送顯P1口,將要顯示的時間值送顯P0口和用P2口來選通LED數碼管的顯示導通,在此同時以50ms為周期,用軟件方法計時1秒,到達1s就要將時間值減1,刷新LED數碼管。
該智能交通燈控制系統以四個狀態為一周期循環。每滿一個狀態循環周期,則須將檢測到的車流量數據處理一次,判斷兩個方向的交通輕重緩急狀況,再調整下次狀態循環的紅綠燈時間,以達到自動控制的目的。
3.4 車流量檢測模塊介紹
在本系統中,采用對射式紅外線光電開關HJS18-M14DNK檢測車流量。該傳感器工作電壓為直流10-30V,檢測距離為10m,響應時間小于3ms,能在-25℃~55℃的溫度條件下正常工作。當有車輛通過光電開關之間時,輸出端將輸出一個開關信號,送入單片機,單片機執行相應程序自動對輸入信號進行計數,從而完成對車流量的統計。
車流量檢測傳感器可對單片機控制系統提供實時數據,系統對所獲數據進行處理。實現紅綠燈控制必須解決對當前十字路口的交通狀況的檢測,
并完成如下工作:
1.輸入量的采集,系統采集兩個輸入量,即兩個方向的車流量。
2.輸出量的確認,即紅綠燈時間值。
為了采集上述數據,在十字路口的四側共設置2個傳感器。分別檢測兩個方向的車流量,車流量檢測不是最終目的,在每半個循環周期,系統會檢測到兩個方向的車流量數據,除以時間,那么就可以得到單位時間的車流量,然后比較兩個方向單位時間車流量多少,以確定下一次循環紅綠燈時間,達到調整的目的。
3.4.1 光電開關的工作原理
圖3.6 光電開關工作原理簡圖
發送器對準目標發射光束,發射的光束一般來于半導體光源,發光二極管(LED)、激光二極管及紅外發射二極管。光束不間斷地發射,或者改變脈沖寬度。接收器有光電二極管、光電三極管、光電池組成。在接收器的前面,裝有光學元件如透鏡和光圈等。在其后面是檢測電路,它能濾出有效信號和應用該信號。
3.4.2 光電開關的分類
(1)漫反射式光電開關
它是一種集發射器和接收器于一體的傳感器,當有被檢測物體經過時,物體將光電開關發射器發射的足夠量的光線反射到接收器,于是光電開關就產生了開關信號。當被檢測物體的表面光亮或其反光率極高時,漫反射式的光電開關是首選的檢測模式。
(2)鏡反射式光電開關
它亦集發射器與接收器于一體,光電開關發射器發出的光線經過反射鏡反射回接收器,當被檢測物體經過且完全阻斷光線時,光電開關就產生了檢測開關信號。
(3)對射式光電開關
它包含了在結構上相互分離且光軸相對放置的發射器和接收器,發射器發出的光線直接進入接收器,當被檢測物體經過發射器和接收器之間且阻斷光線時,光電開關就產生了開關信號。當檢測物體為不透明時,對射式光電開關是最可靠的檢測裝置。
(4)槽式光電開關
它通常采用標準的U字型結構,其發射器和接收器分別位于U型槽的兩邊,并形成一光軸,當被檢測物體經過U型槽且阻斷光軸時,光電開關就產生了開關量信號。槽式光電開關比較適合檢測高速運動的物體,并且它能分辨透明與半透明物體,使用安全可靠。
(5)光纖式光電開關
它采用塑料或玻璃光纖傳感器來引導光線,可以對距離遠的被檢測物體進行檢測。通常光纖傳感器分為對射式和漫反射式。但光纖式光電開關有一些缺點:適宜空間狹小、電磁干擾大、溫差大。
3.4.3 光電開關的應用
隨著我國工業自動化技術的迅速發展,光電開關自動化元件將被普遍采用。應用領域也在不斷擴展,采用集成電路技術和SMT表面安裝工藝而制造的新一代光電開關器件,具有延時、展寬、外同步、抗相互干擾、可靠性高、工作區域穩定和自診斷等智能化功能。這種新穎的光電開關是一種采用脈沖調制的主動式光電探測系統型電子開關,它所使用的冷光源有紅外光、紅色光、綠色光和藍色光等,可非接觸、無損傷地檢測和控制各種固體。新型光電開關具有體積小、功能多、壽命長、精度高、響應速度快、檢測距離遠以及抗光、電、磁干擾能力強等優點。
目前,這種新型的光電開關已被用作物位檢測、液位控制、產品計數、寬度判別、速度檢測、定長剪切、孔洞識別、信號延時、自動門傳感、色標檢出、沖床和剪切機以及安全防護等諸多領域。
3.5 其它硬件介紹
3.5.1 發光二極管
根據本設計的特點,紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發光二極管。每個方向上設置紅綠黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對稱分布的,如圖3.7所示。
圖3.7 信號燈的連接
3.5.3 電源電路設計
不管是AT89S51單片機工作電源、二極管還是數碼管的驅動,都要用到+5V的直流電源,因此,一個穩定的、持續的+5V直流電源對本系統十分重要。本設計運用橋式整流電路,將交流轉換為直流,可為各部分電路提供恒定的+5V直流。220V左右的交流電壓,經變壓器后轉換為15V左右的電壓,再經全波整流電橋整流后,得到一幅0-8V左右的波動直流。這一波動的直接經過電解電容C4濾波后,得到一個較平穩的直流,再經過LM7805穩壓為+5V后,得到穩定的+5V直流電流,為系統提供穩定電壓,保證電路的穩定性和抗干擾性,其電路如圖3.9所示。圖中C5用于抵消輸入線較長時的電感效應,以防止電路產生自激震蕩,其容量較小,本設計選擇的為0.31μF的電容。圖中C6用于消除輸出電壓中的高頻噪聲,本設計選用0.1μF的電容。
圖3.9 電源電路
3.5.4 蜂鳴器
本設計采用一般蜂鳴器,蜂鳴器使用PNP三極管進行驅動控制,當連接到單片機上的引腳輸出為低電平,PNP導通,蜂鳴器蜂鳴;當連接到單片機上的引腳輸出高電平時,PNP截止,蜂鳴器停止蜂鳴。如圖3.10所示
圖3.10 蜂鳴器連接
3.6 本章小結
本章首先對單片機、車流量傳感器和電源模塊進行了選型,接著介紹了總體設計電路圖的構成及原理。第三部分詳細介紹了AT89S51單片機各個管腳的功能和內部芯片,以及AT89S51單片機的最小系統。第四部分主要介紹了紅外線傳感器的原理。最后對其他硬件進行了介紹,如發光二極管,LED數碼管以及電源電路等。
硬件平臺結構一旦確定,大的功能框架基本形成。軟件在硬件平臺上構筑,完成各部分硬件的控制和協調。系統功能是由軟硬件共同實現的,因為軟件的可伸縮性,最終實現的系統功能可強可弱,差別可能很大。因此,系統是本系統的靈魂。軟件采用模塊化設計方法,不但易于編程和調試,也可以減小軟件故障率和提高軟件的可靠性。同時,對軟件進行全面測試也是檢驗錯誤排除故障的重要手段。這里我采用了常用的C語言編程來實現的。
4.1 主程序設計
將整個流程分為四個狀態如下:
(1)南北綠燈亮,東西紅燈亮。此狀態下,南北允許通行,東西禁止通行。
(2)南北黃燈閃爍5s,東西保持紅燈亮。此狀態下除了已經正在通行中的其他所以車輛都需等待狀態轉換。
(3)東西綠燈亮,南北紅燈亮。此狀態下,東西允許通行,南北禁止通行。
(4)東西黃燈閃爍5s,南北保持紅燈亮。此狀態下除了已經正在通行中的其他所以車輛都需等待狀態轉換。
主程序采用查詢方式定時,獲取交通燈的各種狀態。主程序流程圖如圖4.1所示。
4.2 車流量采樣程序設計
車流量采樣程序主要功能是采樣各路口的車流量,每次紅燈轉換成綠燈前兩秒對路口車流量進行采樣,然后根據采樣后得到的車流量的大小來分配紅綠燈的時間。根據兩方向車流量的比例分成5個區域:小于0.4,0.4-0.8,0.8-1.2,1.2-1.6,大于1.6。
時間調整在此只劃定5個范圍。比例小于0.4,表示南北方向車流量暢通,東西方向車流量擁擠。比例為0.4-0.8時,表示南北方向車流量比東西車流量少。比例為0.8-1.2時,表示南北車流量與東西車流量差距不大。比例為1.2-1.6時,表示南北車流量比東西車流量多。比例大于1.6時,表示南北方向車流量擁擠,東西方向車流量暢通。時間設置以40s為基準,當比例為1.2-1.6時,南北綠燈時間增加10s,東西綠燈時間減少10s。當比例為1.6以上時,南北綠燈時間增加20s,東西綠燈時間減少20s。當比例為0.4-0.8時,南北綠燈時間減少10s,東西綠燈時間增加10s。當比例為0.4以下時,南北綠燈時間減少20s,東西綠燈時間增加20s。程序流程圖如圖4.2所示。
根據紅綠燈時間調整原理,一個周期下來,count_SN,count_EW中分別存儲著南北,東西的車流量,接下來求單位時間車流量,此時南北向時間,東西向時間分別存儲在tt_SN,tt_EW中,則兩個方向的流量比例為(count_SN /tt_SN)/(count_EW/tt_EW)=( count_SN * tt_EW)/(count_EW * tt_SN),顯然該比例是1左右帶小數的值,然而單片機程序中只取整數,重要的數據信息就會丟失,所以本設計中首先將(R5*R1)乘以10,比例就變為10左右的值。將該比例值放在A,然后根據A的大小進行時間調整,具體時間設置表4-1.
表4-1 比例及調整時間
南北與東西向比例 | 0.4以下 | 0.4-0.8 | 0.8-1.2 | 1.2-1.6 | 1.6以上 |
調整南北向時間 | 20 | 30 | 40 | 50 | 60 |
調整東西向時間 | 60 | 50 | 40 | 30 | 20 |
圖4.1 主程序流程圖
4.2 車流量程序流程圖
4.3 顯示程序設計
交通燈的時間顯示主要是通過數碼管,本設計采用動態顯示數碼管。其流程圖如圖4.3所示。
圖4.3 顯示程序流程圖
4.4 理論基礎知識
4.4.1 定時器原理
定時器工作的基本原理其實就是給初值,讓它不斷加1直至減完為模值,這個初值是送到TH和TL中的。它是以加法記數的,并能從全1到全0時自動產生溢出中斷請求。因此,我們可以把計數器記滿為零所需的計數值,即所要求的計數值設定為C,把計數初值設定為TC 可得到如下計算通式:
TC=M-C
式中,M為計數器模值。計數值并不是目的,目的是時間值,設計1次的時間,即定時器計數脈沖的周期為T0,它是單片機系統主頻周期的12倍,設要求的時間值為T,則有C=T/T0。計算通式變為:
T=(M-TC)T0
模值和計數器工作方式有關。在方式0時M為8192;在方式1時M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時。如單片機的主脈沖頻率為12MHZ,經過12分頻后,若采用方式0最大延時只有8.129毫秒,采用方式1最大延時也只有65.536毫秒。這就是為什么掃描周期為50ms的原因,
若使用軟件則會耽擱程序流程,顯然不可行。相反,時間計時方面卻不可能只用計數器,因為顯然1秒鐘已經超過了計數器的最大定時間,所以我們還必須采用定時器和軟件相結合的辦法才能解決這個問題。
4.4.2 軟件延時原理
MCS-51的工作頻率為12MHZ,機器周期與主頻有關,機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數,這樣我們就可以通過指令的執行條數來確定1秒的時間,但同時由于單片機的運行速度很快其他的指令執行時間可以忽略不計。
我們設定一個初值為20的軟件計數器和使T0定時50毫秒。這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數器減1,然后判斷它是否為零。為零表示1秒已到。設定定時器需要定時50毫秒,故T0必須工作于方式1。要求初值:TC=M-T*T0=216-50ms/1us=15536=3CBOH.
4.5 本章小結
本章主要對智能交通燈軟件方面進行了介紹。主要包括了三個方面的軟件設計思路及原理:交通燈主程序的設計,車流量采樣程序的設計以及數碼管顯示程序的設計。最后概述了定時器原理和軟件延時原理。
第5章 智能交通燈的仿真
5.1 Proteus軟件介紹
Proteus軟件是英國Labcenter electronics公司開發的電路分析與實物仿真的軟件。它運行于Windows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路,軟件的特點是:
(1)實現了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機外圍電路組成的系統的仿真、RS232動態仿真、IIC調試器、SPI調試器、鍵盤和LCD系統仿真的功能:各種虛擬儀器,如示波器、邏輯分析儀、信號發生器燈。
(2)支持主流單片機系統的仿真。目前支持的單片機類型有:6800系列、8051系列、AVR系列、PIC14系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
(3)提供軟件調試功能。硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態,因此在該軟件仿真系統中,必須具有這些功能;同時支持第三方的軟件編譯和調試環境,如Keil C51 uVison4等軟件。
(4)具有強大的原理圖繪制功能。總之,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能非常強大。
5.2 仿真過程介紹
5.2.1 用PROTEUS繪制原理圖
運行PROTEUS VSM的ISIS后出現相應的界面,點狀的柵格區域為繪圖區。在左側的上方為電路圖概覽區,下方則是元器件列表區。單擊P后出現的Pick Device添加元器件的對話框,輸入所要添加的器件名稱,則該器件就會出現在右側,單擊OK按鈕,完成一個元器件的添加。重復以上過程,添加好電路中所需要的元器件。在元器件列表區選中某元器件后,在電路圖概覽區會出現該元器件,用鼠標將其拖至繪圖區,將所有需要的元器件在繪圖區放置好,既開始連線。連線方法很簡單,將鼠標移至元器件引腳后出現一個小十字,再次單擊左鍵就完成了一次連線。在布線時,如果需要轉彎,可以在要轉彎處單擊鼠標左鍵。
5.2.2 PROTEUS對單片機內核的仿真
PROTEUS嵌入式系統仿真軟件在設計時就已經注意到和單片機各種編譯程序的整合了,如它可以和Keil,Wave6000等編譯模擬軟件結合使用。因為Keil使用方便,具有強大的軟件仿真和硬件仿真功能。把Proteus和Keil結合起來調試硬件就方便了好多,我采用的就是“Proteus+Keil”的仿真方法,具體步驟如下:
首先運行PROTEUS VSM的ISIS,畫好原理圖后,用鼠標左鍵雙擊單片機出現如圖5.1所示定義代碼生成工具對話框。
圖5.1 定義代碼生成工具對話框
用Keil軟件寫好程序,并編譯生成相應的HEX文件。電路圖繪制完成后,再添加AT89S52的應用程序。鼠標移至AT89S51上,雙擊鼠標左鍵,打開如圖5.2所示的對話框。在Program File欄添加編譯好的十六進制格式的程序文件AA.hex(可以接受3種格式的文件),再給AT89S52輸入晶振頻率。此處默認為12MHZ,單擊OK按鈕完成程序添加工作,下面就可以進行系統仿真了。單擊主界面下方的按鈕開始系統仿真。PROTEUS VSM所進行的是一種交互式仿真,在仿真進行中可以對各控制按鈕、開關等進行操作,系統對輸入的響應會被真實的反映出來。在這個例子里,開始仿真后,開關按鈕通過鼠標單擊來改變狀態,改變的狀態會在LED和數碼管顯示出來。
圖5.2 創建源代碼對話框
5.2.3 仿真結果與分析
設南北向為a路口,東西向車為b路口。
(1)當交通燈開始工作后,執行初始狀態。系統自動進入狀態1:南北向綠燈,東西向紅燈,倒計時40秒。倒計時到5s時,南北向黃燈開始閃爍5s,東西向保持紅燈。然后,東西向綠燈亮,南北向紅燈亮,倒計時40秒。倒計時到5s時,東西向黃燈開始閃爍5s,南北向保持紅燈。仿真結果如圖5.3所示。
圖5.3 默認狀態仿真圖
(2)當手動按下開關,使a路口車流量與b路口流量相當時,既0.5<a/b<=1.2時。系統將紅綠燈時間調整為40s、40s。南北向綠燈,東西向紅燈,倒計時40秒。倒計時到5s時,南北向黃燈開始閃爍5s,東西向保持紅燈。然后,東西向綠燈亮,南北向紅燈亮,倒計時40秒。倒計時到5s時,東西向黃燈開始閃爍5s,南北向保持紅燈。仿真結果如圖5.4所示。
圖5.4 a/b=1時仿真圖
(3)當手動按下開關,使a路口車流量大于b路口流量,即比例為1.2-1.6時。系統將紅綠燈時間調整為50s、30s。南北向綠燈,東西向紅燈,倒計時50秒。倒計時到5s時,南北向黃燈開始閃爍5s,東西向保持紅燈。然后,東西向綠燈亮,南北向紅燈亮,倒計時30秒。倒計時到5s時,東西向黃燈開始閃爍5s,南北向保持紅燈。仿真結果如圖5.5所示。
圖5.5 比例為1.2-1.6時仿真圖
(4)當手動按下開關,比例為1.6以上時。系統將紅綠燈時間調整為60、20s。南北向綠燈,東西向紅燈,倒計時60秒。倒計時到5s時,南北向黃燈開始閃爍5s,東西向保持紅燈。然后,東西向綠燈亮,南北向紅燈亮,倒計時20秒。倒計時到5s時,東西向黃燈開始閃爍5s,南北向保持紅燈。仿真結果如圖5.6所示。
圖5.6 比例大于1.6時的仿真圖
(5)當手動按下開關,比例為0.4-0.8時。系統將紅綠燈時間調整為30、50s。南北向綠燈,東西向紅燈,倒計時30秒。倒計時到5s時,南北向黃燈開始閃爍5s,東西向保持紅燈。然后,東西向綠燈亮,南北向紅燈亮,倒計時50秒。倒計時到5s時,東西向黃燈開始閃爍5s,南北向保持紅燈。仿真結果如圖5.7所示。
圖5.7 比例為0.4-0.8時的仿真圖
(6)當手動按下開關,比例小于0.4時。系統將紅綠燈時間調整為20、60s。南北向綠燈,東西向紅燈,倒計時20秒。倒計時到5s時,南北向黃燈開始閃爍5s,東西向保持紅燈。然后,東西向綠燈亮,南北向紅燈亮,倒計時60秒。倒計時到5s時,東西向黃燈開始閃爍5s,南北向保持紅燈。仿真結果如圖5.8所示。
圖5.8 比例小于0.4時的仿真圖
5.3 本章小結
本章首先對proteus軟件進行了介紹,后面展示了各種情況的仿真模擬圖。
結束語
交通燈控制在交通運輸領域有著非常重要的作用。本系統采用以單片機為中心控制器,實現了傳統的紅綠燈顯示和倒讀秒功能,并能根據車流量的變化自動調整紅綠燈時間。
首先通過信息采集,主要是對路口各方向的車流量進行采集。本設計采用比例的方法利用紅外線傳感器只計算出需比較兩個相對通行路口車流量的比值即可。該系統可完成紅綠燈傳統的控制功能,紅綠黃燈按一定的規律依次循環顯示,并采用LED顯示器,以動態掃描的方式完成倒計時功能。在此基礎上,通過傳感器對車流量的情況進行數據采集。將采集的數據以脈沖信號的方式傳送還給控制中心,進行分析比較。根據比較的結果,將具體的車流量轉換成兩車流量大小的比值。根據比值與紅綠燈時長的關系輸出時長控制信號,使交通信號燈可根據車流量改變,提高了交叉口的通行效率。
本論文以現有智能交通燈理論為基礎,突破傳統思路,使問題簡化。將難點不再放在具體的車輛數的獲得,以及車輛數與紅綠燈時間的數學模型的建立。通過傳感器取得兩路口車輛數的比值。因紅綠燈以秒為單位,這在控制中是精度很低的,將比值和秒數對應化數學模型很容易建立,便于實現,使智能交通信號燈從理論進入實踐成為一種可能。并且系統的結構簡單,成本較低。經進一步研究和完善,有望推向實際應用。
本次設計是在翻閱了大量資料,以及在何佳老師的大力幫助和支持下完成的。他在設計中悉心指導,提出了許多寶貴的意見和建議,幫助我們解決了許多難題,對我們的設計起到了至關重要的作用,充分顯示了一位經驗豐富的教師精神之高尚、學識之淵博。
在設計過程中,我受益非淺,不僅使我由對課本上的知識粗淺認識有了更進一步的理解,而且還積累了很多課本以外的知識,開闊了我的視野,豐富了我的內涵,同時還積累了很多寶貴的經驗,增強了獨立思考的能力,當然在這個過程中也發現自己還有許多不足之處,但整個過程對我來說就像一個實際的眼簾,這對我來說無疑是一筆寶貴的財富。四年的大學生活即將結束了,但這并比意味著學習的終止,在今后的工作和學習中,我還要不斷的學習,不斷地豐富和發展自己的知識,不斷地提高和完善自己,不斷地進步。
設計過程是充實的,內容是豐富的,我從中獲得了更深層的知識,同時也鍛煉了我的毅志,培養了我的耐心和細致的工作作風和嚴謹的科學態度,了解了工作的艱辛,這對我以后的工作和學習是大有幫助的。
本次設計是在何老師的耐心指導和其他同學的大力協助下完成的,在此深表感謝。
附錄B:交通燈控制程序(見附件)
#include<reg51.h>
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |