ORG 0000H
LJMP MAIN
ORG 0003H L.JMP TO_ INT ORG 0013H
MOV IE, #8EH MOV TMOD,#51H MOV TH1, #0OH MOV TL1, #00H
SETB TR1 SETB EX1 SETB IT1 MOV DPTR,#0003H
MOV A,#80H MOVX @DPTR, A
AGAIN: JB P3.1,NO MOV A,P1
JB P1.7,RED MOV RO, #00H
MOV RO,A MOV R3,A
LCALL DISP1 LCALL DELAY AJMP AGAIN RED: MOV A,P1
ANL A,#7FH MOV R7, #00H
10V R7,A
LCALL DISP1 LCALL DELAY AJMP AGAIN
NO: SETB TRO MOV 76H,R7
NOO: MOV A, 76H MOV R3,A
MOV DPTR, 0000H MOV A, #ODDH MOVX @DPTR, A N01: JB P2.0, B0 N02: SETB P3. 0 CJNE R3, #0OH, N01; 比較R3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行黃燈閃爍5秒程序------ N1:SETBP3.0 MOV R3, #05H MOV DPTR, #0000H;置8255A 口, 東西,南北方向黃燈亮 MOV A, #0D4H MOVX @DPTR, A N1l: MOV R4, #00H N12: CJNE R4, #7DH,$;黃燈持續(xù)亮0.5秒 N13: MOV DPTR, #0000H; 置8255A口,南北方向黃燈滅 MOV A, #0DDH MOVX @DPTR, A N14: MOV R4, #00H CJNE R4,#7DH,$; 黃燈持續(xù)滅0.5秒 CJNE R3, #00H,N1;閃爍時間達(dá)5秒則退出;
N2: MOV R7, #00H
MOV A,RO;東西通行,南北禁止 MOV R3, A
MOV DPTR, #0000H;置8255A口,東西方向綠燈亮,南北方向紅燈亮
MOV A, #OEBH MOVX @DPTR,A
N21: JB P2.0,T03
N22: CJNE R3, #0OH,N21
;黃燈閃爍5秒程序------
N3: MOV R3,#05H
MOV DPTR,#0000H;置8255A口,東西,南北方向黃燈亮 MOV A, #0E2H MOVX @DPTR, A
N31 : MOV R4, #00H
CJNE R4,#7DH,$;黃燈持續(xù)亮0.5秒 N32: MOV DPTR, #0000H;置8255A口, 南北方向黃燈滅 MOV A, #OEBH MOVX @DPTR,A N33: MOV R4, #00H CJNE R4, #7DH, $; 黃燈持續(xù)滅0.5秒 CJNE R3, #0OH, N3; 閃爍時間達(dá)5秒則退出S. JMPN00 ;闖紅燈報警程序 B0:MOV R2, #03H; 報警持續(xù)時間3秒 B01: MOV A, R3 JZ N1;若倒計時完畢,不再報警 CLR P3.0;報警 CJNE R2,#0OH, B01;判斷3秒是否結(jié)束 SJMP NO2 ;----1秒延時子程序- N7: RETI TO_ INT:MOV TLO, #9AH;給定時器TO送定時10ms的初值 MOV THO, #0F1H INC R4 INC R5 CJNE R5, #OFAH, T01;判斷延時是否夠一秒,不夠則調(diào)用顯示子程 MOV R5, #0OH; R5清零DEC R3;倒計時初值減一DECR2;報警初值減- - T01: ACALL DISP;調(diào)用顯示子程序 RETI;中斷返回 ;顯示子程序 DISP: JNB P2.4, T02 DISPl: MOV B, #0AH MOV A,R3; R3中值二轉(zhuǎn)十顯示轉(zhuǎn)換" DIV AB MOV 79H,A MOV 7AH,B DIS: MOV A, 79H;顯示十位 MOV DPTR, #TAB MOVC A, @A+DPTR MOV DPTR, #0002H MOVX @DPTR, A MOV DPTR, #0001H MOV A, #OF7H MOVX @DPTR, A LCALL DELAY DS2:MOV A, 7AH;顯示個位 MOV DPTR, #TAB MOVC A, @A+DPTR MOV DPTR,#0002H MOVX @DPTR,A MOV DPTR, #0001H MOV A, #OFBH MOVX @DPTR,A RET ;東西方向車流量檢測程序---- T03: MOV A, R3 SUBB A, #0OH;若綠燈倒計時完畢,不再檢測車流量 JZ N3 JB P2.0, T03 INC R7 CJNE R7,#64H,E1 MOV R7,#00H;中斷到100次則清零 El: SJMP N22 ;東西方向車流量顯示程序- T02: MOV B, #OAH MOVA,R7; R7中值二轉(zhuǎn)十顯示轉(zhuǎn)換 DIV AB MOV79H,A MOV 7AH, B DIS3: MOV A, 79H;顯示十位 MOV DPTR, #TAB MOVC A, @A+DPTR MOV DPTR, #0002H MOVX @DPTR,A MOVDPTR, #0001H MOV A, #0F7H MOVX @DPTR,A LCALL DELAY DS4: MOV A, 7AH;顯示個位 MOV DPTR, #TAB MOVC A, @A+DPTR MOV DPTR, #0002H MOVX @DPTR,A MOVDPTR, #0001H MOV A, #OFBH MOVX @DPTR, ALJMP N7 ;延時4MS子程序- DELAY: MOV R1, #0AH L0OP: MOV R6, #64H NOP LOOP1: DJNZ R6, L0OP1 DJNZ R1,LOOP RET ;字符表- TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH END
|