日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于单片机的交通信号灯控制

發布時間:2024/1/1 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于单片机的交通信号灯控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、方案流程及技術規格書設計

二、系統硬件電路設計

三、系統軟件設計

四、系統調試測試與分析

前言

? ? ? ?伴隨著越來越多的家用小轎車的出現,道路安全問題也越來越被人們重視,當今,紅綠燈也被安裝在各個路口,來規范人們的駕駛習慣,紅燈停,綠燈行的規則根深蒂固的銘記在所有人心里。但是紅綠燈技術的出現,一直追溯到19世紀。

? ? ? ?1858年,隨著第二次工業革命,在英國的大街上,有一種紅藍相間的機械扳手式信號燈,用燃氣作光源,其主要功能就是指揮馬車通過。十年之后的1868年,同樣在英國倫敦,英國機械工程師納伊特發明安裝了世界上最早的旋轉玻璃式的紅綠燈,從那時候起,紅燈停,綠燈行開始逐步走進人們的生活。但是因為光源的不穩定性,時常發聲煤氣燈爆炸傷人事件,英國當局決定停止使用煤氣燈的紅綠燈。后來美國有電力驅動的交通信號燈,它是一種用紅色、綠色和黃色的環形光源構成的交通信號燈,1914開始在紐約市第五大道的一棟高樓上。紅色代表“停止”,綠色顯示“通行”。1918年,交通信號燈和紅外交通信號燈也相繼問世。一種是在地面安裝一個氣壓檢測器,當交通工具靠近時,它會變成綠色;另外一種方法是利用喇叭來發動交通信號燈,當駕駛員遇到紅燈時,摁喇叭,就能把紅燈變成綠色。紅外交通信號燈是指在一個對交通壓力有反應的道路上,一個人會通過。紅外線可以使綠燈亮起一小會兒,使車輛延遲通行,避免車禍。交通信號的引入,使得交通流量得到了有效的控制,在交通流量、提高道路通行、降低交通意外方面起到了顯著的作用。不同類型的信號燈在1968年被納入了《道路交通和道路標志信號協定》。綠色是交通信號燈,除了其他交通信號燈不允許使用特定的交通工具外,面向綠色的交通工具可以直線行駛、左拐和右拐。左、右轉機動車均應使正在通過交叉路口的機動車和通過人行橫線的機動車先行。紅色為禁止通行的交通標志,當遇到紅色時,請在十字路口的停車標志后面停下。黃色燈光是一個警示標志,當面向黃色燈光的機動車不得通過停車線,但是已經非常靠近停車紅線無法停車時,可以駛入十字路口。1918年,由于多種運輸方式的發展,以及對交通的需求,真正意義上的三色燈(紅、黃、綠三種顏色)應運而生。這是一個三種顏色的環形四邊形投射機,位于紐約市五號街的一幢高樓上。中國人胡汝鼎,他滿懷“科學救國”之心,赴美國進修,并在美國通用電氣公司任職,當時他是偉大的發明家愛迪生的學生之一。有一次,他在一個熙熙攘攘的十字路口等著一個綠燈。驚出一身的冷汗。他在寢室里思索了許久,最后想到了在紅燈和綠燈之間增加一個黃綠燈,以警示大家的安全。他的提議立刻獲得了相關部門的支持。于是,紅、黃、綠三種顏色的交通信號燈,就形成了一套完整的交通系統。

? ? ? ?隨著電子技術的迅速發展。其中,單片微處理器的發展尤為迅猛。由于其獨特的構造方式,在特定的應用場合,可以實現一般的計算機所不能實現的功能。低價的微機。具有較高的集成性、較少的尺寸、較高的穩定性和較好的控制能力。因為它具備以上特性,所以它被廣泛地用于人們的日常使用。

軟件工具準備

軟件:

電路設計:protel99 se(up主使用版本) 或者其他版本,或者其他電路設計軟件;

單片機開發:Keil5;

調試測試:串口調試助手,邏輯分析儀等;

工具:

電路焊接:電烙鐵,SMT(有條件的);

調試:

萬用表、示波器(基礎入門即可,可以白嫖學校或者公司)USB轉串口工具、仿真器;

一、方案流程及技術規格書設計

方案流程設計

技術規格書設計

模擬現實生活中交通信號燈做出實物設計。

1.1、單片機交通燈控制系統通行方案設計

? ? ? ?該項系統將設置在十字路口,有東西向和南北向,在任何時間只能單向行駛,而在另外一條路上禁止行駛。在行駛過程中持續一段時間,過了短暫過渡時間后,對換通行禁行方向。具體情況見下圖。

? ? ? ?圖片說明:黑色表示亮,白色表示滅。交通狀態從狀態1開始變換,直至狀態4然后循環至狀態1,周而復始:直至狀態4然后循環至狀態1,通過具體的路口交通燈狀態的演示分析我們可以把這四個狀態歸納如下:

? ? ? ?東西兩個方向的紅光熄滅,兩個方向的黃色燈光也會熄滅,紅色的燈光也會隨之出現。還有二十秒的時間。該狀況下,東西方向不能進入,南北方向可進入。

? ? ? ?東西兩個方向的綠燈熄滅,黃色的燈光也會出現,南北方向的紅色燈光也會變成紅色,還有5秒的時間。這種情況下,所有的車輛都需要等待,除非是已經通過的車輛。

? ? ? ?南北方向的紅光熄滅,東方和東方的黃色燈光熄滅,紅色的燈光也會熄滅。還有三十秒。該狀況下,東西方向可供出入,南面不可。

? ? ? ?南邊和西邊的燈都熄火了,黃色的燈光也亮了起來,還有五秒的時間。這種情況下,所有的車輛都需要等待,除非是已經通過的車輛。

下面我們可以用圖表表示燈狀態和行止狀態的關系如下:

狀態1

狀態2

狀態3

狀態4

東西向

禁行

等待變換

通行

等待變換

南北向

通行

等待變換

禁行

等待變換

東西紅燈

1

1

0

0

東西黃燈

0

0

0

1

東西綠燈

0

0

1

0

南北紅燈

0

0

1

1

南北綠燈

1

0

0

0

南北黃燈

0

1

0

0

? ? ? ?東西南北四個路口均有紅綠黃3燈和數碼顯示管4個,在任一個路口,遇紅燈禁止通行,轉綠燈允許通行,之后黃燈亮警告行止狀態將變換。狀態及紅綠燈狀態如表2-1所示。說明:0表示滅,1表示亮。

1.2、單片機交通控制系統的功能要求

? ? ? ?該方案能夠對交通的基礎控制進行仿真,以紅色、綠色、黃色燈光指示禁止、通過、等候、并可進行倒數顯示。可以控制禁行、深夜模式、復位、東西通行、南北通行、時間加、時間減、切換等,紅外感應裝置可以根據交通量的變化,實現對通行時間的控制。四根二比特數字管用來表示四根二比特數字管,每根數字管的陰極連接在STC89C51的P1端口上,而陽端連接在74HC245的晶片上。74HC245晶閘管由P0端口進行驅動和放大。一共12只 LED,在四個十字路口,分別有紅色(禁止)和黃色(警告) LED燈,P2端口連接四個十字路口,P3端口與鑰匙連接。

系統硬件電路設計

2.1微處理控制電路

? ? ? ?STC89C51具有48比特的 I/O端口,它們被稱為P0,P1,P2,P3。每個端口具有鎖存器、輸出驅動器和輸入緩沖。在實踐中,他們已經被劃為專門的注冊,擁有一個字節地址和比特地址的能力。在存取芯片外延時,P0口分時傳輸低位8比特的位址及資料,P2端口傳輸高8比特的位址。在沒有芯片外延式內存的情況下,4個接口都可以用作一個雙向輸入輸出接口。

? ? ? ?四個輸入/輸出端口均為8-位的單向端口,它們的構造與特征是一致的,但各自具有各自的特征。

? ? ? ?STC89C51的時鐘訊號一般由兩種形式組成:一種是內置的,另一種是外部的。在微處理器中有一個振蕩回路,在微處理器XTAL1XTAL2管腳上連接一個晶振,即可形成一個自激式振蕩器,并在該單元中生成一個時鐘脈沖。C1C2具有穩定的頻率和迅速的振蕩功能,其容量范圍為5~30?pF,一般為30?pF。晶振 CYS具有從1.212?MHz之間的振蕩頻率,具有12?MHz11.0592兆赫的代表性。

? ? ? ?在STC89C51RST管針被導入高電平并維持2個機械周期后,在 MCU中進行重置(如果管針繼續維持高電平,則循環重置)。

? ? ? ?重置回路一般有兩種方法:上電的自動重置和按鍵重置。在上電的自動重置回路中,最簡易的上電的自動重置是由一個外接回的電容器進行的。在 Vcc升高的持續時間不大于1毫秒,即可完成上電復置。當時鐘頻率為6?MHZ, C22?uF, R1?K。除上電復置以外,還有一些必要的按鈕手動重置。該方案采用了人工的按鈕來實現。按鍵的人工重置有兩種:電平重置和脈沖重置。在此,電平重置由 RST端部經由電阻器與 Vcc相連接而完成。如圖所示就是單片機最小系統的原理圖。

2.2?LED顯示電路

? ? ? ?LED英文字的簡稱,其意思是: LED是一種可以將電能轉換成可視光的固體材料,可以將電能轉換成光線;該這種技術改變了白熾燈鎢絲及節能燈三基色粉體發光機理,并通過電場來實現。根據研究結果, LED具有長壽命、高光效、低輻射、低能耗等特性。LED是當今世界上最具潛力的新型光源之一,它亮度高,熱量小,壽命長,無毒且可循環再用,被認為是二十一世紀最有發展前途的綠色光源之一。從1970年開始,國內 LED行業發展至今,歷經四十多年的發展, LED產品在園林、普通燈具等方面得到了廣泛的運用,已是世界最大燈具生產大國和世界第二大燈具出口國。近年來,由于對 LED的研究日益深化, LED制作技術的發展以及新型的氮化硅、磷光體等新的材料的研制與使用,使得多種色彩的 LED都獲得了重大突破,其發光效能提升了1000多倍,在色彩上已經達到了可見光的全部色彩。特別是在 LED產品中,超清白色發光二極管的問世,使得 LED產品的使用范圍達到了高效的發光光源。人們一度認為,自從愛迪生發明了白熾燈之后,高亮度 LED將成為最大的一項發明。信號燈使用 LED來表示各種顏色的信號燈。

?

2.3?數碼管顯示

? ? ? ?數字管是一種以 LED為主要元件的半導體發光元件。數字管內按照分段數目可分成七段數字管與八段數字管,八段數字管的 LED元件多于七段數字管(多一位數字數字);根據“8”的數量,可以分為1位、2位、4位等等:根據 LED元件的連接形式分為:共負數字和共負數字。共陽數字管是把 LED的正極連接在一塊,共同構成一個共同的陽極 COM?(COM),在使用該數字管的時候,它應該把一個共同的 COM連接到+5?V。對應的域不會發光。共陰數字管是一種數字管,它把全部 LED的陰極連接在一塊,從而構成一個共同的陰極 COM,在使用該數字管時,該數字管應該把一個共同的電極 COM與地線 GND連接,在一個特定的 LED的陽極很高的時候,對應的區域會被點亮。如果某個域的陽極很弱,對應的域就不會發光。因其廉價易用,在各種家用電器尤其是家用電器中得到了很大的應用。

?

2.4信號顯示驅動電路

? ? ? ?74HC245解碼器可以接收3比特二值加權的尋址(A0A1A2),并且在啟用時(Y0Y7)時,可收到八個相互排斥的更小有效輸出。74HC245具有3個啟動的輸入:2個無效(E1E2)和一個高效率(E3)。74HC138將使全部的輸出維持為高,直到E1E2被設置為較小并且E3被設置為高。該混合功能使得474HC2451臺逆變器可以方便地進行并聯,組成1-32?(5-32)解碼機。如果將一個低效啟動的輸入端子用作一個數據輸入端子,那么74HC245也可以起到8輸出多路分配器的作用,其中,不用的啟動輸入端子一定要被固定在相應的高激活或者低激活的條件下。

? ? ? ?74HC245工作在高性能存儲解碼或對傳輸延時有較小的需求的數據傳送中起重要的作用,在高性能存儲設備中,使用該解碼器可以有效地改善解碼系統的工作效率。在使用快速賦能回路的情況下,解碼器的延時和存儲的賦能時間一般比內存的一般訪問要短,也就是說,肖特基鉗位的體制解碼器造成的有效的系統延時可以被忽視。HC138根據三個二元輸入碼和被賦予的輸入狀態,將其翻譯成一個較小的輸出。兩個低級的高效賦能輸入和一個高效率的賦能輸入部可以降低擴容所需的外接門或逆變器,并且可以將其擴充為24行解碼器而無需外部門電路;將其擴充為32行解碼,僅需附加一個附加逆變器即可。該賦能的輸入可以作為一個解調程序的數據的輸入。

? ? ? ?設計中將1腳接VCC19腳接地,整個芯片是輸入端輸入高則輸出端輸出高,輸入端輸入低則輸出端輸出地,只是相當于驅動作用。

2.5??鍵盤輸入電路

? ? ? ?單片機的鍵盤分為兩類:一是單獨的,二是矩陣的,每個輸入輸出端口都有一個鍵,而鍵的一頭連接著一個供電或者地(通常是在地面上),這樣的連接過程相對來說更容易實現,也更可靠;而矩陣鍵接法則相對繁瑣,但對 I/O的要求更低。按此方案的要求選擇了獨立的鍵接法。

? ? ? ?采用單片輸入輸出端口的電平來判定按鍵的大小,從而確定按鍵的按鍵。把正常開關的一頭接到地面,一頭與 I/O端口相連,在編程一開始就把這個輸入/輸出端口設置為高電平,在正常情況下,在沒有鍵的情況下,輸入/輸出端口可以起到高電平的作用。在有按鍵的情況下,這個輸入/輸出端口與接地的短路會導致輸入/輸出端口處于一個較低的水平。在松開按鈕后,在微處理器中的上拉阻抗使得輸入/輸出端口始終處于高水平。我們需要的只是查找這個輸入/輸出端口的水平,看看我們有沒有按鈕操作。

? ? ? ?在使用微處理器進行鍵盤的加工中,有一個非常關鍵的步驟:消除顫振。所謂的“震動”,就是指在鍵盤沒有被按下的時候,出現的不穩定狀態,這種情況是不能用鼠標來控制的。這個顫抖通常在10200?ms,這個不穩定級別的顫抖時間對人類來說是很短的,但是對一個微秒的 MCU卻很慢。硬件去抖就是用局部的線路加上一個環節,把顫抖的部分消除,不會把顫抖消除,只是避免了一部分的抖動,等到鍵盤的狀態變得平穩后才能進行。因此在此采用了軟件消除顫抖的方法,其實施方法是在有較小水平的情況下,找出一個合適的按鈕來延遲10-200?ms來避免顫抖(典型的20?ms),然后在延遲完成之后再次讀取 I/O端口的數值,此時的數值在小于10200?ms的時候被認為是一個干擾。如果讀取的數值為0時,就意味著有一個按鈕被按下,對應的處理器被呼叫。在圖中顯示了該硬件線路:

?

2.6?車流量檢測電路設計

? ? ? ?使用紅外汽車檢測裝置。紅外汽車檢測儀是指用被探測物阻擋或被反射的物體,由同步環來探測目標是否存在。不局限于金屬,任何能夠折射出光的東西都可以被探測到。光開關把輸入的電流通過傳送機轉化成光的輸出,然后由接收機依據所收到的光強度或存在與否來檢測。如果在光掃射范圍內,則會造成一部分或所有的光斑被遮蔽,以達到對車輛的全面探測。通常采用的是光電子轉換技術,其特點是反應速度快、抗干擾能力好、不會受到天氣狀況和色彩等因素的干擾。并且容易的進行。

? ? ? ?該方案利用E18-D50NK對射紅外光轉換器進行仿真測試。紅外光轉換器工作于5?VDC,工作電流10-15毫安,驅動電流100毫安,感應范圍3-50?CM,工作環境-25~55攝氏度。在有汽車經過的時候,該器件的輸出會發出一個轉換的信號,然后由 MCU完成對應的運算。這樣就可以實現車輛的交通數據的采集。

?

2.7 蜂鳴器驅動電路

? ? ? ?該設備為集成式電子報警器,以 DC為電源,被用于電腦,打印機,復印機,報警器,電子玩具,汽車電子設備,電話機,定時器等電子設備。蜂鳴的種類有兩種,一種是壓電型的,一種是電磁的。在線路中,蜂鳴機用“H”和“HA”來代表(以前的標準是“FM”,“LB”,“JD”等等)。1.壓電蜂鳴器的壓電蜂鳴器,其主體包括:多個共振器,壓電蜂鳴器,阻抗匹配器,共鳴箱,外殼等。有些壓電型蜂音器還在其殼體上安裝了 LED

? ? ? ?多個共振腔包括一個三極管或者一個集成電路。在接通供電(1.5~15?V?DC)時,多個共振電路開始振動,并以1.5~2.5?kHZ的頻率輸出,而一個阻抗匹配器則使壓電蜂窩板發出聲音。壓電式蜂窩板是用一種壓電式的壓電式陶瓷,或者用一種叫鈮鎂酸鹽的方法制作而成。將兩個金屬表面涂覆一層銀色的電極,然后進行極化及時效,然后用銅板或不銹鋼板進行膠合。電磁蜂鳴器是一種電磁蜂鳴器,它包括振蕩器,電磁線圈,磁鐵,振動膜片和殼體。當電源打開時,振動器會發出聲音訊號,經過電磁閥,從而形成一個電磁場。磁體與磁體之間的振膜蜂鳴器的驅動電路通常由三極管、蜂鳴器、電流限制器組成。該蜂音機是一個發聲單元,通過將 DC電壓(有源蜂窩)或方波(被動的蜂鳴機)的兩端應用于其上,它的基本參數包括外形尺寸,聲音方向,工作電壓,工作頻率,工作電流,驅動模式(DC/方波)等。可以按需求進行挑選。此方案使用了主動式的蜂鳴機。

? ? ? ?三極管Q1作為一個切換功能,它的基極的低值使得三極管處于飽和狀態并使得蜂鳴機發出聲音;當高電平的時候,三極管就會被切斷,而蜂鳴機就會不會發出聲音。

?

三、系統軟件設計

3.1 主程序設計

? ? ? ?整個控制軟件可以分成幾個部分:按鍵設定、狀態燈管、 LED顯示屏、消除抖動延遲等。次狀況判定和處置、緊急停止或違反判定、中止維護、交通統計等。交通信號燈的調節等。

? ? ? ?整體的軟體設計分為兩大類:鍵盤處理器和50毫秒的掃描器。在圖中顯示了該流程。

?

3.2?子程序模塊設計

? ? ? ?鍵控采用呼叫中斷方式進行操作,而采用單芯片輸入輸出端口的水平來判定鍵壓。把正常開關的一頭接到地面,一頭與 I/O端口相連,在編程一開始就把這個輸入/輸出端口設置為高電平,在正常情況下,在沒有鍵的情況下,輸入/輸出端口可以起到高電平的作用。這個輸入/輸出端口和接地在有按鍵的情況下會導致輸入/輸出端口處于低壓狀態。在松開按鈕后,在微處理器中的上拉阻抗使得輸入/輸出端口始終處于高水平。我們需要的只是查找這個輸入/輸出端口的水平,看看我們有沒有按鈕操作。

? ? ? ??該方案的關鍵在于計時中斷子程式,一旦計時器起動,則會在初始數字上加上1。我們不把TH0和TL0設定為0,假定12 MHz,12個時鐘循環是一個機械循環。這時,計算機的運行時間是1 us,如果將TH0和TL0全部記錄下來,則要216到1個數字,如果有一個脈沖計數超過了這個數字,立刻請求 CPU的停止。所以一次溢出只需65536 us,也就是65.6毫秒,我們必須在TH0和TL0上安裝一個初始數值,然后再加上50000個數字。計時器滿了,每隔50毫秒就會出現一次,如果要計時1秒,那么在編寫時,會出現20次50 ms的計時器中斷,這就是1秒。這就可以準確地控制計時了,負責數字管的數據更新和各種狀態的轉換。該中斷子程式包含數字管內的輸出資料更新程式及每一位態處理器。這個中斷的流程顯示在這個圖表上。

?

四、系統調試測試與分析

4.1?PCB版圖

? ? ? ?完成智能交通控制燈的硬件系統的設計和軟件系統程序編寫之后,先使用了仿真軟件對整個系統的功能進行了仿真。仿真的結果和設計的需要一致。隨后,使用PCB繪圖軟件將整個系統布線圖進行了繪制,如圖5-1所示就是整個智能交通控制燈系統的PCB圖。完成了PCB圖的繪制,下面就要對智能交通控制燈進行硬件的安裝、焊接和軟件的程序燒錄。

?

?

4.2 硬件系統調試

? ? ? ?最們就對整個交通控制燈進行測試,首先開機,開機之后的默認時間開始倒計時,開機時,默認是東西通行,也就是綠燈,時間是20秒,南北的倒計時是25秒,亮紅燈,當東西方向通行時,東西方向的紅外探頭檢測車流量,南北方向不允許車輛通行,如果檢測到車輛就是闖紅燈了,會報警。當東西通行時間是20秒時,那么在這20秒內通過的車輛達到10輛以上(也就是時間的一半以上或者說是達到2秒鐘一輛)那么當到達下次東西通行時,通行時間會加5秒,也就是25秒。繼續計時,當到達南北通行時間了,默認是30秒綠燈,同樣,南北通行時,東西方向不允許車輛通行,也就是不檢測車流量,只檢測是否有車輛闖紅燈。當南北通行時間30秒內的車輛達到15輛以上,那么下個南北通行時間就會加5秒,也就是35秒。如果東西通行時間20秒內東西方向的車流量小于10,那么在下一個東西方向通行的時間就會減5秒,也就是15秒(最低值)。同樣,南北也是,當南北同時時間30秒內南北方向的車流量小于15,那么下一個南北方向通行的時間就會減5,也就是變成了25秒,如果下個周期車流量小于12輛(25/2),那么下下個周期就會再減5,變成20秒,最小值同樣是15。東西和南北方向的時間互不影響。

總結

以上是生活随笔為你收集整理的基于单片机的交通信号灯控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。