摘要本文介紹用AT89S52單片機為微處理器的交通燈控制、顯示及車流量檢測系統(tǒng)的軟硬件設(shè)計。
關(guān)鍵詞交通燈 車流量 中斷 串口 液晶顯示
中圖分類號:TP21文獻標(biāo)識碼:A
1 設(shè)計內(nèi)容與要求
(1)LCD1602用于顯示車流量,及實時路況信息;
(2)開關(guān)S2和S3用于提供模擬主道和輔道車輛檢測信號,當(dāng)其中一道為綠燈,但檢測到的信號表示為無車時,另一通道放行15S;
(3)正常情況下,主道放行1min,輔道放行30S,并將倒計時用數(shù)碼管顯示出來;
(4)緊急情況下,如救護車,消防車須快速通過時,通過給S1一個信號,請求緊急通行,進入緊急情況處理后,綠燈狀態(tài)通道限時5S,轉(zhuǎn)兩通道紅燈,并處理15S;
(5)為便于車流量信息的獲取,在主道上對車流量進行檢測,并送數(shù)碼管和液晶顯示;
(6)正常情況下,主道綠燈60S后,轉(zhuǎn)主道綠燈閃爍5S,轉(zhuǎn)主道黃燈5S,再轉(zhuǎn)主道紅燈,輔道綠燈30S,輔道黃燈亮5S后,轉(zhuǎn)主道綠燈,輔道紅燈,如此循環(huán)。
2 系統(tǒng)的硬件設(shè)計思想
為達到給定的設(shè)計要求,用AT89S52的P1口接紅、黃、綠信號燈,用譯碼器74LS138通過軟件編程來片選鎖存器 74LS373來達到液晶命令、數(shù)據(jù)的鎖存及數(shù)碼管倒計時當(dāng)前值穩(wěn)定顯示的目的,通過三個按鍵S1~S3(圖一)來模擬緊急情況和主、輔道綠燈通道無車三種狀態(tài),S1模擬緊急情況,S2、S3模擬綠燈通道無車情況。用LG18A3-8-Z/BX傳感器,用雙穩(wěn)態(tài)觸發(fā)器74LS73使得在車輛通過時,通過傳感器信號輸出端出現(xiàn)一個負脈沖,使得74LS73的輸出端Q為設(shè)定值,并通過軟件查詢來對車流量進行準(zhǔn)確的檢測(圖二),通過串口把車流量數(shù)據(jù)用串口移位芯片74LS595送至對應(yīng)的數(shù)碼管顯示,并在液晶屏上指定位置顯示,主道倒計時完時,刷新數(shù)碼管和液晶屏上的車流量數(shù)值。
3 系統(tǒng)的軟件設(shè)計思想
(1)主程序采用查詢方式定時,由寄存器R2確定調(diào)用1S延時程序的次數(shù),從而獲取交通燈各種狀態(tài)的延時時間,子程序采用定時器1的方式0的中斷查詢定時。
(2)程序開始執(zhí)行時,先在LCD1602屏幕上顯示出問候語及安全提示語,再顯示當(dāng)前車流量的英文提示,并設(shè)定好車流量的顯示位置。
(3)綠燈通道無車中斷服務(wù)程序INT1首先保護現(xiàn)場,因為需要用到延時程序和P1口,以及1S延時次數(shù)寄存器R1,故將R1、P1、TH1、TL1壓入堆棧,保護現(xiàn)場時關(guān)中斷,以防止高優(yōu)先級中斷(緊急車輛通過)產(chǎn)生程序的混亂。然后開中斷先查詢主道和輔道的車輛情況,再判定車輛的通行情況。
(4)緊急車輛通過時,程序進入INT0中斷,保護現(xiàn)場后,蜂鳴器鳴響5S,綠燈狀態(tài)通道限時5S,轉(zhuǎn)兩通道紅燈,并處理15S。
(5)程序處于主道綠燈輔道紅燈時,主程序此時調(diào)用的延時程序既有延時功能,又有車流量檢測計數(shù)功能,當(dāng)主道綠燈狀態(tài)結(jié)束時,調(diào)用車流量顯示子程序,先將車流量通過串口,經(jīng)74LS595移位,送到數(shù)碼管顯示,再調(diào)用液晶LCD1602顯示子程序,將當(dāng)前車流量送到液晶屏的指定位置顯示。
4 系統(tǒng)匯編程序設(shè)計流程圖
主程序部分(圖三):其中,預(yù)定義部分用于定義LCD1602使能端、讀寫信號控制端、及數(shù)據(jù)或指令寄存器選擇端,74LS595的鎖存器控制脈沖、移位時鐘脈沖,串行數(shù)據(jù)輸入端,并定義INT0、INT1,這兩個外部中斷的入口地址,以及程序存儲的起始地址。
對液晶進行初始化后,在其對應(yīng)位置寫入預(yù)定的內(nèi)容,然后啟動交通燈,紅、黃、綠燈按預(yù)定規(guī)律顯示,數(shù)碼管上顯示出當(dāng)前狀態(tài)剩余時間。
主道綠燈延時及車流量檢測部分(圖4):
該部分完成主道的倒計時延時及車流量檢測功能(每0.1S對車輛通過信號掃描一次)。
綠燈通道無車信號處理中斷部分(圖5):
綠燈通道無車信號有效時,程序轉(zhuǎn)入INT1中斷,先判斷主道是否是綠燈而且無車,在判斷輔道,若該通道為綠燈狀態(tài)而無車,則轉(zhuǎn)另一通道通行15S,若為干擾信號,則中斷返回。
緊急情況處理中斷部分(圖六)
當(dāng)有緊急情況發(fā)生,如十字路口交通事故、救護車、消防車請求緊急通過等情況出現(xiàn)時,給本系統(tǒng)一個緊急中斷請求信號,程序轉(zhuǎn)入中斷處理,蜂鳴器鳴響5S,綠燈通道限時至5S,讓路口中的車輛通過后,兩通道均為紅燈,并且處理15S,若處理時間不夠,可以再次向本系統(tǒng)發(fā)送緊急情況中斷信號,延長緊急情況處理時間的需要。本系統(tǒng)設(shè)計得到了實現(xiàn)。