




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 PAGE- 31 - / NUMPAGES31摘要本設計是一個以微電子技術,計算機和通信技術為先導的,而計算機技術怎樣與實際應用更有效的結合并有效的發揮其作用是科學界最熱門的話題,也是當今計算機應用中空前活躍的領域。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統。本系統由單片機系統、按鍵、四位數碼管顯示、交通燈演示系統組成。設計一個用于東西、南北走向的交通管理。南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運行,主干道每次通行時間都設為30秒、支干道每次通行間為20秒。系統除基本交通燈功能外,還
2、具有倒計時、時間設置、緊急情況處理、分時段調整信號燈的點亮時間以與根據具體情況手動控制等功能。本系統結構簡單,操作方便;可實現自動控制,具有一定的智能性;對優化城市交通具有一定的意義。本設計將各任務進行細分包裝,使各任務保持相對獨立;能有效改善程序結構,便于模塊化處理,使程序的可讀性、可維護性和可移植性都得到進一步的提高。近年來隨著科技的飛速發展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。 本文主要從單片機的應用上來實現十字路口交通燈智
3、能化的管理,用以控制過往車輛的正常運作。關鍵詞:交通燈;單片機;AT89S52目錄1 概述31.1設計背景31.2設計任務32 系統總體方案與硬件設計 42.1 AT89S52單片機簡介42.2 系統硬件電路的設計43 軟件設計73.1 交通燈的設計程序流程圖73.2定時器0與中斷響應84 Proteus軟件仿真104.1仿真電路圖 104.2 仿真步驟105 課程設計體會11參考文獻11附1: 源程序代碼 12附2: 系統原理圖 181 概述1.1 設計背景如今隨著人們生活水平的提高,車輛越來越多,交通事故頻繁發生。交通信號燈的出現,使交通得以有效管制,對于疏導交通流量,提高道路通行能力,減
4、少交通事故有明顯效果。交通燈在城市交通中起著重要的作用,它與人們日常生活密切相關,是人們出行的安全保障。因此提供一個可靠、安全、便捷的多功能交通燈控制系統有著現實的必要性。為了解決這些問題,我們更應該提高交通控制和管理水平,合理使用現有交通設施,充分發揮其能力,提高交通效率,促進和諧交通的建立。近年來隨著科技的飛速發展,單片機的應用正在不斷地走向深入,同時帶動傳統控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構,以與針對具體應用對象特點的軟件結合,加以完善。本系統設計一個基于單片機的交通燈控制系統。
5、能方便的對交通燈進行控制,使交通更和諧。1.2設計任務1)設計一個十字路口的交通燈控制電路,要求南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運行,主干道每次通行時間都設為30秒、支干道每次通行間為20秒,時間可設置修改。2)在綠燈轉為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道;3)黃燈亮時,要求每秒閃亮一次。4)東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進行顯示(采用計時的方法)。5)一道有車而另一道無車(實驗時用開關 K0 和 K1 控制),交通燈控制系統能立即讓有車道放行。 6)有緊急車輛要求通過時,系統要能禁止普通車輛通行,A、
6、B道均為紅燈,緊急車由K2 開關模擬。2 系統總體方案與硬件設計2.1 AT89S52單片機簡介AT89S52是一種低功耗、高性能CMOS8位微控制器。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在系統可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節Flash,256字節RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片晶振與時鐘電路。空閑模式下,CPU停止工作,允許RAM、定時器/計數器、串口
7、、中斷繼續工作。鑒于以上的優點本系統采用AT89S52作為主控芯片,實現對整個系統的控制。2.2 系統硬件電路的設計(1)時鐘電路設計圖2-1時鐘電路原理圖如圖2-1所示,采用部時鐘產生方式,在XTAL1和XTAL2兩端跨接晶體或瓷振蕩器,與部反相器構成穩定的自擊蕩器。其發出的時鐘脈沖直接送入片定時控制部件。(2)復位電路設計 圖2-2上電+按鈕電平復位電路原理圖如圖2-2所示,采用上電+按鈕電平復位方式,當按下按鈕時,RST管腳高電平觸發。為保證復位可靠,RC時間常數應大于兩個機器周期,一般電容去22uF,電阻取1K。(3)燈控制電路設計 圖2-3交通燈狀態顯示電路如圖2-3所示,交通燈狀態
8、顯示電路由東西南北四個方向各三個LED燈組成,分別顯示四個方向上紅、黃、綠三個狀態,用以指示十字路口各方向車輛的行駛。通過軟件編程,可使路口交通變化情況為:南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運行,主干道每次通行時間都設為30秒、支干道每次通行間為20秒;在綠燈轉為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道;黃燈亮時每秒閃亮一次。(4)倒計時顯示電路設計圖2-4 數碼管顯示電路原理圖如圖2-4所示,由一個共陽極四位數碼管來實現倒計時。由于P0口輸出電流小,需外接上拉電阻,COME端接5V電源。(5)按鍵控制電路設計圖2-5鍵盤電路原理圖如圖2-5所示,開光控
9、制由PD1-PD5四個連接到單片機的控制按鈕組成。通過軟件編程,按下PD1電路進入外部中斷響應,數碼顯示時間將停止倒計時,此時,可通過按鈕PD3和PD4設置通行時間,每按一下PD3時間增加1s,而按下PD4時間減少1s。按下PD5將使程序重新進入循環點亮狀態。3軟件設計3.1 交通燈的設計程序流程圖南北通行開始中斷?中斷程序返回?K0=0?K1=0?DX=0?東西通行中斷?中斷程序NB=0?K0=0?K1=0?返回?NYNYYNNYNNNNNNYYYYYY3.2定時器0與中斷響應定時溢出計數初值加一開始 N定時器0初始化 Y計數初值=99? N Y計數初值=04 Proteus軟件仿真4.1
10、仿真圖4.2 仿真步驟(1)根據電路圖選擇器件連接電路(2)雙擊AT89S52裝入源程序編譯生成的HEX文件(3)單擊運行按鈕運行仿真(4)根據仿真情況與程序實現任務對比,對于不能實現的任務修改并調試程序,重新裝載重新運行調試仿真,直到能完全實現所要求的功能為止(5)進一步改進和簡化程序在進行調試仿真5 課程設計體會通過這次單片機實訓課程學習,才深刻體會到自己實際操作能力的匱乏。從剛開始老師對單片機的整體介紹與其應用前景,對單片機產生了濃厚的興趣,并利用自己的課余時間提前學習有關單片機的基本知識。但空有理路知識,卻無半點的實際操作經驗。后來在老師的建議下,選擇運用單片機設計一個交通燈控制系統,
11、從簡單開始,后期逐步復雜化。從給定電路圖的分析到實際電路元件的識別、焊接,再到后期的程序設計以與系統調試,初步掌握了運用單片機系統設計特定功能的設計步驟,也對單片機有了更深的體會。了解和掌握了一些簡單的編程思想,對單片機各管腳的功能,I/O口的使用條件都有了更深的理解。這次的課程設計讓我把單片機的理論知識運用的實踐中,實現了理論與實踐的相結合,從中更懂得了理論是實踐的基礎,實踐更能檢驗理論的真實性,讓我受益匪淺。參考文獻:1 朝青.單片機原理與接口技術(修訂版).:航空航天大學,19982 廣弟.單片機基礎.:航空航天大學,19923 何立民.單片機應用技術大全.:航空航天大學, 19944
12、毅剛. 單片機原理與接口技術.:工業大學,19905 譚浩強.單片機課程設計. :清華大學,19896 余發山.單片機原理與應用技術 :中國礦業大學,2007附錄1 源程序代碼 /#include #include / 對單片機的口進行了定義#define uint unsigned int#define uchar unsigned charuchar code a10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/段碼組合,共陰極uchar code b4=0 xfe,0 xfd,0 xfb,0 xf7; /位碼組
13、合 低有效uchar code c4=0 xcc,0 xd4,0 x78,0 xb8;/*P1 綠紅、黃紅、紅綠、紅黃*/ /12MHz /*uchar NB=25,DX=30,NBG=25,DXG=15,H=5; /*數碼管顯示值設置*/uchar i,k=0,cnt=0,j=0; sbit K0=P35; /*支干道通行*/sbit K1=P36; /*主干道通行*/sbit K4=P37; /*返回*/sbit K3=P32;/*設置時間*/sbit K2=P33;/*緊急剎車*/void delay(uchar t);/*定義延時程序*/void key();/*定義鍵盤程序*/voi
14、d display();/*定義顯示程序*/void settime();/*定義時間設置顯示程序*/*程序初始*void init(void)TMOD=0 x01; /*使用定時器0模式一*/TH0=0 x3c; /*(65536-5000)/256*/TL0=0 xb0; /*(65536-5000)%256*/IT0=1; /開中斷ET0=1;TR0=1;EA=1;EX0=1;EX1=1;P1=ck; /開啟交通燈/*中斷0處理程序*void int0(void) interrupt 0 /通行時間設置 EA=0; P1=0 xd8;/*紅燈全亮*/for(;) settime(); i
15、f(K1=0) /*P36=0設置主干道通行時間*/ delay(40); if(K1=0) while(!K1) settime(); NBG+;/*主干道通行時間加1*/ if(NBG=100) NBG=0; if(K0=0) /*P35=0設置支干道通行時間*/ delay(40); if(K0=0) while(!K0) settime(); DXG+;/*支干道通行時間加1*/ if(DXG=100) DXG=0; if(K4=0) /*P37=0返回*/ delay(40); if(K4=0) while(!K4) k=0;P1=ck; NB=NBG,DX=NBG+H; displ
16、ay(); EA=1; break; /*中斷1處理程序*void int1(void) interrupt 2 /緊急情況 /*東西南北紅燈亮*/EA=0;TR0=!TR0; /*停止計數*/for(;) /*主支干道顯示全為0*/ P1=0 xd8,P0=a0; P2=0 xfe; delay(20); P2=0 xfd; delay(20); P2=0 xfb; delay(20); P2=0 xf7; delay(20); if(K4=0) /*返回*/ delay(20);EA=1;P1=ck; /*返回緊急前狀態開始計數*/TR0=!TR0;/*重啟計數*/break; void
17、time1(void) interrupt 1/*交通燈控制程序*/TH0=0 x3c;/*定時50ms*/TL0=0 xb0; cnt+;if(cnt=20) /*每20*50ms=1s自減一*/NB-;DX-;cnt=0;if(NB=0|DX=0)k+;if(k3)/*k取0,1,2,3*/k=0;switch(k)case 0:NB=NBG,DX=NBG+H;j=0;P1=ck;break; /*主干道通行顯示綠紅*/ case 1:NB=H;j=1;P1=ck;break; /*主干道黃燈閃爍*/case 2:NB=DXG+H,DX=DXG;j=0;P1=ck;break; /*支干道
18、通行顯示紅綠*/case 3:DX=H;j=2;P1=ck;break; /*支干道黃燈閃爍*/ void delay(uchar t) /延時程序延時0.1*nms uchar i; do for(i=0;i0;i-)display();/*執行for循環延時*/ P1=ck;/*再給黃燈一低電平黃燈亮*/ for(i=83;i0;i-)display();while(j=2) /*支干道黃燈閃爍*/ P1=0 xf8; for(i=83;i0;i-)display(); P1=ck; for(i=83;i0;i-)display(); 附錄2 系統原理圖在該設計基礎上,作者增加了日歷顯示功
19、能,顯示月、日、時、分,電路圖和程序如下:交通燈程序:#include#define uchar unsigned char/宏定義uchar#define uint unsigned int/宏定義uintsbit RED_DONGXI = P10;/南北方向紅燈亮sbit YELLOW_DONGXI = P11;/南北方向黃燈亮sbit RED_NANBEI = P13;/東西方向紅燈亮sbit GREEN_DONGXI = P12;/南北方向綠燈亮sbit YELLOW_NANBEI = P14;/東西方向黃燈亮sbit GREEN_NANBEI = P15;/東西方向綠燈亮sbit D
20、Xweixuan1 = P16;/南北方向數碼管位選1sbit DXweixuan2 = P17;/南北方向數碼管位選2sbit NBweixuan1 = P30;/東西方向數碼管位選1sbit NBweixuan2 = P31;/東西方向數碼管位選2sbit L1=P35; sbit L2=P36;sbit L3=P37; /數碼管顯示位月、日、時、分選控制端uint aa, bai,shi,ge,bb; uint shi1,ge1,shi2,ge2,minute=00,hour=07,day=20,month=11;/月日時分初始值設定uint month1,month2,day1,day
21、2,hour1,hour2,minute1,minute2;/定義變量/*數碼管顯示0-9*/uint code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;uint code table1=0 xfc,0 x60,0 xda,0 xf2,0 x66,0 xb6,0 xbe,0 xe0,0 xfe,0 xf6;/*子函數聲明*/void delay(uint z);void delay0(uint z);void init(uint a);void display(uint shi1,uint ge1,ui
22、nt shi2,uint ge2);void xtimer0();void init1();void init2();void init3();void init4();void init5();void init6();void display1();/* 主函數*/void main()P0=0 xFF;P1=0 xFF;P2=0 x00; P3=0 xFF;EA=1;/打開外部中斷EX0=1;/允許外部中斷0中斷IT0=0;EX1=1;/允許外部中斷1中斷IT1=0;display1();/INT0為沿觸發方式 init1();/第1個位狀態 while(1) init6();/第6個狀
23、態 init2();/第2個狀態 init3();/第3個狀態 init4();/第4個狀態 init5();/第5個狀態 void init1()/預備狀態東、西、南、北方向均亮紅燈3S uint temp;temp=3;/變量賦初值TMOD=0 x01;/定時器0工作于方式1TH0=(65535-50000)/256;TL0=(65535-50000)%256;/定時器賦初值EA=1;/開外部中斷ET0=1;/開定時中斷TR0=1;/開定時器0while(1)RED_DONGXI=0; RED_NANBEI=0;GREEN_DONGXI=1;GREEN_NANBEI=1;YELLOW_DO
24、NGXI=1;YELLOW_NANBEI=1;if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0temp-;/變量自減shi1=shi2=temp/10;/顯示十位ge1=ge2=temp%10; /顯示個位 if(temp=0)temp=5;/變量賦值為5break;display(ge1,shi1,ge2,shi2); /顯示紅綠燈顯示剩余時間display1() ; /顯示年、月、日void init2()/第二個狀態:東西亮紅燈30S5S、南北亮綠燈250S;uint temp;temp=26;/變量賦初值TMOD=0 x01;/定時器0工作于方式1TH0=(6
25、5535-50000)/256;TL0=(65535-50000)%256;/定時器賦初值EA=1;/開外部中斷ET0=1;/開定時中斷TR0=1;/開定時器0while(1) RED_DONGXI=1;RED_NANBEI=0;GREEN_DONGXI=0; GREEN_NANBEI=1;YELLOW_DONGXI=1; YELLOW_NANBEI=1;if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0temp-;/變量自增shi1=(temp+5)/10;/顯示十位ge1=(temp+5)%10;/顯示個位shi2=temp/10;ge2=temp%10;if(te
26、mp=0)/定時25Stemp=26;/變量清0break;display(ge1,shi1,ge2,shi2);display1();void init3() /第三個狀態:南北綠燈變為黃燈閃5s、東西方向亮紅燈5S uint temp;temp=6;/變量賦初值TMOD=0 x01;/定時器0工作于方式1TH0=(65535-50000)/256;TL0=(65535-50000)%256; /定時器賦初值EA=1;/開外部中斷ET0=1;/開定時中斷TR0=1;/開定時器0while(1)RED_NANBEI=0;GREEN_DONGXI=1;if(aa=20)/定時20*50MS=1S
27、aa=0;/定時完成一次后清0temp-;/變量自增YELLOW_DONGXI=YELLOW_DONGXI;shi1=temp/10;shi2=shi1;/顯示十位ge1=temp%10;ge2=ge1;/顯示個位 if(temp=0)/定時5Stemp=6;/變量賦值break;display(ge1,shi1,ge2,shi2);display1();void init4()/第四個狀態:東西亮綠燈250S,南北方向亮紅燈305S;uint temp;temp=26;/變量賦初值TMOD=0 x01;/定時器0工作于方式1TH0=(65535-50000)/256;TL0=(65535-5
28、0000)%256;/定時器賦初值EA=1;/開外部中斷ET0=1;/開定時中斷TR0=1;/開定時器0while(1)RED_DONGXI=0; RED_NANBEI=1;YELLOW_DONGXI=1; GREEN_NANBEI=0;if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0temp-;/變量自增shi1=temp/10;shi2=(temp+5)/10;/顯示十位ge1=temp%10;ge2=(temp+5)%10;/顯示個位 if(temp=0)/定時25Stemp=26;/變量清0break;display(ge1,shi1,ge2,shi2);di
29、splay1();void init5()/第五個狀態:東西閃黃燈50s、南北紅燈5S uint temp;temp=6;/變量賦初值TMOD=0 x01;/定時器0工作于方式1TH0=(65535-50000)/256;TL0=(65535-50000)%256;/定時器賦初值EA=1;/開外部中斷ET0=1;/開定時中斷TR0=1;/開定時器0while(1)RED_NANBEI=1;RED_DONGXI=0;GREEN_DONGXI=1;GREEN_NANBEI=1;if(aa=20)/定時20*50MS=1Saa=0;/定時完成一次后清0temp-;/變量自增 YELLOW_NANBE
30、I=YELLOW_NANBEI;shi1=temp/10;shi2=shi2;/顯示十位ge1=temp%10;ge2=ge1;/顯示個位 if(temp=0)/定時100Stemp=6;/變量清0break; display(ge1,shi1,ge2,shi2);display1();void init6()/顯示年、月、日minute+;month1=month/10;month2=month%10;day1=day/10;day2=day%10;hour1=hour/10;hour2=hour%10;minute1=minute/10;minute2=minute%10;if(minut
31、e=60)hour+;if(hour=24)day+;if(day=30)month+;/*顯示子函數*/void display1()L1=0,L2=0,L3=0;P2=table1month1;delay0(2);L1=1,L2=0,L3=0;P2=table1month2;delay0(2);L1=0,L2=1,L3=0;P2=table1day1;delay0(2);L1=1,L2=1,L3=0;P2=table1day2;delay0(2);L1=0,L2=0,L3=1;P2=table1hour1;delay0(2);L1=1,L2=0,L3=1;P2=table1hour2;delay0(2);L1=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據庫優化過程中的技巧揭示試題及答案
- 高校國際交流合作項目2025年度安全管理制度
- 2025年人力資源管理師三級考試模擬試卷:招聘與培訓管理案例實戰
- 2025年春北師版數學九年級下冊 第3章 3 垂徑定理
- 2025年中考數學模擬試題(函數專題突破之函數應用)
- 2025年證券保薦代表人勝任能力考試真題解析與模擬試卷:實戰攻略
- 2025年注冊建筑師(一級)建筑設計知識題模擬試卷(建筑規范與建筑排水)
- 2025年教師資格證教育知識與能力(中學)強化訓練卷:教育心理學實驗報告
- 2025年注冊造價工程師計價控制實戰攻略模擬試題
- 2025年計算機二級Delphi考試模擬試卷試題及答案
- 醫院培訓課件:《護患溝通技巧》
- 食品安全監督抽查與抽檢培訓
- 臍帶脫垂護理病例討論
- 空調風道改造技術方案
- 前懸掛整稈式甘蔗收割機雙刀盤切割與喂入裝置設計與試驗的中期報告
- 《不朽的貝尼尼雕塑》課件
- 《如何閱讀文獻》課件
- 建筑工程抗浮技術標準JGJ476-2019
- 云計算標準體系研究報告
- 《林業科普知識》課件
- 生產線技改后效果對比
評論
0/150
提交評論