導航:首頁 > 源碼編譯 > 東西南北路口紅綠燈亮編譯

東西南北路口紅綠燈亮編譯

發布時間:2022-08-22 17:38:54

A. 求大神解答,用51單片機匯編語言實現一個紅綠燈的程序,不是一個路口的,大概注釋下就好

;------------------------------------

;程序實現功能

;西南北路口直行與轉彎交替通行,數碼管顯示直行通行倒計時,紅綠黃燈顯示包括人行道在內的道路交通狀態。

;某一方向道路擁擠時,可以人工控制調節東西南北方向通行時間。

;緊急情況時,各路口交通燈顯示紅燈,數碼管保持數據不變。

;工作寄存器及存儲單元分配

;1.工作寄存器

;R2設置為定時器定時中斷次數,R6、R7用於延時程序中的寄存器

;2.片內存儲單元

;30H、31H作為兩組數碼管顯示數據存儲單元;32H、33H作為交通燈初始狀態存儲單元;40H、41H作為交通燈顯示數據存儲單元

;3.標志位

;00H:南北通行標志位 ; 01H:東西通行標志位;02H:緊急事件標志位

;-----------------------------------

SNF EQU 00H ;;;南北通行標志位

EWF EQU 01H ;;;東西通行標志位

URF EQU 02H ;;;緊急事件標志位

ORG 0000H

LJMP MAIN ;;;上電轉主程序

ORG 000BH ;;;定時中斷入口

LJMP DSZD

ORG 0003H ;;;緊急中斷入口

LJMP URZD

ORG 0030H

MAIN: LCALL INIT ;;;調用初始化子程序

LOOP: LCALL DIS ;;;循環執行顯示子程序

AJMP LOOP

;///////////初始化程序

INIT: SETB SNF

SETB EWF

SETB URF

MOV R2,#20 ;;;定時器中斷20次為1s

MOV TMOD,#01H ;;;初始化定時器

MOV TL0,#0B0H

MOV TH0,#3CH

SETB EA ;;;開定時中斷與緊急中斷

SETB ET0

SETB TR0

SETB EX0

SETB IT0 ;;;設置中斷程式控制方式

MOV DPTR,#TAB ;;;數值首地址放入DPTR中

MOV 40H,#40 ;;;東南西北通行時間設置

MOV 41H,#40

MOV 30H,#40 ;;;通行時間初始化

MOV 31H,#60

MOV P0,#4CH ;;;初始化時南北通行並把交通燈狀態分別放在32H和33H中

MOV 32H,#4CH

MOV P2,#15H

MOV 33H,#15H

RET

;////////////顯示子程序

DIS: MOV P3,#0DFH ;;;選中南北方向的十位數碼管

MOV A,30H ;;;把顯示數據送人數碼管顯示

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV P1,A ;;;

LCALL D1MS

MOV P3,#0EFH ;;;選中南北方向的個位數碼管

MOV A,B ;;;送入數碼管顯示

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

MOV P3,#7FH ;;;選中第東西方向的十位數碼管

MOV A,31H ;;;送入數碼管顯示

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

MOV P3,#0BFH ;;;選中第東西方向的個位數碼管

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

LCALL D1MS

SETB P3.0

SETB P3.1

JNB P3.0,DIS_S ;;;查詢是否第一個按鍵按下

JNB P3.1,DIS_E ;;;查詢是否第二個按鍵按下

AJMP DIS_R ;;;沒有鍵按下則返回

DIS_S:LCALL D5MS ;;;按鍵去抖

JNB P3.0,DIS_SN

AJMP DIS_R

DIS_SN:MOV 40H,#50 ;;;對通行時間從新分配,南北通行時間加長

MOV 41H,#30

AJMP DIS_R

DIS_E:LCALL D5MS ;;;按鍵去抖

JNB P3.1,DIS_EW

AJMP DIS_R

DIS_EW:MOV 40H,#30 ;;;東西通行時間加長

MOV 41H,#50

DIS_R:RET

;///////定時中斷處理程序

DS_C: LJMP DS_R ;;;接力跳轉

DSZD: PUSH ACC ;;;保護現場

PUSH PSW

CLR TR0 ;;;關定時器及中斷標志位並重新賦值

CLR TF0

MOV TL0,#0B0H

MOV TH0,#3CH

DJNZ R2,DS_C ;;;判斷1m時間是否到達

MOV R2,#20 ;;;到達重新賦值

DEC 30H ;;;南北方向通行時間減一

MOV A,30H ;;;把減一後的時間送入顯示存儲單元

;;;;;;;南北通行到達最後4秒時黃燈閃爍

DS_10:CJNE A,#4,DS_11 ;;;如果通行時間剩餘4秒

JNB SNF,DS_11 ;;;判斷是否是南北通行

MOV P0,#8AH

MOV 32H, #8AH ;;;把交通燈狀態存入存儲單元(後面類似)

DS_11:CJNE A,#3,DS_12 ;;;不是剩餘3秒,返回

JNB SNF,DS_12 ;;;不是南北通行時間,返回

MOV P0,#88H

MOV 32H, #88H

DS_12:CJNE A,#2,DS_13

JNB SNF,DS_13

MOV P0,#8AH

MOV 32H, #8AH

DS_13:CJNE A,#1,DS_14

JNB SNF,DS_14

MOV P0,#88H

MOV 32H, #88H

;------------------------

DS_14:JNZ DS_NE ;;;通行時間沒有結束轉向改變東西方向的數碼管

CPL SNF ;;;如果通行時間結束則對標志位取反

JNB SNF,DS_1 ;;;判斷是否南北通行

MOV 30H,40H ;;;是,點亮相應的交通燈

MOV P0,#4CH

MOV 32H,#4CH ;;;存儲交通燈狀態

MOV P2,#15H

MOV 33H, #15H ;;;存儲交通燈狀態

DS_NE:DEC 31H ;;;東西方向通行時間減一

MOV A,31H ;;;把通行剩餘時間送入顯示存儲單元

;;;;;;;;東西方向通行時間剩餘4秒鍾黃燈閃爍(程序注釋與南北方向類似 略)

DS_20:CJNE A,#4,DS_21

JB EWF,DS_21

MOV P0,#51H

MOV 32H, #51H

DS_21:CJNE A,#3,DS_22

JB EWF,DS_22

MOV P0,#41H

MOV 32H, #41H

DS_22:CJNE A,#2,DS_23

JB EWF,DS_23

MOV P0,#51H

MOV 32H, #51H

DS_23:CJNE A,#1,DS_24

JB EWF,DS_24

MOV P0,#41H

MOV 32H, #41H

;-----------------------------

DS_24:JNZ DS_R ;;;東西方向時間沒有結束,返回

CPL EWF ;;;對通行狀態取反

JNB EWF,DS_2 ;;;東西方向通行時間到來,跳轉

MOV 31H,#80 ;;;東西方向通行結束,重新顯示時間

MOV P0,#89H ;;;點亮相應的交通燈

MOV 32H, #89H

MOV P2,#29H

MOV 33H, #29H

AJMP DS_R

DS_1: MOV 30H,#80 ;;;南北通行時間結束,重新對顯示存儲單元賦值

MOV P0,#89H ;;;執行轉彎狀態1

MOV 32H, #89H

MOV P2,#26H

MOV 33H, #26H

AJMP DS_NE

DS_2: MOV 31H,41H ;;;東西方向開始通行,賦值予顯示存儲單元

MOV P0,#61H ;;;點亮相應的交通燈

MOV 32H, #61H

MOV P2,#15H

MOV 33H, #15H

DS_R: SETB TR0

POP PSW ;;;恢復現場

POP ACC

RETI

;/////////////緊急中斷處理程序

URZD: PUSH ACC ;;;保護現場

PUSH PSW

CLR IE0 ;;;清除中斷標志位

CLR TR0 ;;;關定時器

CPL URF ;;;緊急事件標志位

JB URF,UR_CON ;;;緊急結束;跳轉

MOV P0,#49H ;;;各路口燈全顯示紅燈亮

MOV P2,#15H

AJMP UR_R

UR_CON:SETB TR0 ;;;恢復正常交通

MOV A,32H

MOV P0,A

MOV A,33H

MOV P2,A

UR_R: POP PSW ;;;恢復現場

POP ACC

RETI

;////////////查表指令0,1,2,3,4,5,6,7,8,9

TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH

DB 7DH, 07H, 7FH, 6FH

;//////////延時5ms與1ms

D5MS: MOV R7,#5

D1MS: MOV R7,#10

MOV R6,#50

L1: DJNZ R6,$

DJNZ R7,L1

RET

B. 求編PLC程序。 題目:某一十字路口紅綠燈,要求南北綠燈先亮8秒,黃燈亮...

才五分,,但是給你個簡單思路:假如設南北綠黃紅----Q0.0,Q0.1,Q0.2 東西:紅綠黃---------Q0.3,q0,4,,q0.5;;;;;;;;;;1 用一個M0.0啟動所有程序,並啟動定時器T0開始走;啟動M0.0的同時點亮Q0.0和Q0.3, 2 之後南北:Q0.0亮8秒後清零同時點亮Q0.1四秒後讓Q0.1熄滅了又亮3次;之後Q0.2亮15秒。 3 同時進行東西:Q0.3亮15秒,滅的同時點亮Q0.4亮8秒,滅的同時同時點亮Q0.54秒,再連續三次。。 4 過程2和過程3是同時進行的都是30秒,三十秒後清定時器T0為0;在定時器又開始跑,依次就開始循環了。--有什麼不懂--358722567

C. 急求! 交通燈的匯編程序。。。

你可以改一下~~~加按鍵

#include<reg51.h>

sbitr1=P2^0;

sbity1=P2^1;

sbitg1=P2^2;

sbitr2=P2^3;

sbity2=P2^4;

sbitg2=P2^5;

void Delay(unsignedi)

{

unsignedintj;

for(;i>0;i++)

for(j=0;j<125;j--)

{;}

}

voidmain()

{

unsignedchari;

while(1)

{

g1=0;

r2=0;

Delay(2000);

g1=1;

for(i=5;i>0;i--)

{

y1=0;

Delay(500);

y1=1;

Delay(500);

}

r2=1;

r1=0;

g2=0;

Delay(2000);

g2=1;

for(i=5;i>0;i--)

{y2=0;

Delay(500);

y2=1;

Delay(500);

}

r1=1;

}

}

D. 問:求單片機十字路口紅綠燈c語言源程序,要求紅燈32秒,綠燈28秒,黃燈4秒。南北東西各一組紅綠燈

你好!

這樣是效果可以嗎

E. 單片機交通燈的匯編程序

NAME T3 ;I/O口擴展實驗一
PORT EQU 0CFA0H ;片選地址CS0
CSEG AT 0000H
LJMP START
CSEG AT 4100H
START: MOV A,#11H ;兩個紅燈亮,黃燈、綠燈滅
ACALL DISP ;調用273顯示單元(以下雷同)
ACALL DE3S ;延時3秒
LLL: MOV A,#12H ;東西路口綠燈亮;南北路口紅燈亮
ACALL DISP
ACALL DE10S ;延時10秒
MOV A,#10H ;東西路口綠燈滅;南北路口紅燈亮
ACALL DISP
MOV R2,#05H ;R2中的值為黃燈閃爍次數
TTT: MOV A,#14H ;東西路口黃燈亮;南北路口紅燈亮
ACALL DISP
ACALL DE02S ;延時0.2秒
MOV A,#10H ;東西路口黃燈滅;南北路口紅燈亮
ACALL DISP
ACALL DE02S ;延時0.2秒
DJNZ R2,TTT ;返回TTT,使東西路口;黃燈閃爍五次
MOV A,#11H ;兩個紅燈亮,黃燈、綠燈滅
ACALL DISP
ACALL DE02S ;延時0.2秒
MOV A,#21H ;東西路口紅燈亮;南北路口綠燈亮
ACALL DISP
ACALL DE10S ;延時10秒
MOV A,#01H ;東西路口紅燈亮;南北路口綠燈滅
ACALL DISP
MOV R2,#05H ;黃燈閃爍五次
GGG: MOV A,#41H ;東西路口紅燈亮;南北路口黃燈亮
ACALL DISP
ACALL DE02S ;延時0.2秒
MOV A,#01H ;東西路口紅燈亮;南北路口黃燈滅
ACALL DISP
ACALL DE02S ;延時0.2秒
DJNZ R2,GGG ;返回GGG,使南北路口;黃燈閃爍五次
MOV A,#03H ;兩個紅燈亮,黃燈、綠燈滅
ACALL DISP
ACALL DE02S ;延時0.2秒
JMP LLL ;轉LLL循環
DE10S: MOV R5,#100 ;延時10秒
JMP DE1
DE3S: MOV R5,#30 ;延時3秒
JMP DE1
DE02S: MOV R5,#02 ;延時0.2秒
DE1: MOV R6,#200
DE2: MOV R7,#126
DE3: DJNZ R7,DE3
DJNZ R6,DE2
DJNZ R5,DE1
RET
DISP: MOV DPTR,#PORT ;273顯示單元
CPL A
MOVX @DPTR,A
RET
END
你看看行不行 如果不行你自己再稍微改一下吧 反正大概就這些了
希望對你能有所幫助。

F. 十字路口紅綠燈控制用匯編編寫

採用多個時間繼電器進行循環控制。

G. 用C語言編程模擬交通路口(十字路口)紅綠燈的控制功能

本系統的設計首先必須了解交通路燈的亮滅規律。設有一個十字路口,1、3 為南,北
方向, 2、4 為東,西方向,初始態為4 個路口的紅燈全亮。之後, 1、3 路口的綠燈亮,
2、4 路口的紅燈亮, 1、3 路口方向通車。延遲一段時間後, 1、3 路口的綠燈熄滅,而1、
3 路口的黃燈開始閃爍。閃爍若干次後, 1、3 路口的紅燈亮, 同時 2、4 路口的綠燈亮, 2、
4 路口方向開始通車。延遲一段時間後, 2、4 路口的綠燈熄滅,而黃燈開始閃爍。閃爍若
干次後,再切換到1、3 路口方向。之後,重復上述過程。對於各組燈的亮滅,我們運用的
是8255A 的輸入輸出功能。

閱讀全文

與東西南北路口紅綠燈亮編譯相關的資料

熱點內容
組管理命令 瀏覽:977
海南高德司機端是什麼app 瀏覽:861
pid命令 瀏覽:886
一天一圖學會python可視化 瀏覽:307
魔獸編輯文本命令串 瀏覽:495
android中view繪制 瀏覽:796
安卓機內存刪除怎麼恢復 瀏覽:329
Qt環境的編譯軟體放到linux 瀏覽:212
聯創列印系統怎麼連接伺服器 瀏覽:935
杭州行政命令 瀏覽:160
如何查找伺服器日誌 瀏覽:801
加密的鑰匙扣怎麼寫 瀏覽:579
文件夾更新不了怎麼辦 瀏覽:475
壓縮機指示燈亮是什麼原因 瀏覽:956
什麼app訂酒店半價 瀏覽:765
中老年解壓神器 瀏覽:243
訊飛語音ttsandroid 瀏覽:468
腰椎壓縮性骨折術後能坐車嗎 瀏覽:507
python類裝飾器參數 瀏覽:349
均線pdf微盤 瀏覽:792