題目: | 單片機原理及應用課程設計 |
——交通信號燈模擬控制系統設計 |
課程名稱 | 單片機原理及應用課程設計 |
姓名: | 黃新程 |
學號: | 201506100013 |
學院: | 信息技術與工程學院 |
專業班級: | 物聯網工程1501 |
指導教師: | 梁建軍 |
6月1日
交通信號燈維護城市交通安全,使城市交通有序地、快速地運行的一種工具。本文采用了一種基于單片機的交通信號燈模擬控制系統的設計方案,實現模擬交通燈運行的例子。該系統模擬現實生活中十字路口的通行指示,路燈倒計時、一道有車而另一道無車時,使有車車道放行和緊急車輛通過等功能。本系統中采用STC89C52芯片為中心器件來設計交通燈控制電路,結合兩位八段共陽極數碼管顯示倒計時時間的數碼管電路,交通燈顯示電路,晶振電路,復位電路以及按鍵電路等模塊組成。通過軟件編程、焊接電路與硬件調試,實現紅、黃、綠燈電亮時間以及兩位數碼管顯示倒計時,三種顏色燈交替點亮以及緊急情況下的處理功能。
下面結合上學期的單片機原理的課程知識來完成這一個課程設計。本系統是一個實際對交通信號燈模仿的案例,采用標準的軟件開發過程,包括硬件系統的設計、軟件系統的設計、系統調試結果等步驟。
目錄

圖3-1 交通燈程序總流程圖
本設計采用C語言進行軟件編程。文件中包含了定時器初始化函數Timer1Init()、方向切換函數changeEWpass()和changeNSpass()、緊急通行函數TrafficStop()等子程序塊;主函數通過直接或間接的調用各個子程序塊,使整個交通信號燈控制系統實現點亮紅、黃、綠燈以及雙位數碼管顯示倒計時,緊急情況下的交通緊急處理功能。

圖4-1 南北通行圖

圖4-2 東西通行圖

圖4-3 緊急通行狀態圖
輕按【緊急】按鈕后,表示發生緊急情況需進行應急處理,交通信號燈南北方向與東西方向強制禁止行使(紅燈亮),每個方向的數碼管倒計時一直顯示--,直到再次按下【緊急】按鈕取消緊急情況。

圖4-4 轉換后南北通車圖

圖4-5 轉換后東西通車圖
輕按【交換】按鈕后,表示發生忙等情況需進行處理,交通信號燈原為南北方向通行的將會轉換成東西方向通行,南北方向將會被禁止行使,數碼管倒計時將會轉換成自然轉變的倒計時時間,再次按下【交換】按鈕將會再次進行忙等情況處理。
通過這次課程設計,讓我對單片機的應用有了更為深刻的了解。單片機最大的優勢是體積小,低功耗,控制能力強,擴展靈活,微型化。本論文對用51單片機實現的交通信號燈模擬控制系統設計作了詳細的介紹。
一開始的我,對51單片機只是一知半解,而對于自己能夠自己焊出一個單片機系統的能力來說,自己一開始更是不敢相信,通過在網上搜索的大量的資料,以及自己在之前已經接觸過焊接的事物來說,這門交通信號燈模擬控制系統設計更是讓我躍躍欲試,根據自己的經驗,自己買原件,自己焊接,自己寫程序,從頭到位,一氣呵成。雖然一開始自己寫的代碼有很多漏洞,但是經過自己的慢慢調試與完善,一個較為可觀的成品出爐了。
對于一個課程,不能只是單調的聽課完成作業,還要主動去學習課外的專業知識,到網上閱覽大量的資料,以幫助學習和擴充自己的知識面。作為一個學計算機的學生,我們更加需要通過大量的實踐,使自己得到更多的提升,此次實驗不但提高了我們實踐的能力和理論水平,而且對于我們認識掌握各種操作技巧具有重大意義,使我們的綜合素質得到了很大的提高,它對我在以后的學習和生活中將會起到不可估量的作用。
交通信號燈模擬控制系統設計
設計要求:用51單片機設計一個交通信號燈模擬控制系統,晶振采用12MHz。
具體要求如下:
(1)正常情況下,A、B道(A、B道交叉組成十字路口,A是主道,B是支道)輪流放行,A道綠燈1min(其中10s用于黃燈),B道綠燈放行30s(其中5s用于黃燈)。
(2)一道有車而另一道無車時,使有車車道放行(用兩個按鍵開關控制)。
(3)有緊急車輛通過時,A、B道均為紅燈(用按鍵開關控制)。
(4)要求由數碼管顯示紅綠燈倒計時時間。
序號 | 元件名稱 | 型號 | 數量/個 | 用途 |
1 | 單片機 | 89C52 | 1 | 控制核心 |
2 | 晶振 | 12MHZ | 1 | 晶振電路 |
3 | 電容 | 30pF | 2 | 晶振電路 |
4 | 電解電容 | 10uF | 1 | 復位電路 |
5 | 電阻 | 10K | 1 | 復位電路 |
6 | 發光二極管 | LED | 12 | 紅、黃、綠燈 |
7 | USB轉TTL | 1 | 接入電源 | |
8 | 電阻 | 470Ω | 6 | LED |
9 | 電阻 | 470Ω | 7 | 數碼管電路 |
10 | 電阻 | 1KΩ | 4 | 數碼管驅動 |
11 | 數碼管 | GC-3261BS | 2 | 顯示電路 |
12 | 按鍵 | 4 | 按鍵電路 | |
13 | 三極管PNP | 8550 | 4 | 數碼管驅動電路 |
14 | 自鎖開關 | 1 | 控制電路 |
STC89C52RC是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有 8K字節系統可編程Flash存儲器。STC89C52使用經典的MCS-51內核,但做了很多的改進使得芯片具有傳統51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統可編程Flash,使得STC89C52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。
STC89C52RC是STC89系列單片機中應用較為廣泛的一種型號,內部的8KB存儲器用于存放可編程控制器監控程序。
STC89C52RC單片機的40條引腳按功能來分,可以分為3部分,電源及時鐘引腳、控制引腳和輸入/輸出引腳。

STC89C52單片機引腳功能介紹:
(見附件)
P3口各個位的第二功能 | ||
P3口的位 | 第二功能 | 說明 |
P3.0 | RXD | 串行數據接收口 |
P3.1 | TXD | 串行數據發射口 |
P3.2 | INT0 | 外部中斷0輸入 |
P3.3 | INT1 | 外部中斷1輸入 |
P3.4 | T0 | 計數器0計數輸入 |
P3.5 | T1 | 計數器1計數輸入 |
P3.6 | WR | 外部RAM寫信號 |
P3.7 | RD | 外部RAM讀信號 |

圖2-2 STC89C52內部結構圖
復位電路的作用
在復位過程中,控制CPU的復位狀態:這段時間內讓CPU保持復位狀態,而不是一上電或剛復位完畢就工作,防止CPU發出錯誤的指令、執行錯誤操作,也可以提高電磁兼容性能。
基本的復位方式
單片機在啟動時都需要復位,以使CPU及系統各部件處于確定的初始狀態,并從初態開始工作。89系列單片機的復位信號是從RST引腳輸入到芯片內的施密特觸發器中的。當系統處于正常工作狀態時,且振蕩器穩定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應并將系統復位。本系統中單片機系統的復位方式為手動按鈕復位。
手動按鈕復位
手動按鈕復位需要人為在復位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復位的電路如圖所示。由于人的動作再快也會使按鈕保持接通達數十毫秒,所以,完全能夠滿足復位的時間要求。

圖2-3 復位電路圖
在MCS - 51單片機片內有一個高增益的反相放大器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,由該放大器構成的振蕩電路和時鐘電路一起構成了單片機的時鐘方式。
在內部方式時鐘電路中,必須在XTAL1和XTAL2引腳兩端跨接石英晶體振蕩器和兩個微調電容構成振蕩電路,通常C1和C2一般取30pF,晶振的頻率取值在1.2MHz~12MHz之間。對于外接時鐘電路,要求XTAL1接地,XTAL2腳接外部時鐘,對于外部時鐘信號并無特殊要求,只要保證一定的脈沖寬度,時鐘頻率低于12MHz即可。本系統采用的是12MHz石英晶振。
晶體振蕩器的振蕩信號從XTAL2端送入內部時鐘電路,它將該振蕩信號二分頻,產生一個兩相時鐘信號P1和P2供單片機使用。時鐘信號的周期稱為狀態時間S,它是振蕩周期的2倍,P1信號在每個狀態的前半周期有效,在每個狀態的后半周期P2信號有效。CPU就是以兩相時鐘P1和P2為基本節拍協調單片機各部分有效工作的。

圖2-4 時鐘電路圖
LED燈顯示電路:
LED燈電路由6個LED燈(2個紅LED燈,兩個黃LED燈,兩個綠LED燈)與6個阻值為470歐姆的電阻組成,LED的正極與Vcc+相連,LED的負極分別與電阻串聯再連接到STC89C52芯片的P1端口(P0.0—P0.5)。

2-5 LED燈顯示電路圖
數碼管顯示電路:
數碼管普遍地用于直觀地顯示數字系統的運行狀態和工作數據,點亮數碼管的方法有靜態和動態兩種,本系統中采用的是動態數碼管顯示。動態顯示的特點是將所有位數碼管的段選線并聯在一起,由位選線控制是哪一位數碼管有效.這樣一來,就沒有必要每一位數碼管配上一個鎖存器,從而大大地簡化了硬件電路。選亮數碼管采用動態掃描顯示,所謂動態掃描顯示即輪流向各位數碼管送出字形碼和相應的位選,利用數碼管的余輝和人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。動態顯示的亮度比靜態顯示要差一些,所以在選擇限流電阻時應略小于靜態顯示電路中的。

2-6 數碼管引腳圖
本系統中采用的數碼是二位八段共陽數碼管,數碼管a~f引腳與分別于阻值為470歐姆的上拉電阻串聯,再連接到P0端口(P0.0—P0.6),其中dp引腳不作連線(不需要用到dp)。兩個位選引腳1,引腳2分別與集電極相連,P2端口(P2.0—P2.3)串聯一個阻值為1k的電阻再連接到8550三極管基極端,4個8550三極管的發射端接在電源Vcc上,組成兩個方向的二位數碼管顯示電路。

2-7 數碼管顯示電路圖
為了實現此功能,本系統利用到了51單片機中的P3.1端口。利用一個手動按鈕開關接至單片機的P3.1端口,同時在軟件設計時將其設定為每次都進行按鍵掃描,當其按下時,四方全為紅燈,數碼管只亮一根橫線,當緊急情況過了之后,再次按下該按鍵回到原來的位置繼續執行未完成的程序。
為了實現此功能,本系統再利用一個手動按鈕接至單片機中的P3.2端口。當其按下時,如果是東西方向道路是紅燈,而南北方向道路是綠燈,則將其置為東西是綠燈,南北是紅燈;如果是東西方向道路是綠燈,而南北方向道路是紅燈,則將其置為東西是紅燈,南北是綠燈。兩種情況都是執行完后,回到正常狀態繼續執行。

2-8 交通燈總電路圖
總體接線說明:
[1]李正安,李登嘯. MCS-51單片機程序設計技巧舉例[J]. 自動化儀表,1991,(08):30-32.
[2]胡漢才. 單片機原理及其接口技術[M]. 清華大學出版社, 2010.
[3]樓然苗 ,李光飛. MCS-51系列單片機設計實例[J]. 單片機與嵌入式系統應用,2003,(02):82.
廣州商學院課程論文(設計)答辯記錄表
答辯時間 | 2017年6月1日 | 答辯地點 | 六教202 | |
學生姓名 | 黃新程 | 指導教師 | 梁建軍 | |
題 目 | 交通信號燈模擬控制系統設計 | 字數 | ||
指導老師對學生課程論文(設計)的陳述提出的問題及學生的回答情況:
答:忙等按鈕按下之后,交通燈通行方向會立即轉變,轉變后的時間和自然轉變的時間一樣。 | ||||
答:50ms。
答:是晶振的頻率分之一,就是通過晶振的頻率算的。 | ||||
答:count++的作用只是作為一個開關來用的,當count%2=1時是緊急通車狀態,當count%2=0時是正常運行狀態。 | ||||
指導老師簽名: | ||||
指導老師評語:(評語50字左右,對論文選題、資料收集與處理、論證水平、寫作能力和規范等進行評定。) 成績評定: 指導教師簽名: 年 月 日 |
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |