張成法 張東霞 付寧
摘要
本文利用proteus軟件中的AT89C51單片機和LED完成了公路十字路口交通信號燈系統(tǒng)的仿真設計,經(jīng)過驗證,該系統(tǒng)可以實現(xiàn)交通功能。
【關鍵詞】proteus單片機 交通信號燈
proteus軟件是一款優(yōu)秀的EDA軟件,可以完成單片機控制系統(tǒng)的相關設計。本文利用proteus軟件制作的單片機控制交通信號燈系統(tǒng)在設計過程中使用了定時器和中斷系統(tǒng),可以滿足車輛正常情況通行、緊急情況通行和特殊情況通行三種情況。
1系統(tǒng)整體設計
本系統(tǒng)的設計要求分為車輛正常情況通行、車輛緊急情況通行和車輛特殊情況通行三種。正常情況通行是南北方向的綠色LED亮60s,同時東西方向的紅色LED亮60s,此時表示南北方向通行,東向方向禁止通行,然后南向和北行的綠色LED閃爍5次后熄滅,緊接著南向和北向黃色LED亮5秒后熄滅,然后東西方向的綠色LED亮60s,同時南北方向的紅色LED亮60s,此時表示東西方向可以通行,南北方向禁止通行,然后東向和西向的綠色LED閃爍5次后熄滅,緊接著東向和西行的黃色LED亮5秒后熄滅,然后南北方向的綠色LED亮60s,同時東西方向的紅色LED亮60s,此時表示南北方向可以通行,東向方向禁止通行,以次循環(huán)往復。特殊情況通行是東西向綠色LED亮lOs,同時南北向紅色LED亮lOs,緊急情況通行是東西南北四個方向都是紅色LED,并且亮lOs。
2硬件設計
本系統(tǒng)主要是由AT89C51單片機、電源電路、晶體振蕩器電路、12個LED(綠色、紅色、黃色這三個顏色的LED各4個)構成。其中在東西南北方向每個方向都有三個不同顏色的LED,用這三個不同顏色的LED來表示交通信號燈的綠燈、紅燈和黃燈。如圖1所示。
AT89C51單片機的Pl.0~P1.2引腳連接著南向和北向的控制信號線,單片機的P1.3~P1.5引腳連接著東向和西向的控制信號線。用按鍵Sl來模仿車輛緊急情況通行的出現(xiàn),用按鍵S2來模仿車輛特殊情況通行的出現(xiàn)。當按鍵Sl和S2都處于斷開狀態(tài),都是高電平的時候,表示系統(tǒng)運行在正常情況;當Sl按鍵被按下去,也就是跟Sl鍵相連的P3.2INTO引腳處于低電平,這是表示實現(xiàn)INTO的中斷申請,此時表示系統(tǒng)處于緊急情況;當S2按鍵被按下去,也就是跟S2鍵相連的P3.3INT1引腳處于低電平,這是表示實現(xiàn)INT1的中斷申請,此時表示系統(tǒng)處于特殊情況。
3程序設計
在程序中會用到多個延時時間,比如5s、lOs、60s,因此以延時函數(shù)yanshi_lso實現(xiàn)的Is為基準,利用延時函數(shù)yanshibian(unsigned charb)實現(xiàn)多個延時時間的設定。
緊急情況出現(xiàn)時所對應的中斷INTO為高優(yōu)先級中斷,特殊情況出現(xiàn)時所對應的中斷INT1為低優(yōu)先級中斷,其中在自然優(yōu)先級中,INTO的優(yōu)先級要高于INT1的優(yōu)先級,所以可以省略優(yōu)先級的設置,實現(xiàn)中斷嵌套。
當特殊情況發(fā)生時,即S2按鍵按下去,INT1的中斷請求發(fā)生,CPU去響應此中斷請求,調用INT1的中斷函數(shù),進入中斷服務程序,實現(xiàn)東向和西向綠色LED亮lOs,南向和北向紅色LED亮lOs。進入中斷服務程序以后,首先關中斷,防止高優(yōu)先級中斷申請(緊急情況發(fā)生所產生的中斷)出現(xiàn)導致程序混亂。然后對現(xiàn)場進行保護,因為要用到Pl口和延時函數(shù),所以需要將變量Pl、全局延時控制變量m、n、TH1和TL1暫存到中間變量a、b、c、d、e中保護起來,然后開中斷,執(zhí)行相應的程序,實現(xiàn)東西方向綠燈亮lOs,然后再將中斷關閉,通過將中間變量a、b、c、d、e再次賦給變量Pl、m、n、TH1、TL1實現(xiàn)現(xiàn)場的恢復,然后再開中斷,最后返回主程序。
當緊急情況發(fā)生時,Sl按鍵按下去,INTO的中斷請求發(fā)生,CPU去響應此中斷請求,調用N-I-O的中斷函數(shù),進入中斷服務程序后,也需要對現(xiàn)場進行保護,但是不需要關閉中斷f因緊急情況是高優(yōu)先級中斷)。然后執(zhí)行相對應的程序,實現(xiàn)東南西北四個方向的紅色LED同時亮lOs,這樣能夠保證緊急情況下緊急車輛能安全通過道路的十字交叉路口,最后再對現(xiàn)場進行恢復,然后返回主程序。
void special_2() interrupt 2// INTl的中斷函數(shù)
{unsigned char a,b,c,d,e;EA=O;a=Pl;//現(xiàn)場保護
b=m; c=n; d=THl; e=TLl; EA=1; Pl=Oxf3;yanshi_bian (10); EA=O;
Pl=a;//現(xiàn)場恢復
m=b; n=c; THl=d; TLl=e; EA=1;)
4結束語
利用proteus軟件中的單片機和LED,應用定時器和中斷系統(tǒng),可以完成交通信號燈系統(tǒng)的仿真設計。該系統(tǒng)設計簡單、實現(xiàn)容易。
參考文獻
[1]樓俊君,程啟明,趙永熹.PROTEUS仿真軟件在單片機實踐課程中的應用[J].電腦知識與技術,2018.
[2]江世明,許建明,朱群峰,申壽云.單片機原理及應用[M].上海:上海交通大學出版社,2013.