基于STC90C51單片機(jī)的智能交通燈設(shè)計(jì)_第1頁
基于STC90C51單片機(jī)的智能交通燈設(shè)計(jì)_第2頁
基于STC90C51單片機(jī)的智能交通燈設(shè)計(jì)_第3頁
基于STC90C51單片機(jī)的智能交通燈設(shè)計(jì)_第4頁
基于STC90C51單片機(jī)的智能交通燈設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于STC90C5單片機(jī)的交通燈設(shè)計(jì)1、設(shè)計(jì)題目基于STC90C51單片機(jī)的智能交通燈設(shè)計(jì)2、設(shè)計(jì)要求、系統(tǒng)功能(1) 按照交通規(guī)則,控制寶田路和前進(jìn)路方向及其人行道的交通信號燈(紅、黃、綠) 的通斷。(2) 設(shè)置信號燈的通斷時(shí)間。(3) 可人工干預(yù),使交通信號燈開啟不同模式。、性能參數(shù):(1) 電源:5VDC(2) LED燈電流:10mA(3) 定時(shí)時(shí)間:10s-200s3、總體設(shè)計(jì)根據(jù)系統(tǒng)功能和設(shè)計(jì)要求,系統(tǒng)采用單片機(jī)控制的方案,基于HC6800S開發(fā)板,由STC90C51 74HC573交通燈模塊,動(dòng)態(tài)數(shù)碼顯示管以及4*2獨(dú)立按鍵組成。系統(tǒng)工作原理在十字路口,分為寶田路和前進(jìn)路,正常情況

2、下,在任一時(shí)刻只有一個(gè)方向通行,另一 方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如 下:?(1 )普通模式:狀態(tài)一:寶田路通行階段(寶田路及其人行道亮綠燈30秒、前進(jìn)路及其人行道亮紅燈30 秒);狀態(tài)二:黃燈階段(寶田路和前進(jìn)路亮黃燈5秒、兩側(cè)人行道亮紅燈 5秒);狀態(tài)三:前進(jìn)路通行階段(前進(jìn)路及其人行道亮綠燈30秒、寶田路及其人行道亮紅燈30 秒);狀態(tài)四:黃燈階段(寶田路和前進(jìn)路亮黃燈5秒、兩側(cè)人行道亮紅燈 5秒);返回到狀態(tài)一。(2)高峰期模式(設(shè)寶田路為主干道):按下按鍵2 (key2),開啟高峰期模式;60秒、前進(jìn)路及其人行道亮紅燈狀態(tài)一:寶田路通行階

3、段(寶田路及其人行道亮綠燈30 秒);狀態(tài)二:黃燈階段(寶田路和前進(jìn)路亮黃燈 5秒、兩側(cè)人行道亮紅燈 5 秒); 狀態(tài)三:前進(jìn)路通行階段(前進(jìn)路及其人行道亮綠燈 30 秒、寶田路及其人行道亮紅燈 30 秒);狀態(tài)四:黃燈階段(寶田路和前進(jìn)路亮黃燈 5秒、兩側(cè)人行道亮紅燈 5 秒);返回到狀態(tài)一;按鍵 2 釋放,回到普通模式。( 3)緊急模式 :按下按鍵1 ( keyl),開啟緊急模式,所有道路及其人行道均紅燈亮,數(shù)碼管不顯示。釋放按鍵 1 ,回到普通模式。?單片機(jī)交通控制系統(tǒng)的功能要求?本設(shè)計(jì)能模擬基本的交通控制系統(tǒng), 用紅綠黃燈表示禁行, 通行和等待的信號發(fā)生, 還 能進(jìn)行倒計(jì)時(shí)顯示,通行時(shí)

4、間調(diào)整功能和緊急情況全面禁行。?( 1 )倒計(jì)時(shí)顯示 ?倒計(jì)時(shí)顯示可以提醒駕駛員在信號燈燈色發(fā)生改變的時(shí)間、在“停止”和“通過”兩者 間作出合適的選擇。 駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。 倒計(jì)時(shí)顯示是用來減少駕駛員在信號燈色改變的關(guān)鍵時(shí)刻做出 復(fù)雜判斷的一種方法, 它可以提醒駕駛員燈色發(fā)生改變的時(shí)間, 幫助駕駛員在 “停止” 和“通 過”兩者間作出合適的選擇 ?。 ?( 2)時(shí)間的設(shè)置 ?本設(shè)計(jì)中對時(shí)間進(jìn)行了人為控制設(shè)置, 正常情況下寶田路和前進(jìn)路的綠燈通行與紅燈禁 行時(shí)間均設(shè)置為 30 秒、黃燈等待時(shí)間設(shè)置為 5秒。假設(shè)前進(jìn)路為主干道,

5、考慮到主干道在 上下班高峰期車流量和人流量較大,人為增加開關(guān)K2。當(dāng)K2開啟時(shí),主干道前進(jìn)路上綠燈通行時(shí)間和寶田路上的紅燈禁行時(shí)間更改為 60 秒,其余設(shè)置均不變; 當(dāng) K1 關(guān)閉時(shí), 又恢復(fù) 正常情況下的時(shí)間設(shè)置。( 3)緊急情況全面禁行本設(shè)計(jì)中在緊急情況下增加了全面禁行狀態(tài),增加開關(guān)K1。當(dāng)K1開啟時(shí),寶田路和前進(jìn)路及其各自人行道均量紅燈禁行;當(dāng) K1 關(guān)閉時(shí),交通燈恢復(fù)正常狀態(tài)。4、詳細(xì)設(shè)計(jì)硬件設(shè)計(jì)為了實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,選用STC90C5仲片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),10個(gè)發(fā)光二極管分別分成兩組紅黃綠和兩組紅綠燈構(gòu)成信號燈指示模塊,4個(gè)LED動(dòng)態(tài)數(shù)碼管構(gòu)成各個(gè)方向倒計(jì)時(shí)顯示模

6、式,兩個(gè)按鍵分別用來設(shè)置高峰期模式和緊急模式。、單片機(jī)系統(tǒng)設(shè)計(jì)單片機(jī)設(shè)計(jì)交通燈控制系統(tǒng), 可用單片機(jī)直接控制信號燈的狀態(tài)變化,基本上可以指揮交通的具體通行,當(dāng)然,接入LED數(shù)碼管就可以顯示倒計(jì)時(shí)以提醒行使者,更具人性化。單片機(jī)上電后,系統(tǒng)進(jìn)入正常工作狀態(tài), 執(zhí)行交通燈狀態(tài)顯示控制,同時(shí)將時(shí)間數(shù)據(jù)倒計(jì)時(shí)輸入到LED數(shù)碼管上實(shí)時(shí)顯示。HC6800S整體結(jié)構(gòu)視圖:41 K-RAM HE碎 tf:活汁卅圧益歆rouHk嗆冋s2便曲口氏dd旳減S;irm 三 nllnnmnfl0* TfrF 4 J r 一 L 0 F 3,hvl4J L4 5 3 *1- J 3 J J -J 3 2 2 聞4勺業(yè) 2

7、 r D I r-2 JS3 -d IT mm 屮一i b L IL IL L L-IWJ.DE1堆g.lPl.4FL5 PktPIJ RKI tiLPU) rdyM.i jSJyM-l nrijn.3XI AU A LU ISTC90C51芯片引腳圖:、LED數(shù)碼管顯示屏設(shè)計(jì)2位8段數(shù)碼管電路采用“共陽”連接驅(qū)動(dòng)代碼,如右圖所示。段碼和位碼,段碼即段選信號SEG,它負(fù)責(zé)數(shù)碼管顯示的內(nèi)容,LED動(dòng)態(tài)數(shù)碼管的顯示原理為:顯示數(shù)值dp,g,f,e,d,c,b,a代碼0011111110x3f1000001100x062010110110x5 b3010011110x4f4011001100x665

8、011011010x6d6011111010x7d7000011010x078011111110x7f9011011110x6f圖中ag、dp組成的數(shù)據(jù)(a為最低位,dp為最高位)就是段碼。 位碼即位選信號 DIG,它決定哪個(gè)數(shù)碼管工作,哪個(gè)數(shù)碼管不工作。 LED數(shù)碼管顯示代碼表如下表所示:HC6800S開發(fā)板中動(dòng)態(tài)數(shù)碼管模塊原理圖如下圖所示:rLEDlJ12QOEOR|.FJ471OOOOOOC DCOJ DM OOM OX-I、交通燈設(shè)計(jì)HC6800S開發(fā)板中交通燈模塊原理圖如下圖所示,寶田路紅黃綠燈及其人行道上的紅綠燈和前進(jìn)路上的紅黃綠燈由 JP1控制,前進(jìn)路人行道上的紅綠燈由J22控制

9、。 P22 lM06叫I IE455、詳細(xì)設(shè)計(jì)一軟件設(shè)計(jì)、軟件開發(fā)工具和環(huán)境keil C51、軟件總體設(shè)計(jì)總體結(jié)構(gòu)流程圖如下子結(jié)構(gòu)軟件設(shè)計(jì)(1)普通模式程序流程簡圖如下:程序源代碼如下:while(1)if(S=71)S=0;/*寶田路通行,寶田路綠燈亮30秒*/if(S31)DataO=OxOO;Data1=OxOO;Data2=dua n(30-S)/10;Data3=dua n(30-S)%10;Data4=OxOO;Data5=0x00;Data6=Data2;Data7=Data3;Display。;ex碼奐成使用JP16fled=OxFF;程序;下3將開發(fā)板按照如圖所示的連線方2.

10、將編好的程序“ .C”4.用普中科技自己的下載軟件PAISP自動(dòng)下載軟件將“ .hex ”下載到開發(fā)板上,下載步驟如下:1) .插上USB口,打開開發(fā)板電源開關(guān),然后打開普中ISP下載軟件,在usb轉(zhuǎn)串口驅(qū)動(dòng)安裝成功后,打開軟件應(yīng)該有串口號;2) .芯片類型選擇 STC90C5XX3) .同時(shí)需要把開發(fā)板中 J0跳線帽拔掉,設(shè)置成 USB接口,加載我們要下載到單片機(jī)里的打開立件程序,單擊,選擇下載的后綴為.Hex的文件;下載程序4) .點(diǎn)擊下載程序,即可下載成功。4.觀察運(yùn)行現(xiàn)象是否與設(shè)計(jì)結(jié)果相符;、硬件調(diào)試硬件部分是在51單片機(jī)上完成,所以調(diào)試過程比較簡單。首先按照電路原理圖進(jìn)行檢查, 檢查

11、無誤后進(jìn)行按鍵、數(shù)碼管和發(fā)光二極管的檢測。、軟件調(diào)試首先用keil C51軟件對程序進(jìn)行編譯和調(diào)試,經(jīng)過對程序多次修改后,編譯通過,結(jié)束軟件調(diào)試。、聯(lián)合調(diào)試硬件調(diào)試和硬件調(diào)試結(jié)束之后, 將最終調(diào)試好的程序下載到單片機(jī)上, 觀察結(jié)果并進(jìn)行調(diào)試。、系統(tǒng)實(shí)驗(yàn)經(jīng)過多次調(diào)試,最終可以在單片機(jī)上觀察到本次設(shè)計(jì)的實(shí)驗(yàn)結(jié)果:(1 ) 用發(fā)光二極管模擬的紅黃綠交通信號燈有序閃爍,實(shí)驗(yàn)現(xiàn)象正確;(2)動(dòng)態(tài)數(shù)碼管可以顯示到信號燈顏色改變所剩時(shí)間,并采用倒計(jì)時(shí)方式計(jì)數(shù);(3)按下按鍵 1 ,所有道路及其人行道的紅燈亮,數(shù)碼管均不顯示,開啟緊急模式;(4)按下按鍵 2 ,主干道綠燈時(shí)間變?yōu)?60 秒,其余均不變,開啟高

12、峰期模式。7、總結(jié)、工作總結(jié)在本次智能交通信號燈的設(shè)計(jì)中, 我主要負(fù)責(zé)的是軟件部分以及最后的聯(lián)合調(diào)試部分。 主要 有:(1) 編寫代碼。本次程序的編寫我用的是C語言,一是因?yàn)橹霸诖笠挥猩线^C語言的課,對C語言不會感到很陌生,二是學(xué)習(xí)過程中,教材也都是C語言教程。一開始我們計(jì)劃僅實(shí)現(xiàn)普通模式下的智能交通信號燈的控制。同時(shí)我們參考了單片機(jī)自帶 的程序,后來經(jīng)過深入學(xué)習(xí),發(fā)現(xiàn)只有普通模式太過簡單,所以我們就打算嘗試一 下能否實(shí)現(xiàn)緊急模式和高峰期模式。( 2) 聯(lián)合調(diào)試。由于單片機(jī)自帶交通燈模塊,所以我覺得調(diào)試應(yīng)該比較簡單,直接將程 序燒錄到單片機(jī)上就可以了。沒想到在這個(gè)過程中還出現(xiàn)了很多了問題。比

13、如發(fā)光 二極管一直亮或者不亮,數(shù)碼顯示管顯示錯(cuò)誤等。我以為是程序出了問題,就一直 在修改程序,結(jié)果發(fā)現(xiàn),很大一部分原因是由于我們太粗心了,把線接反了或者接 觸不良,原來是硬件的問題。所以在聯(lián)合調(diào)試的過程中,一定要同時(shí)兼顧軟件和硬 件的調(diào)試。本次設(shè)計(jì)還存在一些問題如下:( 1 ) 由于我主要負(fù)責(zé)軟件部分, 所以在后期的聯(lián)合調(diào)試部分出了很多問題, 主要是由于 我對硬件部分不夠熟悉,這是本次實(shí)驗(yàn)中我主要需要改進(jìn)的地方;(2) 在編寫代碼的過程中,我還發(fā)現(xiàn)了一些自身存在的問題,比如說主函數(shù)寫的過長,容易造成里面的括號丟失, 代碼后面不加注釋, 代碼沒有層次感, 使程序看起來很 亂, 而且在查找問題時(shí)也

14、不方便, 還有就是對語句運(yùn)用不夠熟悉, 容易犯一些語法 錯(cuò)誤,這一點(diǎn)還需要加以改進(jìn)。這一點(diǎn)需要改進(jìn), 可加入仿3) 本次設(shè)計(jì)編譯程序之后直接在單片機(jī)上調(diào)試較為麻煩,真調(diào)試。、心得體會本次科研訓(xùn)練接近尾聲, 從一開始根本不了解科研訓(xùn)練是什么, 需要做什么, 到確定 題目,一起學(xué)習(xí), 編寫程序, 硬件軟件調(diào)試到最后的報(bào)告撰寫, 我真的覺得自己收獲了很多。 不僅僅是感受到了我們這個(gè)團(tuán)隊(duì)的合作精神, 還有自己的那一份責(zé)任感, 既然是小組合作完 成一個(gè)項(xiàng)目, 那就必須要每個(gè)人確確實(shí)實(shí)的做好自己的工作, 只有這樣, 我們的設(shè)計(jì)才是完 整的。本次科研訓(xùn)練我們選擇的是智能交通燈的設(shè)計(jì),說實(shí)話,老師讓我們確定題

15、目時(shí),我 們也不知道自己能做什么擅長做什么, 甚至不確定是否能完成這個(gè)項(xiàng)目。 確定這個(gè)題目之后, 也是沒有頭緒, 不知道要怎么開始。 后來我們明確了一下分工,我主要負(fù)責(zé)軟件部分, 硬件 我們是用的單片機(jī),所以我就開始學(xué)習(xí)單片機(jī)的 C語言。我用的教材是郭天祥老師主編的 51 單片機(jī)C語言教程,我覺得這本書最大的好處就是通俗易懂,很適合我這樣的單片機(jī)新手。一邊看書學(xué)習(xí), 一邊就開始編寫程序,編寫程序首先得確定算法, 我還是沒有概念,所以我 就參考了別的交通信號燈的程序, 我覺得編程是一件很神奇的事情, 我們的很多想法靠著這 些代碼就能夠?qū)崿F(xiàn), 這極大的激發(fā)了我的好奇心, 就想一定要完成這個(gè)程序。

16、我們本來是打 算做個(gè)普通模式就結(jié)束,做出來之后又想挑戰(zhàn)一下自己,就做了個(gè)緊急模式和高峰期模式。 在做普通模式時(shí)還覺得很簡單,想著變成也不是那么難的一件事,但是在做高峰期模式時(shí), 就出現(xiàn)了很多問題, 反復(fù)調(diào)試了很多次還是不行, 我們就去請教別人, 別人一眼就發(fā)現(xiàn)了其 中的問題, 我們也恍然大悟了。 所以以后還是要不斷的學(xué)習(xí), 積攢經(jīng)驗(yàn),才能夠少犯一些低 級錯(cuò)誤。通過這次科研訓(xùn)練, 真的學(xué)到了很多東西, 也發(fā)現(xiàn)了自己本身的一些局限性, 希望自己 以后能夠多向優(yōu)秀的人學(xué)習(xí), 彌補(bǔ)自身不足。 本次科研訓(xùn)練使我們團(tuán)隊(duì)合作的結(jié)果, 每一個(gè) 人都不可缺少,真的很感謝此次訓(xùn)練,讓我體會到了團(tuán)隊(duì)合作的重要性,感

17、謝我的隊(duì)友們。附:交通信號燈程序源代碼#include#define uchar unsigned char#define uint unsigned int#define Weixuan P1/ 定義使用的 I/O 口#define Duanxuan P0#define led P2sbit RED10 = P2A0; /上人行道紅燈上人行道綠燈/ 右人行道紅燈/ 右人行道綠燈sbit GREEN10 = P2A1; /sbit RED11 =卩2人2;sbit YELLOW11= P2A3;sbit GREEN11 = P2A4;sbit RED00 = P3A0;sbit GREEN00

18、 = P3A1; sbit RED01 = P2A5;sbit YELLOW01= P2A6;sbit GREEN01 = P2A7; sbit key1 = P3A3; sbit key2 = P3A5;uchar code wei=位選控制0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; / uchar code duan = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 ; / 段選顯示碼uchar Data8;uchar T,S,M;/* 聲

19、明全局函數(shù) */void Display();void init();void delayms();void keyscan();void main()S=0;M=0;init();/ 初始化函數(shù)while(1)if(S=71)S=0;/* 寶田路通行,寶田路綠燈亮30 秒 */if(S31)Data0=0x00;Data1=0x00;Data2=duan(30-S)/10;Data3=duan(30-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF; /RED00=1;GREEN00=1;GREEN1

20、0=0;GREEN11=0;RED00=0;RED01=0;/* 黃燈階段, 5 秒*/else if(S36)Data0=0x00;Data1=0x00;Data2=duan(35-S)/10;Data3=duan(35-S)%10;Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF; /RED00=1;GREEN00=1;RED10=0;YELLOW11=0;RED00=0;將所有的燈都熄滅/ 寶田路人行道綠燈亮/ 寶田路綠燈亮/ 前進(jìn)路人行道紅燈亮/ 前進(jìn)路紅燈亮將所有的燈都熄滅/ 寶田路人行道紅燈亮/ 寶田路

21、黃燈亮/ 前進(jìn)路人行道紅燈亮YELLOW01=0; / 前進(jìn)路黃燈亮30 秒*/* 前進(jìn)路通行,前進(jìn)路綠燈亮 else if(S66)Data0=0x00;Data1=0x00;Data2=duan(65-S)/10;Data3=duan(65-S)%10; Data4=0x00;Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1; GREEN00=1;RED10=0;RED11=0;GREEN00=0;GREEN01=0;/* 黃燈階段, 5 秒*/else Data0=0x00; Data1=0x00; Data2=d

22、uan(70-S)/10; Data3=duan(70-S)%10; Data4=0x00; Data5=0x00;Data6=Data2;Data7=Data3;Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;YELLOW11=0;RED00=0; YELLOW01=0;/* 按下按鍵 1,開啟緊急模式,所有紅燈亮,數(shù)碼管不顯示 */ if(key1=0)delayms(); / 去抖延時(shí)if(key1=0)Data0=0x00;Data1=0x00;Data2=0x00;Data3=0x00;Data4=0x00;Data5=0x00;Data6=0x00;Data7=0x00; Display();led=0xFF;RED00=1;GREEN00=1;RED10=0;RED11=0;RED00=0;RED01=0;while(!key1); / 按鍵 1 釋放 keyscan();60 秒 */* 按下按鍵 2,開啟上下班高峰期模式,主干道寶田路綠燈時(shí)間為 void keyscan()if(key2=0)匚丄XOHP一oAQdsQxeroleQ卜roled m2ed9rolecl OOXOHn- ooxo寸roleclXOL%(IAI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論