
摘要:本文設計一個單片機AT89C51控制的十字路口交通燈,通過硬件電路設計、元器件使用、軟件設計、仿真等環節,實現主干道和支干道的分時控制,保證正常的交通秩序。
關鍵詞:單片機 系統設計 交通燈
1 系統介紹
隨著微控技術的日益完善和發展,單片機的應用不斷走向深入。它的應用必定導致傳統的控制技術從根本上發生變革。同時,伴隨著我國經濟的高速發展,私家車、公交車的增加無疑會給我國的道路交通系統帶來沉重的壓力,很多大城市都不同程度地受到交通堵塞問題的困擾。下面以AT89C51單片機為核心,設計出人性化,智能化為目的的交通燈控制系統。
2 系統設計
2.1 硬件設計
十字路口交通燈如圖1所示。
2.2 軟件設計
主程序采用查詢方式定時,由R2寄存器調用0.5S延時子程序的次數,從而獲取交通燈的各種時間。子程序采用定時器1方式1查詢定時,定時器定時50ms,R3寄存器確定50ms循環10次,從而獲得0.5S的延時時間。代碼如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTT0;轉向緊急車輛中斷服務程序
ORG 0013H
LJMP INTT1;轉向有車車道中斷服務程序
ORG 0200H
MAIN:MOV SP,#30H
SETB PX0;置外部中斷0為高優先級中斷
MOV TCON,#00H;置外部中斷0、1為電平觸發
MOV TMOD,#10H;置定時器1為方式1
MOV IE,#85H;開CPU中斷,開外部中斷0、1中斷
LOOP:MOV P0,#0F3H;A道綠燈放行,B道紅燈禁止
MOV R1,#90;置0.5S循環次數(0.5X90=45S)
DIP1:ACALL DELAY ;調用0.5S延時子程序
DJNZ R1,DIP1;45S不到繼續循環
MOV R1,#06;置A道綠燈循環次數
WAN1:CPL P0.2;A綠燈閃爍
ACALL DELAY
DJNZ R1,WAN1;閃爍次數未到繼續循環
MOV P0,#0F5H;A黃燈警告,B紅燈禁行
MOV R1,#04H;置0.5S循環次數(0.5X4=2S)
DEY0:ACALL DELAY
DJNZ R2,DEY0;20S未到繼續循環
POP TL1;退棧恢復現場
POP TH1
POP P0
RETI;返回主程序
LP1:JBC TF1,LP2;查詢計數溢出
SJMP LP1
RET
END
3 系統仿真及調試
單片機系統的硬件調試和軟件調試是不能分開的,許多硬件錯誤是在軟件調試過程中被發現和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結合起來調試以進一步排除故障。可見硬件的調試基礎,如果硬件調試不通過,軟件設計則無從談起。
硬件的調試主要是把電路各種參數調整到符合設計要求。
先排除硬件電路故障,包括設計性錯誤和公益性故障。一般原則是先靜態后動態。
利用萬用表或邏輯測試儀器,檢查電路中的各器件以及引腳是否連接正確,是否有短路故障。
先要將單片機AT89S51芯片取下,對電路板進行通電檢查,通過觀察看是否有異常,然后用萬用表測試各電源電壓,這些都沒有問題后,接上仿真機進行聯機調試觀察各接口線路是否正常。
參考文獻:
[1]張秀國.單片機C語言程序設計教程與實訓.北京大學出版社.2010.2.
[2]張迎新.單片機應用設計培訓教程.北京航空航天大學出版社.2008.1.
[3]尹毅峰.單片機原理與應用.北京理工大學出版社.2010.7.