基于單片機(jī)無線收發(fā)控制的交通信號(hào)燈模型
引言
隨著我國(guó)經(jīng)濟(jì)的高速發(fā)展,人們對(duì)私家車、公交車的需求越來越大。相應(yīng)地,我國(guó)進(jìn)入WTO以后,我國(guó)經(jīng)濟(jì)貿(mào)易與世界接軌,汽車業(yè)關(guān)稅大大降低,使很多人都能負(fù)擔(dān)得起,買私家車不再是夢(mèng)想。但是,私家車、公交車的大增無疑會(huì)對(duì)我國(guó)交通系統(tǒng)帶來沉重的壓力。放眼現(xiàn)在的中國(guó),如廣州、香港、上海等大都市,無不受到交通堵塞的困擾。中國(guó)要發(fā)展,交通事業(yè)決不能停步不前。有及于此,我國(guó)交通管制系統(tǒng)應(yīng)當(dāng)以人性化、智能化為目的,作出相應(yīng)的改善。本論文正是以此為出發(fā)點(diǎn),對(duì)單片機(jī)控制的交通信號(hào)燈模型作了較詳盡的介紹。
單片機(jī)無線收發(fā)控制的交通信號(hào)燈模型可以分為電源電路、單片機(jī)主控電路、無線收發(fā)控制電路和顯示電路四部分組成,組成電路如圖1:
圖1
由于顯示部分都是采用三色LED和數(shù)碼管模擬,比較簡(jiǎn)單,所以在此不作詳盡敘述。下面主要敘述單片機(jī)主控電路、直流電源的組成及其原理。
一、單片機(jī)主控電路
1、 主要元器件介紹
單片機(jī)主控電路的主要元件是AT89C51,其外型如圖2:
AT89C51是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C51提供了高性價(jià)比的解決方案。
AT89C51是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)成本。
2、管腳說明:
VCC:供電電壓。
GND:接地。
P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。
P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。
P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
P3口也可作為AT89C51的一些特殊功能口,如下表所示:
口管腳 備選功能
P3.0 RXD(串行輸入口)
P3.1 TXD(串行輸出口)
P3.2 /INT0(外部中斷0)
P3.3 /INT1(外部中斷1)
P3.4 T0(記時(shí)器0外部輸入)
P3.5 T1(記時(shí)器1外部輸入)
P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)
P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)
P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。
ST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。
ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。
/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。
/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
3、系統(tǒng)模擬以下交通情況
(1)正常情況下,A、B道(A、B道交叉組成十字路口,A是主道,B是支道)輪流放行,A道放行60秒(兩個(gè)數(shù)碼管從60秒開始倒數(shù),其中5秒用于警告),B道放行30秒(兩個(gè)數(shù)碼管從30秒開始倒數(shù),其中5秒用于警告)。
(2)一道有車而另一道無車(用按鍵開關(guān)S1、S2模擬)時(shí),使有車車道放行。
(3)有緊急車輛通過(用按鍵開關(guān)S0模擬)時(shí),A、B道均為紅燈(兩個(gè)數(shù)碼管顯示00)。
4、設(shè)計(jì)思路
(1)正常情況下運(yùn)行主程序,采用0.5秒延時(shí)子程序的反復(fù)調(diào)用來實(shí)現(xiàn)各種定時(shí)時(shí)間;
(2)一道有車而另一道無車時(shí),采用外部中斷1方式進(jìn)入與其相適應(yīng)的中斷服務(wù)程序,并設(shè)置該中斷為低 優(yōu)先級(jí)中斷;
(3)有緊急車輛通過時(shí),采用外部中斷0方式進(jìn)入與其相適應(yīng)的中斷服務(wù)程序,并設(shè)置該中斷為高優(yōu)先級(jí)中斷,實(shí)現(xiàn)中斷嵌套。
5、硬件設(shè)計(jì)如圖3
圖3
根據(jù)上圖所示,本系統(tǒng)利用12MHz晶振和兩個(gè)瓷片電容并聯(lián)為AT89C51單片機(jī)提供工作頻率,用12只發(fā)光二極管模擬交通信號(hào)燈,以AT89C51單片機(jī)的P1口控制12只發(fā)光二極管。在P1口與二極管之間采用PNP三極管作推動(dòng)管,口線輸出高電平則“信號(hào)燈”熄,口線輸出低電平則“信號(hào)燈”亮。
各口線控制功能及相應(yīng)控制碼如表1所示。
用數(shù)碼管模擬交通燈上的數(shù)字顯示板。數(shù)碼管的七段由AT89C51的P0(P0.0-P0.6)口控制,兩個(gè)數(shù)碼管由P2(P2.0-P2.1)口選通,中間由PNP三極管作為推動(dòng)管。
分別以S1、S2模擬A、B道的車檢測(cè)信號(hào),當(dāng)S1、S2為高電平(不按按鍵)時(shí),表示有車;當(dāng)S1、S2為低電平(按下按鍵)時(shí),表示無車。當(dāng)S1、S2屬不同值時(shí),表示一道有車一道無車,信號(hào)經(jīng)74LS04,74LS86后,輸入到P3.3口,觸發(fā)外部中斷1,AT89C51單片機(jī)經(jīng)查詢后,對(duì)有車的車道放行,綠燈亮;對(duì)無車的車道禁止放行,紅燈亮。當(dāng)S0為低電平(按下按鍵)時(shí),觸發(fā)外部中斷0,單片機(jī)經(jīng)查詢后,對(duì)兩車道都禁止放行,全顯示紅燈,數(shù)碼管顯示00,對(duì)緊急車輛放行。
二、電源電路
從圖3可知,無論是AT89C51單片機(jī)工作電源、二極管還是數(shù)碼管的驅(qū)動(dòng),都要用到+5V的直流電源,所以,一個(gè)穩(wěn)定的、持續(xù)的+5V直流電源對(duì)本系統(tǒng)十分重要。本系統(tǒng)運(yùn)用橋式整流電路,將交流轉(zhuǎn)換為直流,為各部分電路提供恒定的+5V直流。模擬部分和數(shù)字部分分別采用一個(gè)獨(dú)立的穩(wěn)壓管供電,保證電路的穩(wěn)定性和抗干擾,其電路如圖4。
圖4
1、 主要元器件介紹
DB為全波整流電橋,其內(nèi)部結(jié)構(gòu)如圖5
圖5
其工作原理如下:
電橋1、3端接交流電源,2、4為支直流輸出端。當(dāng)某一時(shí)刻,交瞬時(shí)值為上+下-(即1端為+,3端為-),電流從1端輸入,經(jīng)1、2間的二極管到2端,再經(jīng)2、4端的負(fù)載流到4端,然后經(jīng)3、4間的二極管流回交流負(fù)端;同理,電流從3端流入,從1端流回交流負(fù)端。
2、 電源電路工作原理
從接口J1輸入的9V左右的交流電壓(波形如圖7所示),經(jīng)全波整流電橋DB整流后,得到一幅值為0-8V左右的波動(dòng)直流(如圖8所示)。這一波動(dòng)的直流經(jīng)C1、C2、C3濾波后,得到一較平穩(wěn)的直流,再經(jīng) LM7805穩(wěn)壓為+5V,C4再次濾波后,得到穩(wěn)定的+5V直流電流(如圖9所示),為系統(tǒng)無線電接收發(fā)模塊和解碼芯片PT2272路供電。Q1為繼電器驅(qū)動(dòng)管,當(dāng)其基極接收到解碼芯片的高電平時(shí),繼電器吸合,K1接通,電壓經(jīng)7805穩(wěn)壓后為AT89C51開機(jī)供電。