設計要求:
設計交通燈控制系統。模擬交通訊號燈控制:一般情況下正常顯示,東西-南北交替放行,各方向通行時間為30秒。有救護車或警車到達時,兩個方向交通訊號燈全為紅色,以便讓急救車或警車通過,設通行時間為10秒,之後交通恢復正常。用單次脈衝模擬急救車或警車申請外部中斷。
proteus**圖:
微控制器晶振為22.114mhz
**:
org 0000h
ajmp main
org 0003h
ajmp intv1
org 000bh
ajmp ext0
org 0100h
main:
setb p3.
2 mov p1,#00h
setb tr0
setb it0
setb ex0
setb et0
setb pt0 ;設定t0優先順序最高
setb ea
mov tmod,#01h ;定時器0工作方式1
loop: mov th0,#184
mov r4,#100
mov tl0 , #0
setb tr0
mov sp,#60h ;棧
start: mov r7,#30
;交通燈正常執行開始
loop1:
;南北綠燈,東西紅燈,25s
lcall wait_1s
mov p1,#11h
dec r7
cjne r7,#5
,loop1
loop2:
;南北綠燈,東西紅燈,東西南北黃燈5s
lcall wait_1s
mov p1,#35h
dec r7
cjne r7,#0
,loop2
mov r7,#30
loop3:
;南北紅燈,東西綠燈,25s
lcall wait_1s
mov p1,#0ah
dec r7
cjne r7,#5
,loop3
loop4:
;南北紅燈,東西綠燈,東西南北黃燈5s
lcall wait_1s
mov p1,#2eh
dec r7
cjne r7,#0
,loop4
sjmp start
wait_1s:
;等待1s
jnb 20h.0,$
clr 20h.
0 lcall display
retext0:
;1s中斷拉高20h.
0 mov th0 , #184
mov tl0 , #0
djnz r4,t0end;
1s mov r4,#100
setb 20h.
0 t0end: reti
tab:db 3fh,
06h,
5bh,
4fh,
66h db 6dh,
7dh,
07h,
7fh,
6fh//00
display:
;數碼管顯示
mov a,r7
dec a
mov b,#10
div ab
mov dptr,#tab
movc a,
@a+dptr
mov p2,a
xch a,b
movc a,
@a+dptr
mov p0,a
retintv1:
;外部中斷0
mov p1,#09h
push acc ;入棧儲存工作狀態
push b
push psw
setb rs0 ;更換工作區
mov r7,#10
;10s倒計時
; lcall display
l1:
lcall wait_1s
dec r7
cjne r7,#0
,l1
pop psw ;恢復工作狀態
lcall display
pop b
pop acc
reti
end
參考**:: 基於51微控制器模擬交通燈程式
系統概要 由於該交通系統設計乙個十字路口,a道為主幹道,b道為支幹道。由於主幹道的交通壓力較大車流量大,所以a道的通行時間 即a道的綠燈與黃燈的時間應該比b道的綠燈與黃燈時間長 只有a道的通行時間比b道的通行時間長才能合理的分配十字交通路口的交通壓力。並且該系統應該有緊急的交通情況,也就是遇到交通的...
51微控制器 交通燈實驗及報告
1.實驗目的 學習模擬交通燈控制的實現方法 掌握proteus硬體 與除錯。2.任務 根據要求編寫程式,並寫出原理性注釋 將檢查程式執行的結果,分析一下是否正確 完成所建工程的 及除錯。3.實驗內容及要求 按照電路要求在protues中設計電路圖。程式設計實現如下功能 用微控制器埠作輸出口,控制四個...
10 3 微控制器交通燈例項
同學們在學習技術的時候,一定要多動腦筋,遇到問題後,三思而後問。有些時候你考慮的和真理就差一點點了,沒有堅持下去,別人告訴你後才恍然大悟。這樣得到的結論,可以讓你學到知識,但是卻培養不了你的邏輯思維能力。不是不能問,而是要在認真思考的基礎上再發問。有同學有疑問,板子上只有 8 個流水燈,那如果我要做...