基于單片機的交通燈顯示系統的設計與研究.doc_第1頁
基于單片機的交通燈顯示系統的設計與研究.doc_第2頁
基于單片機的交通燈顯示系統的設計與研究.doc_第3頁
基于單片機的交通燈顯示系統的設計與研究.doc_第4頁
基于單片機的交通燈顯示系統的設計與研究.doc_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 萍鄉(xiāng)學院課程設計課 程 單片機課程設計 題 目 交通燈系統 院 系 機電系 專業(yè)班級 學生姓名 學生學號 指導教師 2016年 03月 20日 目錄 摘要3引言31.設計目的42.設計要求43.系統總體方案硬件設計43.1設計思想及總體設計43.2硬件設計53.3復位電路93.4數碼管顯示93.5 紅綠燈顯示103.6鍵盤:獨立鍵盤+中斷103.7系統原理圖114軟件設計114.1總體流程114.2循環(huán)流程控制思路124.3源程序125調試運行175.1正常運行狀態(tài)175.2左右行顯示185.3黃燈閃爍顯示186.設計心得體會197參考文獻19 摘要交通在人們的日常生活中占有重要的地位,隨著

2、人們社會活動的日益頻繁,這點更是體現的淋漓盡致。交通信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。本系統采用單片機AT89C51為中心器件來設計交通燈控制器,系統實用性強、操作簡單、擴展強。本設計就是采用單片機模擬十字路口交通燈的各種狀態(tài)顯示以及倒計時時間。本設計系統由單片機,交通燈狀態(tài)顯示系統、LED數碼顯示系統等幾大部分組成。系統除基本的交通燈功能外,還具有倒計時、緊急情況處理等功能,較好的模擬實現了十字路口可能出現的狀況。本系統采用單片機C語言編寫,主要編寫了主程序,LED數碼管顯示程序等。總體上完成了軟件的編寫。關鍵詞:交通燈;控制;AT

3、89C51;倒計時顯示引言近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,加以完善。交通信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果交通信號燈在大多數城市得到了廣泛的應用。傳統的交通信號燈控制一般采用了電子線路和繼電器控制,結構復雜,可靠性低,故障率高。本次設計是基于AT89C51單片機的交通燈控制系統,東西南北的通行時間可調,倒計時顯示通行時間

4、燈功能,該系統具有設計周期短、可靠性高維護方便、使用簡單等優(yōu)點。 1.設計目的 1.1鞏固和加深對單片機原理和接口技術知識的理解; 1.2培養(yǎng)根據課題需要選學參考書籍、查閱手冊和文獻資料的能力; 1.3學會方案論證的比較方法,拓寬知識,初步掌握工程設計的基本方法; 1.4掌握常用儀器、儀表的正確使用方法,學會軟、硬件的設計和調試方法;1.5能按課程設計的要求編寫課程設計報告,能正確反映設計和實驗成果,能用計 算機繪制電路圖和流程圖。 2.設計要求 1)東西干道和南北干道的通行分左行,右行,直行,其中左行,右行固定15秒;直行固定30秒。 2)信號燈分綠燈,紅燈,黃燈,每次綠燈換紅燈時,黃燈亮3

5、秒。 3)東西干道和南北干道交替控制,每次干道綠燈交替時,有3秒鐘所有干道的交通燈都是黃燈閃爍3秒鐘,提示已經進入路口的車輛迅速通過。 4)當遇到突發(fā)狀況時,各個方向靜止通行,顯示紅燈,并維持5秒倒計時。 3.系統總體方案硬件設計 3.1設計思想及總體設計 1)分析目前交通路口的基本控制技術以及各種通行方案,并以此為基礎提出自己的交通控制的初步方案。2)確定系統交通控制的總體設計,包括,十字路口具體的通行禁行方案設計以及系統應擁有的各項功能,在這里,本設計除了有信號燈狀態(tài)控制能實現基本的交通功能,還增加了倒計時顯示提示。3)進行顯示電路,燈狀態(tài)電路,按鍵電路的設計和各器件的選擇及連接,大體分配

6、各個器件及模塊的基本功能要求。4)進行軟件系統的設計,對于本系統,本人采用C語言編寫,對單片機內部結構和工作情況做了充足的研究,了解定時器,中斷以及延時原理,總體上完成了軟件的設計。中斷鍵盤 單片機LED數碼管顯示復位電路LED指示燈晶振電路圖1 系統框圖 3.2硬件設計 1)單片機選型:AT89C51與MCS-51單片機產品兼容,8k字節(jié)在系統可編程Flash存儲器,1000次可檫寫周期,全靜態(tài)操作:0Hz33Hz,三級加密程序存儲器,32個可編程I/O口線,三個16位定時器/計數器八個中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時器、雙數據指針、掉電標識

7、符。功能特性描述:AT89C51是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術制造,與工業(yè)80C51 產品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統 可編程Flash,使得AT89C51為眾多嵌入式控制應用系統提 供高靈活、超有效的解決方案。 AT89C51具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數據指針,三個16 位 定時器/計數器,一個6向量2級中斷結構,全雙

8、工串行口, 片內晶振及時鐘電路。另外,AT89C51 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內容被保存,振蕩器被凍結, 單片機一切工作停止,直到下一個中斷或硬件復位為止。8 位微控制器 8K 字節(jié)在系統可編程 Flash AT89C52 P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下, P0具有內部上拉電阻。

9、 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。 P1 口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗時,P1口接收低8位地址字節(jié)。 引腳號第二功能 P1.0 T2(

10、定時器/計數器T2的外部計數輸入),時鐘輸出 P1.1 T2EX(定時器/計數器T2的捕捉/重載觸發(fā)信號和方向控制) P1.5 MOSI(在系統編程用) P1.6 MISO(在系統編程用) P1.7 SCK(在系統編程用) P2 口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動4 個 TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執(zhí)行MOVX DPTR) 時,P2 口送出高八位地址。在這

11、種應用中,P2 口使用很強的內部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P3 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89C51特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號。 端口引腳 第二功能

12、P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INTO(外中斷0) P3.3 INT1(外中斷1) P3.4 TO(定時/計數器0) P3.5 T1(定時/計數器1) P3.6 WR(外部數據存儲器寫選通) P3.7 RD(外部數據存儲器讀選通) 此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。 RST復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。 ALE/PROG當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,

13、因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號

14、。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態(tài)如EA端為高電平(接Vcc端),CPU則執(zhí)行內部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。 引腳圖如下:圖2 89C51引腳圖3.3復位電路 圖3 復位電路當8051的ALE及/PSEN兩引腳輸出高電平,RST引腳高電平到時,單片機復位。RST/VPD端的高電平,若直接由啟動瞬間產生,則為啟動復位,若通過按動按鈕產生高電平復位稱

15、手動復位。圖中,上電時,接通電源,電容器C相當于瞬間短路,+5V加到了RST/VPD端,該高電平使8051全機復位。若運行過程中,需要程序從頭執(zhí)行,只需按動按鈕S,則直接把+5V加到了RST/VPD端,從而復位。顯然,該電路即可以上電復位,也可以手動復位,是常用復位電路之一。3.4數碼管顯示圖4 數碼管顯示 此處采用的數碼管時共陰極數碼管,G、F、E、D、C、B、A七個端口是輸入端口,對其各位進行賦值,置位則亮,復位則滅,用此來顯示出相應的數字;1、2兩端用來控制高位和低位的選通顯示,只要對端口置位,便可以選擇該端口,并對其所代表的位進行賦值,顯示。正常通行狀況下,數碼管從30秒開始倒計時,各

16、個方向,對應點亮紅綠黃燈。遇到突發(fā)狀況,數碼管從5秒開始倒計時,各方向禁止通行,點亮紅燈。3.5 紅綠燈顯示圖5 紅綠燈顯示每個路口都采用了3個LED燈來顯示,分別代表紅綠黃三種燈,來模擬路口交通的變換。其中D7和D8表示轉彎模塊。以南北方向舉例,正常狀況下,從30秒開始倒計時,南北方向可直行,即綠燈(D6)亮起,東西方向禁止通行,亮紅燈(D2)。當顯示至15秒時,南北方向可直行和轉彎,即兩個綠燈(D6和D7)亮起,東西方向禁止通行,亮紅燈(D2)。當顯示至3秒時,通知車輛快速通過,南北黃燈(D5)閃爍,東西方向禁止通行,亮紅燈(D2)。3.6鍵盤:獨立鍵盤+中斷圖6 獨立鍵盤+中斷采用開關來

17、控制進入中斷,可以在路口出現緊急情況時,拉動開關。使紅綠燈發(fā)生相應的改變,已處理緊急情況下車輛通行。當發(fā)生突發(fā)情況時,如救護車通過,接通上面的按鍵,各個方向中止當前狀態(tài),即禁止通行,各個方向點亮紅燈,并維持5秒倒計時。當結束5秒倒計時,各個方向恢復到中止前的狀態(tài)。3.7系統原理圖圖7 總電路圖開 始 4軟件設計4.1總體流程南北綠東西紅30s倒計時顯示黃燈亮3s南北紅東西綠30s倒計時顯示黃燈亮3s 圖8 流程圖 4.2循環(huán)流程控制思路東西紅燈南北綠燈東西紅燈南北黃燈閃東西綠燈南北紅燈東西黃燈閃南北綠燈東西紅燈南北及轉彎綠燈東西及轉彎綠燈南北紅燈中斷圖9 流程控制圖4.3源程序#include

18、 #include #define uint unsigned int #define uchar unsigned char uchar temp,aa,nn; sbit rn=P20; sbit nb=P21; sbit gn=P22; sbit rw=P23; sbit dx=P24; sbit gw=P25; sbit shi=P36; sbit ge=P37; /*對要使用的單片機各個口進行定義*/ bit flag=0; ucharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0

19、x5e,0x79,0x71; /*將數字0123456789的16進制數定義成數組用以顯示*/ void delay(uint z); void disp(uint n); void nb_flash(void); void dx_flash(void); void xint0();void timer0(); void LED_ON(); void xint1(); void nanbei(); void dongxi();/*將所使用的子函數定義*/ void main() uint num; num=0; aa=0; TMOD=0x01; TH0=(65536-50000)/256; T

20、L0=(65536-50000)%256; EA=1; ET0=1; TR0=1; EX0=1; IT0=0; EX1=1; IT1=1; /*中斷初始化*/while(1) nanbei(); nb_flash(); dongxi(); void delay(uint z) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void timer0() interrupt 1 TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+; if(aa=9) aa=0; flag=1; void disp(uint n) /*顯示

21、子函數*/ while(!flag) ge=0; P0=tablen%10; delay(50); shi=1;ge=1; shi=0; P0=tablen/10; delay(50); shi=1;ge=1; if(flag=1) flag=0; void nanbei() /*南北方向的紅綠燈和數碼管顯示子函數*/ uint num; num=30; disp(num); while(num15) num-; P2=0xf3; disp(num); while(num4) /*南北方向及轉彎的紅綠燈和數碼管顯示子函數*/ num-; P2=0xb3; disp(num); void nb_

22、flash(void) /*南北方向的黃燈和數碼管顯示子函數*/ uint a; for(a=3;a0;a-) P2=0xf5; nb=1; delay(100); nb=0; disp(a); void dongxi() /*東西方向的紅綠燈和數碼管顯示子函數*/ uint num; num=30; while(num15) P2=0xde; disp(num); num-; while(num3) /*東西方向及轉彎的紅綠燈和數碼管顯示子函數*/ num-; P2=0x5e; disp(num); while(num0) /*東西方向的黃燈和數碼管顯示子函數*/ P2=0xee; dx=1

23、; delay(100); dx=0; disp(num); num-; void xint0() interrupt 2 /*中斷定義*/ TH0=(65536-50000)/256; TL0=(65536-50000)%256; LED_ON(); void LED_ON() uint b; rn=0; rw=0; gn=1; gw=1; nb=1; dx=1; for(b=5;b0;b-) ge=0;shi=1; P0=tableb; delay(1000); ge=1;shi=1; return; 5調試運行 5.1正常運行狀態(tài)圖10 正常運行狀態(tài)5.2左右行顯示 圖11 左右行顯示

24、5.3黃燈閃爍顯示圖12 黃燈閃爍顯示6.設計心得體會一周的單片機課程設計很快就結束了,在這一周當中,雖然開始有點困難,但是經過我們們分工合作,合理地進行設計安排,再加上老師的耐心指導,我們們終于順利地完成了本次單片機課程設計,同時也學到了很多東西。在本次課程設計中,我們通過動手實踐操作,進一步學習和掌握了單片機原理的有關知識,特別是程序的編程方面,加深了對單片機原理及應用技術的認識,進一步鞏固了對單片機知識的理解,掌握簡單單片機應用系統的設計、制作、調試的方法。在設計時根據課題要求,復習相關的知識,查詢相關的資料。根據實驗條件,找到適合的方案,找到需要的元器件及工具,進行實驗。這次的單片機課

25、程設計重點是通過實踐操作和理論相結合,提高動手實踐能力,提高科學的思維能力,更在一周的時間了解了更多的有關單片機的知識,使知識更加豐富,使自己更加充實。與此同時,我們也對團隊分工合作有了進一步的認識,只有通過合理的分工合作,我們們才能夠在短短一周的時間內完成設計任務,相信這對以后在社會上工作和學習會有很多幫助,讓我們能更好的進入工作狀態(tài)。最重要的是,這次課程設計也增加了我們對問題的研究和探討,們以后的學習中會有更多的幫助。單片機為我們的主要專業(yè)課之一,但要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的內部結構有一個系統的了解,知道該單片機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論