版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 計算機控制系統(tǒng)課程設(shè)計</p><p> 基于單片機的交通燈控制系統(tǒng)設(shè)計與實現(xiàn)</p><p><b> 一、目的</b></p><p> 本文以AT89S51 單片機為核心器件,設(shè)計了多功能交通燈控制系統(tǒng)。軟件仿真和硬件實現(xiàn)的結(jié)果表明該系統(tǒng)具有紅綠燈顯示功能、時間倒計時顯示功能、左轉(zhuǎn)提示和緊急情況發(fā)生時手動控制等
2、功能。</p><p> 由于計算機技術(shù)、自動控制技術(shù)和人工智能技術(shù)不斷發(fā)展,城市交通的智能控制有了良好的技術(shù)基礎(chǔ),各種交通方案實現(xiàn)的可能性大大提高。城市交通控制系統(tǒng)是用于城市交通數(shù)據(jù)監(jiān)測、交通信號燈控制與交通疏導(dǎo)的計算機綜合管理系統(tǒng),它是現(xiàn)代城市交通監(jiān)控指揮系統(tǒng)中最重要的組成部分。本文設(shè)計的交通燈管理系統(tǒng)在實現(xiàn)了現(xiàn)代交通燈系統(tǒng)的基本功能的基礎(chǔ)上,增加了左轉(zhuǎn)提示和緊急情況(重要車隊通過、急救車通過等) 發(fā)生時手
3、動控制等功能。</p><p><b> 二、交通方案</b></p><p> 交通燈控制系統(tǒng)控制東西、南北兩個方向信號燈,每個方向設(shè)置兩組紅綠燈,紅燈禁止通行,綠燈允許通行。每個方向的通行時間各由兩位LED數(shù)碼顯示,通行時間可設(shè)置,綠燈向紅燈轉(zhuǎn)換前綠燈閃爍三次共3秒鐘,紅燈向綠燈過渡時不閃爍。</p><p> 系統(tǒng)上電時的初始狀態(tài)為
4、東西、南北兩個方向均為紅燈,持續(xù)2秒后為東西方向綠燈,南北方向紅燈,之后以定時方式控制兩個方向的汽車輪流通行。</p><p><b> 三、電路設(shè)計</b></p><p><b> 1、電源電路設(shè)計:</b></p><p> 由于單片機工作時需要的+ 5V 電壓,所以在設(shè)計電源電路時,需要一個電子元件能提供+
5、5V電壓,本文采用7805 提供5V 的電壓,即在7805 的1 腳和公共接地端(即2 腳) 之間接入0. 3μF 的電容,在公共接地端和三腳+ 5V電壓輸出端之間接入0. 1μF 的電容。</p><p><b> 2、復(fù)位電路設(shè)計:</b></p><p> MCS - 51 的復(fù)位輸入引腳RST 為MCS - 51 提供了初始化的手段。有了它可以使程序從指定
6、處開始執(zhí)行,即從程序存儲器中的0000H 地址單元開始執(zhí)行程序。在MCS - 51 的時鐘電路工作后,只要RST 引腳上出現(xiàn)10ms 以上的高電平時,單片機內(nèi)部則初始復(fù)位。 只要RST 保持高電平,則MCS - 51循環(huán)復(fù)位。只有當(dāng)RST 由高電平變低電平以后,MCS - 51 才從0000H 地址開始執(zhí)行程序。</p><p> 3、時鐘電路設(shè)計: </p><p> MCS -
7、51 的時鐘可以由兩種方式產(chǎn)生,一種是內(nèi)部方式,利用芯片內(nèi)部的振蕩電路;另外一種為外部方式。 本文根據(jù)實際需要和簡便,采用內(nèi)部振蕩方式.MCS - 51 內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1 和XTAL2 分別是此放大器的輸入端和輸出端. 這個放大器與作為反饋元件的片外晶體或陶瓷諧振器一起構(gòu)成一個自激振蕩器。</p><p> MCS - 51 雖然有內(nèi)部振蕩電路,但要形成時鐘,必須外接元
8、件所以實際構(gòu)成的振蕩時鐘電路.外接晶體以及電容C1 和C2 構(gòu)成并聯(lián)諧振電路接在放大器的反饋回路中。對接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。 晶體頻率可在1. 2MHz~12MHz 之間任選,電容C1 和C2 的典型值在20pF~100pF 之間選擇,考慮到本系統(tǒng)對于外接晶體的頻率穩(wěn)定性要求不高,所以采取比較廉價的陶瓷諧振器。 由于本系統(tǒng)應(yīng)用的機器周期為1μs ,所
9、以晶振選擇為12MHz ,根據(jù)調(diào)試電容選擇30pF。</p><p> 在硬件電路焊接時,晶體或陶瓷振蕩器和電容應(yīng)該盡可能地與單片機芯片靠近,以減少寄生電容,可以更好地保證振蕩器穩(wěn)定和可靠的工作。</p><p> 4、數(shù)碼時間顯示電路:</p><p> 七段LED 數(shù)碼管是有八個發(fā)光二極管構(gòu)成,通過給其引腳不同的高低電平,從而顯出0~9 的數(shù)字和小數(shù)點。本
10、文的交通燈數(shù)字顯示部分,通過將四個一位數(shù)碼管并聯(lián)通過P1口控制作為個位實時顯示,四個數(shù)碼管并聯(lián)通過P3 口控制作為十位實時顯示,但考慮到單片機的系統(tǒng)功耗問題以及焊接電路后的實際顯示效果等, 本部分的電路中又引入一7805 進行單獨供電。</p><p> 交通燈的時間倒計時顯示部分是通過將數(shù)碼管分別與單片機的P1 口和P3 口連接,通過單片機內(nèi)部已經(jīng)燒錄好的程序,對P1 口和P3 口進行電平輸出控制,從而實現(xiàn)數(shù)
11、碼管的倒計時時間顯示。</p><p> 5、信號燈電路設(shè)計:</p><p> 本部分電路設(shè)計,應(yīng)用單片機的P0 口對直行方向提示燈控制,P2 口對左轉(zhuǎn)方向提示燈控制。其中 P0.0 、P0.1 兩個輸出控制口,分別控制東西方向上的綠燈、紅燈。P0.2、P0.3 兩個輸出控制口,分別控制南北方向上的綠燈、紅燈。 </p><p><b> 四、軟件
12、設(shè)計</b></p><p> 本設(shè)計使用keil 軟件完成該系統(tǒng)的軟件設(shè)計.通過新建源文件、建立工程文件、編譯和連接,最后生成所需單片機燒錄的HEX文件。</p><p> 1、軟件設(shè)計程序流程圖:</p><p> 2、Proteus軟件仿真:</p><p><b> 五、課程設(shè)計體會</b>&
13、lt;/p><p> 通過這次單片機課程設(shè)計,我深刻體會到自己實際操作能力的匱乏。從剛開始老師對單片機的整體介紹及其應(yīng)用前景,對單片機產(chǎn)生了濃厚的興趣,并利用自己的課余時間提前學(xué)習(xí)有關(guān)單片機的基本知識。但空有理路知識,卻無半點的實際操作經(jīng)驗。后來在同學(xué)的建議下,選擇運用單片機設(shè)計一個交通燈控制系統(tǒng),從簡單開始,后期逐步復(fù)雜化。</p><p> 從給定電路圖的分析到后期的程序設(shè)計以及系統(tǒng)調(diào)
14、試,初步掌握了運用單片機系統(tǒng)設(shè)計特定功能的設(shè)計步驟,也對單片機有了更深的體會。了解和掌握了一些簡單的編程思想,對單片機各管腳的功能,I/O口的使用條件都有了更深的理解。這次的課程設(shè)計讓我把單片機的理論知識運用的實踐中,實現(xiàn)了理論與實踐的相結(jié)合,從中更懂得了理論是實踐的基礎(chǔ),實踐更能檢驗理論的真實性,讓我受益匪淺。</p><p><b> 附錄1 源程序代碼</b></p>
15、<p> //#include<REG51.H> </p><p> #include<AT89X51.H> // 對單片機的口進行了定義</p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><
16、;p> uchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段碼組合,共陰極</p><p> uchar code b[4]={0xfe,0xfd,0xfb,0xf7}; //位碼組合 低有效</p><p> uchar code c[4]={0xcc,0xd4,0x78,0xb8
17、};/*P1 綠紅、黃紅、紅綠、紅黃*/ </p><p> //12MHz </p><p> //*************************************************************************************</p><p> uchar NB=25,DX=30,NBG=25,DXG=15
18、,H=5; /*數(shù)碼管顯示值設(shè)置*/</p><p> uchar i,k=0,cnt=0,j=0; </p><p> sbit K0=P3^5; /*支干道通行*/</p><p> sbit K1=P3^6; /*主干道通行*/</p><p> sbit K4=P3^7; /*返回*/&l
19、t;/p><p> sbit K3=P3^2;/*設(shè)置時間*/</p><p> sbit K2=P3^3;/*緊急剎車*/</p><p> void delay(uchar t);/*定義延時程序*/</p><p> void key();/*定義鍵盤程序*/</p><p> vo
20、id display();/*定義顯示程序*/</p><p> void settime();/*定義時間設(shè)置顯示程序*/</p><p> //*************************程序初始*********************************************</p><p> void init(void)<
21、;/p><p><b> {</b></p><p> TMOD=0x01; /*使用定時器0模式一*/</p><p> TH0=0x3c; /*(65536-5000)/256*/</p><p> TL0=0xb0; /*(65536-5000)%256*/</p><
22、;p> IT0=1; //開中斷</p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><b> EA=1;</b></p><p><b> EX0=1;</b><
23、/p><p><b> EX1=1;</b></p><p> P1=c[k]; //開啟交通燈</p><p><b> }</b></p><p> //*************************中斷0處理程序********************************
24、*******</p><p> void int0(void) interrupt 0 //通行時間設(shè)置</p><p><b> { </b></p><p><b> EA=0;</b></p><p> P1=0xd8;/*紅燈全亮*/</p><
25、p><b> for(;;)</b></p><p><b> {</b></p><p> settime();</p><p> if(K1==0) /*P3^6=0設(shè)置主干道通行時間*/</p><p><b> { </b></p&g
26、t;<p> delay(40);</p><p><b> if(K1==0)</b></p><p><b> {</b></p><p> while(!K1)</p><p><b> { </b></p><p> s
27、ettime();</p><p><b> }</b></p><p> NBG++;/*主干道通行時間加1*/</p><p> if(NBG==100)</p><p><b> NBG=0;</b></p><p><b> }<
28、;/b></p><p><b> }</b></p><p> if(K0==0) /*P3^5=0設(shè)置支干道通行時間*/</p><p><b> { </b></p><p> delay(40);</p><p><b> i
29、f(K0==0)</b></p><p><b> {</b></p><p> while(!K0)</p><p><b> {</b></p><p> settime();</p><p><b> }</b></p&
30、gt;<p> DXG++;/*支干道通行時間加1*/</p><p> if(DXG==100)</p><p><b> DXG=0;</b></p><p><b> }</b></p><p><b> }</b></p&g
31、t;<p> if(K4==0) /*P3^7=0返回*/ </p><p><b> { </b></p><p> delay(40);</p><p><b> if(K4==0)</b></p><p><b> {</b>
32、</p><p> while(!K4)</p><p><b> {</b></p><p><b> }</b></p><p> k=0;P1=c[k];</p><p> NB=NBG,DX=NBG+H;</p><p> dis
33、play(); </p><p><b> EA=1;</b></p><p><b> break;</b></p><p> } </p><p><b> }</b></p><p><b> }&
34、lt;/b></p><p><b> }</b></p><p> /***********************************中斷1處理程序********************</p><p> void int1(void) interrupt 2 //緊急情況</p><p>
35、; { </p><p> /*東西南北紅燈亮*/</p><p> EA=0;</p><p> TR0=!TR0; /*停止計數(shù)*/</p><p> for(;;) /*主支干道顯示全為0*/</p><p> { P
36、1=0xd8,P0=a[0];</p><p><b> P2=0xfe;</b></p><p> delay(20);</p><p><b> P2=0xfd;</b></p><p> delay(20);</p><p><b> P2=0xfb
37、;</b></p><p> delay(20);</p><p><b> P2=0xf7;</b></p><p> delay(20);</p><p> if(K4==0) /*返回*/</p><p><b> { </b>&l
38、t;/p><p> delay(20);</p><p><b> EA=1;</b></p><p> P1=c[k]; /*返回緊急前狀態(tài)開始計數(shù)*/</p><p> TR0=!TR0;/*重啟計數(shù)*/</p><p> break; <
39、/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void time1(void) interrupt 1/*交通燈控制程序*/</p><p><b&
40、gt; {</b></p><p> TH0=0x3c;/*定時50ms*/</p><p> TL0=0xb0; </p><p><b> cnt++;</b></p><p> if(cnt>=20) /*每20*50ms=
41、1s自減一*/</p><p><b> {</b></p><p><b> NB--;</b></p><p><b> DX--;</b></p><p><b> cnt=0;</b></p><p> if(NB
42、==0||DX==0)</p><p><b> {</b></p><p><b> k++;</b></p><p> if(k>3)/*k取0,1,2,3*/</p><p><b> k=0;</b></p><p&g
43、t;<b> switch(k)</b></p><p><b> {</b></p><p> case 0:NB=NBG,DX=NBG+H;j=0;P1=c[k];break; </p><p> case 1:NB=H;j=1;P1=c[k];break; </p><
44、p> case 2:NB=DXG+H,DX=DXG;j=0;P1=c[k];break; </p><p> case 3:DX=H;j=2;P1=c[k];break; </p><p><b> }</b></p><p><b> } </b></p><p&g
45、t;<b> }</b></p><p><b> }</b></p><p> void delay(uchar t) //延時程序延時0.1*nms </p><p><b> { </b></p><p><b> uchar i; <
46、;/b></p><p><b> do </b></p><p><b> { </b></p><p> for(i=0;i<20;i++) </p><p><b> ;;; </b></p><p> } while(t--
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計---交通信號燈控制系統(tǒng)
- 單片機課程設(shè)計-控制交通信號燈
- 單片機課程設(shè)計--交通信號燈實時控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計--交通信號燈模擬控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計---交通信號燈模擬控制設(shè)計
- 單片機課程設(shè)計--模擬交通信號燈
- 單片機課程設(shè)計--模擬交通信號燈
- 單片機課程報告設(shè)計--交通信號燈模擬控制系統(tǒng)設(shè)計
- 交通信號燈課程設(shè)計---交通信號燈系統(tǒng)設(shè)計
- 基于單片機的交通信號燈控制系統(tǒng)設(shè)計
- 交通信號燈控制系統(tǒng)設(shè)計課程設(shè)計
- 基于單片機的交通信號燈控制系統(tǒng)設(shè)計
- 單片機控制交通信號燈
- 交通信號燈課程設(shè)計--交通指揮信號燈控制系統(tǒng)設(shè)計
- 課程設(shè)計---交通信號燈控制系統(tǒng)設(shè)計
- 交通信號燈畢業(yè)設(shè)計--基于單片機的交通信號控制系統(tǒng)
- 基于51單片機的交通信號燈控制系統(tǒng)設(shè)計
- 單片機課程設(shè)計報告--交通信號燈的模擬系統(tǒng)
- 課程設(shè)計---交通信號燈plc控制系統(tǒng)設(shè)計
- 課程設(shè)計--交通信號燈控制系統(tǒng)的設(shè)計
評論
0/150
提交評論