找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1494|回復(fù): 1
收起左側(cè)

請(qǐng)大佬幫忙看看我這個(gè)程序哪里出錯(cuò)了,檢查了好幾遍得不到結(jié)果

[復(fù)制鏈接]
ID:897410 發(fā)表于 2021-4-16 10:05 | 顯示全部樓層 |閱讀模式
1.在擁堵情況下,主干道綠燈亮1分鐘(此時(shí)次干道紅燈亮)后,主干道綠燈閃爍5次,綠燈滅,黃燈亮5秒鐘后,紅燈亮,同時(shí)次干道紅燈滅,綠燈亮。次干道綠燈40秒后,綠燈閃爍5次,綠燈滅,黃燈亮5秒鐘后,紅燈亮,同時(shí)次干道紅燈滅,綠燈亮
2.非擁堵時(shí)段,根據(jù)兩個(gè)干道最前車(chē)輛的速度以及距離紅綠燈路口的距離,判斷紅綠燈時(shí)間,盡量?jī)蓚(gè)方向車(chē)道的車(chē)輛均能夠不停車(chē)通過(guò)

根據(jù) p0.0 來(lái)判斷 是否擁堵,根據(jù)p0.1判斷當(dāng)前是東西綠燈還是南北綠燈,第一個(gè)要求能實(shí)現(xiàn),第二個(gè)要求實(shí)現(xiàn)不了 不知道哪里寫(xiě)錯(cuò)了,希望大家能幫忙指出錯(cuò)誤,
LED_G1 BIT P1.0                ;東西綠燈
                LED_R1 BIT P1.1                ;東西紅燈
                LED_Y1 BIT P1.2                ;東西黃燈
                LED_G2 BIT P1.3                ;南北綠燈
                LED_R2 BIT P1.4                ;南北紅燈
                LED_Y2 BIT P1.5                ;南北黃燈
                ORG 0000H
                LJMP START
                ORG 0100H
START:        
                MOV TMOD,#01H                ;T0工作方式1
                MOV TH0,#03CH                ;TO定時(shí)初始值50ms
                MOV TL0,#0B0H
                SETB TR0                        ;啟動(dòng)定時(shí)
                CLR EA
                MOV P0,#0FFH
                MOV P1,#00H
                JB P0.0,SHUNCHANG
                LJMP YONGDU
SHUNCHANG:
                MOV R4,#80  ;東西距離
                MOV R5,#8     ;速度
                MOV R6,#90    ;南北距離
                MOV R7,#8      ;速度
                JB P0.1,NBLV        
                SJMP DXLV
DXLV:        
                SETB LED_G1
                SETB LED_R2
                SJMP DX
NBLV:        
                LCALL STATE4
                SJMP DX
DX:
                MOV A,R4
                MOV B,R5
                DIV AB
                JNB PSW.2,JW1
                SJMP CUN1                                                                                                               
CUN1:        
                MOV 20H,A
                SJMP NB
JW1:        
                INC A
                SJMP CUN1
NB:               
                CLR PSW.2
                MOV A,R6
                MOV B,R7
                DIV AB
                JNB PSW.2,JW2
                SJMP CUN2
CUN2:        
                MOV 21H,A
                SJMP BJ
JW2:
                INC A
                SJMP CUN2
BJ:               
                MOV A,20H
                CJNE A,21H,BUDENG
                MOV R2,#20
                MOV R3,20H
BAOCHI:               
                JNB TF0,BAOCHI                ;查詢50ms到否
                CLR TF0
                MOV TH0,#3CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R2,BAOCHI                ;判斷1s到否?未到繼續(xù)狀態(tài)4
                MOV R2,#20                        
                DJNZ R3,BAOCHI                ;狀態(tài)4維持40s
                CPL LED_G1
                CPL LED_R1                        
                CPL LED_G2
                CPL LED_R2                        
                LJMP SHUNCHANG                                       
BUDENG:               
                JC DXXL
NBXL:
                MOV R2,#20
                MOV R3,21H
NBXL1:
                LCALL STATE4               
                JNB TF0,NBXL1                ;查詢50ms到否
                CLR TF0
                MOV TH0,#3CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R2,NBXL1                ;判斷1s到否?未到繼續(xù)狀態(tài)4
                MOV R2,#20                        
                DJNZ R3,NBXL1        
                LCALL STATE1
                LJMP SHUNCHANG
DXXL:        
                MOV R2,#20
                MOV R3,20H
DXXL1:
                LCALL STATE1
                JNB TF0,DXXL1                ;查詢50ms到否
                CLR TF0
                MOV TH0,#3CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R2,DXXL1                ;判斷1s到否?未到繼續(xù)狀態(tài)4
                MOV R2,#20                        
                DJNZ R3,DXXL1               
                LCALL STATE4
                LJMP SHUNCHANG
YONGDU:
                 MOV R2,#20                        
                MOV R3,#60                        ;東西綠燈60s        
WAIT1:        
                LCALL STATE1                ;調(diào)用狀態(tài)1
                JNB TF0,WAIT1                ;查詢50ms到否
                CLR TF0
                MOV TH0,#03CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R2,WAIT1                ;判斷1s到否?未到繼續(xù)狀態(tài)1
                MOV R2,#20                        
                DJNZ R3,WAIT1                ;狀態(tài)1維持60s
                MOV R2,#5                        
                MOV R3,#5                        ;東西綠燈閃5s
                MOV R4,#4                        ;閃爍間隔200ms
WAIT2:        
                LCALL STATE2                ;調(diào)用狀態(tài)2
                JNB TF0,WAIT2                ;查詢50ms到否
                CLR TF0
                MOV TH0,#03CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H         
                DJNZ R4,WAIT2                ;判斷200ms到否?未到繼續(xù)狀態(tài)2
                CPL LED_G1                        
                MOV R4,#4                        ;閃爍間隔200ms
                DJNZ R2,WAIT2               
                MOV R2,#5                        
                DJNZ R3,WAIT2                ;狀態(tài)2維持5s
                MOV R2,#20                        
                MOV R3,#5                        ;東西黃燈5s
WAIT3:        
                LCALL STATE3                ;調(diào)用狀態(tài)3
                JNB TF0,WAIT3                ;查詢50ms到否
                CLR TF0
                MOV TH0,#3CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R2,WAIT3                ;判斷1s到否?未到繼續(xù)狀態(tài)3
                MOV R2,#20                        
                DJNZ R3,WAIT3                ;狀態(tài)3維持5s
                MOV R2,#20                        
                MOV R3,#40                        ;東西紅燈40s
WAIT4:        
                LCALL STATE4                ;調(diào)用狀態(tài)4
                JNB TF0,WAIT4                ;查詢50ms到否
                CLR TF0
                MOV TH0,#3CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R2,WAIT4                ;判斷1s到否?未到繼續(xù)狀態(tài)4
                MOV R2,#20                        
                DJNZ R3,WAIT4                ;狀態(tài)4維持40s
                MOV R2,#5                        
                MOV R3,#5                        ;南北綠燈閃5s
                MOV R4,#4                        ;閃爍間隔200ms        
WAIT5:        
                LCALL STATE5                ;調(diào)用狀態(tài)5
                JNB TF0,WAIT5                ;查詢50ms到否
                CLR TF0
                MOV TH0,#3CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R4,WAIT5                ;判斷200ms到否?未到繼續(xù)狀態(tài)5
                CPL LED_G2                        ;南北綠燈閃
                MOV R4,#4                        
                DJNZ R2,WAIT5                ;判斷1s到否?未到繼續(xù)狀態(tài)5
                MOV R2,#5                        
                DJNZ R3,WAIT5                ;狀態(tài)5維持5s
                MOV R2,#20                        
                MOV R3,#5                        ;黃燈5s
WAIT6:        
                LCALL STATE6                ;調(diào)用狀態(tài)6
                JNB TF0,WAIT6                ;查詢50ms到否
                CLR TF0
                MOV TH0,#03CH                ;恢復(fù)T0定時(shí)初始值50ms
                MOV TL0,#0B0H
                DJNZ R2,WAIT6                ;判斷1s到否?未到繼續(xù)狀態(tài)6
                MOV R2,#20                        
                DJNZ R3,WAIT6                ;狀態(tài)6維持5s
                LJMP YONGDU
STATE1:                                                ;狀態(tài)1
                SETB LED_G1                        ;東西綠燈亮
                CLR LED_R1
                CLR LED_Y1
                CLR LED_G2
                SETB LED_R2                        ;南北紅燈亮
                CLR LED_Y2
                RET
STATE2:                                                ;狀態(tài)2
                CLR LED_R1
                CLR LED_Y1
                CLR LED_G2
                SETB LED_R2                        ;南北紅燈亮
                CLR LED_Y2
                RET
STATE3:                                                ;狀態(tài)3
                CLR LED_G1
                CLR LED_R1                        
                SETB LED_Y1                        ;東西黃燈亮
                CLR LED_G2
                SETB LED_R2                        ;南北紅燈亮
                CLR LED_Y2
                RET
STATE4:                                                ;狀態(tài)4
                CLR LED_G1
                SETB LED_R1                        ;東西紅燈亮
                CLR LED_Y1
                SETB LED_G2                        ;南北綠燈亮
                CLR LED_R2
                CLR LED_Y2
                RET
STATE5:                                         ;狀態(tài)5
                CLR LED_G1
                SETB LED_R1                        ;東西紅燈亮
                CLR LED_Y1

                CLR LED_R2
                CLR LED_Y2
                RET
STATE6:                                                ;狀態(tài)6
                CLR LED_G1
                SETB LED_R1                        ;東西紅燈亮
                CLR LED_Y1
                CLR LED_G2
                CLR LED_R2
                SETB LED_Y2                        ;南北黃燈亮
                RET
END
@W24SD~CR$D7PCJKM{$MLAG.png







回復(fù)

使用道具 舉報(bào)

ID:298123 發(fā)表于 2021-4-27 16:04 | 顯示全部樓層
建議你用C重寫(xiě)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表