89C51单片机交通灯程序
扫描二维码
随时随地手机看文章
1设计任务
( 按下时依次红灯全亮,同时数码管显示15S的到计时;东西绿灯亮,南北红灯亮,同时数码管显示30S的到计时;计闪次数8次。。。。。。。。。。。。)
2汇编程序
MIAOEQU 30H
ORG 0000H
LJMP START
ORG 000BH
LJMP INTET0
START: LACALL JS1
MOV P1,#0F6H;点亮四个红灯
MOV P3,#0DEH
LCALLDE15S ;延时15S
LLL: MOV P1,#0DBH ;东西绿灯亮,南北红灯亮
MOV P3,#0DEH
LCALLDE30S ;延时30S
MOV P1,#0FFH ;东西绿灯灭,南北红灯亮
MOV P3,#0DEH
MOV R1,#08H; 计闪次数8次
DDD: MOV P1,#0EDH ; 东西黄灯亮,南北红灯亮
MOV P3,#0DEH
ACALL DE02S
MOV P1,#0FFH ; 东西黄灯灭,南北红灯亮
DE6S: MOV R5,#60 ;延时6S
SJMP DE1
DE02S: MOV R5,#02H ; 延时0.2S
DE1: MOV R6,#200
DE2: MOV R7,#126
DE3: DJNZ R7,DE3
DJNZ R6,DE2
DJNZ R5,DE1
RET
JS1: MOV TMOD,#01H ; 50MS定时常数
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R0,#20 ; 1S定时常数
SETB EA
SETB ET0
RET
DE30S: MOV MIAO,#00H
NEXT: MOV A,MIAO
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
LCALL DELY1S
INC MIAO
MOV A,MIAO
DEC MIAO
MOVA,MIAO
CJNE A,#30,NEXT
LJMP DE30S
DE15S: MOV MIAO,#00H
NEXT: MOV A,MIAO
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
LCALL DELY1S
INC MIAO
MOV A,MIAO
DEC MIAO
MOVA,MIAO
CJNE A,#15,NEXT
LJMP DE15S
DELY1S: MOV R5,#100
D2: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,D2
RET
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END