30、基于51单片机交通灯车流量管控数码管显示系统设计
摘要
隨著社會主義的建設,城市的規模在不斷擴大,城市的交通也在不斷的提高和改進,交通的順暢已經成為制約社會主義建設的一個重要因素。目前,伴隨著機動車輛的不斷增加,尤其是十字路口的交通建設 頗為關鍵,嚴重的影響到城市交通安全。社會主義建設以來,有許許多多的設計工作者投身于十字路口交通建設的研究之中,創造和設計出了很多新型的方案,把我國交通建設推向了更高的發展階段。當前,十字路口都采用了信號燈來控制車輛和人的通行,不僅便于維護管理,而且有較強的自動化。大量的信號燈電路正向著數字化、小功率、多樣化、方便人、車、路三者關系的協調,多值化方向發展隨著社會經濟的發展,城市交通問題越來越引起人們的關注。它的出現使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統。交通信號燈控制方式很多。本系統采用單片機STC89C52來設計交通燈控制器,實現了能根據實際車流量通過STC89C52芯片的P1口設置紅、綠燈燃亮時間的功能;紅綠燈循環點亮,倒計時剩5秒時黃燈閃爍警示。本系統實用性強、操作簡單、擴展功能強。
關鍵詞: STC89C52單片機;交通燈;倒計時;時間顯示
第一章?緒 論
1.1交通信號燈的發展及研究意義
?當今,紅綠燈安裝在各個道口上,已經成為疏導交通車輛最常見和最有效的手段,這一技術已經有相當長的發展歷史了。
1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。
電氣啟動的紅綠燈出現在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。
1918年,又出現了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變為綠燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變為綠燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發生交通事故。
又經過前人的設計和改造,交通信號燈終于普及整個城市的十字路口。
交通信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果,更改變了交警輪流指揮和疏散交通擁擠的現狀,實現了人,車,路三者的同步協調。現階段,許多設計工作者又設計出許多智能化,自動化,數字化等更先進的交通燈控制方案,這更方便于維護管理,給人們提供了更加便利的交通環境。
目前,城市規模還在不斷的擴大,人們對交通信號燈的控制也越來越高,我們需要更高層次的去了解交通信號燈,結合城市十字路口交通的需要,不斷地去創新,才能達到發展的需求,所以研究交通信號燈的極為重要。
1.2現在城市路口交通燈控制技術現狀
隨著城市機動車量的不斷增加,許多大城市出現了交通超負荷運行的情況,因此,自80年代后期,這些城市紛紛修建城市高速道路,在高速道路建設完成的初期,它們也曾有效地改善了交通狀況。然而,隨著交通量的快速增長和缺乏對高澎路的系統研究和控制,高速道路沒有充分發揮出預期的作用。而城市高速道路在構造上的特點,也決定了城市高速道路的交通狀況必然受高速道路與普通道路藕合處交通狀況的制約。所以,如何采用合適的控制方法,最大限度利用好耗費巨資修建的城市高速道路,緩解主干道車流量繁忙的交通擁堵狀況,越來越成為交通運輸管理和城市規劃部門待解決的主要問題。
一、硬件方案
硬件構成:本系統采用單片機+按鍵+發光二極管+共陽數碼管+三極管而成。
二、設計功能
1. 單片機型號:STC89C52/51、AT89C52/51、AT89S52/51 都可以用
2.設計自帶單片機上電復位電路、手動復位電路(復位按鍵)、晶振電路(給單片機提供時鐘周期)。
3.可以通過按鍵設置東西、南北的倒計時時間。
4.采用四方向數碼管設計,更加符合真實的交通信號燈設計。
5.緊急模式:當消防車、救護車等特殊車輛通行時按下”緊急模式鍵”全部亮紅燈,待緊急車輛通過后,再恢復后再退出。
6.夜間模式:4個方向黃燈閃爍。
7.可以按鍵設置交通燈東西、南北的倒計時時間,第一次按設置鍵是設置東西方向的時間,第二次按設置鍵是設置南北方向的時間,再按加減鍵就可
以設置對應的時間。
8.設定的參數具有掉電保存,保存在STC單片機的內部,上電無需重新設置。
9.東西和南北方向各有兩個數碼管分別顯示時間,東西和南北的時間相差5秒,這5秒為黃燈閃爍的時間。
10.當有特殊情況時,可以按緊急模式進行調整。
11.再按一次回到正常顯示,不同的模式適合不同的交通情況(如夜間模式,有交通事故的時候)。
12.采用紅外光電開關檢測車流量,并根據車流量的大小自動調整綠燈的時間。
13.上面的紅外避障傳感器是統計南北方向的車流量,右邊的紅外避障傳感器是統計東西方向的車流量,車流量是統計1分鐘內的車流量,1分鐘之前的車流量會自動減去。
14.系統默認是當南北方向的車流量20到30之間時南北通行時間量增加10s,當超過30時增加20s,東西方向也是一樣的。可以按加鍵查看車流量,按減鍵可以退出查看。
三、成品實物圖
?
方案選擇
單片機的選擇
方案一:AT89C52是美國ATMEL公司生產的低電壓,高性能CMOS型8位單片機,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大。其片內的8K程序存儲器是FLASH工藝的,這種單片機對開發設備的要求很低,開發時間也大大縮短。寫入單片機內的程序還可以進行加密,這又很好地保護我們的勞動成果。再者,AT89C52目前的售價比8031還低,市場供應也很充足。AT89C52可構成真正的單片機最小應用系統,縮小系統體積,增加系統的可靠性,降低系統的成本。只要程序長度小于8K,四個I/O口全部提供給用戶。可用5V電壓編程,而且擦寫時間僅需lOms。AT89C51芯片提供三級程序存儲器加密,提供了方便靈活而可靠的硬加密手段,能完全保證程序或系統不被仿制。PO口是三態雙向口,通稱數據總線口,因為只有該口能直接用于對外部存儲器的讀/寫操作。
方案二:STC89C52系列單片機的指令系統和AT89C52系列的完全兼容,但實際操作起來卻存在很多問題:
(1)AT89C52不帶ISP下載,要用下載器才行,STC89C52可以用你的USB轉串口下載,下載軟件可以到STC廠家網上去下。
(2)STC單片機執行指令的速度很快,大約是AT的3-30倍,盡管快是好事,但這樣一來,你在AT上好使的程序在STC上不一定好用,最典型的例子就是那些對時序有嚴格要求的模塊,用STC時注意得加長延時,大約是AT的10—30倍就差不多,這一點自己調試就知道了。
(3)STC單片機對工作環境的要求比較低,電壓低于5伏時仍然正常工作,甚至3伏到4伏之間都還可以工作,然而這樣的環境下AT肯定不行了,所以當一個系統用STC單片機好用,但用AT的單片機不工作時,直接查最小系統,看單片機的供電是否正常。
比較這兩種方案,由于在學校期間學過數字電路、單片機原理、C語言程序設計,綜合考慮單片機的各部分資源和作為學生能夠獲得的資源,經過對比此次設計要求,我選擇用STC系列芯片完成。而且學校也提供了相應的硬件操作平臺,實際操作起來比較方便,故STC為更合理的選擇。本系統選擇STC89C52單片機作為主控芯片。足夠本設計運行,且價格便宜,下載程序方便。
3.2主控模塊設計
單片微型計算機是隨著微型計算機的發展而產生和發展的。自從1975 年美國德克薩斯儀器公司的第一臺單片微型計算機( 簡稱單片機)TMS-1000 問世以來,迄今為止,單片機技術已成為計算機技術的一個獨特分支,單片機的應用領域也越來越廣泛,特別是在工業控制中經常遇到對某些物理量進行定時采樣與控制的問題,在儀器儀表智能化中也扮演著極其重要的角色。
如果將8位單片機的推出作為起點,那么單片機的發展歷史大致可以分為以下幾個階段:
第一階段(1976—1978):單片機的探索階段。以Intel公司的MCS-48為代表。MCS-48的推出是在工控領域的探索,參與這一探索的公司還有Motorola、Zilog等。都取得了滿意的效果。這就是SCM的誕生年代,“單片機”一詞即由此而來。
第二階段(1978—1982):單片機的完善階段。Intel公司在MCS-48基礎上推出了完善的、典型的單片機系列MCS-51。它在以下幾個方面奠定了典型的通用總線型單片機體系結構。
(1)完善的外部總線。MCS-51設置了經典的8位單片機的總線結構,包括8位數據總線、16位地址總線、控制總線及具有多機通信功能的串行通信接口。
(2)CPU外圍功能單元的集中管理模式。
(3)體現工控特性的地址空間及位操作方式。
(4)指令系統趨于豐富和完善,并且增加了許多突出控制功能的指令。
第三階段(1982—1990):8位單片機的鞏固發展及16位單片機的推出階段,也是單片機向微控制器發展的階段。Intel公司推出的MCS-96系列單片機,將一些用于測控系統的模數轉換器、程序運行監視器、脈寬調制器等納入片中,體現了單片機的微控制器特征。
第四階段(1990—):微控制器的全面發展階段。隨著單片機在各個領域全面、深入地發展和應用,出現了高速、大尋址范圍、強運算能力的8位/16位/32位通用型單片機,以及小型廉價的專用型單片機。
單片機是在集成電路芯片上集成了各種元件的微型計算機,這些元件包括中央處理器CPU、數據存儲器RAM、程序存儲器ROM、定時/計數器、中斷系統、時鐘部件的集成和I/O接口電路。由于單片機具有體積小、價格低、可靠性高、開發應用方便等特點,因此在現代電子技術和工業領域應用較為廣泛,在智能儀表中單片機是應用最多、最活躍的領域之一。在控制領域中,現如今人們更注意計算機的底成本、小體積、運行的可靠性和控制的靈活性。在各類儀器、儀表中引入單片機,使儀器儀表智能化,提高測試的自動化程度和精度,提高計算機的運算速度,簡化儀器儀表的硬件結構,提高其性能價格比。
單片機引腳介紹
單片機主要特點:
(1)有優異的性能價格比。
(2)集成度高、體積小、有很高的可靠性。單片機把各功能部件集成在一塊芯片上,內部采用總線結構,減少了各芯片之間的連線,大大提高了單片機的可靠性和抗干擾能力。另外,其體積小,對于強磁場環境易于采取屏蔽措施,適合在惡劣環境下工作。
(3)控制功能強。為了滿足工業控制的要求,一般單片機的指令系統中均有極豐富的轉移指令、I/O口的邏輯操作以及位處理功能。單片機的邏輯控制功能及運行速度均高于同一檔次的微機。
(4)低功耗、低電壓,便于生產便攜式產品。
(5)外部總線增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行總線方式,進一步縮小了體積,簡化了結構。
(6)單片機的系統擴展和系統配置較典型、規范,容易構成各種規模的應用系統。
優異的性能價格比。
1)集成度高、體積小、有很高的可靠性。
單片機把各功能部件集成在一塊芯片上,內部采用總線結構,減少了各芯片之間的連線,大大提高了單片機的可靠性與抗干擾能力。另外,其體積小,對于強磁場環境易于采取屏蔽措施,適合于在惡劣環境下工作。
此外,程序多采取固化形式也可以提高可靠性。
2)控制功能強。
為了滿足工業控制要求,一般單片機的指令系統中均有極豐富的轉移指令、I/O口的邏輯操作以及位處理功能。單片機的邏輯控制功能及運行速度均高于同一檔次的微機。
單片機的系統擴展、系統配置較典型、規范,容易構成各種規模的應用系統。
? ?VCC:STC89C52電源正端輸入,接+5V。
GND:電源地端。
XTAL1: ?單芯片系統時鐘的反相放大器輸入端。
XTAL2: 系統時鐘的反相放大器輸出端,一般在設計上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統就可以動作了,此外可以在兩引腳與地之間加入一 20PF 的小電容,可以使系統更穩定,避免噪聲干擾而死機。
RESET:STC89C52的重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機器周期以上的時間,AT89S51便能完成系統重置的各項動作,使得內部特殊功能寄存器之內容均被設成已知狀態,并且至地址0000H處開始讀入程序代碼而執行程序。
EA/Vpp:"EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統會取用外部的程序代碼(存于外部EPROM中)來執行程序。因此在8031及8032中,EA引腳必須接低電平,因為其內部無程序存儲器空間。如果是使用 8751 內部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內部EPROM時,可以利用此引腳來輸入21V的燒錄高壓(Vpp)。
ALE/PROG:ALE是英文"Address Latch Enable"的縮寫,表示地址鎖存器啟用信號。STC89C52可以利用這支引腳來觸發外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進鎖存器中,因為STC89C52是以多工的方式送出地址及數據。平時在程序執行時ALE引腳的輸出頻率約是系統工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當成程序規劃的特殊功能來使用。
PSEN:此為"Program Store Enable"的縮寫,其意為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。STC89C52可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數據存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。
PORT0(P0.0~P0.7):端口0是一個8位寬的開路汲極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態,而是內部有一提升電路,P0在當做I/O用時可以推動8個LS的TTL負載。
PORT2(P2.0~P2.7):端口2是具有內部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當做一般I/O端口使用外,若是在STC89C52擴充外接程序存儲器或數據存儲器時,也提供地址總線的高字節A8~A15,這個時候P2便不能當做I/O來使用了。
PORT1(P1.0~P1.7):端口1也是具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負載,同樣地若將端口1的輸出設為高電平,便是由此端口來輸入數據。如果是使用8052或是8032的話,P1.0又當做定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發腳位。
PORT3(P3.0~P3.7):端口3也具有內部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數控制及外部數據存儲器內容的讀取或寫入控制等功能。
其引腳分配如下:
P3.0:RXD,串行通信輸入。
P3.1:TXD,串行通信輸出。
P3.2:INT0,外部中斷0輸入。
P3.3:INT1,外部中斷1輸入。
P3.4:T0,計時計數器0輸入。
P3.5:T1,計時計數器1輸入。
P3.6:WR:外部數據存儲器的寫入信號。
P3.7:RD,外部數據存儲器的讀取信號。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。
單片機最小系統
單片機芯片內還有一項主要內容就是并行I/O口。STC89C51共有4個8位的并行I/O口,分別記作P0、P1、P2、P3。每個口都包含一個鎖存器、一個輸出驅動器和輸入緩沖器。實際上,它們已被歸入專用寄存器之列,并且具有字節尋址和位尋址功能。在訪問片外擴展存儲器時,低8位地址和數據由P0口分時傳送,高8位地址由P2口傳送。在無片外擴展存儲器的系統中,這4個口的每一位均可作為雙向的I/O端口使用。
單片機的4個I/O口都是8位雙向口,這些口在結構和特性上是基本相同的,但又各具特點。
STC89C51單片機的時鐘信號通常有兩種方式產生:一是內部時鐘方式,二是外部時鐘方式。在單片機內部有一振蕩電路,只要在單片機的XTAL1和XTAL2引腳外接石英晶體(簡稱晶振),就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號。圖中電容C1和C2的作用是穩定頻率和快速起振,電容值在5-30pF,典型值為30pF。晶振CYS的振蕩頻率范圍在1.2-12MHz間選擇,典型值為12MHz和11.0592MHz。
當在STC89C51單片機的RST引腳引入高電平并保持2個機器周期時,單片機內部就執行復位操作(若該引腳持續保持高電平,單片機就處于循環復位狀態)。
復位電路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充電來實現的。只要Vcc的上升時間不超過1ms,就可以實現自動上電復位。時鐘頻率用6MHZ時C取22uF,R取1KΩ。除了上電復位外,有時還需要按鍵手動復位。本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過RST端經過電阻與電源Vcc接通而實現的。
四、原理圖 ??
在本設計做的過程中,硬件和軟件方面都遇到了許多問題,但是相比于軟件,在硬件方面還是比較快解決的方面,因為硬件是比較容易檢查出來錯誤的,軟件比較晦澀難懂,還是有一定難度。
在硬件調試問題上,首先焊接好了元器件實物板后,先用萬用表測量這個工業板子的電源方面,電源方面是最重要的問題,應該是特別需要檢查的地方,以防止電源的短路和正負極的錯誤。然后在仔細檢查電路的連接是否有問題,或者有沒有虛焊或者沒有焊接到的地方,然后核對一下元器件的安裝是否有問題,安裝上去是否符合規定,由于已經是大學四年都是做過了很多實訓過來了,對于這些還是游刃有余的,但是在上機調試后還是發現了很多的問題。
?
五、PCB圖 ?
在本設計做的過程中,硬件和軟件方面都遇到了許多問題,但是相比于軟件,在硬件方面還是比較快解決的方面,因為硬件是比較容易檢查出來錯誤的,軟件比較晦澀難懂,還是有一定難度。
在硬件調試問題上,首先焊接好了元器件實物板后,先用萬用表測量這個工業板子的電源方面,電源方面是最重要的問題,應該是特別需要檢查的地方,以防止電源的短路和正負極的錯誤。然后在仔細檢查電路的連接是否有問題,或者有沒有虛焊或者沒有焊接到的地方,然后核對一下元器件的安裝是否有問題,安裝上去是否符合規定,由于已經是大學四年都是做過了很多實訓過來了,對于這些還是游刃有余的,但是在上機調試后還是發現了很多的問題。
?
六、Proteus仿真??
?
七、程序源碼 ?
Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令你事半功倍。
?
???資料包括:
?
需要完整的資料可以加入我的紛傳圈子,里面有資源壓縮包的百度網盤下載地址及提取碼。
紛傳點擊用微信打開即可,過程有點繁瑣請見諒。
總結
以上是生活随笔為你收集整理的30、基于51单片机交通灯车流量管控数码管显示系统设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】批量从doc简历中提取出
- 下一篇: 北京邮电大学计算机学院专业排名,2019