當前位置:文思屋>學習教育>畢業設計>

微控制器交通燈畢業設計

文思屋 人氣:2.75W

日常生活中,交通燈是一項必不可少的公共設施,可以維護道路的暢通和交通的秩序。如若交通燈發生故障,那麼後果可想而知。因此,交通燈的正常工作就顯得尤為重要。由於交通燈對於公共安全的重要性,本文基於51微控制器模擬雙向交通燈的設計。下面是小編整理的微控制器交通燈畢業設計,歡迎來參考!

微控制器交通燈畢業設計

一、交通燈的設計要求

雙向交通燈紅、黃、綠燈對應相同,紅燈5s,黃燈1s,綠燈5s。當有急救車到達時,雙向交通訊號為全紅,以便讓急救車通過。假定急救車通過路口時間為10s,急救車通過後,交通燈恢復中斷前狀態。

二、AT89C51微控制器的中斷系統介紹

計算機系統中止當前的正常工作,轉入處理突發事件,等到突發事件處理完畢之後,再回到原來被中斷的地方,繼續原來的工作,這樣的整個過程稱為中斷。能夠實現這種功能的`部件稱為中斷系統。產生中斷請求的事件稱為中斷源。其中AT89C51微控制器具有5箇中斷源,在本次設計中我們採用的是外部事情中斷請求源0,以及T1計數溢位事情中斷請求這兩個中斷源。

三、AT89C51微控制器的定時/計數器介紹

在微控制器中,通常計數器和定時器設計成一個部件――計數器,當計數脈衝的週期一定時,計數器就作為定時器,定時時間就是計數器計數次數和計數脈衝週期的乘積。在此我們採用的就是計數器的這個定時功能。

四、交通燈的硬體電路搭建

本次設計的硬體電路搭建如圖1。兩路交通燈的6個燈依次接在51微控制器P1口的P1.0到P1.5,另外在微控制器的P3.2口接一個按壓式開關作為救護車到來時的中斷源。

五、交通燈的軟體程式設計設計

中斷部分的程式設計。首先,應將51微控制器中中斷允許暫存器IE的EA位設為1,這代表允許中斷源向CPU申請中斷,即CPU開放中斷。同時將IE的EX0位設為1,這代表允許外中斷0向CPU申請中斷。這樣的話,當救護車來的時候,可以藉此發出中斷請求。接下來,應將定時器控制暫存器TCON的IT0位設為1,這代表外部中斷0的觸發方式選擇為邊沿觸發方式。由於筆者採用了按壓式的開關作為中斷的發出方式,這樣會產生一個脈衝,因此應當選擇邊沿觸發方式。定時部分的程式設計。首先,應將控制暫存器TCON的TR1位置1,啟動定時器T1計數。接下來,應將方式暫存器TMOD的值設為0x01,使得定時器T1工作在方式1,即16位定時/計數方式。然後,由於計時器的定時週期是1s,筆者使用定時/計數器T1精確定時50ms,則20次50ms中斷時,定時時間就是1s。在定時器中斷部分,筆者採用的是查詢方式,即CPU不斷查詢TF1的狀態,當TF1為1時,表示50ms定時已到,在主程式中判斷是否20次50ms定時已到,如是,則時間恰好為1s。同時TF1位軟體清0。根據公式,當定時時間為50ms時,計數初值應為15536,換算成十六進位制是3CB0H,即計數器T1中TL1的初值為B0H;TH0的初值為3CH。當救護車到來時,雙向交通燈置紅,即將雙向交通燈的紅燈所對應的P1口位置1,其他位清0即可。時間長短的設定方法同上。最後,由於雙向交通燈紅燈5s,黃燈1s,綠燈5s,共11個狀態,我們利用switch語句為這11個狀態分別設定相應P1口的值,再利用一個迴圈即可。

六、結語

在機動車數量激增的今天,車輛擁堵、交通崩潰的現象還是時有發生的。其原因多半是交通燈時長設定的不合理,抑或無法根據一天之內不同時間的車流狀況,對交通燈的狀態進行調整。因此,合理地設計交通系統,同時對於交通燈的適當除錯無疑將會派上很大用場。