主程序:
ORG0100H
MAIN:MOVSP,#50H
MOVTCON,#05H;定义中断方式
MOV20H,#05H;时间计数单元,A道放行时间
MOV21H,#02H;黄灯亮时间
MOV22H,#05H;B道放行时间
MOV23H,#00H;交通灯转换标示位
MOV24H,#05H;时间欲存区,A道放行时间
MOV25H,#02H;黄灯亮时间
MOV26H,#05H;B道放行时间
MOV27H,#0FFH;特殊情况下转换标示位
MOV28H,#01H;
MOV30H,#05H;显示缓存区
MOV31H,#00H
MOVTMOD,#01H;16位计数器
MOVTH0,#03CH
MOVTL0,#0B0H
MOVIE,#10000111B
SETBTR0;T0启动计数
MOVR2,#13H
MOVP2,#0FFH
ML1:ACALLDISP
MOVA,23H
CJNEA,#00H,X1
SETBP1.2
CLRP1.3
CLRP1.4
CLRP1.5
CLRP1.6
SETBP1.7
X1:CJNEA,#01H,X2
CLRP1.2
SETBP1.3
CLRP1.4
CLRP1.5
SETBP1.6
CLRP1.7
X2:CJNEA,#02H,X3
CLRP1.2
CLRP1.3
SETBP1.4
SETBP1.5
CLRP1.6
CLRP1.7
X3:CJNEA,#03H,X4
CLRP1.2
SETBP1.3
CLRP1.4
CLRP1.5
SETBP1.6
CLRP1.7
X4:JNB2FH.0,ML2
SETBP1.2
CLRP1.3
CLRP1.4
SETBP1.5
CLRP1.6
CLRP1.7
AJMPX4
ML2:JBTR0,ML1
ACALLDISP
MOVA,27H
CJNEA,#00H,X11
SETBP1.2
CLRP1.3
CLRP1.4
CLRP1.5
CLRP1.6
SETBP1.7
X11:CJNEA,#01H,X21
CLRP1.2
SETBP1.3
CLRP1.4
CLRP1.5
SETBP1.6
CLRP1.7
X21:CJNEA,#02H,X31
CLRP1.2
CLRP1.3
SETBP1.4
SETBP1.5
CLRP1.6
CLRP1.7
X31:JBP1.0,M1
M1:MOVC,P1.0;按键消振
JCM2
M2:LCALLDELAY
MOVC,P1.0
JCML10
STOP1:MOVC,P1.0
JNCSTOP1
LCALLDELAY
MOVC,P1.0
JNCSTOP1
MOVR0,#20H
MOVR1,#24H
MOVA,27H;加一
MOV23H,A
CLRC
ADDA,R1
MOVR1,A
CLRC
MOVA,23H
ADDA,R0
MOVR0,A
INC@R1
MOVA,@R1
CJNEA,#100,H1
MOVA,#00H
MOV@R1,A
H1:MOV@R0,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
ACALLDISP
ML10:JBP1.1,M3
M3:MOVC,P1.1;按键消振
JCM4
M4:LCALLDELAY
MOVC,P1.1
JCML2
STOP2:MOVC,P1.1
JNCSTOP2
LCALLDELAY
MOVC,P1.1
JNCSTOP2
MOVR0,#20H
MOVR1,#24H
MOVA,27H;减一
MOV23H,A
CLRC
ADDA,R1
MOVR1,A
CLRC
ADDA,R0
MOVR0,A
DEC@R1
MOVA,@R1
CJNEA,#0FFH,H2
MOVA,#99
MOV@R1,A
H2:MOV@R0,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
ACALLDISP
LJMPML1
DELAY:MOVR4,#14H
DL00:MOVR5,#0FFH
DL11:DJNZR5,DL11
DJNZR4,DL00
RET
T0中断服务程序
*********TIMEPROCESS******
TIME:PUSHACC
PUSHPSW
MOVTH0,#03CH
MOVTL0,#0B0H
DJNZR2,RET0
MOVR2,#13H
MOVA,23H
CJNEA,#00H,L1
MOVA,20H
CLRC
DECA
CJNEA,#0FFH,GO11
MOVA,23H
CLRC
INCA
MOV23H,A
MOVA,24H
MOV20H,A
LJMPL1
GO11:MOV20H,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
LJMPRET0
L1:MOVA,23H
CJNEA,#01H,L2
MOVA,21H
CLRC
DECA
CJNEA,#0FFH,GO12
MOVA,23H
CLRC
INCA
MOV23H,A
MOVA,25H
MOV21H,A
LJMPL2
GO12:MOV21H,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
LJMPRET0
L2:MOVA,23H
CJNEA,#02H,L4
MOVA,22H
CLRC
DECA
CJNEA,#0FFH,GO13
MOVA,23H
CLRC
INCA
MOV23H,A
MOVA,26H
MOV22H,A
LJMPL4
GO13:MOV22H,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
RET0:POPPSW
POPACC
RETI
L4:MOVA,23H
CJNEA,#03H,RET0
MOVA,21H
CLRC
DECA
CJNEA,#0FFH,GO14
MOVA,#00H
MOV23H,A
MOVA,25H
MOV21H,A
LJMPRET0
GO14:MOV21H,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
LJMPRET
外部中断零服务程序
SECTION1:PUSHACC
PUSHPSW
QQQ:MOVC,P3.0;按键消振
JCJJJ
ACALLDELAY
MOVC,P3.0
JCJJJ
STOP3:MOVC,P3.0
JNCSTOP3
ACALLDELAY
MOVC,P3.0
JNCSTOP3
CLRTR0
MOVA,27H
CJNEA,#00H,PPP1
MOVA,#0FFH
MOV27H,A
MOV28H,#01H
SETBTR0
AJMPPP1
PPP1:CJNEA,#02H,PPP
MOV27H,#00H
MOV28H,#01H
AJMPPP1
PPP:INC27H
MOV28H,#01H
PP1:POPPSW
POPACC
RETI
JJJ:MOVC,P3.1;按键消振
JCQQQ
ACALLDELAY
MOVC,P3.1
JCQQQ
STOP4:MOVC,P3.1
JNCSTOP4
ACALLDELAY
MOVC,P3.1
JNCSTOP4
CLRTR0
MOVA,28H
CJNEA,#02H,GGG1
MOVA,#01H
MOV27H,A
MOV28H,A
SETBTR0
LJMPPP1
GGG1:CJNEA,#00H,GGG
MOV27H,#02H
MOV28H,#02H
LJMPPP1
GGG:INC28H
MOV27H,28H
LJMPPP1
分 -->
|