📄 traffic.txt
字号:
; ----------文件信息-------------
; 文 件 名: 交通灯.ASM
; 创 建 人: 王 斌
; 创 建 单 位:郑州铁路职业技术学院——无线电协会
; 最后修改日期: 2007年6月4日
; 描 述: 主干道放行25s;支干道放行15s;中间过渡5s
; 连 接 方 法: 1、P0口接段控,P2口接位控,P1.0~P1.5依次为:主干道红黄绿,次干道红黄绿
; 2、P3.2,P3.3,P3.7都为脉冲式按键,P3.2为紧急情况;P3.3为主干道亮绿灯;P3.7为取消按键
ORG 0000H
LJMP START
ORG 0003H
LJMP INT_0 ;外中断0
ORG 000BH
LJMP T_0 ;定时中断0
ORG 0013H
LJMP INT_1 ;外中断1
INT_0: MOV P1,#0F6H ;红灯全亮
MOV P2,#0FFH ;数码管不显
JB P3.7,$
RETI
INT_1: MOV P1,#0DEH ;主干道绿灯亮,支干道红灯亮
MOV P2,#0FFH ;数码管不显
JB P3.7,$
RETI
T_0: MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R2,LOOP
MOV R2,#20 ;重新赋值
MOV P1,R3
DJNZ R7,L2
MOV A,20H
CJNE A,#01H,L1
MOV 20H,#02H
MOV R7,#05H ;主干道延时5S
MOV R3,#0EEH ;主干道黄灯亮,支干道红灯亮
MOV P1,R3
LJMP L2
L1: MOV R7,#20 ;主干道延时20S
MOV R3,#0F3H ;主干道红灯亮,支干道绿灯亮
MOV P1,R3
L2: DJNZ R6,LOOP
MOV A,21H
CJNE A,#01H,L3
MOV 21H,#02H
MOV R6,#15 ;支干道延时15S
MOV R3,#0F3H ;主干道红灯亮,支干道绿灯亮
MOV P1,R3
LJMP LOOP
L3: CJNE A,#02H,L1_1
MOV R6,#5 ;支干道延时5S
MOV R3,#0F5H ;主干道红灯亮,支干道黄灯亮
MOV P1,R3
MOV 21H,#03H
LJMP LOOP
L1_1: MOV R6,#30 ;到此说明一圈循环已完,给所有寄存器重新赋值
MOV R7,#25
MOV R3,#0DEH
MOV P1,R3
MOV 20H,#01H
MOV 21H,#01H
LOOP: RETI
ORG 0100H
START: MOV R2,#20 ;定时器溢出寄存器
MOV R6,#30 ;支干道初值寄存器
MOV R7,#25 ;主干道初值寄存器
MOV R3,#0DEH ;红绿灯设置寄存器,主干道绿灯亮,支干道红灯亮
MOV 20H,#01H ;主干道标志寄存器
MOV 21H,#01H ;次干道标志寄存器
MOV TMOD,#01H ;定时器方式0
MOV TH0,#3CH ;定时器初始化
MOV TL0,#0B0H
MOV IE,#87H ;外中断0,外中断1,定时中断0开启
SETB TR0 ;定时0开启
SETB IT0 ;触发方式:边沿触发
SETB IT1
; 支干道数码显示
SCAN: MOV DPTR,#TAB
MOV A,R6
MOV B, #10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0FEH
LCALL DEL_1MS
MOV A, B
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0FDH
LCALL DEL_1MS
; 主干道数码显示
MOV A,R7
MOV B, #10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#0BFH
LCALL DEL_1MS
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
MOV P2,#07FH
LCALL DEL_1MS
AJMP SCAN
SJMP $
DEL_1MS:MOV 24H,#64H ;1MS的延迟时间
L8: MOV 25H,#05H
DJNZ 25H,$
DJNZ 24H,L8
RET
TAB: DB 3FH,06H,5BH,4FH,66H ;段码
DB 6DH,7DH,07H,7FH,6FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -