基於51微控制器交通燈(組合語言)

2021-10-12 07:48:01 字數 2287 閱讀 8677

設計要求:

設計交通燈控制系統。模擬交通訊號燈控制:一般情況下正常顯示,東西-南北交替放行,各方向通行時間為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 個流水燈,那如果我要做...