基于單片機的智能交通燈控制系統設計_第1頁
基于單片機的智能交通燈控制系統設計_第2頁
基于單片機的智能交通燈控制系統設計_第3頁
基于單片機的智能交通燈控制系統設計_第4頁
基于單片機的智能交通燈控制系統設計_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)基于單片機的智能交通燈控制系統設計與實現基于單片機的智能交通燈控制系統設計與實現摘 要近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷深入,同時帶動傳統控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統。交通信號燈控制方式很多。本系統采用ST

2、C89C52RC單片機以及單片機最小系統和74HC245電路以及外圍的按鍵和數碼管顯示等部件,設計一個基于單片機的交通燈設計。設計通過兩位一體共陰極數碼管顯示,并能通過按鍵對定時進行設置。本系統實用性強、操作簡單、擴展功能強。關鍵詞:交通燈;單片機;顯示;計時;車流量Design and implementation of intelligent traffic lights control based on MCUAbstractIn recent years along with the rapid development of science and technology, SCM ap

3、plications are continually deepening, and promote the traditional control detection technology is updated. In real-time detection and automatic control of the microcomputer application system, the microcontroller is often used as a core component, only SCM knowledge is not enough, should be based on

4、 specific hardware structure of hardware and software combination, to be perfect.Crossroads shuttle vehicles, pedestrians bustling, car dealership traffic lane, people walkways, everything in good order and well arranged. So what to rely on to realize it in order? Is the traffic lights on the automa

5、tic command system. A lot of traffic signal control. This system uses STC89C52RC and 74HC245 system and the smallest transistor driving circuit and a periphery of the keys and digital tube display and other parts, a design based on the single chip design of traffic lights. Design through one of two

6、common cathode nixie tube display, and can be key to regular set. This system is practical, simple operation, strong expanding function.Keywords: Traffic light,SCM,Display,Timing,Traffic flow目錄 TOC o 1-3 h z u 1前言當今社會,科技不斷的發(fā)展,作為微控技術其中一部分的單片機也緊跟著腳步,正在迅速發(fā)展,普遍運用到了人們生活的各個領域。它的出現使傳統的控制技術發(fā)生了本質上的轉變??梢哉f單片機的

7、創(chuàng)造對于以往的控制技術來說就像是一場革命。無論在日常生活中,我們所用到的電飯煲,洗衣機,冰箱等等,還是在工業(yè)領域的自動化控制,電子領域的數據收集等等,都能看到單片機存在的身影,在微控領域占據了極高的地位。所以單片機的開發(fā)應用是高科技領域的一個里程碑。所以我們有必要更加深入掌握有關單片機的知識以及其應用技術。本文正是運用單片機來制作一個模擬的智能交通燈,通過此交通燈來智能控制十字路口的交通,有效、科學的控制引導過往的車輛和人流。1本設計的目的及意義本設計的目的是制作一個比較符合實際情況,價格低廉而不乏性能的交通燈智能操控系統。通過對現在的交通燈的了解和研究,本人打算使用紅外線檢測傳感、根據實際情

8、景來改變智能化控制的技術。系統除了一般的交通燈的功能之外,還可以通過檢測十字路口車的數量的多少來控制紅綠燈時間的改變。不僅如此,除了自動控制紅綠燈的變化之外,在緊急的特殊情況下,還可以手動的變換紅綠燈來使一些特殊的車輛快速通過交通路口等。因為根據綜合情況考慮到經濟和實際運用等等,本人使用單片機來控制整個系統的運作,跟ARM這種功能等各方面更加完善的控制方案相比,單片機確實是無法比擬的。然而,正是因為如此,怎么通過單片機的設計來發(fā)揮出其最大的功效才能體現出本設計的難點所在??偟膩碚f,本設計意義有如下4個方面:(a)用單片機這個完善的控制系統在交通燈應用的這個方面來實現與運用。(b)從人性話的角度

9、來設計交通燈。(c)探究全新的交通燈管理系統。(d)通過紅外線傳感器來檢測車流量,以達到自動調整紅綠燈時間的功能。這次除了運用單片機,還運用了可編程并行輸入輸出接口芯片當作中心件來完成交通燈控制器的設計,對交通十字路口路口進行管理。通過單片機來控制硬件電路,進行現實情況的模擬,實現紅綠燈之間的轉換,使之按次序點亮。通過LED數碼管來顯示倒計時的時間,紅綠燈采用紅、黃、綠3種發(fā)光二極管來顯示,而特殊緊急車輛的通過通過實時中斷來實現。用紅外線作為檢測車流量的方法,根據車流量的多少來智能的計算倒計時時間。本設計在國內外的發(fā)展概況及存在的問題現在,交通燈遍布在各個道路上,疏通交通、管理交通秩序全靠它。

10、然而它確起始于上個世紀。早在1850年,城市交叉口處持續(xù)增多,對交通帶來極大的不便,這個問題開始引起了大家的留意。在1868年英國的倫敦,開始了首次對交叉路口交通的控制,在那個時候,通過警察不斷的更換其手上的旗子來指揮,這個控制的命令在當時叫作旗語。40年后,它被傳到了美國的紐約,而且迅速的在傳遍了全國。由于城市電氣化的快速發(fā)展壯大,在1914年,俄亥俄州的克利夫蘭市出現了世界上第一臺通過電力來控制的交通信號燈。5年之后,紐約市開始將人工旗子控制的方式更換成電機控制的信號燈。在1923年的時候,GarrettMorgan申請了專利Morgan交通信號燈,通用電氣公司買了這個專利。9年后,電機控

11、制信號燈取代了最后一個人工控制的旗子。由1920年至1970年將50年的過程中,電機驅動的信號燈在交通信號控制系統領域中成了主導的地位。以便能夠使相鄰的交叉口在一個交通信號系統當中,在設定的信號周期、相位差以及綠信比下正常運行,人們發(fā)明了“七條線纜”的連接方式,能夠讓相鄰的信號燈在一個系統控制的模式下運行,盡管現在我們進入了新世紀,在某部分地方依然在使用這種根據七條線纜的連接方式。不僅如此,絕大多數在電機驅動的系統中所運用的術語,即使到了現在,微處理控制器依然在使用。在上個世紀60年代初,計算機被引進到交通信號控制系統中。在1963年,第一個計算機控制的交通信號控制系統在加拿大的多倫多市安裝,

12、到了20世紀70年代,微處理器被普遍使用,相應的硬件和軟件也逐漸發(fā)展起來。如今,交通控制變得越來越智能化,相信我們未來的交通必然是更加人性化,更加方便。自從交通燈出現以后,交通的管制變得更加有效,在疏導車輛、提升道路的流暢性、降低交通事故的發(fā)生率等方面有積極的影響。在1968年的時候,聯合國出臺了道路交通和道路標志信號協定,給每一種信號燈的作用給出了定義。綠燈代表通行的意思,看見綠燈的車輛能夠通行,左轉彎或者右轉彎,要不然就是另外一個標志禁止某一種轉向。左右轉彎車輛的優(yōu)先級比直行的車輛和在人行道通行的路人要低。紅燈表示禁行的意思,看見紅燈的車輛應該在交通路口的停車線后停車。黃燈表示警告的意思,

13、看見黃燈的車輛要停一停,在停車線后的車輛應該停止,不應該向前行駛,如果車輛已經非??拷\嚲€卻不能安全停車的時候可以通過。本設計的單片機控制交通燈就是基于信號燈。2存在的問題:現在,我國的一般安裝交通路口,在顯眼的地方通過紅、黃、綠三種顏色的指示燈來指示。再增加一個倒數的數字顯示器來指導車輛。在一般的正常的行車情況下,車輛分流可以發(fā)揮其作用,然而依據車輛行駛過程中出現的實際情況,發(fā)現有以下缺陷: a、兩車道的車輛具有一樣的倒計時時間,而在十字路口,正常是一個車道為,車輛比副干道的要多,所以正常來說時間應該比它要長一點。B、不能智能檢測車流量,紅綠燈倒計時時間不會根據車流量的多少而改變,從而導致

14、交通擁擠等情況。本設計應解決的主要問題本設計將設計并制作一個智能交通燈控制系統。設計的內容是:A、熟練掌握單片機的用法與最小系統的搭建。B、完成智能交通燈控制系統的硬件與軟件設計。C、應具有智能判斷車流量功能。D、應具有根據車流量智能設定紅綠燈時間功能。E、在制作的單片機系統上實現所設計的功能,并完成演示。F、其他可擴展功能。目前,限制單片機智能交通燈設計的因素主要有以下兩個:a、根據各道路路口車流量的大小自動調節(jié)通行時間,因為這個問題就關系到了通過運用什么技術來檢測。正常情況下車流量檢測器通過傳感器加單片機,再加上一些其他器件來運行。考慮到整體情況,本人這次用紅外線來檢測車流量。b、考慮特殊

15、車輛通行情況,設計緊急切換開關。例如消防車、救護車、警車等等,遇到這些緊急情況的話就要考慮到這些車輛的迅速通行,因為這都是性命攸關的時刻,所以設計緊急切換開關是必須的。而這個緊急切換開關就關系到了程序的設計,這個問題的實現難度對于本人來講也是一項挑戰(zhàn)。2方案介紹這次設計的重點包含以下這幾個方面:a、設計交通燈狀態(tài)的管理方案;b、設計單片機最小系統和周邊電路;c、設計交通燈系統和中斷系統的電路結構;d、設計整個系統的電路分布和接線;e、使用C語言編寫整個系統運行所需要的程序,重點是緊急中斷系統的程序。設計原理本設計所用的部件包括以下這幾樣:STC89C52RC單片機及其最小系統,除此之外,還有7

16、4HC245的驅動電路和外圍的按鍵和用來看數字的數碼管,通過這些來完成本人的這次畢業(yè)設計。在一定的時間內增加車輛安全通過的數量和質量。而且在車流量密集的時候通過系統的設定來改變主次干道的通過車輛的時間,減少交通密集和堵塞現象。除此之外,針對緊急特殊情況,系統還具備了緊急處理按鈕,通過這些按鈕可以讓一些如警車、救火車、救護車等快速通過,提高對特殊緊急狀況的應變能力。通過單片機來掌控交通燈的運行,可以讓單片機改變信號燈的輪流點亮,能滿足一般情況下的車輛運行,當然,接入LED數碼管就能夠顯示倒計時以提醒行使者,更具人性化。這次設計在這樣基礎之上,單片機控制系統對這種情況進行了全面的整改,按實際情況掌

17、控并指揮交通的運作。系統總體框圖如圖所示:鍵盤設置部分可以對模式進行選擇,智能時間出現問題時還可以對時間進行人工調整,當系統開始正常運行時,在調整交通燈的正常運作顯示的時候,還將相對應的時間數字灌輸到數碼管上,通過數碼管展現出來。與此同時,還應該時刻能夠檢查違規(guī)的車輛和具有突發(fā)的按鍵處理,實現應對緊急情況處理的目的。急停按鈕以及違法檢驗立即調用中斷。圖 系統的總體框圖根據這種情況,此次設計把單片機作為根本,以按鍵部分和紅外接受模塊部分作為輸入,交通燈顯示模塊和數碼管通過驅動電路進行輸出。系統的總體框圖如圖所示。方案選擇a、控制器方案作為交通智能控制的中心,控制器的選擇十分重要。方案一:用FPG

18、A進行控制。方案二:用PLC進行控制。方案三:51 系列單片機,這是一種較為實用的系統。經過各方面的綜合因素考慮。上面的3 種控制方案都能夠漂亮的實現智能交通燈的運行,雖然PLC 以及FPGA進行操作的時候比較容易,但是它們的價格確實昂貴的。而本人的這次設計選的是方案三(51 系列單片機),因為它不但能夠完成智能通交通燈的控制,而且它的性能也非常好,價格也很便宜,是個非常好的選擇。所以本人選擇了用的比較常用的89C52單片機當作控制器。b、供電方案為了能夠讓交通燈在正常的狀態(tài)下運作,應該有一個穩(wěn)定的電源。本人的這次設計想到了兩種電源方案:方案一:使用相對穩(wěn)定的外接電源。這個方案的好處是性能比較

19、穩(wěn)定安全,并且還有各種相對完美的電路;缺陷是每一個部分都使用獨立的電源,令系統變得更加復雜,并且有幾率改變電路電平。方案二:通過單片機控制模塊進行電源的供給。優(yōu)勢是系統比較簡單,省資金;缺陷是輸出的功率低,導致電路不穩(wěn)定。綜合考慮到了本設計的情況,本人采用了第一套方案。c、顯示界面方案這次設計的運用到了倒計時和紅綠燈等顯示。本人想到了以下幾個方案:方案一:全部通過數碼管來顯示。但是這樣只能實現部分符號和數字,并不能實現全部功能。方案二:全部通過點陣式LED 顯示。缺點是這種方案比較復雜,而且程序比較難;但是功能全面,基本上能實現所需的功能。方案三:通過數碼管和點陣LED 一起顯示。從實際狀況等

20、各方面綜合因素考慮,本人選用方案三數碼管與LED燈一起來顯示時間與狀態(tài)燈。這個方案不但實現了全部需求,實現起來又比較簡單。d、輸入方案根據實際情況,本人想到了兩種方案:方案一:使用8155擴展輸入輸出口以及鍵盤、顯示等。這種方案的優(yōu)勢是:比較靈活,而且含有RAM和計數器。若用該方案,可提供較多I/O 口,但操作起來稍顯復雜。方案二:通過在輸入輸出口線上接上按鈕開關。該方案優(yōu)勢是:編程比較容易,使用起來比較方便,而且成本更加低。缺點就是功能有限。從各方面因素考慮之后,本人使用方案二來實現輸入。分析問題我們假設設在一個十字路口上,分別有東西南北四個方向,在任意時候只可以讓其中一個方向的車輛通過,另

21、外一個方向禁止通過,經過一定時間后,將兩個方向互換。說明:黑色代表燈亮,白色代表燈滅。一開始紅綠燈的狀態(tài)如下圖(a),然后到(b)、(c)、(d),最后按照這個順序重復循環(huán),交通狀態(tài)如圖所示:下面是具體的每一個交通燈的狀態(tài)顯示: (a) (b) (c) (d)圖 交通狀態(tài)(a)東西方向紅燈亮,車輛禁止通行,南北方向綠燈亮,車輛可以通行,倒計時13秒(時間只是方便演示)。(b)東西方向紅燈亮,禁止通行,南北方向黃燈亮,車輛應該等待通行,倒計時5秒(時間只是方便演示)。(c)南北方向紅燈亮,靜止通行,東西方向綠燈亮,車輛允許通行,倒計時24秒(時間只是方便演示)。(d)南北方向紅燈亮,車輛禁止通行

22、,東西方向黃燈亮,倒計時5秒(時間只是方便演示)。等待時間倒計時,緊接著回到狀態(tài)(a)下面我們可以用圖表表示燈狀態(tài)和行止狀態(tài)的關系如下:表交通狀態(tài)及紅綠燈狀態(tài)狀態(tài)a狀態(tài)b狀態(tài)c狀態(tài)d東西向禁行等待變換通行等待變換南北向通行等待變換禁行等待變換東西紅燈1100東西黃燈0001東西綠燈0010南北紅燈0011南北綠燈1000南北黃燈0100東西南北四個交通口都含有紅綠燈以及數碼管,無論是哪一個交通口,凡是看到紅燈的應該禁止通行,看見轉了綠燈就可以通過,如果黃燈亮了表示紅綠燈狀態(tài)即將發(fā)生變化。各方向的狀態(tài)以及紅綠燈狀態(tài)如上表。(說明:0表示滅,1表示亮)3硬件設計系統硬件總電路構成: 為了滿足這次的

23、交通燈設計所需要實現的功能,本人選用了STC89C52RC芯片和外圍設備組成的最小系統,代表紅、綠、黃三種顏色的led交通燈總共14個,4個2位LED數碼管和包括復位鍵、緊急控制按鍵等,紅外線接受器,驅動電路模塊,若干導線、電阻和電容。構成了此次設計的各個模塊。其具體的硬件電路總圖如圖所示。本系統把單片機最小系統作為關鍵核心,由各個硬件模塊軟件為控制主體組成一個處理、智能控制為一體的封閉操控系統。其中P0用來送顯LED數碼管的段選和位選,P1用來操控紅綠燈的亮暗,12MHz晶振接在單片機芯片引腳的XTAL1和XTAL2上,REST引腳接連接復位電路,P3端口用來實現按鈕的控制。單片機系統及其歷

24、史單片機是一塊集成在芯片上的微型計算機,它的內部包括有CPU、存儲器,定時/計數器以及中斷系統,基本輸入/輸出(簡稱I/O)接口電路等。因為它的結構與指令功能都是按照工業(yè)控制要求設計的,所以又稱作微控制器(簡稱MCU)。它在各方面都有良好的優(yōu)勢,例如結構簡單,控制效果好,可靠性高、體積小、價格低,單片機技術作為計算機技術的一個非常重要的分支,廣泛地應用于工業(yè)控制、智能化儀器儀表、家用電器、電子玩具等各個不同的領域。單片機誕生于上世紀70年代,經歷了三個階段:SCM、MCU、SOC。一開始的SCM單片機都是8位或4位的。其中英特爾公司的8051發(fā)展迅速。之后的MCS51系列的MCU單片機得到了廣

25、泛的應用?,F在高端的32位SOC單片機性能已經達到了上世紀90年代中期專用處理器的水平,且價格低廉。所以越來越多的制作業(yè)、工業(yè)離不開單片機。單片機的應用系統必須包含硬件部分和軟件部分,只有這樣才是完整的單片機應用系統。軟件部分是指導硬件工作的指令集。沒有軟件部分,系統將無法正常工作。硬件部分則是交通燈系統的基礎。沒有硬件系統則沒有所謂的交通燈系統。只有將兩者結合,才能實現功能齊全的及交通燈系統。單片機內部組成以及引腳介紹8052是MCS-52系列單片機的典型芯片,不同型號一般程序存儲器結構不同,其余內部結構都是完全相同,引腳也全部兼容。Atmel公司的89系列發(fā)展很快,應用也最為廣泛,和805

26、2引腳也完全相同,插座也相互兼容。所以用89C52代替8051時,只要封裝相同就可以直接代換。中央處理器(CPU):交通燈系統的控制核心是單片機,而單片機的控制核心是中央處理器。它與計算機的處理器一樣分為4字長、8字長、16字長和32字長等處理器,它與單片機的處理數據能力、控制功能、運算速度等性能等性能有關,因此,字長是衡量CPU功能的主要指標。CPU由運算器和控制器組成。各一個8位的算術邏輯單元(簡稱ALU)、累加器(簡稱ACC)、暫存器B和程序狀態(tài)寄存器(簡稱PSW)構成了CPU的運算器。所述控制器包括程序計數器(PC) ,指令寄存器(IR) ,指令譯碼器(ID)和一個控制電路等。內存數據

27、存儲器RAM:單片機89C52芯片內部數據存儲器通常是指低128個單位,可以讀也可以寫,是分配給用戶使用的,在斷電后數據會消失。高128個單位則是內部專用寄存器使用的存儲單位,用戶無法對其進行操作,所以芯片內部一共包含256個RAM單元。內部程序存儲器ROM:89C52芯片的內部程序存儲器使用的是只讀存儲器,這樣有利于系統的可靠及穩(wěn)定性且能節(jié)省成本。它有4KB掩摸ROM,只能讀不能寫程序將不會在斷電后丟失。這樣則不會改變程序的原始數據,通常稱為只讀程序存儲器 并行I/O端口:89C52芯片內部有4個8位并行I/O端口(P0口、P1口、P2口和P3口),通過I/O端口實現數據并行輸入輸出,是人機

28、交互的接口。 串行口: 89C52芯片內部串行實現單片機與外圍設備之間的數據通信是通過一個全雙工異步串行口。該串行口既可以作為同步移位器使用,擴展外部I/O端口,又可以作為全雙工異步通信收發(fā)器使用。定時/計數器:89C52芯片內部的2個16位定時/計數器可以控制單片機的內部時鐘,使單片機按照一定的機器時鐘進行狀態(tài)控制。還可以進行外部定時或計數功能,是芯片的重要組成部分。中斷系統:8052內部共有5個中斷源,2個優(yōu)先級別分別是高優(yōu)先級和低優(yōu)先級,在同級的情況下,外部中斷0大于定時器T0中斷大于外部中斷1大于定時器中斷T1大于串行口中斷。時鐘電路:89C51芯片單片機內部具有時鐘電路,只需要在XT

29、AL1和XTAL2引腳之間接上石英晶體和微調電容就能構成完整的時鐘電路。此系統選用的晶振頻率為12MHz。相應的機器周期是1us。引腳介紹:VCC:STC89C52電源接入端,接+5V。GND:電源接地端。XTAL1和XTAL2:當需要使用外部時鐘時,則連接外部的時鐘電路;若要使用內部時鐘則連接電容和晶振。本系統所使用的是內部時鐘,所以在兩引腳間連接了電容和12MHz的晶振。RESET:STC89C52芯片的重置引腳,當連續(xù)輸入這個引腳2個機器周期以上的高電平即有效電平時,芯片將進行系統的復位操作,各個寄存器都恢復到最初的狀態(tài)重新運行程序。EA:EA的E的英文是External ,A的英文是A

30、ccess ,合在一起是外部程序存儲器的意思。上面的橫線則代表低電平有效。所以這個引腳接高電平則使用內部程序存儲器,低電平則使用外部的程序存儲器。在此系統中,由于程序下載到內部程序存儲器中,因此該引腳與+5V電源相連接。ALE:ALE是編程脈沖的輸入端。它以晶振頻率的1/6的固定頻率輸出,所以也可以作為時鐘電路使用。同時這個引腳也是P0口低8位 的地址鎖存器,將低8位數據與地址相互隔離,用于系統擴展。PSEN:此為Program Store Enable的縮寫,其意為程序儲存啟用。低電平有效,當引腳輸入低電平時實現對外部ROM單元的讀操作。在執(zhí)行指令的取指階段和從程序存儲器中取數據時有效。P0

31、口():端口0可以作為通用I/O端口使用和地址/數據線使用。共有8個位,表示位0,表示位1,依此類推。一個數據輸出D鎖存器、兩個三態(tài)數據輸入緩沖器、一個輸出控制電路和一個數據輸出的驅動電路共同構成了P0口的邏輯電路。如果引腳的電平為低時(即取用片外RAM擴展或數據存儲器),P0就以雙向口的工作方式提供地址總線(A0A7)及數據總線(D0D7)。在此設計中,P0口是作為通用I/O口將各個共陰極數碼管相應的段選控制端并聯在一起,用驅動器74HC245驅動。 P1口():是89C51單片機唯一的單功能端口,僅僅能用作通用的數據輸入/輸出口。P1口的邏輯電路與P2口相似,但其內部沒有輸出控制電路,而且

32、具有上拉電阻。所以其只能作為通用I/O端口使用。在此系統中,P1口是用來控制數碼管的公共端,也稱作為“位選端”。P2口():端口2也具有2個功能:一個是具有內部提升電路的雙向I/O端口,與P0口相似;另一功能也跟P0口相似,P0口的第2功能是作為地址/數據線使用,而P2口是單一的地址線使用。系統擴展時作為高8位的數據線使用。當沒有在89C51單片機芯片外擴展ROM和RAM,且P2口高8位地址總線沒有全部用到時,P2口的口線就可以全部作為通用I/O口線使用。P2口屬于準雙向口。在本系統中,P2口用于控制LED信號燈的亮滅。P3口():作為通用I/O口,作為輸出時,鎖存器的狀態(tài)端(Q)與輸出引腳的

33、狀態(tài)相同;作為輸入端口時,為使引腳處于高阻輸入狀態(tài),需向鎖存器輸入程序數據“1”。輸入的數據在“讀引腳”信號的作用下,進入內部數據總線。所以,P3口在作為通用I/O口時,也屬于準雙向口。在本系統,P3口作為第二功能使用,主要利用按鍵模塊實現系統的中斷跳轉。P3端口使用第二功能時:其引腳分配如下:RXD,串行通信數據的接收。:TXD,串行通信數據的發(fā)送:INT0,外部中斷0申請。:INT1,外部中斷1申請。:定時/計時計數器0的外部輸入。:定時/計時計數器1的外部輸入。:外部數據存儲器的寫入信號。:,外部數據存儲器的讀取信號。單片機引腳圖如圖所示:單片機最小系統上面提到單片機的應用系統可以分為硬

34、件部分和軟件部分。軟件部分指揮各個硬件執(zhí)行燒錄進單片機內的程序,如果沒有程序那么它顯然是無法工作的的。但如果它僅僅只是燒錄了程序,它還是同樣無法工作。原因是除了單片機和軟件部分外,要使單片機能夠正常工作,還需要時鐘電路和復位電路。芯片加上時鐘和復位電路,這樣才是完整的最小單片機系統。在XTAL1引腳和XTAL2引腳間跨接一定頻率的晶振構成時鐘電路為單片機的正常工作提供基本時鐘,機器周期則由晶振頻率決定。復位電路則將系統恢復初始化。就如同此系統中,將系統恢復至東西通行,南北禁止的剛啟動系統的狀態(tài)。圖 單片機電路引腳圖為了實現單片機的同步工作,系統必須有唯一的時鐘信號,并在這個時鐘信號下嚴格的按時

35、序進行狀態(tài)轉換和工作。這個時鐘信號可以外部時鐘也可以芯片自帶的時鐘信號。這種時鐘信號由時鐘電路提供。在本系統中,在STC89C51單片機XTAL1和XTAL2之間接的是晶振頻率為12MHz的晶振。機器周期是晶振頻率的十二分頻,所以機器周期為1us。適當編寫程序,則可以定時1ms或者1s的時間。單片機與計算機相同,都有可能會出現故障死機或斷電的情況,這時候則需要和計算機一樣有一個復位鍵將系統重啟,單片機的復位電路也是使CPU和系統中的其他功能部件都恢復到一個確定的初始狀態(tài)。實現復位的條件就是RST引腳輸入持續(xù)2次機器周期的高電平。復位后PC=0000H,即是從新從程序存儲器的第1個單元取指令進行

36、譯碼。若持續(xù)高電平則會循環(huán)復位。按鍵復位和上電自動復位是復位電路經常采用的兩種不同的方式。本系統所使用的是按鍵復位。按鍵在其余4個按鍵的中間,接芯片的RST引腳。按鍵瞬間RST引腳端電位與Vcc一致,隨著電容C1的充電,充電電流的減少,導致RST引腳的高電位下降。只要RST引腳的高電位能夠保證在2個機器周期以上,單片機就會進行復位操作,使系統復位。上電復位則要求接上電源之后能夠自動實現系統的復位,原理相同,不再贅述。單片機最小系統原理圖如圖所示:圖 單片機最小系統原理圖 LED顯示發(fā)光二極管簡稱為LED。它是一種半導體二極管。它的可見光是由空穴和電子結合時輻射而出的,因此它可以把電能轉化為光能

37、。主要由鎵(Ga)與砷(As)、磷(P)、氮(N)、銦(In)等化合物制成這種半導體二極管。三極管具有2個PN結,而發(fā)光二極管是由一個PN結組成的,它具有單向導電性。正向壓降低,反向壓降則要相對高得多。它改變了鎢絲發(fā)光與三基色粉發(fā)光的原理,而采用發(fā)光。因此它也是非常有發(fā)展前景的綠色照明光源。它的功耗低,壽命長,輻射低的特點使其得到了廣泛的應用。不僅如此,它的光效率高,亮度大,同時可以回收利用的優(yōu)點也使它成為非常受矚目的新一代光源。它的運用簡單,信號穩(wěn)定,所以選擇發(fā)光二極管作為我們系統非常關鍵的模擬交通燈燈源。本系統所選用的是普通單色發(fā)光二極管。它具有體積小、工作電壓低、工作電流小、發(fā)光均勻穩(wěn)定

38、、響應速度快、壽命長且價格低廉等優(yōu)點,非常適合單片機交通燈系統的模擬交通燈。連接時也要注意LED燈的單相導電性,接反將會導致交通燈無法正常使用。模擬交通燈利用發(fā)光二極管來顯示不同顏色的信號指示燈。LED燈如圖所示: 圖 LED燈顯示電路數碼管顯示數碼管是一種半導體發(fā)光,在單片機系統中運用廣泛,可以顯示單片機的工作狀態(tài)。就如同本系統中的數碼管用來顯示紅綠黃燈狀態(tài)的持續(xù)時間和跳轉時間,是人機對話非常重要的輸出設備。其基本單元是。數碼管顯示是分段實現的,通過點亮不同段來顯示不同的數字。其中按段數分為七段LED數碼管和八段LED數碼管,其中八段LED數碼管比七段LED數碼管多了一個LED燈在右下角作為

39、數字的小數點。數碼管按結構還可分為共陰極數碼管和共陽極數碼管。在此系統中所采用的則是八段共陽極數碼管結構。八個LED燈構成的共陽極數碼管是將所有LED燈的陽極連接在一起接在高電平上作為公共控制端。陰極作為“段”的控制端,當其中一“段”的控制端接低電平時,該段對應的發(fā)光二極管就會點亮。通過點亮不同的段從而顯示出各種數字。本系統的共陽極數碼管的公共控制端接到+5V高電平上。共陰數碼管是指將LED燈的陰極接到一起形成公共陰極(COM)的數碼管,與陽極不同的是要接在低電平陰極上。而陽極作為段選端,要點亮某段時則需要輸入高電平。LED數碼管的顯示方式可以分為靜、動態(tài)顯示兩種。雖然靜態(tài)顯示相對于動態(tài)顯示用

40、較小的電流就能使數碼管的亮度加強、CPU運算時間少,編程也更簡便,節(jié)省存儲空間且顯示便于檢測和控制。但其占用的I/O口太多,只適合少位數碼管使用。不適合此系統,所以選用動態(tài)顯示,下面重點介紹數碼管的動態(tài)顯示。此系統用動態(tài)顯示方式點亮4個2位數碼管,各個共陽極數碼管相應的段選控制端并聯在一起由P0口控制,并用驅動器驅動。各位數碼管的公共端,也稱為“位選端”由單片機的P1口控制。數碼管顯示如圖所示:圖 數碼管顯示信號顯示驅動電路74HC245譯碼器可接受3位二進制加權地址輸入(A0, A1和A2),并當使能時,提供8個互斥的低有效輸出(Y0至Y7)。74HC245特有3個使能輸入端:兩個低有效(E

41、1和E2)和一個高有效(E3)。除非E1和E2置低且E3置高,否則74HC138將保持所有輸出為高。利用這種復合使能特性,僅需4片74HC245芯片和1個反相器,即可輕松實現并行擴展,組合成為一個1-32(5線到32線)譯碼器。任選一個低有效使能輸入端作為數據輸入,而把其余的使能輸入端作為選通端,則74HC245亦可充當一個8輸出多路分配器,未使用的使能輸入端必須保持綁定在各自合適的高有效或低有效狀態(tài)。74HC245作用原理于高性能的存貯譯碼或要求傳輸延遲時間短的數據傳輸系統,在 高性能存貯器系統中,用這種譯碼器可以提高譯碼系統的效率。將快速賦能電路用于高速存貯器時,譯碼器的延遲時間和存貯器的

42、賦能時間通常小于存貯器的典型存取時間,這就是說由肖特基鉗位的系統譯碼器所引起的有效系統延遲可以忽略不計。HC138 按照三位二進制輸入碼和賦能輸入條件,從8 個輸出端中譯出一個 低電平輸出。兩個低電平有效的賦能輸入端和一個高電平有效的賦能輸入端減少了擴展所需要的外接門或倒相器,擴展成24 線譯碼器不需外接門;擴展成32 線譯碼器,只需要接一個外接倒相器。在解調器應用中,賦能輸入端可用作數據輸入端。74HC245電路圖如圖所示:圖 74HC245電路圖鍵盤輸入電路單片機鍵盤有獨立鍵盤和矩陣式鍵盤兩種:獨立鍵盤每一個I/O 口上只接一個按鍵,按鍵的另一端接電源或接地(一般接地),這種接法程序比較簡

43、單且系統更加穩(wěn)定;而矩陣式鍵盤式接法程序比較復雜,但是占用的I/O少。根據本設計的需要這里選用了獨立式鍵盤接法。獨立式鍵盤的實現方法是利用單片機I/O口讀取口的電平高低來判斷是否有鍵按下。將常開按鍵的一端接地,另一端接一個I/O 口,程序開始時將此I/O口置于高電平,平時無鍵按下時I/O口保護高電平。當有鍵按下時,此I/O 口與地短路迫使I/O 口為低電平。按鍵釋放后,單片機內部的上拉電阻使I/O口仍然保持高電平。我們所要做的就是在程序中查尋此I/O口的電平狀態(tài)就可以了解我們是否有按鍵動作了。在用單片機對鍵盤處理的時候涉及到了一個重要的過程,那就是鍵盤的去抖動。這里說的抖動是機械的抖動,是當鍵

44、盤在未按到按下的臨界區(qū)產生的電平不穩(wěn)定正?,F象,并不是我們在按鍵時通過注意可以避免的。這種抖動一般10200毫秒之間,這種不穩(wěn)定電平的抖動時間對于人來說太快了,而對于時鐘是微秒的單片機而言則是慢長的。硬件去抖動就是用部分電路對抖動部分加之處理,軟件去抖動不是去掉抖動,而是避抖動部分的時間,等鍵盤穩(wěn)定了再對其處理。所以這里選擇了軟件去抖動,實現法是先查尋按鍵當有低電平出現時立即延時10200毫秒以避開抖動(經典值為20毫秒),延時結束后再讀一次I/O 口的值,這一次的值如果為1 表示低電平的時間不到10200 毫秒,視為干擾信號。當讀出的值是0時則表示有按鍵按下,調用相應的處理程序。鍵盤控制電路

45、圖如圖所示:圖 鍵盤控制電路圖紅外接收原理紅外線接收頭的運作原理:它里面的有一個接收管,作用是把紅外線發(fā)射裝置所發(fā)射出去的光信號轉變成較弱的電信號,這個電信號再通過IC 里面的放大器處理,把信號增大,緊接著經過一系列的自動增益控制、帶通濾波、解調變、波形整形后轉化為遙控器發(fā)射出來的原始編碼,再經過接收頭的信號輸出腳輸入到電器上的編碼識別電路。紅外接收圖如圖所示:圖 紅外接收電路圖4軟件設計跟C語言比起來,匯編語言所編寫的代碼生成的速率很快,但是程序看起來會十分復雜,很難讀懂,然后用C 語言所編寫的代碼在速率方面跟匯編語言差不多,但是卻比匯編容易更容易讀懂,可移植性也很強,不僅如此, 在編寫高時

46、效性的代碼的時候,C 語言還能夠嵌入匯編語言來完成。在開發(fā)周期的方面,如果一般中大型的軟件,編寫都是用C 語言來實現,因為它的開發(fā)周期比匯編語言的要少許多。綜上所述,本人在這次的畢業(yè)設計當中選了C語言作為程序編程語言。而這次的畢業(yè)設計的程序用Keil Vision 這款軟件進行編寫。因為這個編程軟件不但支持各種公司的芯片,還具有編譯、編輯以及仿真等功能,不僅是C語言,它還支持PLM、匯編這兩種語言的編寫和設計,界面非常簡潔,讓人容易上手。在程序的調試和軟件的仿真這兩個方面都很優(yōu)秀。所以這次的編程的軟件本人選的是Keil Vision。系統總的流程圖如圖所示:設置字型設置字型碼和字位碼,完成顯示

47、初始化外部中斷定義狀態(tài)數組宏定義返回w返回while(1)函數進入while(1)循環(huán)I/O初始化定義字定義字位碼函數定定義共陰極字型編碼表調用調用顯示控制函數void display()進入主函數main()定定義函數變量并初始化定時定時器0初始化調用Buzzer()函數圖 系統總的流程圖定時器的設置定時器的工作方式可以分為4種,工作方式0是13位的定時計數器; 16位的定時計數器可以用工作方式1來實現;工作方式2是8位的定時計數器;工作方式3情況較復雜,定時計數器T0才可以在此工作方式下工作,T0被分解成獨立的兩個8位定時計數器。而在此系統的程序,所采用的是工作方式1。具體用代碼TMOD=

48、0 x11來設置2個定時計數器T0,T1都工作在工作方式1下。中斷程序的設置在中斷情況下,本系統的程序中斷思路流程圖如圖所示,采用外部中斷0進入只允許東西通行的特殊情況;采用外部中斷1進入只允許南北通行的特殊情況;在自然情況下,外部中斷0的優(yōu)先級高于外部中斷1,系統無特別要求可不設置外部中斷的優(yōu)先級。中中斷響應關關定時器特特殊情況(緊急情況)中中斷返回圖 程序中斷思路流程圖本系統的設計所用的定時中斷程序是非常重要的,定時計數器啟動之后,它就開始在初始值上的加1計數,程序設定給TL0和TH0裝載合適的初值,假設需要設定系統定時50ms,計50000個數后,定時計數器將會溢出,此時的時間就是50m

49、s并且會進入中斷系統,當需要設定系統時間1s時,程序設計時只要設置20次50ms的定時中斷就是1s,這樣便可精確控制定時時間同時利用中斷系統完成數碼管輸出數據刷新和處理不同狀態(tài)的切換。定時中斷系統的程序流程圖具體情況如圖所示。5調試斷電調試以保安全,避免硬件被燒壞,本人一開始先進行的是斷電測試。首先用萬能表檢查定義定義1s定時中斷入口設置設置字型碼和字位碼,完成數碼管倒計時顯示啟動定時器中斷關閉定時器0初始化定時器0 關閉定時器0初始化定時器0計計數變量自加1 圖 定時中斷流程圖電路是不是有短路的情況出現,然后看看設計的原理是不是對的,每一個線路電壓有沒有出現錯誤。經過檢查,斷電測試沒有問題。

50、通電調試A、插入電源后,按了開關,發(fā)現電路沒有反應,經過一系列的測試排除后發(fā)現輸入電壓最少應該為,經過處理,換了一個9V的電源,問題終于得到了解決。B、 測試系統的時鐘是不是正確的,本人的方法是用萬能表來測試。把萬能表調到直流電壓檔這個檔位,然后把兩線分別接在XTAL1與AXTAL2之間,顯示出來的數字是,沒有問題。C、復位電路經過檢測沒有出現問題。D、數碼管顯示有時顯示不正常,經過一系列排查處理之后,恢復正常。LED燈表現也正常。功能部分的測試A、接上電源后,交通燈開始運作,運作正常。運行1分鐘,按復位鍵,恢復到了開始狀態(tài),表現正常。B、按緊急停止按鍵,四個紅燈一起亮了,再按一次,退出該模式

51、,表現正常。C、按顯示車流量按鍵,數碼管顯示倒計時停止,紅外線每檢測到一個信號,計數加1,再按一次,退出該模式,表現正常。D、按單向通行按鍵,按一次為東西通行,按兩次為南北通行,按第三次退出該模式,表現正常。E、按夜間模式按鍵,按一次路口全為黃燈,按第二次退出該模式,表現正常。F、按調時按鍵,調節(jié)東西方向的紅燈和綠燈時長,按一次為調節(jié)紅燈時長,按兩次為調節(jié)綠燈時長,再按時間加減兩個按鍵,時間按照按鍵的次數加減,再按一次,退出該模式,表現正常。6結論通過這次畢業(yè)設計,我學到了許許多多的東西。總結有以下幾條:(1)首先,學習到最明顯的就是word的運用。在這次畢業(yè)設計以前,除了幾次基本的文字編輯之

52、外,其它的功能根本就沒有用過。通過這篇論文的修改,我學會了很多功能的運用,包括段落、頁面、頁眉、等各種編輯功能。雖然我知道word的功能遠遠不止這些,但是這次起碼讓我學習到了我以前不會的東西,這就是一種進步的表現。(2)通過復習大學期間學過的有關知識,我將此充分運用到了這次的畢業(yè)設計當中,跟實踐相聯合。同時,我也發(fā)現自己有很多知識不明白,都是通過問老師,查資料自學來掌握,我相信經過我的努力,可以完美的完成這次畢業(yè)設計。(3)在這次畢業(yè)設計中,我對單片機有了更深的理解,學習到了更多關于單片機的知識。通過深入的研究和思考,在程序編寫方面也有自己獨特的一套思路,編寫的時候更加熟練,靈巧。(4)增強了

53、查閱資料和自學的能力。在這次畢業(yè)設計當中,我遇到了很多不會的問題,然后我就開始自己上網搜索,查找或者翻閱書本查找,經過自學之后,如果還是不懂,我就會問同學和老師,最后通過自己的理解逐漸的把問題解決了。這讓我體會到了什么叫學無止境,知識是無限的,我們只有通過不斷的學習,提升自己的知識面,才能更好的運用到實際當中,使生活更加美好,思想境界更加廣闊。 參考文獻 l邊海龍,孫永奎. 單片機開發(fā)與典型工程項目實例詳解J.電子工業(yè)出版社,2008,(10):143-160.2王為青,邱文勛. 51單片機開發(fā)案例精選J.人民郵電出版社,2001,(5):45-47.3張鑫,華臻,陳書謙. 單片機原理及應用J

54、.電子工業(yè)出版社,2008(5).4張洪潤,張亞凡.單片機原理及應用J. 清華大學出版社,2005,(4).5黃智偉.凌陽單片機課程設計指導J. 北京航空航天大學出版社,2007,(6)6蔣輝平,周國雄. 基于Proteus的單片機系統設計與仿真實例M.機械工業(yè)出版社,2009.7張毅坤. 單片微型計算機原理及應用,M西安電子科技大學出版社 1998 8余錫存 曹國華.單片機原理及接口技術M.陜西:西安電子科技大學出版社,9雷麗文 等.微機原理與接口技術M.北京:電子工業(yè)出版社,1997.10張萌單片機應用系統開發(fā)綜合實例第二版清華大學出版社2005年11何立民單片機應用文集第一版北京航空航天

55、大學出版社2004年12張一工現代電力電子技術原理與應用第一版科學出版社2002年13歐陽文ATMEL89系列單片機的原理與開發(fā)實踐第一版中國電力出版社2007年謝辭在即將結束本文,完成畢業(yè)設計的時刻,我要向所有在我畢業(yè)設計階段乃至我大學幫助過我的老師和同學致以深深的謝意,感謝他們在學習和生活上給我的幫助。.通過本次畢業(yè)設計,我在指導老師的精心指導和嚴格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,并對當前電子領域的研究狀況和發(fā)展方向有了一定的了解,單片機領域這對我今后進一步學習計算機方面的知識有極大的幫助。在設計中遇到了很多編程問題,最后在老師的辛勤指導下,在同學的熱情幫助下,終于迎刃

56、而解。同時,在老師的身上我學到很多實用的知識,在此我表示感謝!最后,對給過我?guī)椭乃型瑢W和各位指導老師再次表示忠心的感謝!還有許許多多給予我學業(yè)上鼓勵和幫助的朋友,在此無法一一列舉,在此也一并表示忠心地感謝!附錄附錄1程序源代碼#include #include #include #define SMG_DATA P0sbit botton1 = P16;sbit botton2 = P17;sbit botton3 = P34;sbit botton4 = P35;sbit botton5 = P36;sbit botton6 = P37;sbit S1=P27;u8 timebreak0

57、 = 0; u8 i = 0; /定時器計數變量u16 dx_redtime = 14,dx_gretime = 20,nb_redtime,nb_gretime,yeltime = 5; /紅綠燈時間設置s16 count_time = 0; /時間調節(jié)量u16 num_stop = 0,flag_stop = 0;/是否需要緊急暫停u8 count_settime = 0; /調時鍵模式計數u8 count_oneway = 0; /單向通行鍵模式計數u8 breakflag = 0; /是否有異常情況的出現u16 break_count = 0; /計數變量u8 car_time = 0

58、; /車流量計時u8 car_number = 0; void initled(); /初始化交通燈ledvoid initnumber(); /初始化數碼管void initcross(); /初始化路口交通燈void stop(); /緊急中斷路口為紅燈void displaycount(); /顯示車流量void autsettime();/自動調時void oneway();/單向通行void night(); /夜間模式void addtime(); /時間加void cuttime(); /時間減void settime(); /路口調時void breakfunction();/

59、異常情況處理/*第一排左邊第一個按鍵為復位按鍵,第二個按鍵為緊急停止按鍵,按一次為路口紅燈四方向停止通行,按兩次退出該模式;第二排左邊第一個按鍵為顯示車流量按鍵,按一次顯示車流量,按兩次退出;第二個按鍵為單向通行按鍵,按一次為東西通行,按兩次為南北通行,按三次退出;第三個按鍵為夜間模式按鍵,按一次路口全為黃燈,按兩次退出夜間模式;第四個按鍵為調時按鍵,調節(jié)東西方向的紅燈和綠燈時長,按一次為調節(jié)紅燈時長,按兩次為調節(jié)綠燈時長;第五個按鍵為加時按鍵,按一下時間增加一秒;第六個按鍵為減時按鍵,按一下時間減少一秒*/void main() S1=0;/初始化時間 nb_redtime = dx_gre

60、time + yeltime;nb_gretime = dx_redtime - yeltime;/設置中斷TMOD = 0X01;TH0 = (65536 - 50000)/256;TH0 = (65536 - 50000)%256;EA = 1;EX0 = 1;EX1 = 1;IT0 = 1;IT1 = 1;ET0 = 1;TR0 = 1; while(1)initcross();i = dx_redtime;while(i 0 )breakfunction();/異常情況的處理if(breakflag)/如果有異常情況,恢復時重新啟動breakflag = 0;i = dx_redtim

溫馨提示

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

評論

0/150

提交評論