標題: 基于51單片機控制的簡易交通燈設計(論文) [打印本頁]

作者: 淡定孤鴻    時間: 2018-3-16 13:51
標題: 基于51單片機控制的簡易交通燈設計(論文)
洛陽理工學院項目設計說明書
題目:基于 51 單片機控制的簡易交通燈設計
二級學院: 電氣工程與自動化學院              
2018 年 03 月

摘要
近年來伴隨科技的迅猛發(fā)展,單片機應用也在不斷地深入,同時使得傳統(tǒng)的控制 檢測技術日新月異。單片機常常作為一個核心部件在實時檢測與自動控制單片機的應 用系統(tǒng)里運用,應用單片機如果僅有單片機方面的知識是不夠的,還需要根據(jù)具體的 硬件結構來實現(xiàn)軟硬件的結合,并加以完善。

十字路口穿梭的車輛,熙攘的行人,車在行車道行駛,人在行人道步行,有條不 紊。這就是靠信號交通燈智能控制系統(tǒng)來實現(xiàn)良好的秩序,信號交通燈的控制方式是 非常多的。該系統(tǒng)是采用 MSC-51 系列的單片機 STC89C52 作為核心器件,實現(xiàn)了通過 信號燈對路面狀況的智能控制。此外還設計有紅外遙控模塊,從一定程度上解決了交 通路口堵塞、車輛停車等待時間不合理、急車闖紅燈等問題。并且在 PROTEUS 軟件中 做了仿真調試,驗證了方案的可行性。本系統(tǒng)具有結構簡單、可靠性高、成本低、實 時性好、安裝維護方便等優(yōu)點,有廣泛的應用前景。


目錄
摘要 Abstract 目錄 I
第 1 章 交通燈出現(xiàn)的相關背景 1
11 交通燈的歷史 1
12 交通燈設計的意義 1
13 交通管理的方案設計 2
131 總體設計方案 2
132 控制模塊方案 2
133 電源模塊方案 2
14 論文章節(jié)安排 3
15 本章小結3
第 2 章 單片機控制的交通系統(tǒng)方案 4
21 單片機交通控制系統(tǒng)通行方案 4
22 STC89C52 單片機簡介 5
23 PROTEUS 軟件簡介 8
24 本章小結8
第 3 章 硬件設計 9
31 系統(tǒng)硬件設計 9
32 單片機最小系統(tǒng) 9
321 時鐘電路 10
322 復位電路 10
323 顯示電路 11
33 紅外遙控設計 11
331 單片機紅外遙控發(fā)射器設計原理 13
332 單片機紅外遙控接收器設計原理 13
34 交通燈電路圖 14
341 交通燈電路圖 14
342 電源電路設計 15
343 按鍵電路設計 15
35 本章小結16
第 4 章 軟件設計 17
41 程序主體設計流程 17
42 按鍵設計 17
43 定時器的參數(shù)設計18
44 中斷原理20
45 狀態(tài)燈顯示及判斷 22
46 倒計時顯示 23
47 本章小結23
第 5 章              仿真設計 24
51 PROTEUS 仿真 24
52 硬件實物演示圖片及簡單介紹 25

洛陽理工學院電氣工程與自動化學院項目設計說明書

53 本章小結26
附錄 27


第 1 章 交通燈出現(xiàn)的相關背景

11 交通燈的歷史

在我們生活中,各個道口上紅綠燈隨處可見,是疏導交通車輛最常見和最有效的 手段。通過查找資料能夠發(fā)現(xiàn)這一科技從十九世紀就開始出現(xiàn)了。
時間追溯到 1858 年,英國倫敦的各個重要街頭就安裝了紅色和藍色組成信號燈, 它是以燃煤氣為光源的扳手式信號燈,一開始是用作指揮馬車的行駛,這應該是世界 上最早記載的交通燈。到了 1868 年,英國有位機械方面的工程師叫納伊特,他在倫敦 著名的議會大廈前面的廣場上,安裝了用紅色和綠色玻璃提燈組成的旋轉紅綠燈,這 個是世上最初出現(xiàn)的煤氣紅綠燈。那時候紅色玻璃燈意思是“!,綠色的玻璃燈意 思是“警告”。不幸的是 1869 年初,由于煤氣燈爆炸,使警察受傷,最后該交通燈被 取消。
后來在美國出現(xiàn)了靠電氣啟動的紅綠燈,這種紅綠燈由紅綠黃三色圓形的投光器 組成,并在 1914 年始安裝于紐約市 5 號大街的一座高塔上。那時的紅燈亮表示“停止”, 綠燈亮表示“通行”。 隨著各種交通工具的發(fā)展和交通指揮的需要,第一盞名副其實 的三色燈(紅、黃、綠三種標志)于 1918 年誕生。它是三色圓形四面投影器,被安裝在 紐約市五號街的一座高塔上,由于它的誕生,使城市交通大為改善。
12 交通燈設計的意義

電子技術飛速發(fā)展的今天,現(xiàn)代電子技術與機械的結合,制造出來一批優(yōu)秀的先 進電子產品。單片機的發(fā)展也是非常迅猛。因為單片機結構形式的特殊性,使得它在 一些應用領域上承擔了許多通用的微型計算機無法完成的使命。單片機集成度高,體 積較小,可靠性高,控制能力強,所需電壓低,是一種高性能,且價格低廉的處理器。 因此單片機的運用十分廣泛,在各行各業(yè)中隨處可見。
隨著人們生活水平的提高,城市里機動車數(shù)量也是急劇增長,很多的大城市例如 上海、南京、北京等地在上下班時段堵車情況相當嚴重,交通出現(xiàn)超負荷運作的情況, 因而引發(fā)了交通堵塞、擁擠,交通事故頻繁發(fā)生諸如此類的問題。紅綠交通燈是城市 里最主要的交通指揮系統(tǒng),和老百姓的日常生活出行息息相關,交通燈不僅影響城市 交通進行的秩序,也會影響到人們的出行的安全與方便。因此設計一個靈活穩(wěn)定的交 通燈控制系統(tǒng)非常有必要,F(xiàn)實生活中有許多交通燈基本都是按照一個時間間隔來轉 換,而本設計中交通燈可根據(jù)上下班高峰期或平時還有深夜通過紅外接收系統(tǒng)遙控紅 綠燈的切換時間,假設上下班高峰期紅燈轉換時間縮短設置為40秒,而平時等待時間 設置為90秒,如果是深夜,就取消紅綠燈的轉換,只亮黃燈警示來往車輛注意行車安 全。這種措施可以緩解人們在上下班時間,因為紅燈設置等待時間太久,趕時間而闖 紅燈或者在一個路口連吃幾個紅燈的現(xiàn)象, 一定程度上緩解了交通擁擠的現(xiàn)象,同時方便了深夜行車。
13 交通管理的方案設計

131 總體設計方案

系統(tǒng)主要分為四個模塊,第一模塊是控制模塊,主要負責整個系統(tǒng)的控制和運算, 從而使各模塊正常工作,第二個模塊式顯示模塊包括 LED 燈和數(shù)碼管;第三是電源模 塊,給各模塊提供電源,讓各模塊工作;第四是紅外控制模塊,用于遙控交通燈的工 作模式轉換。

132 控制模塊方案

方案一:由計數(shù)器 74LS161 級聯(lián)組成,配合譯碼器和秒脈沖信號發(fā)生器等器件組 成交通燈系統(tǒng),整個系統(tǒng)簡單,控制簡單,調試容易等優(yōu)點。
方案二:采用單片機 STC89C52 作為控制器。單片機運算能力強,軟件編程靈活, 自由度大。在指令系統(tǒng)、硬件結構和片內資源上與標準 8052 單片機完全兼容,使用時 容易掌握;采用 STC89C52 單片機比較穩(wěn)定可靠、應用廣泛、通用性強。
方案比較:采用方案一來實現(xiàn)十字路口交通燈控制系統(tǒng)非常方便,電路結構簡單, 控制單一,但整個系統(tǒng)性能不是很高,倒計時不是非常精確,如果要求系統(tǒng)能設置不 同工作時間不容易,因而對于完成題目較困難,而方案二完全能實現(xiàn)設計要求,容易 掌握,利于編程,易控制,I/O 接口很多,易于擴展外圍電路,價格便宜,故選擇方案 二。

133 電源模塊方案

方案一:采用獨立穩(wěn)壓電源。這個方案比較穩(wěn)定,擁有很多成熟可靠的電路可供 選擇;但是各部分模塊都采用的是獨立電源,這樣系統(tǒng)結構會很復雜,并且容易影響 到該電路的電平。
方案二:采用電池提供紅外遙控的簡易電源,由于本設計不需要高功率電源,所 以采用三端穩(wěn)壓器來提供系統(tǒng)的主要電源供給。該方案的系統(tǒng)簡明扼要,而且節(jié)約成 本,雖然輸出功率不高,但是比較穩(wěn)定符合設計要求。
綜上所述,選擇第二種方案。
134 顯示模塊方案

1倒計時顯示方案

該系統(tǒng)要求完成倒計時功能。只需顯示數(shù)字,基于上述原因,我考慮了兩種方案。
方案一:采用全數(shù)碼管顯示。這種方案只顯示有限的符號和數(shù)碼字符,簡單,方 便。
方案二:采用點陣式 LED 顯示。這種方案雖然功能強大,并可方便的顯示各種英


第1章 交通燈出現(xiàn)的相關背景


文字符,漢字,圖形等,但實現(xiàn)復雜,且須完成大量的軟件工作。
綜上所述,選擇第一種方案,四個路口采用兩個二位共陰極數(shù)碼管。

2狀態(tài)燈顯示
該系統(tǒng)需要完成狀態(tài)燈顯示的功能。由于要求簡單,我們把各個路口的紅燈、綠 燈和黃燈設成直行和左拐兩個通行方式所共有,也就是說,一個路口只需三個狀態(tài)燈, 一個共有的綠燈,一個共有的紅燈,一個共有的黃燈。南北、東西這兩個主要干道相 交于十字路口,每個干道都有一組紅、黃、綠三種顏色組成的指示燈,用來指揮行人 和車輛的安全通行。紅燈亮禁止通行,綠燈亮則允許通行,黃燈開始閃亮就是提醒人 們注意紅、綠燈的狀態(tài)馬上會轉換,并且黃燈點亮的時間為南北和東西兩方向干道的 共同停車時間。

上電的時候南北方向的紅燈亮 90 秒;東西方向的綠燈亮 90 秒,黃燈秒閃 3 秒。 再接下來東西方向的紅燈亮 90 秒;南北方向的綠燈亮 90 秒,黃燈秒閃 3 秒。如此循 環(huán)。由軟件設置交通燈的初始時間,南北方向和東西方向各 90 秒,黃燈秒閃 3 秒,數(shù) 碼管的段碼用不同的口線,東西方向的是用的 P3 口,南北的使用 P1 口,用單片機來 控制各種信號燈的燃亮時間,通過單片機的 P2 口控制。本設計里還可以通過按鍵開關 調整等待時長,也增加了特殊的深夜模式,為夜間行車提供了方便。
14 論文章節(jié)安排

論文大致分為六個章節(jié):
1緒論,主要寫一些課題背景意義,相關概念簡介方案選擇等;
2設計中的相關方案設計簡介,以及涉及到的 STC89C52 單片機以及 PROTEUS 仿真 軟件的介紹;
3硬件設計,圍繞框圖介紹設計的內容,并設計各模塊的電路圖加以解釋說明;
4軟件設計,圍繞子程序介紹各部分的功能;
5軟件仿真及硬件實物演示圖片;
6總結與展望。
15 本章小結

這一章主要介紹了與課題相關的交通燈的來源背景,設計交通燈的意義,還有設 計用到的方案和單片機的簡介與發(fā)展,在本章的最后用概括的語言敘述了論文的大致結構。

第 2 章 單片機控制的交通系統(tǒng)方案
21 單片機交通控制系統(tǒng)通行方案
系統(tǒng)的主控制器用的是 STC89C52單片機,能夠協(xié)調控制其余模塊工作;紅外接收系 統(tǒng)以及按鍵可以切換系統(tǒng)的工作模式:正常模式,上下班高峰模式,還有特殊深夜模 式。系統(tǒng)在正常模式時,紅燈等待時間設為90秒;上下班高峰模式下,紅燈的等待時間 可以設為40秒,特殊深夜模式時則無需等待時間,只有黃燈閃爍提醒。交通燈系統(tǒng)的 顯示模塊可以指引車輛的通行,晶體數(shù)碼管可以顯示交通紅綠燈轉換的等待時間,車 輛及行人可以看剩余判斷自己是否能夠安全通過,如果不能則等待下一次綠燈。下面 是正常模式時的通行方案設計:
設在十字路口,分為東西向和南北向,在任意時刻只有一個方向通行,另一方向 禁行,持續(xù)一定時間,經過短暫的過渡時間,將通行禁行方向對換。其具體狀態(tài)如圖
2-1所示。說明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開始變換,直至狀態(tài)6然 后循環(huán)至狀1,周而復始,直至狀態(tài)6然后循環(huán)至狀態(tài)1,通過具體的路口交通燈狀態(tài)的 演示分析我們可以把這四個狀態(tài)歸納如下,正常模式交通狀態(tài)如圖2-1所示:

東西方向紅燈滅,同時綠燈亮,南北方向黃燈滅,同時紅燈亮,倒計時 90 秒。此狀態(tài)下,東西向禁止通行,南北向允許通行。 東西方向綠燈滅,同時黃燈亮,南北方向紅燈亮,倒計時 3 秒。此狀態(tài)下,除了已經正在通行中的其他所以車輛都需等待狀態(tài)轉換。
南北方向紅燈滅,同時綠燈亮,東西方向黃燈滅,同時紅燈亮,倒計時 90 秒。此 狀態(tài)下,東西向允許通行,南北向禁止通行。
南北方向綠燈滅,同時黃燈亮,東西方向紅燈亮,倒計時 3 秒。此狀態(tài)下,除了 已經正在通行中的其他所以車輛都需等待狀態(tài)轉換。
如果是上下班高峰模式時,則紅燈的等待時間設為 40 秒,其余不變,因此不多說明。
用圖表表示燈狀態(tài)和行止狀態(tài)的關系如表 2-1:

東西南北四個路口均有紅綠黃 3 個發(fā)光二極管和數(shù)碼顯示管 2 個,在任一個路口,
遇紅燈禁止通行,轉綠燈允許通行,之后黃燈亮警告行止狀態(tài)將變換。狀態(tài)及紅綠燈 狀態(tài)如表 2-1 所示。說明:0 表示滅,1 表示亮。
2.2 STC89C52RC 單片機簡介

STC89C52 是 STC89 系列單片機中應用較為廣泛的一種型號,芯片內部有 8KB 的閃 速存儲器 Flash ROM。內部的 8KB 存儲器用于存放可編程控制器監(jiān)控程序。
STC89C52 單片機的 40 條引腳按功能來分,可以分為 3 部分,電源及時鐘引腳、控 制引腳和輸入/輸出引腳。
STC89C52 單片機的引腳如圖 2-2 所示:

第 3 章 硬件設計
本設計主要由 STC89C52單片機(控制器)、交通燈的顯示模塊、紅外接收模塊、數(shù)
碼管、按鍵等組成。選用設備:9*15萬能板1個,STC89C52單片機1片,共陰極的七段 數(shù)碼管4個,紅外接收器,電容電阻雙向晶閘管若干,紅、黃、綠 LED 燈各4個,開關 鍵盤、連線等。
系統(tǒng)總框圖如圖3-1所示。

圖 3-1 系統(tǒng)總框圖
本設計的控制器選用 STC89C52單片機,控制系統(tǒng)的正常運行。本系統(tǒng)有3種運 行模式,普通模式和上下班高峰模式,深夜模式。可通過按鍵或紅外遙控對系統(tǒng)運行模 式進行切換。按鍵切換適于值班人員使用,而紅外遙控切換適于交警巡查時使用,方 便快捷。現(xiàn)簡要介紹該系統(tǒng)工作原理:STC89C52單片機通過鎖存器控制數(shù)碼管的紅綠 燈等待時間,東南西北的數(shù)碼管顯示時間相同。P1口的管腳2~7控制交通燈顯示。P1口 的2~4管腳控制東西兩道的交通燈顯示,而 P1口的5~7管腳控制南北道的兩組交通燈的 顯示,這兩組紅綠燈同樣通過單片機控制顯示相同顏色的指示燈并且切換時間相同。 P3口的三個管腳接按鍵,該按鍵可控制系統(tǒng)的運行模式。INT0和 INT1兩個管腳接紅外 的發(fā)射模塊,復位管腳接紅外接收模塊,通過該接口可以進行紅外線遙控切換系統(tǒng)運 行的模式。
3.2 單片機最小系統(tǒng)

MCS-51 系列單片機中的 8031、8051 及 8751 都采用的是 40Pin 封裝雙列的直接型 DIP 結構,下圖是單片機最小系統(tǒng)的引腳配置,在 40 個引腳里,有正極電源線和接地 線兩根,外面還配有石英振蕩器的兩根時鐘線,4 組 8 位一共是 32 個 I/O 口,中斷口 與 P3 口的連線復用。單片機最小系統(tǒng)如圖 3-2 所示。

3.2.1 時鐘電路

XTAL1 為片內振蕩器反相放大器的一個輸入端,XTAL2 為輸出端,當外部振蕩器 振蕩時,外部振蕩的信號直接加載到 XTAL1 上,XTAL2 為懸空狀態(tài)。內部方式振蕩時, 發(fā)生器對振蕩脈沖進行二分頻,晶振為 12MHz,時鐘頻率為 6MHz。晶振頻率可在
1MHz-24MHz 內隨便選擇。電容大小在 30PF 左右。系統(tǒng)的時鐘電路設計采用的是內部方 式,就是用芯片內自帶的一個振蕩電路。STC89C52 單片機中有一個高增益的反相放大 器可構成振蕩器。兩個引腳 XTAL1、XTAL2 分別為該放大器的輸入、輸出端。該放大器 和片外晶體諧振器構成了自激振蕩器。外接的晶體諧振器還有電容 C2 和 C3 組成了一 個并聯(lián)的諧振電路,接至放大器的一個反饋回路。雖然對于外接電容取值沒有十分嚴 格的要求,但是電容的取值會影響震蕩器的頻率、震蕩器的穩(wěn)定程度、起振的速度以 及溫度的穩(wěn)定程度。所以,該系統(tǒng)電路的晶體振蕩器的值是 12MHz,電容應最好選擇陶 瓷電容,其電容值大概是 22μF。焊接刷電路板要注意,把晶體振蕩器和電容應安裝在 單片機芯片的附近,這樣可以有效的減少寄生電容,從而更好地使震蕩器穩(wěn)定工作。

3.2.2 復位電路

振蕩器在運行時,有兩個機器運行周期(即 24 個振蕩周期)以上的高電平出現(xiàn) 在這個引腳的時候,單片機將復位,這個引腳如果保持高電平,那么芯片便會循環(huán)復 位。復位后 P0-P3 口都置 1,引腳呈高電平,而程序計數(shù)器以及特殊功能寄存器 SFR都全部清零。當復位腳從高電平變成低電平的時候,芯片為 ROM 的 00H 處開始運行程
序。外部復位電路能夠實現(xiàn)電路的復位,片內的復位電路由復位引腳 RST 經過斯密特 觸發(fā)器和外部復位電路來連接,斯密特觸發(fā)器可以抑制噪聲,在輸出的每個機器周期 時復位電路進行采樣。復位電路一般采用上電復位和按鈕開關復位的方式,該電路系 統(tǒng)采用的是上電與按鈕復位電路。時鐘頻率為 6MHz 時,C 取 22μF,Rs 約為 200Ω, Rk 約為 1K。復位操作不會對內部 RAM 有所影響。

3.2.3 顯示電路

顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運行狀態(tài)和工作數(shù)據(jù),按照材料及產品 工藝,單片機應用系統(tǒng)中常用的顯示器有: 發(fā)光二極管 LED 顯示器、液晶 LCD 顯示器、 CRT 顯示器等。LED 數(shù)碼管是現(xiàn)在最常用的顯示器之一。發(fā)光二極管(LED)由特殊的 半導體材料砷化鎵、磷砷化鎵等制成,可以單獨使用,也可以組裝成分段式或點陣式 LED 顯示器件(半導體顯示器)。分段式顯示器(LED 數(shù)碼管)由 7 條線段圍成 8 字型, 每一段包含一個發(fā)光二極管。外加正向電壓時二極管導通,發(fā)出清晰的光。只要按規(guī) 律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號。LED 數(shù)碼管有共陽、共陰之分。 本系統(tǒng)采用的是兩位共陰極數(shù)碼管。兩位共陰極數(shù)碼管引腳圖如圖 3-3 所示。

圖 3-3 兩位共陰極數(shù)碼管引腳圖
3.3 紅外遙控設計

隨著城市汽車數(shù)量的增加,市內交通道口的交通流量迅速增加,這對交通指揮的 實時、高效提出了更高的要求,原有的按固定時間放行的紅綠燈在交通繁忙時段已不 能適應交通指揮的要求,通常需要人工根據(jù)實際交通進行干預,目前采用的方式是直 接操作控制柜內相應開關進行控制,這對觀察車流情況不利,并且雨天也不安全。本 實用新型根據(jù)紅外線遙控原理設計了紅外線輔助控制裝置,在紅綠燈信號控制柜中安 裝本裝置,使用人員就可以在一定距離范圍內進行遙控操作,使用靈活,安全可靠, 很大程度上解決了上下班高峰時期的交通堵塞問題,方便了上班族的出行。紅外線遙 控原理圖如圖 3-4 所示。





紅外遙控系統(tǒng)是由發(fā)射部分與接收部分構成,控制是通過專用的編碼/解碼的集成 電路進行的。紅外接收系統(tǒng)的原理:內置的接收管先將紅外線發(fā)射管的光信號轉為電 信號,該信號通過 IC 內部放大器放大,再通過自動增益控制、帶通濾波、解調變、 波形整形,最后還原成遙控器發(fā)射的初始編碼,通過接收頭的信號輸出腳輸入至電器 上的編碼來識別電路。
當然紅外遙控需要一個遙控器,讓交通管理人員可以進行遠程遙控,遙控器選用 高性能的紅外線編碼發(fā)射器,在整個遙控系統(tǒng)中采用單片機進行接收解碼,可以輸出 多路控制信號。紅外遙控運用示意圖如圖3-5所示。

3.3.1 單片機紅外遙控發(fā)射器設計原理

單片機的紅外遙控發(fā)射器是由電源、單片機、行列式鍵盤、控制電路、紅外發(fā)射 電路。

單片機待機時保持功耗低的狀態(tài),使用空閑的節(jié)電工作模式。在按下遙控裝置的 按鍵時,外部中斷1就立即產生了中斷請求,讓單片機立馬切換為工作狀態(tài),確認下鍵 盤按下的按鍵,在按鍵被確認以后,控制的軟件就會啟動定時器 T0、T1和 T1,用來作 為發(fā)射時間的控制器,紅外線發(fā)射頻率控制器為 T0,T0定時溢出時,,紅外管接口電平 通過中斷程序反轉一次,定時器的初始值設定不同,不同發(fā)射頻率就會被傳輸?shù)捷敵?口和輸入口。在定時 T1溢出時,中斷程序就會關閉 T0定時器,而紅外線發(fā)射也隨之停 止。其原理框圖如圖3-6。


圖3-6 紅外發(fā)射電路框圖
圖3-7 紅外接收電路框圖
3.3.2 單片機紅外遙控接收器設計原理


單片機、紅外遙控接收電路、狀態(tài)指示電路、控制電路以及單片機的一些外圍電
路組成單片機紅外遙控接收器。

使用單片機中的 T0來做紅外脈沖計數(shù)器,T1來做計數(shù)時間控制器。接收管收到收 個紅外脈沖后,就觸發(fā)外部中斷1,計數(shù)器 T0、定時器 T1就開始工作。當定時溢出時, 計數(shù)器 T0被中斷程序隨之關閉,通過判定所讀入的計數(shù)數(shù)值,來定下將操作的對象(遙 控按鍵)對它進行相對的操作,控制電路來控制負載的狀態(tài)。下圖3-7為紅外遙控接收 器設計原理框圖。

3.4 交通燈電路圖
3.4.1 交通燈電路圖
交通燈電路如圖 3-8 所示。
圖 3-8 交通燈電路圖

圖中大部分連線采用總線形式。共四個二位陰極數(shù)碼管,這四個數(shù)碼管分別用

來顯示四個路口的倒計時,數(shù)碼管的陽極都接到 STC89C52 的 P0 口,陰極接到 P2 口; 共 12 個發(fā)光二極管,其中 4 個綠色發(fā)光二極管,4個紅色發(fā)光二極管,4 個黃色發(fā)光 二極管,四個路口每個路口各有一個紅(禁行)、一個黃(警告)發(fā)光二極管,一個綠 色發(fā)光二極管(通行),四個人行道,每個人行道兩邊各有一紅、黃、綠發(fā)光二極管, 另外一個按鍵按鈕用于繁忙模式和夜間模式的轉換,其中四個路口的二極管接到 P1 口, 人行道的發(fā)光二極管接到 P3 口,繁忙模式和特殊模式的指示燈接 P2 口。

3.4.2 電源電路設計
該電路為一個輸出+5V 直流電壓的穩(wěn)壓電源電路。IC 采用集成穩(wěn)壓器 7805,C1、C

3 分別為輸入端和輸出端濾波電容,RL 為負載電阻。當輸出電較大時,7805 應配上散 熱板。電源電路圖如圖 3-9 所示。

圖 3-9 電源電路圖

如圖所示,220V 的交流電壓經過一個變壓器生成一個 9V 的交流電壓,通過轉換電 路進入集成穩(wěn)壓器 7805,最終輸出一個+5V 的直流電壓,可以提供穩(wěn)定的電源。

3.4.3 按鍵電路設計
按鍵電路如圖 3-10 所示。


本設計設置了有 3 個按鍵——S1:S 鍵接 P3.6,S2:J 鍵接 P3.0,S3:F 鍵接 P3.7。 每個按鍵一端接地,另一端接上拉電阻。低電平有效,當按鍵按下端口接地,單片機捕獲 到低電平,從而知道相應的輸入信息。

按鍵功能如下:S 鍵是用來啟動正常模式,J 鍵是用來啟動上下班高峰的繁忙模式,F(xiàn) 鍵是用來啟動深夜特殊模式。
3.5 本章小結

本章內容前面一部分主要從理論上介紹了硬件設計的內容,后半部分結合電路圖 把理論與實物相結合,介紹了系統(tǒng)的工作原理以及設計原理。當然我設計的簡易交通 燈還是有很多不足的地方,需要以后再根據(jù)實際情況不斷加強功能。

4 章 軟件設計
4.1 程序主體設計流程

全部控制程序實際上分為若干模塊:鍵盤設置處理程序,狀態(tài)燈控制程序,LED 顯 示程序,消抖動延時程序,中斷服務子程序等。交通燈的總流程圖如圖 4-1 所示。

圖 4-1 主程序流程圖

電路系統(tǒng)上電,設置初始紅燈等待時間 90 秒,即 S1 狀態(tài)為正常模式狀態(tài),即在 非上下班高峰時段,此時交通燈正常運行,紅燈等待時間為 90 秒;S2 為上下班高峰繁 忙模式,此時通過紅外遙控或者按鍵來轉換交通燈的運行模式,紅燈等待時間為 40 秒; S3 為深夜特殊模式,此時通過紅外遙控或者按鍵可以控制,無需紅燈等待時間。

4.2 按鍵設計
首先程序不斷掃描模式設置鍵,分別記為:S 鍵,J 鍵,F(xiàn) 鍵對應IO端口的P

3.6,P3.0,P3.7,低電平有效,按鍵順序是指定的,若直接按 S 鍵,則為正常模式,然后進入 下一程序;若再按 J 鍵,則為繁忙模式,然后進入下一程序;若按下 F 鍵,則為特殊模式, 并進入下一程序。

程序的開始要判斷是否有鍵按下,可以不斷將 J 鍵值和 F 鍵值相或,或值為 0 則表示 沒有鍵按下,即交通燈正常運行,為 1 則表示有鍵按下,交通燈啟動了上下班高峰模式或者深夜特殊模式。
接下來要判斷具體是那個鍵,若為 J 鍵,則表示啟動的是上下班高峰模式,進入下一 程序,否則為 F 鍵,則表示啟動的是深夜特殊模式,用 R0 存值,同時還需判斷此時 S 鍵 是否按下,若按下,則表示恢復正常模式,進入下一程序。
在這個過程中,S,J 鍵的計數(shù)是循環(huán)的,從 S 鍵按下設置的初值 90 開始,減到 J 鍵 按下設置的值 40 則循環(huán)回到初值 90。
4.3 定時器的參數(shù)設計

定時器工作的時候需要給計數(shù)器傳送計數(shù)器的初值,該值要傳送到 TL 和 TH 中。 定時器是運用加法記數(shù),可以從全 1 到全 0 的時候自動的產生一個溢出中斷請求。這 樣我們就可以把計數(shù)器它記滿為 0 所需要的計數(shù)值設為 C,把計數(shù)初值設為 TC,計算
通式如下:


很明顯一秒鐘超過了計數(shù)器所能表示的最大時間,因而我們就必須采用軟件和定 時器相結合的方法去解決這個難題。
軟件延時部分:MCS-51 的工作頻率為 12MHZ。機器周期與主頻有關,機器周期是 主頻的 12 倍,所以一個機器周期的時間為 12*(1/12M)=1us。我們可以知道具體每條 指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定 1 秒的時間。由于單片機 運行的速度非常快,所以其他的一些指令的執(zhí)行耗時可以不用考慮。
設定一個初值是 40 的軟件計數(shù)器讓 T0 定時為 50 毫秒。這樣的話每次 T0 到了 50 毫秒的時候處理器就響應溢出的中端請求,并且進入中斷服務的子程序。在中斷服務 的子程序里,CPU 先讓軟件的計數(shù)器減少 1,再去判斷其是否是零。如果是零的話表示 一秒就到了。定時器要設為 50 毫秒,T0 工作方式必須在 1 上,初值計算如下:
TC=M-T*T0=216-50ms=15536=3CBOH 定時器 0 中斷流程如圖 4-2 所示:

圖 4-2 定時器 0 中斷流程圖



/**********************T0 中斷服務程序*******************/

void timer0(void)interrupt 1 using 1

{

static uchar count; TH0=(65536-50000)/256; TL0=(65536-50000)%256; count++;


if(count==10)

{
if(Flag_SN_Yellow==1)              //測試南北黃燈標志位

{SN_Yellow=~SN_Yellow;}



洛陽理工學院電氣工程與自動化學院項目設計說明書


if(Flag_EW_Yellow==1)              //測試東西黃燈標志位

{EW_Yellow=~EW_Yellow;}

}

if(count==20)

{

Time_EW--; Time_SN--;
if(Flag_SN_Yellow==1)              //測試南北黃燈標志位

{SN_Yellow=~SN_Yellow;}
if(Flag_EW_Yellow==1)              //測試東西黃燈標志位

{EW_Yellow=~EW_Yellow;}

count=0;

}

}
4.4 中斷原理

本系統(tǒng)主要使用了外部中斷,中斷信號有兩個引腳 INT0、INT1 進行輸入,低電平 時有效,CPU 每個時鐘周期都會檢測 INT0 和 INT1 上的信號,STC89C52 允許外部中斷 以電平方式或負邊沿方式兩種中斷方式輸入中斷請求信號,可由用戶通過設置 TCON 中 IT0 和 IT1 位的狀態(tài)來實現(xiàn)。以 IT0 為例,IT0=0,為電平觸發(fā)的方式,IT0=1,是負邊 沿觸發(fā)的方式,本設計采用電平方式,IE0 為其中斷標志位,有中斷信號則置位,中斷 服務子程序響應后,IE0 自動清零。IE 中的 EA 為允許中斷的總控制位,為 1 開啟,EX0 為外部中斷允許控制位,為 1 開啟。在優(yōu)先級的允許下,一旦有外部中斷信號產生, 單片機 CPU 首先保護斷點,PC 值進棧,然后執(zhí)行相應的中斷服務子程序,執(zhí)行完后, 用 RETI 指令返回,此時 CPU 會從堆棧中取保存的斷點地址,送回 PC,程序再正常執(zhí)行,ED 倒計時顯示。
外部中斷流程圖如圖 4-3 所示。

子程序如下:

圖 4-3 外部中斷 0 中斷流程圖



/**********************外部 0 中斷服務程序******************/

void INT0_srv(void)interrupt 0 using 1

{
EX0=0;              //關中斷


if(Nomor_Button==0) //測試按鍵是否按下,按下來為正常狀態(tài)

{

EW1=90; SN1= 40; EWL1=19; SNL1=19;
Busy_LED=0;              //關繁忙信號燈
Special_LED =0; //關特殊信號燈



洛陽理工學院電氣工程與自動化學院項目設計說明書


}
if(Busy_Btton==0)              //測試按鍵是否按下,按下為繁忙狀態(tài)

{

EW1=45; SN1=30; EWL1=14; SNL1=14;
Special_LED=0;              //關特殊信號燈
Busy_LED=1;              //開繁忙信號燈

}
if(Special_Btton==0)//測試按鍵是否按下,按下為特殊狀態(tài)

{

EW1=75; SN1=55; EWL1=19; SNL1=19;
Busy_LED=0;              //關繁忙信號燈
Special_LED =1;//開特殊信號燈

}
EX0=1;              //開中斷
}

4.5 狀態(tài)燈顯示及判斷

在本設計中,實際控制的燈只有 6 個,即:東西紅燈,東西綠燈,東西黃燈,南 北紅燈,南北綠燈,南北黃燈。IO 端口均是低電平有效。共有 4 種狀態(tài):東西紅燈亮, 南北綠燈亮(11011101);東西紅燈亮,南北黃燈亮(10111101);東西綠燈亮,南北 紅燈亮(11101101);東西黃燈亮,南北紅燈亮(11100111)。
在用于顯示發(fā)光二極管時,直接由 MOV 指令將十六進制碼送入 P2 口。
剛才的 4 個狀態(tài)是依次變換的,這就要涉及到狀態(tài)的判斷和銜接了。先把 P2 端口 的值與所有的 4 個狀態(tài)碼比較,若相同則判斷成功當前狀態(tài),再把下一狀態(tài)的狀態(tài)碼 送顯 P2 即可。狀態(tài)燈定義如下:(見附件)


計時每 1 秒都要刷新 1 次,那么計時滿 1 秒時就要將存儲時間的工作寄存器 R4 減 1,然后送入顯示程序中顯示。下面要將時間數(shù)據(jù) R4 的十位,個位分開送顯 P1, P0 端口,首先將 R4 除以 10,整數(shù)即十位放在 A 中,余數(shù)即個位放在 B 中,設置 7 段 顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器 DPTR 指向數(shù)據(jù)表的首地址,再加上 A 中的偏 移量,就可以指向十位數(shù)字,然后送顯即可,個位顯示同理。設計中得延時程序都是 用軟件完成,通過程序執(zhí)行一條指令的時間,再加上了兩次累減嵌套來實現(xiàn)。
在按鍵計數(shù)的過程里,存在機械抖動和軟件方面的沖突,比如程序檢測到了有按鍵 按下,就計數(shù)一次,而事實上,按鍵閉合后在微觀上還會彈起然后閉合,一直達到穩(wěn)定狀態(tài), 所以后面的彈落會沒有效果,為了使程序不要出現(xiàn)這一現(xiàn)象,我們特別添加了上面所說 的延時消抖程序,可以在第一次檢測到閉合時,調用了一定時間的延時程序。
下面是顯示北向的時間程序,其他方向依此類推:
1              SMG_XS=Data[bei/10];              //顯示北的十位
1              SMG_KZ=0xfd;              //允許北十位顯示
1              delay(t);              //小延時一下,使數(shù)碼管顯示更清楚
1              SMG_KZ=0xff;              //關閉數(shù)碼管顯示(消隱)
1              SMG_XS=Data[bei%10];              //顯示北的個位
1              SMG_KZ=0xfe;              //允許北個位顯示
1              delay(t);              //小延時一下,使數(shù)碼管顯示更清楚
1              SMG_KZ=0xff;              //關閉數(shù)碼管顯示(消隱)
4.7 本章小結

本章是軟件設計部分,給出了相關運算過程還有一部分重要的程序段,對定時原 理還有中斷原理給出了很多相關知識,這些都是單片機運行的關鍵,所以做了比較充 分的介紹。

PROTEUS 仿真圖如圖 5-1 所示。

圖 5-1 PROTEUS 仿真圖

本設計完全用仿真軟件在電腦上對目標電路原理圖和程序進行檢測和調試。調試 過程中單片機相應輸入端由通用鍵盤和鼠標設定,運行狀態(tài)、各寄存器狀態(tài)、端口狀 態(tài)等都可以在指定的窗口區(qū)域顯示出來,以確定程序運行有無錯誤。

目標程序糾錯:該階段工作通常在目標程序編輯時就完成。一般來說,仿真軟件 能為用戶輸入的程序指令糾錯,包括書寫格式、標號未定義或多重定義、轉移地址溢 出等錯誤。

整體程序調試:即把各子程序整體連起來進入到綜合電路調試,看是否能實現(xiàn)預計的功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運行時是否破壞現(xiàn)場,數(shù)
據(jù)緩沖單元是否發(fā)生沖突,標志位的建立和清除在設計上是否失誤,堆棧是否溢出, 輸入輸出狀態(tài)是否正常等。

5.2 硬件實物演示圖片及簡單介紹

圖 5-2 實物正面圖

如圖 5-2 所示,這是一個簡易的交通燈,主要有四個按鍵開關,一個作為控制器 的 STC89C52 芯片,四個雙位陰極數(shù)碼管顯示時間,十二個發(fā)光二極管表示通行狀態(tài)。

運行中的實物圖展示:
圖 5-3 初始上電畫面

圖 5-3 為初始上電畫面,所有燈閃爍數(shù)次然后開始正常運行,通過此時的狀態(tài)能 觀察出 LED 燈的運行情況,如有損壞,則上電時燈不會閃爍。


圖 5-4 運行中交通燈效果展示

圖 5-4 所示狀態(tài)為南北為綠燈,東西為紅燈,即表示南北車輛通行,東西方向車 輛禁止通行。

圖 5-5 特殊深夜模式

圖 5-5 為深夜特殊模式圖,當特殊深夜模式開啟時,四個方向上黃燈都開始閃爍, 紅綠燈都停止燃亮,方便了深夜少數(shù)車輛的通行。當深夜結束時,可以通過按鍵來轉 換工作模式。

5.3 本章小結

這部分主要展示了仿真與實物運行的效果圖,并且加以說明。從效果上來看設計 還是比較成功的,由于時間緊迫,紅外遙控的設計部分還未加到實物中,但是特殊的 深夜模式還是成功地在實物中得以體現(xiàn)。總得來說,設計上還是有不足的地方,但是 一些基本的功能都能實現(xiàn)。


電路總圖:



完整的pdf格式文檔51黑下載地址:
紅綠燈~基于51單片機設計(1).pdf (1.38 MB, 下載次數(shù): 103)



作者: 無線強大    時間: 2019-4-23 21:41
感覺還是可以啊
作者: 你你摸摸你的    時間: 2020-4-26 09:23
是不錯
作者: xunluan    時間: 2020-5-23 17:48
有幾個圖不太清楚




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1