level 3
nn1234是我
楼主
MAIN: MOV R0,#20
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV DPTR,#TABLE
SETB EA
SETB ET0
DELAY: MOV R6,#01H
DL0: MOV R5,#61H
K_S BITP1.0;秒表开始控制位
Z_T BIT P1.1 ;秒表暂停控制位
Q_L BIT P1.2 ;秒表清零控制位
F_W BIT P1.3 ;秒表复位控制位
SECOND EQU 30H
TCNT EQU 34H
ORG 0000H
SJMP START
ORG 000BH
LJMP INT_T0
START: MOVDPTR,#TABLE
MOVSECOND,#00H
MOVTCNT,#00H
MOVTMOD,#01H
SETB P1.0
SETB P1.1
SETB P1.2
SETB P1.3
JB K_S,$ ;秒表开始控制位
MOVTH0,#3CH;fosc=12MHz,定时50毫秒
MOVTL0,#0B0H
MOVIE,#82H
SETBTR0
;****************************************************
;对秒表的两位显示进行控制
A1:LCALLDISPLAY
MOVA,SECOND
CJNEA,#99,A1 ;判断是否加到99秒
CLEAR: MOVSECOND,#0
;***********************************************
;定时器中断服务程序,对秒计数
INT_T0:JNB Z_T,ZT ;秒表暂停控制位
NEXT: MOVTH0,#3CH
MOVTL0,#0BH
INCTCNT
MOVA,TCNT
CJNEA,
#20,RETUNE ;计时1秒用#
20
INCSECOND
MOVTCNT,#0
MOVA,SECOND
CJNEA,#99,RETUNE
MOVSECOND,#0
RETUNE:RETI
;******************************************
;显示控制子程序
DISPLAY:
JNB Q_L,CLEAR ;秒表清零控制位
JNB F_W,START ;秒表复位控制位
MOVA,SECOND ;显示秒表的两位
MOVB,#10
DIVAB
CLRP3.6
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
SETBP3.6
MOVA,B
CLRP3.7
MOVCA,@A+DPTR
MOVP2,A ;片选信号
LCALLDELAY
SETBP3.7
ZT: JNB K_S,NEXT ;秒表暂停控制位
RET
TABLE: DB 3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
DELAY:MOVR6,#10
D1:MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
END
2017年12月21日 09点12分
1
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV DPTR,#TABLE
SETB EA
SETB ET0
DELAY: MOV R6,#01H
DL0: MOV R5,#61H
K_S BITP1.0;秒表开始控制位
Z_T BIT P1.1 ;秒表暂停控制位
Q_L BIT P1.2 ;秒表清零控制位
F_W BIT P1.3 ;秒表复位控制位
SECOND EQU 30H
TCNT EQU 34H
ORG 0000H
SJMP START
ORG 000BH
LJMP INT_T0
START: MOVDPTR,#TABLE
MOVSECOND,#00H
MOVTCNT,#00H
MOVTMOD,#01H
SETB P1.0
SETB P1.1
SETB P1.2
SETB P1.3
JB K_S,$ ;秒表开始控制位
MOVTH0,#3CH;fosc=12MHz,定时50毫秒
MOVTL0,#0B0H
MOVIE,#82H
SETBTR0
;****************************************************
;对秒表的两位显示进行控制
A1:LCALLDISPLAY
MOVA,SECOND
CJNEA,#99,A1 ;判断是否加到99秒
CLEAR: MOVSECOND,#0
;***********************************************
;定时器中断服务程序,对秒计数
INT_T0:JNB Z_T,ZT ;秒表暂停控制位
NEXT: MOVTH0,#3CH
MOVTL0,#0BH
INCTCNT
MOVA,TCNT
CJNEA,
#20,RETUNE ;计时1秒用#
20
INCSECOND
MOVTCNT,#0
MOVA,SECOND
CJNEA,#99,RETUNE
MOVSECOND,#0
RETUNE:RETI
;******************************************
;显示控制子程序
DISPLAY:
JNB Q_L,CLEAR ;秒表清零控制位
JNB F_W,START ;秒表复位控制位
MOVA,SECOND ;显示秒表的两位
MOVB,#10
DIVAB
CLRP3.6
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
SETBP3.6
MOVA,B
CLRP3.7
MOVCA,@A+DPTR
MOVP2,A ;片选信号
LCALLDELAY
SETBP3.7
ZT: JNB K_S,NEXT ;秒表暂停控制位
RET
TABLE: DB 3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
DELAY:MOVR6,#10
D1:MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
END