基于單片機的五岔路口交通燈方案設計_第1頁
基于單片機的五岔路口交通燈方案設計_第2頁
基于單片機的五岔路口交通燈方案設計_第3頁
基于單片機的五岔路口交通燈方案設計_第4頁
基于單片機的五岔路口交通燈方案設計_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

基于單片機的五岔路口交通燈方案設計關鍵詞:AT89S52交通燈倒計時LED

目錄TOC\o"1-3"\h\u摘要 IAbstract II1課題研究的背景 IV1.1交通信號燈的發展及研究意義 11.2現在城市路口交通燈控制技術現狀 21.3單片機概述 21.4方案的設計與論證 31.4.1電源提供方案 31.4.2顯示界面方案 31.4.3輸入方案 42系統總體設計 42.1總體設計 52.2單片機的選擇 112.3單片機的基本結構 72.4單片機外圍電路設計 102.4.1復位電路設計 102.2.2外部晶振時鐘電路設計 102.2.3顯示模塊電路設計 113交通信號燈控制系統的設計 143.1十字路口交通信號燈具體的控制要求 143.2五岔路口交通信號燈示意圖 143.3五岔路口交通燈工作情況 153.4路口交通燈時間處理函數模塊 154交通信號燈控制系統程序編制 194.1軟件設計應用環境 194.2軟件設計流程 194.3交通燈定時器模塊 204.4定時器初值模塊設計 21結論 22主要參考文獻 25附錄一:源程序代碼 261課題研究的背景1.1交通信號燈的發展及研究意義現如今,安裝在各個路口上的紅綠燈,已經成為疏導交通車輛最常見以及有效的工具,這一技術的發展已經有了相當長的歷史。1858年,世界上最早的交通信號燈在英國倫敦出現。他是通過在其主要街頭安裝了紅,藍兩色的信號燈。這些信號燈是機械扳手式的,它由燃煤氣提供光源,用以指揮馬車通行。1868年,在倫敦威斯敏斯特區的議會大廈前的廣場上,英國機械工程師納伊特安裝了世界上最早的一盞煤氣紅綠燈。它是紅綠兩個旋轉式方形玻璃提燈組成的,紅色表示“停止”,綠色表示“注意”。1869年1月2日,因為煤氣燈爆炸,造成警察受傷,于是被取消了。而后,在美國出現了電氣啟動的紅綠燈,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始就安裝在了紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,出現了新式的帶控制的紅綠燈以及紅外線紅綠燈。帶控制的紅綠燈有兩種類型,一種是用擴音器來控制紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變為綠燈。另一種是把壓力探測器裝在地下,當車輛一接近紅燈便變為綠燈;紅外線紅綠燈則是當行人踏上對壓力敏感的路面時,壓力感應器就能察覺到有人要過馬路,繼而紅外光束將延長紅燈時間,推遲汽車放行,避免發生交通事故。目前,我國平均每一分鐘就有一個人因交通事故受傷,平均每五分鐘就有一個人因交通事故而死亡。同時,交通的阻塞以及不便,給全球的經濟甚至也帶來了很大的影響。英國大約有100個城市是屬于平面交叉口的,因為車輛延誤造成的經濟損失每年就可以達到1400萬英鎊左右。我國百萬人以上的大城市因為交通擁擠造成的經濟損失每年估計為1600億人民幣,相當于我國國內生產總值的3.2%。不僅如此,城市交通問題還產生量其他一些城市問題。例如,城市生態環境狀況就十分不樂觀,交通工具排放廢氣,這己經成了破壞大氣的重要污染源頭之一。嚴重的大氣污染不僅導致了環境變差,也會導致經濟損失,不僅僅對公眾健康造成損害。而且因為交通設施建設,更是加重了環境破壞的嚴重程度,土地資源正在以每年2%-3%的速度不斷減少著。合理的交通控制方法能有效的減少尾氣排放及能源消耗、緩解交通擁擠、縮短出行延時,改善我國獨有的交通問題。平面交叉口是城市交通改善的一個重點,它是整個城市道路的瓶頸帶,對其進行的交通信號控制方法的研究具有重大意義。交通信號燈的出現,使得交通狀況可以被有效管制成為可能,對于提高道路通行能力、疏導交通流量以及減少交通事故的發生有著明顯效果,更減輕了交警輪流指揮的辛苦和危險,實現了人,車,路三者的同步協調。現階段,已經有一些先進的創意,它們體現出了更多智能化、自動化、數字化等更先進的交通燈控制方案,這讓我們更加方便地對城市交通進行維護管理,并讓我們可以在更加便利和安全的交通環境下生活。1.2現在城市路口交通燈控制技術現狀城市機動車數量正在不斷地增加,在許多大城市中,也出現了交通超負荷運行的狀況。所以,從80年代后期開始,這些城市紛紛開始修建高速道路,在高速道路建設完成之初,也確實有效地改善了交通狀況。然而,隨著交通量的快速增長和對高速路的系統控制以及研究意識的缺乏,高速道路沒有如預期充分發揮出其作用。而在構造上城市高速道路的特點,也決定了必然城市高速道路的交通狀況會受到普通道路與高速道路藕合處交通狀況的制約。所以,采用什么樣的控制方法才合適,才能最大限度地利用好耗費巨資修建的城市高速道路,緩解主干道車流量繁忙的交通擁堵狀況這一問題,已經慢慢成為城市規劃以及交通運輸管理部門需要解決的主要問題。1.3單片機概述目前,計算機系統的開發方向分為三個,這三個方向分別是:網絡化,巨型化,單片化。高速數據處理的超級計算機以及解決復雜的計算系統仍然在工作,因此,超級計算機朝向電流以及高速方向的處理能力也在不斷努力。供應鏈管理的最明顯的好處是,你可以嵌入到各種儀器,設備。這是不可能的超級計算機以及網絡[1]單片機在目前的發展情況來看,呈現出幾個趨勢:

(1)高可靠性。提高應用以及互聯網連接的水平是一個明顯的趨勢。

(2)越來越多的集成組件。NS(美國國家半導體)公司宜巴單片機語音,視頻組件也被集成到設備中,也就是單片機的意義只在于一個單片集成電路,而不在其功能;如果它可以從功能的角度講是萬能機。因為用于各種應用其內部集成電路。

(3)低功耗。而在越來越多的模擬電路中,隨著半導體工藝技術的發展以及系統設計水平的提高,單片機將繼續產生新的變化以及進步,人們最終可能會發現:微控制器以及微處理器系統之間的距離越來越小,甚至難以辨認。1.4方案的設計與論證設計單片機為核心,倒計時用LED數碼來指示,根據設計要求,我們考慮的功能模塊,最佳解決方案的多種設計方案,以實現各種實時顯示系統狀態,系統還創建根據交通擁堵的運輸時間可分別公路以及二級公路設置,以提高工作效率,緩解交通擁堵。系統總體設計框圖如圖所示。交通燈控制的框圖如下圖1-1所示,主要有控制電路、按鍵電路、晶振電路、復位電路、顯示電路、電源電路等電路組成。數碼管顯示電路電源電路單片數碼管顯示電路電源電路單片機時鐘電路時鐘電路Led信號燈控制電路復位電路Led信號燈控制電路復位電路按鍵電路按鍵電路圖1-1交通燈控制框圖1.4.1電源提供方案為了模塊的穩定性,它必須有一個可靠的電源。設計考慮到了兩種動力選擇:方案一:使用單獨的電源。這個方案的優勢是穩定以及可靠,并且有多種成熟電路可用;缺點是,每個模塊使用獨立的電源,會使系統變得復雜,可能影響電路的整體穩定性。

方案二:用單片機控制模塊來提供電力。這個方案的優勢是,該系統簡潔,節約成本;缺點是輸出功率不高。

綜上所述,選擇第二個方案。1.4.2顯示界面方案該系統要求完成倒計時功能。因為上述原因,這次設計考慮了兩種選擇:方案一:完整的LED點陣顯示屏。這個功能強大的程序,它可以很容易地顯示各種中國文字,英文字符和圖形等;但復雜,必須做大量的軟件工作。

方案二:完全采用數字顯示。這個方案的優勢是簡單,是可以做到的倒計時功能。但缺點是,更少的特征只能顯示有限的符號以及數字的字符。根據設計要求,方案二較為滿足要求,所以這種設計使用了方案二來實現顯示功能。1.4.3輸入方案這里同樣給出了兩種可用方案:方案一:8155擴展I/O端口,鍵盤以及顯示器。這一方案的優勢是使用的靈活可編程的,并且有RAM以及計數器。如果選用這個當個可以給我們提供更多的I/O端口,但是操作稍微復雜一些。方案二:在I/O端口線直接連接按鈕開關。因為流線型以及優化電路的設計,所以端口資源還更的其余部分。因為該系統是一個交通燈以及數字控制,只需使用微控制器本身的I/O端口,可實現的,以及自己的計數器以及RAM已經足夠,所以選擇方案二。2系統總體設計在硬件計劃的全部體系的基礎上還要斟酌許多方面,例如要達成交通燈的基本功能,除此之外,還重要思考如下要素:①體系的穩定性,設備的通用性②容易購買;③軟件編程易于實施;④其他系統功能以及性能。因此,至關硬件設計很重要。現在,一個個從實現各功能模塊的討論以及分析。2.1總體設計該計劃以單片機為中心,選用模塊化來進行分模塊設計,分別為了實現如下功效模塊:單片機控制體系,鍵盤以及狀態體現,模塊倒計時。單片機作為硬件系統的核心,既作為協調作業機械控制器以及數據處理器。她是有單片機的振蕩電路和復位電路。該體系選用雙數字倒計時計數功效,最大體現數為99。界面設計方便,控制簡單,本設計的最大特點是優化物理結構。2.2單片機的選擇在微型計算機的重要分支中單片機占有一席之地,它是可行性很強的模式。單片機的全稱是單片微型計算機,尤其是在控制領域,通常也稱為微控制器。一般設備構成一個單芯片。具備和計算機相同的基本功能:CPU,存儲器以及I/O接口電路。所以,微型控制器只需要軟硬件之間組合適當,就可以是組成一個單芯片的控制系統。單片機從一代開始發展到如今的第四代,正朝著功能多樣化,性能高級化,功耗低消耗,價格低廉,存儲容量大等良好的相容性結構的方向發展。僅限于以下幾個方面的發展趨勢:功能將單片機所需要的存儲器以及I/O端口集成在一個芯片上,從而形成可以實現更多的微控制器。例如,A/D,PWM,PCA(可編程計數器陣列),WDT(看門狗定時器看門狗),高速I/O端口以及計數器捕捉/比較邏輯。[2]一些微控制器,用于在一定的應用領域,集成相關聯的控制設備,以降低芯片的應用的數目。例如,少許以51內核芯片為中心,集成USB控制器,智能卡接口,MP3解碼器,CAN或I*I*C總線控制器,LED,LCD或VFD顯示驅動器開始被集成在八個MCU。(2)高效率以及高性能單片機采用RISC功能,來提高執行速度以及效率處理,為了控制器的性能得到顯著改善,提出了流水線以及DSP設計技術,MCU時鐘頻率提高;單片機的運行效率相同的頻率已經大大提升;因為增加了集成技術,供應鏈管理的尋址能力以及片上ROM(FLASH)、RAM容量突破了以往的限制。因為系統具有很強的復雜性,開始采用如C語言的高級語言開發的單芯片方案。降低了開發難度,縮短了開發周期,減少了開發成本,改善了軟件的可塑性,增加了軟件的使用壽命。低電壓以及低功耗低電壓以及低功耗對于單片機來說是最基本的一項重要指標。由于CMOS技術的廣泛使用,很多這些設備都已經在在較低的電壓(1.2V或0.9V)下工作,功率消耗已經降低到微安級。這些特性使單片機系統可以支持根據功率較小的工作時間更長。[3](4)低價格普遍的微控制器應用中,使用了大量的單片機系統直接的益處便是降低成本。當前世界各大公司為了進步競爭力,同時加強MCU技能,高度重視,通過削減其產品的價格來實現。這里介紹大致SCM主要應用領域以及功能:(1)家用電器領域現在更新家電,銷售等環節,應用越來越廣泛,如電子玩具以及先進的視頻游戲單片機,單片機將應用其控制功能;以及衣物的洗滌機可用于識別微控制器以及臟污染程度,從而自動選擇洗滌強度以及洗滌時間的類型;在冰柜冷藏室選用單片機控制食物的種類和保存食品標識可以自動選擇制冷溫度和貯藏時間;微波加熱也可以通過微控制器確定自動識別食物的溫度以及加熱時間,在等芯片技術的應用,這些家電的類型,兩者相比傳統技術的性能以及功能方面取得了很大的進步。(2)辦公自動化領域單片機被廣泛應用于計算機鍵盤,磁盤驅動器,打印機,復印機,電話以及傳真機等。商業應用領域商業應用類似于家庭和辦公應用,而是著眼于穩定,設備的可靠性和安全性。電子測量儀器廣泛應用于商業系統,收銀,條碼閱讀器,安防監控系統,空調系統以及制冷保鮮系統,全部采用專用系統芯片微處理器。與通用計算機比擬,因為這些體系相對關閉,病毒能夠更有效地防備電磁干預,升高可靠性。(4)工業自動化事實上,它是從最初單芯片產業開始興起,是因為它在工業控制領域的應用非常廣泛,單片機技術,構成了各種各樣的數據采集系統以及智能控制系統,如工廠流水線智能管理,智能電梯,報警系統等,都通過單片機技術以及計算機匯集形成二級控制體系。(5)智能儀表與集成智能傳感器MCU具有集成度高,體積小,強大的控制功能以及靈活擴展等特點,處理速度快,可靠性高,所以應用程序的智能儀器儀表等領域是非常廣泛的。在某方面上來說,微控制器驅動的基礎衡量,保持儀表技巧的一場革命,通過單片機技巧實現了儀表技術數字化,智能化,綜合性,多功能的,與傳統的或數字電子電路電路相比,功能更強大,集成而更為突出。(6)現代交通與航空航天領域通常用在電子綜合顯示系統,電力監控系統,自動駕駛系統,通訊系統以及運營監控系統。尺寸,功耗,穩定性,以及實時性請求的這些區域每每比商業系統甚至更高,因此,使用該SCM體系是更重要的。2.3單片機的基本結構AT89S52單片機是一種低功耗,低電壓,高性能CMOS8位微控制器,具有8KB(可承受1000年擦除周期)可擦寫閃存可編程只讀程序存儲器(EPROM),該器件采用ATMEL高密度CMOS技術以及公司的非易失性存儲器(NURAM)技術制造,輸出引腳以及指令集兼容的MCS-51,快閃存儲器芯片允許可再編程系統內,或通過常規的非易失性存儲器編程到程序。因此,AT89C52是一款功能強大,高靈活性以及低成本的單芯片,可在各控制區很容易地應用。AT89S52具有以下主要特性:(1)8KB可改編流程FLASH存儲器;全表態工作:0~24HZ;(3)256X8字節內部RAM;(4)32個外部雙向輸入,輸出(I、O)口;引腳說明如圖2-1。圖2-1AT89S52引腳說明引腳功能如下:VCC:電源電壓。GND:地面。P0口:設定時間線端口地址轉換(低8位)以及數據總線復用,激活內部上拉電阻。當FLASH編程,P0口回收指令字節,而在流程校驗輸出目標字節,當檢查需求外部上拉電阻。在拜訪外部數據儲存器或流程儲存器時,這組口線分時轉換地址(低8位)以及數據總線復用,在訪問期間激活內部上拉電阻。FLASH編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻[15]。P1口:內部的上拉電阻I/O口包括一個8位雙向P1,P1的硬件輸出緩沖器可啟動(吸收或輸出電流)4個TTL邏輯門。端口寫“1”拉通的端口內部拉高,此時可以作為輸入。行為輸入端口利用,由于內部上拉電阻的存在,一個引腳被拉低時,當前的外部信號的輸出。在FLASH編程以及驗證,P1接收低8位地址。P2口:8位雙向IP2是一個內部的上拉電阻/O口,P2輸出緩沖器可驅動(吸收或輸出電流)4個TTL邏輯門。端口寫“1”拉通的端口內部拉高,此時可以作為輸入。作為輸入端口使用,因為內部上拉電阻的存在,一個引腳被拉低時,當前的外部信號的輸出。要訪問外部程序存儲器或16位外部數據存儲器地址(如執行MOVX@DPTR指令),P2口送出高8位地址數據。P3口:8位雙向IP3是一個內部的上拉電阻/O口,P3輸出緩沖器可驅動(吸收或輸出電流)4個TTL邏輯門。端口寫“1”拉通的端口內部拉高,此時可以作為輸入。作為輸入端口使用,因為內部上拉電阻的存在,一個引腳被拉低時,當前的外部信號的輸出[9]。P3除了作為通用I/O口線,但更重要的用途是它的第二個功能,表2-1中所述的具體特征。P3口還接收了閃存FLASH編程以及學校一些控制信號。表2-1P3口的第二功能表端口引腳第二功能P3.0RXD(穿行輸出口)P3.1TXD(穿行輸入口)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時/計數器0)P3.5T1(定時/計數器0)P3.6WR(外部數據寫選通)P3.7RD(外部數據讀選通)RST:復位輸入。當振蕩器RST引腳為高電平兩個機器周期以上的復位裝置。ALE/PROG:訪問外部程序存儲器以及數據存儲器,當ALE(地址鎖存使能)輸出脈沖用于鎖存低8個字節的地址。無論是否會訪問外部存儲器,ALE輸出的時鐘振蕩頻率都是固定值,為正脈沖信號的1/6,所以他可能或外部輸出時鐘定時的目的。應當指出的是:ALE脈沖會在訪問外部存儲器是跳過一個脈沖。在FLASH存儲器編程,該引腳還可以應用于輸入編程脈沖(PROG)。即使有需要,經過特別功效寄存器(SFR)地區D0位8EH單位ALE操作能夠禁止。這一點,ALE惟有被一個MOVX以及MOVC指令激活。另外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE失效。PSEN:外部程序存儲器讀選通信號循序的一個信號,當AT80C51取從外部程序存儲器指令(或數據),PSEN被激活兩次,每臺機器在每個周期內可以激活兩次。在此期間,訪問外部數據存儲器時,兩個有效PSEN信號不出現。EA/VPP:外部訪問允許。為了使CPU僅訪問外部程序存儲器(尋址空間0000H-FFFFH),EA端必須保持低(地)。作為EA的高端(Vcc的一側),CPU的指令執行的內部程序存儲器。當FLASH存儲器編程,該引腳與+12V的編程許可電源Vpp的,這務必利用編程電壓12V的器件。XTAL1:反相振蕩放大器以及內部時鐘發生器的輸入。XTAL2:振蕩器反相放大器的輸出端2.4單片機外圍電路設計2.4.1復位電路設計MCS-51RST復位輸入引腳MCS-51提供了技術措施來初始化,您可以使程序從指定位置開始,只要RST引腳發生在兩個機器周期以上高的時候,它可以產生復位操作,只要RST居高不下,MCS-51周期復位[5],從高級別只有一個RET低電平后,MCS-51開始從地址0000H該系統程序執行使用復位按鈕復位電路,如圖2-2所示。圖2-2按鍵復位方式復位電圖2.2.2外部晶振時鐘電路設計時鐘MCS-51可以用兩種方式來生產,一個是內部的方式,與芯片振蕩器電路;另一個是外部的方式,本文根據實際需求以及簡單,使用內部振蕩模式中,內部的MCS-51具有一個放大器,引腳XTAL1以及XTAL2是的輸入以及輸出放大器,該放大器芯片是晶體或陶瓷諧振器的反饋元件,兩個放大器芯片一起構成一個自激振蕩裝置。MCS-51,雖然也有內部振蕩電路,而是形成時鐘,必須添加成分,所以振蕩時鐘電路,外部晶體振蕩器以及電容器C1以及C2的實際組合物形成的并聯諧振電路連接到反饋回路,電容器的尺寸將影響振蕩器的振蕩頻率穩定的水平,因為振動速度以及溫度的穩定性。晶體頻率可以是1.2MHZ?12MHZ任選之間,電容器C1以及C2是20PF之間的典型值?100pF的選擇,因為該系統使用一個計時器,為了便于計算,使用12MHZ晶體,選擇電容30pF的。如圖2-3。圖2-3外部晶振時鐘電路2.2.3顯示模塊電路設計該模塊由共陽極LED數碼管,采用數字化控制的動態掃描基本思路,由晶體管,當控制數字IO端口P20以及P21低(以及晶體管基數很低),晶體管導通,VCC電源鎖通過晶體管數字電源,數碼管點亮,采用數碼管點亮余輝以及人眼視覺基本思路的持久性的,它看起來像數碼管被同時點亮。如圖2-4。圖2-4顯示模塊電路從設計的角度要求,表示時間的流逝,必須是兩位LED,從節省硬件資源的角度考慮,可用于掃描處理,對7段的方式,占據7的微控制器I/O口,并分別在兩個顯示復雜的兩個電子開關占用兩個I/O端口,共四組紅綠燈十字路口,有黃色的轉換,共有12燈應與12端口以及應急交通控制按鈕在兩個方向,占兩個I/O端口,所以單片機的I/O端口是24的實際占領,因此,我們可以在ATAT89S52使用51臺計算機的中央處理器。單片機的I/O口作為輸出,以更大的能力來吸收電流,所以我們可以使用常見的數碼顯示管,所以I/O端口可以直接啟動,可以簡化硬件設計[10]以下為數碼管的相關定義函數[8]:ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,// A B C D EF 不顯示 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //斷碼 uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=4;//顯示數碼管的個位數//數碼管位選定義sbitsmg_we1=P2^0; //數碼管位選定義sbitsmg_we2=P2^1;sbitsmg_we3=P3^6;sbitsmg_we4=P3^7;chardx_s=0; //東西南北倒計時變量sbitdx_red=P2^4; //東西紅燈sbitdx_green=P2^3; //東西綠燈sbitdx_yellow=P2^2; //東西黃燈sbitnb_red=P2^7; //南北紅燈sbitnb_green=P2^6; //南北綠燈sbitnb_yellow=P2^5; //南北黃燈 ucharflag_jtd_mode;//交通燈的模式根據時間bitflag_1s=0;bitflag_500ms;bitflag_dx_nb; //東西南北模式ucharflag_5m_value;uchari;ucharflag_alarm; //模式uchardx_time=30,nb_time=20;//東西、南北的時間ucharflag_jdgz;//交通管制3交通信號燈控制系統的設計交通燈由紅,綠,黃燈組成。紅色光以指示流量,它允許綠光通過,黃燈表示警告。機動車信號燈,非機動車信號燈,行人信號燈,車道燈,方向燈,警燈,道路以及鐵路穿越燈都是交通信號燈的一部分。交通燈十字路口的道路,通過發出旅游或停止指揮車輛,行人,讓誰在同一時間到達所有的人,車輛通行流量,保證平穩安全道口。因此,在主要道路路口必須正確設計的系統。3.1十字路口交通信號燈具體的控制要求(1)交通信號燈位于卡車和一個較小的分支道路交通量,每個有三個。青綠色的南北方向以及東西方向不能亮;如果你光,應立即關閉自動信號系統,并立即發出報警信號。系統工作后,第南北紅燈亮并保持30秒;與此同時,一些綠色的光,并維持25秒的時候25歲,東西綠燈熄滅。當當西方向上的綠燈時間到熄滅時,東西方向上的黃燈亮并保持5秒,然后將黃色的東西了,東西紅燈,紅燈熄滅,而南北,南北綠燈;東西紅燈并維持30秒;同時,南北以及綠燈25秒保持;那么,南北綠燈熄滅時,綠燈熄滅南北,南北黃燈熄滅保持5秒后;而紅光南北,東西向綠燈。因此,工作周期結束時,如下圖3-1交通信號燈變化表:圖3-1交通燈循環過程示意圖(2)在交通燈以及閃光的同時,兩個七段顯示器與一個倒計時的交點,這樣,車輛以及行人可以清楚地知道多久燈將在另一個變化。司機以及行人,以能夠準確地傳遞在有限的時間。3.2五岔路口交通信號燈示意圖五岔路口可簡化為圖3-2如下顯示,圖中道路部分分為五個岔口,我分別將五個岔口進行編號,以方便在下文中進行循環描述。在實際情況中,可根據各個路口的實際車流量大小來進行編號。圖3-2五岔路口示意圖3.3五岔路口交通燈工作情況一個循環兩分半鐘:1->4,1->3,3->130秒1->2,3->5,3->430秒2->5,2->4,4->230秒2->3,4->1,4->530秒5->1,5->2,5->330秒3.4路口交通燈時間處理函數模塊voidjiaotongdeng_dis(){if(flag_1s==1) { flag_1s=0; if(dx_s==0) { if(flag_dx_nb==1) dx_s=nb_time; //南北時間 else dx_s=dx_time; //東西時間 flag_dx_nb=~flag_dx_nb; } dx_s--; } dis_smg[0]=smg_du[dx_s%10]; dis_smg[1]=smg_du[dx_s/10]; dis_smg[2]=smg_du[dx_s%10]; dis_smg[3]=smg_du[dx_s/10];/***********************南北時間*********************************/ if(flag_dx_nb==0) { if(dx_s>5) { dx_red=1;//滅 dx_green= 0; //亮 dx_yellow=1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當小于5秒時黃燈要閃了 { dx_red=1;//滅 dx_green= 1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 if(flag_500ms==0) { dx_yellow=0;//亮 } else { dx_yellow=1;//滅 } } }/***********************東西時間*********************************/ if(flag_dx_nb==1) { if(dx_s>5) { dx_red=0;//亮 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 0; //亮 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當小于5秒時黃燈要閃了 { dx_red=0;//滅 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 1; //滅 if(flag_500ms==0) //黃燈閃爍 { nb_yellow=0; //亮 } else { nb_yellow=1; //滅 } } } }4交通信號燈控制系統程序編制4.1軟件設計應用環境本計劃軟件的計劃是在KeilC51的環境下編譯的。KeilC51單片機兼容凱爾軟件公司在美國發布的51系列單片機C語言軟件開發系統,軟件提供了一個豐富的庫函數和強大的開發和調試工具的集成,所有的Windows界面。另一個重要的點,只要看一下編譯后生成的匯編代碼,可以實現我們的C51單片機生成的目標代碼效率非常高,大部分的語句生成的匯編代碼非常緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。C語言有以下特點:(1)語言簡潔、緊湊、使用方便、靈活。C語言一共只有32個字,9種控制語句,程序書寫自由,主要在小寫字母,壓縮不必要的成分。(2)運算符豐富。C操作符包含范圍很廣,共有34種運營商,使C操作類型非常豐富,表達類型多樣化,靈活使用不同的運營商在其他高級語言很難實現。(3)數據結構豐富,各種現代語言的數據結構,可以用于操作來實現各種復雜的數據結構。(4)結構化控制語句作為一個方便的程序的程序模塊的實現功能的模塊單元。(5)語法要求不多,可自由發揮程序構想。(6)C語言可以執行一個操作[2],可以實現大部分的匯編語言功能,可以直接對硬件。因此,C高級語言的功能,但也有許多低級語言的功能,可以用來編寫系統軟件。C語言的二元性,使它不僅是成功的系統描述語言,和泛型編程語言。(7)用C語言寫的程序可移植性好。基本沒有修改就可以用于計算機和各種操作系統的各種模型用C語言來對操作系統進行系統實用程序設計以及需求對硬件進行操作的場合,明顯地優勢于其他高級語言,有的大型應用軟件也用C語言來編寫。4.2軟件設計流程軟件總體設計主要完成各部分的軟件控制以及協調。本系統主程序模塊主要完成系統的初始化、發送數據顯示和鍵盤掃描,同時等待外部中斷,并根據功能的要求相應的操作。交通燈根據其顯示情況可以分為四個狀態,可以通過定時來控制每個狀態的時間。其流程圖如圖4-1所示。設置定時,顯示初始化設置定時,顯示初始化南北綠燈亮,東西紅燈亮,延時南北黃燈閃爍,東西紅燈亮,延時南北紅燈亮,東西綠燈亮,延時南北紅燈亮,東西黃燈閃爍,延時開始圖4-1軟件流程設計4.3交通燈定時器模塊AT89S52單片機內部的3個定時器分別是T0,T1和T2,本次設計中使用T0工作方式1,在16位定時器,定時50ms,每秒信號產生20次中斷,來控制紅綠燈的亮滅時間。T0、T1的工作方式由工作方式寄存器TMOD來設置。這次設置TMOD=0x01,即T0工作于方式0(16位定時器)。內部定時器用來當作定時器時,是對機器周期計數,每個機器周期的長度是12個振蕩周期。定時常數的設置可用一下方式計算:機器周期=12/12MHz=1us(65536-定時常數)*1.0us=50ms所以定時常數是50000。定時器T0,定時器T1初始化相關程序:voidtime0_init() {EA=1;//開總中斷TMOD=0X11;//定時器0、定時器1工作方式1ET0=1;//開定時器0中斷TR0=1;//允許定時器0定時ET1=1;//開定時器1中斷TR1=1;//允許定時器1定時} 4.4定時器初值模塊設計定時器工作時要事先給計數器假設一個初始值,將這個值送到TH以及TL中。它是用加法運算法則來存儲數字的,并能當出現全1到全0時自動產生中斷請求。因此工作于方式1,定時器為16位計數器其定時時間由下式計算:定時時間=(216-X)×振蕩周期×12(或)X=216-定時時間/振蕩周期×12式中X為T0的初始值,該值以及計數器工作方式有關。方式0定時時間=213×1微秒=8.192毫秒方式1定時時間=216×1微秒=65.536毫秒18秒鐘仍舊高處了計數器的最大按時,因此咱們只有采納定時器以及軟件相結合的舉措才氣辦理這個問題,定時器需定時50毫秒,故T0工作于方式1,定時20次,就可定時一秒。相應程序代碼(1)主程序定時器需定時50毫秒,故T0工作于方式1。振蕩周期×12=1微秒初值:X=216-50ms/1us=15536=3CBOHORG1000HSTART:MOVTMOD,#01H;令T0為定時器方式1MOVTH0,#3CH;裝入定時器初值MOVTL0,#BOH;MOVIE,#82H;開T0中斷SEBTTR0;啟動T0計數器MOVRO,#14H;軟件計數器賦初值LOOP:SJMP$;等待中斷(2)中斷服務子程序ORG000BHAJMPBRT0ORG00BHBRT0:DJNZR0,NEXTAJMPTIME;跳轉到時間及信號燈顯示子程序DJNZ:MOVR0,#14H;;恢復R0值MOVTH0,#3CH;重裝入定時器初值MOVTL0,#BOH;MOVIE,#82H;開T0中斷RET1END結論本論文介紹了基于AT89S52單片機的交通燈的設計方法,我在這次論文中完成了基本的硬件和軟件兩方面的設計與制作,詳細介紹了系統硬件的背景知識以及硬件的選擇方案,還介紹了硬件設計的全部過程,并結合相關軟件知識完成了整個系統的軟、硬件調試,系統工作正常,實現了基本功能,完成了最初的目標。通過這次畢業設計,加強了我對于學習過的專業知識的了解,真正意義上的把理論知識運用在了實際實踐當中。在完成設計的過程中,我通過在互聯網上查找相關資料,詢問老師,在圖書館查找有關書籍等方法將不懂不理解的地方一一擊破。在這短時間中,也認識到了自己的不足和短板,在日后的學習工作過程中要不斷改進和提高。通過這次畢業設計,我不僅在專業知識上進一步的鞏固了,而且還與同學和老師建立了良好的奮斗伙伴。鍛煉了自己獨立思考和團隊協作能力,讓自己在步入社會之前,又一次成熟了一次。再遇到不懂的地方我首先自己在網上查找相關資料,先自己努力了解一點,對于再不懂的點我會去詢問專業知識比較扎實的同學或者找自己的導師去尋求幫助。提高了自己的應用能力也提高了自己的動手能力。主要參考文獻[1]秦志強.C51單片機應用與C語言程序設計(第2版).電子工業出版社[2]譚浩強.C語言程序設計(第三版).清華大學出版社,2005[3]蘭吉昌.51單片機應用設計例.北京化學工業出版社,2009[4]周荷琴,吳秀清.微型計算機基本思路與接口技術(第四版).中國科學技術大學出社,2008.[5]康華光.電子技術基礎(第五版).華中科技大學出版社,2005[6]胡壽松.自動控制基本思路(第五版).科學出版社,2007[7]實用電子電路設計制作300例[M].中國電力出版社,2005[8]彭偉.單片機C語言程序設計實訓100例:基于8051+Proteus仿真(第2版)北京:電子工業出版社,2012,(10).[9]朱定華.數字電路與邏輯設計.北京:清華大學出版社,2011.[10]趙建玲.51系列單片機開發寶典[M].電子工業出版社,2007.[11]郭天祥.新概念51單片機C語言教程.北京:電子工業出版社,2012.[12]陳毅,許飛,王學飛.基于單片機的交通燈智能控制系統[J].中國高新技術企業,2009年第15期.[13]CharlesBlandRadcliffe.Proteus.NabuPress,2012,(02).[14]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J]..TQMJournal.20082~5[15]B.A.Artwick,MicrocomputerInterfacing,Prentice-Hall,Inc,1980..附錄一:源程序代碼#include<reg52.h> //調用單片機頭文件#defineucharunsignedchar//宏定義"uchar"代替"unsignedchar"。#defineuintunsignedint //宏定義"uint"用來定義無符號整型數。#include"eeprom52.h"http://數碼管段選定義0123 4 5 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,// A B C D EF 不顯示 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //斷碼 uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=4;//顯示數碼管的個位數//數碼管位選定義sbitsmg_we1=P2^0; //數碼管位選定義sbitsmg_we2=P2^1;sbitsmg_we3=P3^6;sbitsmg_we4=P3^7;chardx_s=0; //東西南北倒計時變量sbitdx_red=P2^4; //東西紅燈sbitdx_green=P2^3; //東西綠燈sbitdx_yellow=P2^2; //東西黃燈sbitnb_red=P2^7; //南北紅燈sbitnb_green=P2^6; //南北綠燈sbitnb_yellow=P2^5; //南北黃燈 ucharflag_jtd_mode;//交通燈的模式根據時間bitflag_1s=0;bitflag_500ms;bitflag_dx_nb; //東西南北模式ucharflag_5m_value;uchari;ucharflag_alarm; //模式uchardx_time=30,nb_time=20;//東西、南北的時間ucharflag_jdgz;//交通管制/***********************數碼位選函數*****************************/voidsmg_we_switch(uchari){ switch(i) { case0:smg_we1=0;smg_we2=1;smg_we3=1;smg_we4=1;break; case1:smg_we1=1;smg_we2=0;smg_we3=1;smg_we4=1;break; case2:smg_we1=1;smg_we2=1;smg_we3=0;smg_we4=1;break; case3:smg_we1=1;smg_we2=1;smg_we3=1;smg_we4=0;break; } }/******************把數據保存到單片機內部eeprom中******************/voidwrite_eeprom(){ SectorErase(0x2000); byte_write(0x2000,dx_time); byte_write(0x2001,nb_time); byte_write(0x2058,a_a); }/******************把數據從單片機內部eeprom中讀出來*****************/voidread_eeprom(){ dx_time=byte_read(0x2000); nb_time=byte_read(0x2001); a_a=byte_read(0x2058);}/**************開機自檢eeprom初始化*****************/voidinit_eeprom() ///開機自檢eeprom初始化{ read_eeprom(); //先讀 if(a_a!=1) //新的單片機初始單片機內問eeprom { a_a=1; dx_time=30; nb_time=20;//東西、南北的時間 write_eeprom(); //保存數據 } }/*********************************************************************名稱:delay_1ms()*功能:延時1ms函數*輸入:q*輸出:無***********************************************************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<110;j++);}/*********************************************************************名稱:display()*功能:數碼管顯示*輸入:無*輸出:無***********************************************************************/voiddisplay(){ uchari; for(i=0;i<smg_i;i++) { P0=0xff; //消隱 smg_we_switch(i); //位選 P0=dis_smg[i]; //段選 delay_1ms(3); }}/*********************定時器0、定時器1初始化******************/voidtime0_init() { EA=1; //開總中斷 TMOD=0X11; //定時器0、定時器1工作方式1 ET0=1; //開定時器0中斷 TR0=1; //允許定時器0定時// ET1=1; //開定時器1中斷// TR1=1; //允許定時器1定時 }/*********************交通燈處理函數*********************************/voidjiaotongdeng_dis(){ if(flag_1s==1) { flag_1s=0; if(dx_s==0) { if(flag_dx_nb==1) dx_s=nb_time; //南北時間 else dx_s=dx_time; //東西時間 flag_dx_nb=~flag_dx_nb; } dx_s--; } dis_smg[0]=smg_du[dx_s%10]; dis_smg[1]=smg_du[dx_s/10]; dis_smg[2]=smg_du[dx_s%10]; dis_smg[3]=smg_du[dx_s/10];/***********************南北時間*********************************/ if(flag_dx_nb==0) { if(dx_s>5) { dx_red=1;//滅 dx_green= 0; //亮 dx_yellow=1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當小于5秒時黃燈要閃了 { dx_red=1;//滅 dx_green= 1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 if(flag_500ms==0) { dx_yellow=0;//亮 } else { dx_yellow=1;//滅 } } }/***********************東西時間*********************************/ if(flag_dx_nb==1) { if(dx_s>5) { dx_red=0;//亮 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 0; //亮 nb_yellow=1; //滅 flag_5m_value=0; }elseif(dx_s<=5) //當小于5秒時黃燈要閃了 { dx_red=0;//滅 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=1;//滅 nb_green= 1; //滅 if(flag_500ms==0) //黃燈閃爍 { nb_yellow=0; //亮 } else { nb_yellow=1; //滅 } } } }/********************獨立按鍵程序*****************/ucharkey_can; //按鍵值voidkey() //獨立按鍵程序{ staticucharkey_new; key_can=20;//按鍵值還原 P1|=0x1f; if((P1&0x1f)!=0x1f) //按鍵按下 { delay_1ms(1); //按鍵消抖動 if(((P1&0x1f)!=0x1f)&&(key_new==1)) { //確認是按鍵按下 key_new=0; switch(P1&0x1f) { case0x1e:key_can=1;break; //得到按鍵值 case0x1d:key_can=2;break; //得到按鍵值 case0x1b:key_can=3;break; //得到按鍵值 case0x17:key_can=4;break; //得到按鍵值 } } } else key_new=1; }ucharmenu_1,flag_s;/********************設置函數*****************/voidkey_with(){ if(key_can==4)//交通管制按鍵 { flag_jdgz++; if(flag_jdgz>5) flag_jdgz=0; if(flag_jdgz==1) //全部亮紅燈 { dx_red=0;//亮 dx_green= 1; //滅 dx_yellow=1; //滅 nb_red=0;//亮 nb_green= 1; //滅 nb_yellow=1; //滅 } if(flag_jdgz==2) //東西紅燈南北綠燈 { dx_red=0;//亮 dx_gr

溫馨提示

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

評論

0/150

提交評論