|
该汇编语言单片机控制交通灯,适合电子小制作爱好者练习制作用,具有:时间显示,红绿灯提示,警示,夜间模式(黄灯闪烁),东西方向或者 南北方向紧急应急模式。汇编语言单片机控制交通灯正常情况下,若按下P3.2,程序进入夜间模式;若按下P3.3,程序进入紧急应急模式,此时,按下P3.4,东西绿灯亮,南北红灯亮。若按下P3.5,东西红灯亮,南北绿灯亮。若想退出紧急应急模式,按下复位按钮即可。P1口接LED(P1.3,P1.4空着),P2口数码管位选,P0口数码管段选。程序里用了单片机的两个外部中断(INT0,INT1)。该汇编语言单片机控制交通灯功能强,电路简单易制作。下面是汇编语言单片机控制交通灯全部汇编程序,电子小制作爱好者可以仿制。
ORG 0000H
JMP START
ORG 0003H
JMP EXT0
ORG 0013H
JMP EXT1
START:
MOV IE,#10000101B
MOV IP,#00000100B
MOV TCON,#00000000B
MOV SP,#70H
MOV 30H,#09H
MOV 31H,#01H
LOOP1:
MOV P1,#7EH
ACALL LOOP3
DEC 30H
MOV A,30H
CJNE A,#0FFH,LOOP1
MOV 30H,#09H
DEC 31H
MOV A,31H
CJNE A,#0FFH,LOOP1
MOV 31H,#01H
JMP LOOP2
LOOP2:
MOV P1,#0DBH
ACALL LOOP3
DEC 30H
MOV A,30H
CJNE A,#0FFH,LOOP2
MOV 30H,#09H
DEC 31H
MOV A,31H
CJNE A,#0FFH,LOOP2
MOV 31H,#01H
JMP START
LOOP3:
MOV DPTR,#TABLE
MOV R0,#100
LOOP4:
MOV A,30H
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
CLR P2.2
CLR P2.4
CLR P2.6
ACALL DELAY
SETB P2.0
SETB P2.2
SETB P2.4
SETB P2.6
MOV DPTR,#TABLE
MOV A,31H
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
CLR P2.3
CLR P2.5
CLR P2.7
ACALL DELAY
SETB P2.1
SETB P2.3
SETB P2.5
SETB P2.7
DJNZ R0,LOOP4
RET
EXT0:
PUSH ACC
PUSH PSW
MOV P0,#0FFH
MOV P2,#0FFH
MOV P1,#0BDH
ACALL DELAY1
MOV P1,#0FFH
ACALL DELAY1
POP PSW
POP ACC
RETI
EXT1:
PUSH ACC
PUSH PSW
JNB P3.4,LOP1
JNB P3.5,LOP2
MOV P1,#0FFH
ACALL DE
JMP EXT1
LOP1:
ACALL DE
MOV P1,#7EH
JMP EXT1
LOP2:
ACALL DE
MOV P1,#0DBH
JMP EXT1
POP PSW
POP ACC
RETI
DE:
MOV P0,#0FFH
MOV P2,#0FFH
RET
DELAY:
MOV R1,#25
L1:
MOV R2,#100
DJNZ R2,$
DJNZ R1,L1
RET
DELAY1:
MOV R3,#25
L3:
MOV R4,#100
L4:
MOV R5,#100
DJNZ R5,$
DJNZ R4,L4
DJNZ R3,L3
RET
TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
END
|
|