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

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

圖4-1 南北通行圖

圖4-2 東西通行圖

圖4-3 緊急通行狀態(tài)圖
輕按【緊急】按鈕后,表示發(fā)生緊急情況需進(jìn)行應(yīng)急處理,交通信號(hào)燈南北方向與東西方向強(qiáng)制禁止行使(紅燈亮),每個(gè)方向的數(shù)碼管倒計(jì)時(shí)一直顯示--,直到再次按下【緊急】按鈕取消緊急情況。

圖4-4 轉(zhuǎn)換后南北通車圖

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

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

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

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

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

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

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

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

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