單片機(jī)課程設(shè)計十字路口的交通燈控制電路
《單片機(jī)課程設(shè)計十字路口的交通燈控制電路》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)課程設(shè)計十字路口的交通燈控制電路(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、蘇州科技學(xué)院單片機(jī)課程設(shè)計報告 蘇州科技學(xué)院 單片機(jī)課程設(shè)計 單片控制的交通燈控制系統(tǒng)設(shè)計 姓 名: XX 學(xué) 號: zzzzzzzzz 專業(yè)班級: xxxx 指導(dǎo)老師: 徐樹梅 所在學(xué)院: 機(jī)電工程系 2012年6月1日 摘要 本設(shè)計是單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計。隨著經(jīng)濟(jì)的發(fā)展,交通運(yùn)輸中出現(xiàn)了一些傳統(tǒng)方法難以解決的問題。道路擁擠現(xiàn)象日趨嚴(yán)
2、重,造成的經(jīng)濟(jì)損失越來越大,并一直保持大比例的增長?,F(xiàn)在交通系統(tǒng)已不能滿足經(jīng)濟(jì)發(fā)展的需求。由于生活水平的提高,人們對交通運(yùn)輸?shù)陌踩约胺?wù)水平提出了更高的要求。在交通中管理引入單片機(jī)交通燈控制代替交管人員在交叉路口服務(wù),有助于提高交通運(yùn)輸?shù)陌踩?、提高交通管理的服?wù)質(zhì)量。并在一定程度上盡可能的降低由道路擁擠造成的經(jīng)濟(jì)損失,同時也減小了工作人員的勞動強(qiáng)度。 當(dāng)前,國內(nèi)大多數(shù)城市正在采用“自動”紅綠交通燈,它具有固定的“紅燈—綠燈”轉(zhuǎn)換間隔,并自動切換。它們一般由“通行與禁止時間控制顯示、紅黃綠三色信號燈和方向指示燈”三部分組成。
3、 現(xiàn)在我們利用“自動控制”控制交通燈的方法。將事先編制好的程序輸入單片機(jī),利用單片機(jī)的定時、查詢、中斷功能;能夠根據(jù)十字路口兩個方向上車輛動態(tài)狀況,采用查詢的方式,根據(jù)具體情況,自動給予時間通行,其中利用中斷方式來處理特殊情況。這樣既方便駕駛員、路人,同時還可以緊急處理一些緊急實況。同樣具有紅、黃、綠燈的顯示功能,為駕駛員、路人“照明”。 中國車輛數(shù)量不斷增加,交通控制在未來的交通管理中起著越來越重要的作用。智能交通燈的管理比重修一條馬路無論在經(jīng)濟(jì)、交通運(yùn)行速率上都有很好的效益、更加節(jié)約資源。使交管人員有更多的精力投入到管理整個城市交通控制,帶來更大的經(jīng)濟(jì)和社會效益,為創(chuàng)造美好的城市交通形
4、象發(fā)揮更多的作用。 1 系統(tǒng)總體方案 1.1設(shè)計要求: 1)南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運(yùn)行,主干道每次通行時間都設(shè)為30秒、支干道每次通行間為20秒。 2)在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才能變換運(yùn)行車道; 3)黃燈亮?xí)r,要求每秒閃亮一次。 4)東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進(jìn)行顯示(采用計時的方法)。 5)當(dāng)有突發(fā)事情發(fā)生時(如有救護(hù)車通過時),可通過按鍵將各個路口設(shè)置成紅燈,只讓救護(hù)車通過。 1.2設(shè)計任務(wù): 1)東西、南北車輛交替運(yùn)行
5、2)綠燈轉(zhuǎn)為紅燈時,黃燈閃亮(間隔1秒)。 3)能顯示剩余時間。 4)能對交通運(yùn)行進(jìn)行控制。 1.3總體設(shè)計 單片機(jī) 中斷按鍵 復(fù)位電路 晶振電路 數(shù)碼顯示 LED顯示 2 硬件設(shè)計 2.1單片機(jī)選型:AT89C52 與MCS-51單片機(jī)產(chǎn)品兼容 、8k可反復(fù)擦寫(大于1000次)Flash ROM、 時鐘頻率:0Hz~24Hz 、 三級加密程序存儲器 、 32個雙向I/O口 、2個串行中斷,可編程UART串行通道、3個16位可編程定時/計數(shù)器中斷 、2個外部中斷源,共8個中斷源、低功耗空閑和掉電模式、軟件設(shè)置睡眠和喚醒功能、
6、2個讀寫中斷口線、3級加密位、看門狗定時器 、雙數(shù)據(jù)指針。 功能特性描述 AT89C52是一個低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。AT89C52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)
7、構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路,8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash ROM。 P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,P0口被分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。 在Flash 編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫
8、“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。 P1端口引腳號第二功能: P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P2 口:P2 是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出
9、緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX @RI 指令)時,P2 口輸出P2 鎖存器的內(nèi)容。 Flash 編程或校驗時,P2亦接收高位地址和一些控制信號。 P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩
10、沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。 P3 口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。 P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號。 P3端口引腳第二功能: P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INTO(外中斷0) P3.3 IN
11、T1(外中斷1) P3.4 TO(定時/計數(shù)器0) P3.5 T1(定時/計數(shù)器1) P3.6 WR(外部數(shù)據(jù)存儲器寫選通) P3.7 RD(外部數(shù)據(jù)存儲器讀選通) RST——復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 ALE/PROG——當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)
12、。 如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效。 PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機(jī)器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。 EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果
13、加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。 FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。 引腳結(jié)構(gòu)圖如下所示: 引腳結(jié)構(gòu)圖 2.2復(fù)位電路:上電+按鈕 復(fù)位電路原理圖 當(dāng)8051的ALE及/PSEN兩引腳輸出高電平,RST引腳高電平到時,單片機(jī)復(fù)位。RST/VPD端的高電平,若直接由啟動瞬間產(chǎn)生,則為啟動復(fù)位,若通過按動按鈕產(chǎn)生高電平復(fù)位稱手動復(fù)位。圖中,上電時,接通電源,電容器C相當(dāng)于瞬間短路,+5V加到了RST/VPD端
14、,該高電平使8051全機(jī)復(fù)位。若運(yùn)行過程中,需要程序從頭執(zhí)行,只需按動按鈕開關(guān),則直接把+5V加到了RST/VPD端,從而復(fù)位。顯然,該電路即可以上電復(fù)位,也可以手動復(fù)位,是常用復(fù)位電路之一。 2.3晶振電路 晶振電路原理圖 晶振電路采用外部晶振電路,使用兩個1uF電容并聯(lián)接地,并在中間再并聯(lián)晶振,保持外部晶振電路的振蕩頻率與8051的內(nèi)部頻率一致,保持了電路中所提供的始終頻率穩(wěn)定。 2.4數(shù)碼管顯示:7SEG-MPX2-CC 數(shù)碼管結(jié)構(gòu)圖 此處采用的數(shù)碼管時共陰極數(shù)碼管,G、F、E、D、C、B、A七個端口是輸入端口,對其各位進(jìn)行賦值,置位則亮,復(fù)位則滅,用此來顯示出
15、相應(yīng)的數(shù)字;1、2兩端口用來控制高位和低位的選通顯示,只要對端口置位,便可以選擇該端口,并對其所代表的位進(jìn)行賦值,顯示。 2.5發(fā)光二極管顯示 每個路口都采用了三個LED燈來顯示,分別代表了紅黃綠三種燈,來模擬路口交通燈的變換。 2.6鍵盤:獨(dú)立鍵盤+中斷 采用開關(guān)來控制進(jìn)入中斷,可以在路口出現(xiàn)緊急情況時,拉動開關(guān),來使得紅綠燈發(fā)生相應(yīng)的改變,已處理緊急情況下的車輛通行。 3 軟件設(shè)計 3.1總體流程圖 調(diào)支路通行子程 開 始 中斷初始化 調(diào)主干道黃燈閃爍子程 調(diào)主干道通行子程序 調(diào)支
16、路黃燈閃爍子程 判斷是否有開關(guān)中斷? 中斷處理 中斷返回(到子程序處) NO YES 3.2 緊急中斷子程序流程圖 斷點(diǎn)入棧保護(hù) 狀態(tài)參數(shù)設(shè)置 送狀態(tài)字至端口 狀態(tài)響應(yīng) 斷點(diǎn)返回 開 始 開 始 3.3循環(huán)流程控制思路: 中斷 東西綠燈 南北紅燈 東西黃燈閃 南北紅燈亮 東西紅燈 南北綠燈 東西紅燈亮 南北黃燈閃 4 Proteus軟件仿真
17、
4.1 正常運(yùn)行狀態(tài)
4.2 中斷運(yùn)行狀態(tài)
4.3 黃燈閃爍狀態(tài)
5 源程序代碼
#include
18、 sbit gw=P2^5; sbit shi=P3^6; sbit ge=P3^7; /*對要使用的單片機(jī)各個口進(jìn)行定義*/ bit flag=0; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; /*將數(shù)字0123456789的16進(jìn)制數(shù)定義成數(shù)組用以顯示*/ void delay(uint z); void
19、 disp(uint n); void yn_flash(void); void yw_flash(void); void xint0(); void timer0(); void LED_ON(); void xint1(); void LED_OFF(); void rnzhu(); void rwzhi(); /*將所使用的子函數(shù)定義*/ void main() { uint num; num=0; aa=0; TMOD=0x01; TH0=(65536-50000)/2
20、56; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; EX0=1; IT0=0; EX1=1; IT1=1; /*中斷初始化*/ while(1) { rnzhu(); yn_flash(); rwzhi(); yw_flash(); /*主函數(shù)中顯示部分*/ } } void delay(uint z) /*延時子函數(shù)*
21、/ { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void timer0() interrupt 1 /*定時器初始化*/ { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; if(aa==18) { aa=0; flag=1; } } void disp(uint n) /*顯示子函數(shù)*/ { while(!
22、flag) { ge=0; P0=table[n%10]; delay(50); shi=1;ge=1; shi=0; P0=table[n/10]; delay(50); shi=1;ge=1; } if(flag==1) flag=0; } void rnzhu() /*主干道的紅綠燈和數(shù)碼管顯示子函數(shù)*/ { uint num; num=30; disp(num); while(num<=30&
23、&num>0) { num--; P2=0xde; disp(num); } } void rwzhi() /*支路的紅綠燈和數(shù)碼管顯示子函數(shù)*/ { uint num; num=20; while(num<=20&&num>0) { P2=0xf3; disp(num); num--; } } void yn_flash(void) /*主干道的黃燈和數(shù)碼管顯示子函數(shù)*/ {
24、 uint a; for(a=5;a>0;a--) { P2=0xdd; yn=1; delay(100); yn=0; disp(a); } } void yw_flash(void) /*支路的黃燈和數(shù)碼管顯示子函數(shù)*/ { uint a; for(a=5;a>0;a--) { P2=0xeb; yw=1; delay(100); yw=0; disp(a); } } void xint0() interrupt
25、2 /*中斷定義*/ { TH0=(65536-50000)/256; TL0=(65536-50000)%256; LED_ON(); } void LED_ON() /*開關(guān)控制燈的子函數(shù)*/ { uint b; rn=0; rw=0; gn=1; gw=1; yn=1; yw=1; for(b=5;b>0;b--) { ge=0;shi=1; P0=table[
26、b]; delay(1000); ge=1; shi=1; } return; } 6 原理圖 6.1 系統(tǒng)原理圖 6.2 PCB版圖 課程設(shè)計體會 課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。 這次的單片機(jī)課程設(shè)計大概用了一周的時間,在這一周的時間當(dāng)中,雖然開始遇到了很
27、多的困難,但是由于合理地進(jìn)行設(shè)計安排,分工合作,并各自查閱了相關(guān)的資料,最后在大家共同努力下我們順利地完成了本次單片機(jī)課程設(shè)計,同時也學(xué)到了很多東西。 回顧起此次單片機(jī)課程設(shè)計,至今我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。例如我們在設(shè)計數(shù)碼管顯示的時候,剛開始的時候,由于對數(shù)碼管引腳的不熟悉,我們都無法讓數(shù)字顯示,后來發(fā)現(xiàn)時十位和個位的置位、復(fù)位發(fā)生了問題,我們對此進(jìn)行了修改,可以正確的顯示出十位及個位的數(shù)值,但是數(shù)字的顯示不穩(wěn)定,不停
28、的跳動,我們?yōu)榇瞬殚喠撕芏嗟馁Y料,但還是未能解決,最后我們不停地對程序進(jìn)行修改,終于發(fā)現(xiàn)了問題所在,在顯示子程序上存在缺陷未能快速的切換對十位、個位的置位和復(fù)位,經(jīng)過這樣的修改,終于可以完美的顯示時間了。我們也更好地掌握了對數(shù)碼管的使用,這都是課堂上學(xué)不到的知識。 這次的單片機(jī)課程設(shè)計是通過實踐操作和理論相結(jié)合,提高動手實踐能力,提高科學(xué)的思維能力。與此同時,我們也對分工合作有了進(jìn)一步的認(rèn)識,只有通過合理的分工合作,我們們才能夠在短短一周的時間內(nèi)完成設(shè)計任務(wù),相信這對以后在社會上工作和學(xué)習(xí)會有很多幫助,讓我們能更好的進(jìn)入工作狀態(tài)。最重要的是,這次課程設(shè)計也增加了我們對問題的研究
29、和探討,們以后的學(xué)習(xí)中會有更多的幫助。 單片機(jī)為我們的主要專業(yè)課之一,對我們還是很有幫助的,課程設(shè)計也是為我們以后的工作提前進(jìn)行了一次練手,也是我們學(xué)習(xí)生活之中少有的一次自己探索、研究,發(fā)現(xiàn)問題、解決問題的機(jī)會。當(dāng)然要做好一個課程設(shè)計也不是很簡單的,我認(rèn)為有以下幾步: (1) 在設(shè)計程序之前,對所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源; (2) 要有一個清晰的思路和一個完整的的軟件流程圖,善于將大的程序段縮小為每個子函數(shù)來實現(xiàn); (3) 在設(shè)計程序時,不能妄想一次就將整個程序設(shè)計好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計的必經(jīng)之路; (4) 要養(yǎng)成注釋程序的好習(xí)慣,寫程序
30、是應(yīng)該思路清晰,結(jié)構(gòu)明了,應(yīng)該讓人一看就能明 白你的思路,方便資料的保存和交流; (5) 我們們應(yīng)該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題的 ; 在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。我們們通過查閱大量有關(guān)資料,并在小組中互相討論,交流經(jīng)驗和自學(xué),若遇到實在搞不明白的問題就會及時請教老師,或者與其他小組成員討論,共同解決,使自己學(xué)到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。通過這次課程設(shè)計我們也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運(yùn)用到實踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。 通過這次課程設(shè)計使我更加懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正將一個東西學(xué)好學(xué)透,從而提高自己的實際動手能力和獨(dú)立思考的能力。我想這對于我今后的學(xué)習(xí)生活和工作都會是有很大幫助的! 17
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。