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