at89c51單片機_交通燈控制系統(tǒng)(含源碼及仿真圖)
《at89c51單片機_交通燈控制系統(tǒng)(含源碼及仿真圖)》由會員分享,可在線閱讀,更多相關《at89c51單片機_交通燈控制系統(tǒng)(含源碼及仿真圖)(27頁珍藏版)》請在裝配圖網上搜索。
1、模擬交通燈設計報告 題 目 交通信號燈控制系統(tǒng) 團 隊 研發(fā)區(qū)第二組 完成時間 2011-11-31 貴州民族學院開放實驗室 目 錄 ~\ 項 目名稱 1 二、選題背景 1 2.1 課題背景 1 2.2 交通燈的歷史 1 三、單片機簡介 2 3.1 單片機的發(fā)展歷程 2 3.2 單片機的特點: 3 3.3 AT89C52單片機簡介 4 四、設計基本要求和步驟 5 4.1 基本要求 5 4.2 設計步驟 6 五、硬件和軟件設計 6 5.1 硬件電路圖 6 5.2 程序流程圖 8 主程序 8 運行過程 9 LED顯示程序 10 T0中斷
2、 11 INTO 中斷 11 5.3 PO、P1 口顯示狀態(tài)編碼表 12 5.4 程序源代碼 12 5.5 程序運行效果圖 21 六、心得體會 22 七、參考文獻 錯誤!未定義書簽。 模擬交通燈設計報告 一\項目名稱 十字路口交通信號燈控制系統(tǒng) 二、選題背景 2.1 課題背景 由于我國經濟的快速發(fā)展從而導致了汽車數量的猛增,大中型城 市的城市交通,正面臨著嚴峻的考驗,從而導致交通問題日益嚴重, 其主要表現如下:交通事故頻發(fā),對人類生命安全造成極大威脅;交 通擁堵嚴重,導致出行時間增加,能源消耗加大;空氣污染和噪聲污 染程度日益加深等。日常的交通堵塞成為人們司空見慣而又不
3、得不忍 受的問題,在這種背景下,結合我國城市道路交通的實際情況,開發(fā) 出真正適合我們自身特點的智能信號燈控制系統(tǒng)已經成為當前的主 要任務。隨著電子技術的發(fā)展,利用單片機技術對交通燈進行智能化 管理,已成為目前廣泛采用的方法。 2.2 交通燈的歷史 1868年12月10日,信號燈家族的第一個成員就在倫敦議會大廈 的廣場上誕生了,由當時英國機械師德?哈特設計、制造的燈柱高7 米,身上掛著一盞紅、綠兩色的提燈一煤氣交通信號燈,這是城市街 第1頁 道的第一盞信號燈。 1914年,在美國的克利夫蘭市才率先恢復了紅綠燈,不過,這時 已是“電氣信號燈”。稍后又在紐約和芝加哥等城市,相繼重新出現
4、 了交通信號燈。 隨著各種交通工具的發(fā)展和交通指揮的需要,第一盞名副其實的 三色燈(紅、黃、綠三種標志)于1918年誕生。它是三色圓形四面投 影器,被安裝在紐約市五號街的一座高塔上,由于它的誕生,使城市 交通大為改善。 中國最早的馬路紅綠燈,是于1928年出現在上海的英租界。 三、單片機簡介 3.1 單片機的發(fā)展歷程 單片機微型計算機是微型計算機的一個重要分支,也是頗具生命 力的機種。單片機微型計算機簡稱單片機,特別適用于控制領域,故 又稱為微控制器。 在MCS-51系列單片機中,有兩個子系列:51子系列和52子系列。 每個子系列有諾干中型號。51系列有8051、8751和8031
5、三個型號, 后來經過改進產生了 80c51、87c51、80c31三個型號;52系列有5021、 8752、8032三個型號,改進后的型號是80c52/87c52、80c32。改進 后的型號更加省電。52系列比對應的51系列增加了定時器T2并將 內部程序存貯器增加到8KB0 Inter公司停止生產MCS-51系列單片機 之后將生產權轉讓給了許多其他公司,于是出現了許多與Mes-51兼 容的單片機。現在生產mcs-51兼容單片機的公司對其進行了不同程 度的改進和提高。我們現在使用比較的多的是AT89c51/AT89s51等。 通常,單片機由單塊集成電路芯片構成,內部包含有計算機的基 本功能
6、部件:中央處理器、存儲器和I/O接口電路等。因此,單片機 只需要和適當的軟件及外部設備相結合,便可成為一個單片機控制系 統(tǒng)。 單片機經過1、2、3、3代的發(fā)展,目前單片機正朝著高性能和 多品種方向發(fā)展,它們的CPU功能在增強,內部資源在增多,引角的 多功能化,以及低電壓底功耗 3.2 單片機的特點: (1)性價比高,開發(fā)周期短,易于產品化, (2)集成度高,可靠性好,抗干擾性強, (3)功能完善,接口多樣, (4)低功耗、低電壓 一般電源供電電壓在5?3V范圍內單片機都能正常工作,供電的 下限可達1?2V。 (5)總線多樣,易于擴展 單片機外部的典型三總線結構,方便系統(tǒng)構擴展
7、,構成各種規(guī)模 的應用系統(tǒng)。外部總線增加了 12c及SPI等串行總線方式,可根據需 要進行并行或者串行擴展。 3. 3 AT89C52單片機簡介 AT89C52是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器 (FPEROM—Flash Programmable and Erasable Read Only Memory) 的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2052是 一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可 擦除只讀存儲器可以反復擦除1000次。該器件采用ATXIEL高密度非 易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳
8、 相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中, ATNIEL的AT89C52是一種高效微控制器,AT89C2052是它的一種精簡 版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價 廉的方案。 主要特性: ? 與MCS-51兼容 ? 4K字節(jié)可編程閃爍存儲器 ? 壽命:1000寫/擦循環(huán) ? 數據保留時間:10年 ? 全靜態(tài)工作:OHz-24MHz ? 三級程序存儲器鎖定 ? 128X8位內部RAM ? 32可編程I/O線 ? 兩個16位定時器/計數器 ? 5個中斷源 ? 可編程串行通道 ? 低功耗的閑置和掉電模式 ? 片內振蕩器和時鐘
9、電路 四、設計基本要求和步驟 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。 那么靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮 系統(tǒng)。交通信號燈控制方式很多。 4.1 基本要求 本系統(tǒng)需要采用MSC-51系列單片機AT89C52作為中心器件來設 計交通燈控制器,實現以下功能: 1 .初始東西綠燈亮,南北紅燈亮,東西方向通車。 2 .延時27s,東西路口綠燈熄滅,黃燈閃爍3次。 3 .黃燈閃爍后,東西路口紅燈亮同時南北路口綠燈亮,南北方向 開始通車。 4 .延時27s,南北方向綠燈滅,黃燈閃爍3次,然后又切換成東 西方向通車,如此重復。 5 .當發(fā)生交通
10、意外(中斷產生)時,全部亮紅燈,進行交通事故的 處理。當事故處理完畢(再次按中斷鍵),重新按上述方式工作。 6 .當南北路口的流量大時,可以增加南北路口亮綠燈的時間,當 東西路口的流量大時,可以增加東西路口亮綠燈的時間,結束后 調回正常狀態(tài)。 4.2 設計步驟 1 .利用Proteus 7. 5 SP3仿真軟件按下列要求繪制仿真實例 令用4個共陽極LED數碼管的分別表示東、西、南、北四個方向 路口,以數碼管的上、中、下3個橫段分別代表紅、黃、綠3 盞燈 令用PO、P1 口分別輸出控制模擬交通燈的狀態(tài)顯示的數碼管和 倒計時顯示數碼管的狀態(tài)碼 .P3」、P3-2、P3MSP3,控制數碼
11、管的位選 令P2"、sp2-4接收中斷信號并反饋給INTO接口進行中斷處理 2 .按照基本要求編制程序實現相應功能。 五、硬件和軟件設計 5.1硬件電路圖 硬件電路圖通過Proteus 7.5 SP3仿真之后如圖1所示,其中: 按鈕K0連接P2P端口實現紅燈全亮,處理交通意外 按鈕K1連接P21端口實現南北方向亮燈時間+ls 按鈕K2連接P2M端口實現南北方向亮燈時間-1s 按鈕K3連接P2飛端口實現東西方向亮燈時間+ls 按鈕K4連接P2Y端口實現東西方向亮燈時間-1s 整體實驗連接電路如下圖所示: 第24頁 u" 人行道I 控制 354243華 85
12、 圖1整體連接電路圖 5-2程序流程圖 5. 3 PO、Pl 口顯示狀態(tài)編碼表 P0 編碼 備注 P0A7 P0A6 P0A5 P0A4 P0A3 P0A2 POA1 P0A0 1 1 1 1 1 1 1 0 OFEH 紅燈 1 0 1 1 1 1
13、 1 1 OBFH 黃燈 1 1 1 1 0 1 1 1 0F7H 綠燈 Pl 編碼 備注 P1A7 P1A6 P1A5 P1A4 P1A3 P1A2 P1A1 P1AO 1 1 1 1 0 0 0 0 OCOH 0 1 1 1 1 1 0 0 1 0F9H 1 1 0 1 0 0 1 0 0 0A4H 2 1 0 1 1 0 0 0 0 OBOH 3 1 0 0 1 1 0 0 1 99H 4 1 0 0 1 0 0 1
14、
0
92H
5
1
0
0
0
0
0
1
0
82H
6
1
1
1
1
1
0
0
0
F8H
7
1
0
0
0
0
0
0
0
80H
8
1
0
0
1
0
0
0
0
90H
9
5.4程序源代碼
#include
15、x07,0x0b}; //P2 口低有效 uchar code c[4]={0x6a,0x66,0x5c,0x3c}; //Pl 口 低電平有效 char SN=35,WE=40; 〃SN表示南北方向 主干道 WE表示東西方向 支 干到 g表示東 char SN_G=35,WE_G=20,Y=5; //sn——g 表示南北方向的綠燈 we 西方向的綠燈 uchar i.k=0,count=0; void delay(uchai t); void lightQ; void led(); void ledtluougli(); void leddnveQ; sbit K0=P
16、3人7; 〃開關 KO sbitKl=P3A6; 〃開關 KI sbit K2=P3A3; 〃開關 K2 sbit K3=P3A5; 〃開關 K3 sbit K4=P3A2; //開關 K4 /******* 程序初始化 **********/ void init(void) ( TMOD=0X01; 〃計數器模式1為16位計數器 THl=(65536-50000)/256; TLl=(65536-50000)%256; 〃用時 50ms IT0=l; 〃外部中斷為低電平觸發(fā) ET0=l; //允許TO中斷 TR0=l; //啟動計數器 EA=1; 〃總中斷 EX
17、0=l; //允許外部中斷0 EX1=1; 〃允許外部中斷1 ) /*******中斷0處理程序*****/ void intO(void) intenupt 0 EA=O; 〃關閉總中斷 Pl=0x6c; 〃東西南北方向為紅燈 TRO=!TRO; 〃計數器停止工作 foi(;;) //無條件循環(huán) ( ledtluoughO; 〃調用通行時間顯示函數 if(K0=0) //設置南北通行時間 ( delay(lO); if(K0==0) ( while(!K0) //當松手時跳出循環(huán) 執(zhí)行后面程序 ( ledtluough(); 〃調用通行時間顯示函數 ) SN_G++;
18、 〃南北方向綠燈時間十1 if((SN_G+Y)==100) 〃南北通行時間 100ms SN_G=1; //時間歸 1 } ) if(Kl=0) 〃設置東西方向通行時間 ( delay(lO); if(Kl==0) ( while(! K1) 〃當松手時跳出循環(huán)執(zhí)行后面程序 ( ledtluoughO; 〃調用通行時間顯示函數 ) WE_G十十; 〃東西時間十1 if((WE_G+Y)=100) WE_G=1; //時間歸 1 ) 〃返回 if(K3=0) delay(lO); if(K3==0) wlule(!K3) 〃當松手時跳出循環(huán) 執(zhí)行后面程序 led
19、 through。; 〃調用通行時間顯示函數 ) TR0=!TR0; EA=1; break; 〃跳出 /*****中斷1處理程序********/ void intl(void) intemipt 2 〃啟動計數器 〃開總中斷 Pl=0X6C,P0=a[0]; EA=0; TR0=!TR0; 〃東西南北都為紅燈 // 〃計數器停止工作 leddiive(); if(K3==0) 〃數碼管驅動程序 delay(lO); if(K3==0) ( while(!K3) ( 〃返回 void key() leddnveQ; 〃數
20、碼管驅動程序 ) EA=1; TRO=!TRO; 〃啟動定時器 break; if(K0==0) delay(lO); if(K0=0) wlule(!K0) liglit(); 〃調用交通燈函數 led(); 〃調用數碼管函數 count=0; k=0; 〃清零 //南北方向通車東西方向不通車 SN=SN_G, WE=SN_G+Y; //南北顯示時間為綠燈時間 東 西方向顯示時間為南北綠燈通行時間加黃燈閃亮時間 ) ) if(Kl==0) //南北無車而東西有車 delay(lO); if(Kl=0) while(!Kl) lightQ; ledO
21、; ) count=0; k=2; 〃南北不通車東西通車 SN=WE_G+Y, WE=WE_G; 〃南北顯示時間為東西綠燈通 行時間+黃燈閃亮時間東西方向顯示時間為其綠燈時間 ) ) ) /******** 定時函數*********/ void time 1 (void) intemipt 1 ( TH0=0X3C; TL0=0XB0; count十十; if(count>=20) ( SN-; WE--; count=0; if(SN==0||WE==0) ( k-H-; if(k>3) 〃當k》3執(zhí)行程序 k=0; switch(k) ( case
22、0: SN=SN_G,WE=SN_G+Y;bieak; case 1: SN=Y,WE=Y;break; case 2: SN=WE_G+YWE=WE_G;bieak; case 3: SN=Y,WE=Y;bieak; /******延時 t 毫秒*********/ void delay(uchai t) uchar i; for(i=2000;i>0;i-) /********* 交通燈函數 *******/ void lightQ Pl=c[k]; if(P 1 =c [1 ]&&count=0) ( THl=(65536-50000)/256; TLl=(65
23、536-50000)%256; Pl=0X6E; ) else if(P 1 =c[3]&&count=0) ( THl=(65536-50000)/256; TLl=(65536-50000)%256; Pl=0X7c; ) void led() ( P2=b[0],P0=a[SN%10]; delay ⑸; P2=b[l],P0=a[SN/10]; delay ⑸; P2=b[2],P0=a[WE%10]; delay ⑸; P2=b[3],P0=a[WE/10]; delay ⑸; ) /******通行時間顯示函數*********/ void
24、 ledtluough() ( P2=b[0] ,P0=a[(SN_G+Y)% 10]; delay ⑸; P2=b[l ] ,P0=a[(SN_G+Y)/l 0]; delay ⑸; P2=b[2] .P0=a[(WE_G+Y)% 10]; delay ⑸; P2=b[3] .P0=a [(WE_G 十 Y)/10]; delay(5); /*****數碼管驅動函數********/ void leddnve() ( P2=b[0]; delay ⑸; P2=b[l]; delay ⑸; P2=b[2]; delay ⑸; P2=b[3]; delay ⑸;
25、 ) /******** 主函數 ********/ void mam(void) ( foi(;;) ( keyO; light。; ledO; ) ) 5.5程序運行效果圖 2正常狀態(tài) 11 3lT*U Rd 9J!T Mia*x) p -.*>1 PWO ire ,2.g ? - ? 3黃燈狀態(tài) 在31. GAB 圖4緊急狀態(tài) 六、心得體會 通過這次交通燈的課程設計,使我得到了一次用專業(yè)知識、專業(yè) 技能分析和解決現實問題的能力。使我在單片機的基本原理、單片機 應用學習過程中,以及在常用編程設計思路技巧的掌握方面都能向前 邁了一大步,為日后成為一名合格的應用型人才打下良好的基礎。綜 合課程設計讓我把以前學習到的知識得到鞏固和進一步的提高認識, 對已有知識有了更深層次的理解和認識。在此,由于自身能力有限, 在課程設計中碰到了很多的問題,我通過查閱相關書籍、資料以及和 周圍同學交流得到解決。 還有交通燈是我們生活中非常常見的一種東西,對于我們學以致 用的這種能力得到了很好鍛煉,能夠為我們以后的工作于學習打下基 礎。 由于本人的水平有限,設計中難免會有一些不合理的部分,系統(tǒng) 的穩(wěn)定性還有待提高。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。