單片機交通燈畢業設計

學識都 人氣:2.73W

在日常生活中,交通燈是一項必不可少的公共設施,可以維護道路的暢通和交通的秩序。如若交通燈發生故障,那麼後果可想而知。因此,交通燈的正常工作就顯得尤爲重要。由於交通燈對於公共安全的重要性,本文基於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口的值,再利用一個循環即可。

六、結語

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