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