基于AT89C51的十字路口交通灯的设计
AJMP START1
***************************1秒计时程序************************** INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV A,#0B7H LOOP11: LOOP22: LOOP33: LOOP44: LOOP55: ADD MOV MOV ADDC MOV SETB DJNZ MOV
JB DEC MOV CJNE JC MOV MOV LJMP MOV CJNE JC MOV MOV LJMP MOV CJNE JC MOV CPL A,TL0 TL0,A A,#3CH A,TH0 TH0,A TR0 R4, OUTT00 R4,#14H
SNEWFLAG, INT22 TIME A,TIME
A,TIMED1,LOOP11 LOOP22 SN,#66H EW,#55H OUTT0 A,TIME
A,TIMED2,LOOP33 LOOP44 SN,#6AH EW,#59H OUTT0 A,TIME
A,TIMED3,LOOP55 LOOP66 20H,SN 04H
26
基于AT89C51的十字路口交通灯的设计
CPL 00H
MOV SN,20H MOV EW,#59H LJMP OUTT0 LOOP66: MOV A,TIME
CJNE A,TIMED4,LOOP77 LOOP77: JC LOOP88 LOOP88: OUT88: OUTT0: OUTT00: INT22: LOOP111: MOV MOV LJMP MOV JZ MOV CPL CPL MOV MOV CPL MOV LJMP MOV CPL LCALL POP POP SETB RETI DEC MOV CJNE JC MOV MOV LJMP SN,#99H EW,#59H OUTT0 A,TIME OUT88
20H,SN 06H 02H
SN,20H 20H,EW 02H
EW,20H OUTT0 TIME,TIMED0 SNEWFLAG TUNBCD PSW ACC ET0 TIME A,TIME
A,TIMED1,LOOP111 LOOP221 EW,#66H SN,#55H OUTT01
27
基于AT89C51的十字路口交通灯的设计
LOOP221: MOV A,TIME
CJNE A,TIMED2,LOOP331 LOOP331: JC LOOP441 MOV EW,#6AH MOV SN,#59H LJMP OUTT01 LOOP441: MOV A,TIME
LOOP551: LOOP661: LOOP771: LOOP881: OUT881: OUTT01: CJNE A,TIMED3,LOOP551 JC LOOP661 MOV 20H,EW CPL 04H CPL 00H
MOV EW,20H MOV SN,#59H LJMP OUTT01 MOV A,TIME
CJNE A,TIMED4,LOOP771 JC LOOP881 MOV EW,#99H MOV SN,#59H LJMP OUTT01 MOV A,TIME JZ OUT881
MOV 20H,EW CPL 06H CPL 02H
MOV EW,20H MOV 20H,SN CPL 02H
MOV SN,20H LJMP OUTT01 MOV TIME,TIMED0 CPL SNEWFLAG LCALL TUNBCD
28
基于AT89C51的十字路口交通灯的设计
POP PSW
POP ACC SETB ET0 RETI
***************************显示程序**************************** DISPLAY: MOV R1,#70H MOV R5,#0FEH PLAY: MOV A,R5 MOV SCAN,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV LEDOUT,A LOOP6: LCALL DL1MS INC JNB
R1 ACC.2,ENDOUT
MOV A,R5 RL A MOV R5,A MOV LEDOUT,#0FFH
AJMP PLAY ENDOUT: MOV LEDOUT,#0FFH MOV SCAN,#0FFH RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH ******************************延时程序**************************
DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET
DL10MS: MOV R3,#2 GODL1: LCALL DLIMS
29
基于AT89C51的十字路口交通灯的设计
DJNZ R3,GODL1 RET
DL300MS: MOV R0,#12 GOON1: LCALL DL10MS DJNZ R5,GOON1 RET
TUNBCD: PUSH ACC JJ0: JJ1: INT11: PUSH PUSH MOV MOV DIV MOV JNZ MOV MOV MOV DIV MOV JNZ MOV SUBB JNZ MOV MOV POP POP POP RET
PUSH PUSH CLR CLR CLR PSW B
A,TIME B,#100 AB 72H,A JJ0
72H,#0AH A, B
B,#10 AB 71H,A JJ1
A,72H A,#0AH JJ1
71H,#0AH 70H,B B PSW ACC ACC PSW EX1 ET0 TR0
30