📄 bjsj.asm
字号:
;*********** PRO ***************
ORG 0000H
ECS EQU P1.7
ESO EQU P3.0
ESI EQU P3.3
ESCK EQU P3.1
K1 EQU P3.5 ;SET
K2 EQU P3.4 ;UP
K3 EQU P2.6 ;DOWN
JX EQU 4BH
IX EQU 4CH
;--------------------------------
LJMP FIST
ORG 0003H ;X0 INT
LJMP X0IN
ORG 000BH ;T0 INT
LJMP INT0
FIST: MOV SP,#70H
MOV IE,#00H
MOV P1,#0FFH
;MOV P2,#80H
SETB P2.7
CLR P2.0
CLR P2.1
CLR P2.2
CLR P2.3
CLR P2.4
CLR P2.5
MOV P3,#0FFH
MOV TMOD,#11H
MOV TCON,#00H
MOV IE,#00H
MOV SCON,#00
MOV PCON,#00
MOV 20H,#00H
MOV 22H,#00H
MOV 29H,#00H
MOV 2AH,#00H
MOV 2BH,#00H
MOV 2CH,#00H
MOV 2DH,#00H
MOV 2EH,#00H
MOV 2FH,#00H
LCALL DISP
LCALL PP1XV
MOV TH0,#0D8H
MOV TL0,#0EFH
CLR TF0
SETB TR0
SETB ET0
SETB IT0
;SETB EX0
SETB EA
MOV R2,#10
FTM1: LCALL DELAY
LCALL DELAY
LCALL TCS
DJNZ R2,FTM1
LCALL MRSR
;************MAIN*************
MAIN: LCALL X0IN
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV C,K1
JC MJ1
LCALL DELAY
LCALL DELAY
MOV C,K1
JC MJ1
CLR EX0
MOV 48H,#00
MOV 49H,#00
MOV 4AH,#00
CLR EA
LCALL DI48
MOV 2CH,#00
MOV 2DH,#00
MOV 2EH,#00
MOV 2FH,#00
SETB EA
LCALL DELAY
MJ11: LCALL DELAY
MOV C,K1
JNC MJ11
LCALL PP
MJ1: LJMP MAIN
;*************TCS**********
TCS: CLR ECS
NOP
SETB ECS
RET
;*************PP***************
PP: MOV C,K1
JC PB
LCALL DELAY
MOV C,K1
JC PB
CLR EX0
MOV 49H,#00
MOV 4AH,#00
CLR EA
LCALL DI49
MOV 2EH,#00
MOV 2FH,#00
SETB EA
LCALL DELAY
MJ12: LCALL DELAY
MOV C,K1
JNC MJ12
LJMP PP49
PB: LCALL DELAY
MOV C,K2
JC PC
LCALL PBA1
PC: LCALL DELAY
MOV C,K3
JC PB1
LCALL PC1
PB1: LJMP PP
;-------------PP49--------------
PP49: MOV C,K1
JC PBB
LCALL DELAY
MOV C,K1
JC PBB
CLR EX0
MOV 4AH,#00
CLR EA
LCALL DI4A
SETB EA
LCALL DELAY
MJ13: LCALL DELAY
MOV C,K1
JNC MJ13
LJMP PP4A
PBB: LCALL DELAY
MOV C,K2
JC PCC
LCALL PBA2
PCC: LCALL DELAY
MOV C,K3
JC PBB1
LCALL PC2
PBB1: LJMP PP49
;-------------PP4A--------------
PP4A: MOV C,K1
JC PBBB
LCALL DELAY
MOV C,K1
JC PBBB
LCALL WDS87
;SETB EX0
;LCALL DELAY
MJ14: LCALL DELAY
MOV C,K1
JNC MJ14
RET
PBBB: LCALL DELAY
MOV C,K2
JC PCCC
LCALL PBA3
PCCC: LCALL DELAY
MOV C,K3
JC PBBB1
LCALL PC3
PBBB1: LJMP PP4A
;***********PBA1秒+1) ***********
PBA1: MOV A,48H
ADD A,#01
MOV 48H,A
CLR C
SUBB A,#60
JC FBA1
MOV 48H,#00
FBA1: LCALL DI48
MOV R2,#30
FBA2: LCALL DELAY
MOV C,K2
JNC FBA3
RET
FBA3: DJNZ R2,FBA2
PBA4: MOV R2,#10
PBA5: LCALL DELAY
MOV C,K2
JC PBA6
DJNZ R2,PBA5
LJMP PBA7
PBA6: RET
PBA7: MOV A,48H
ADD A,#01
MOV 48H,A
CLR C
SUBB A,#60
JC PBA8
MOV 48H,#00
PBA8: LCALL DI48
LJMP PBA4
RET
;*******************PC1秒减1*********************
PC1: MOV A,48H
SUBB A,#01
MOV 48H,A
CLR C
SUBB A,#60
JC LI1
MOV 48H,#00
LI1: LCALL DI48
MOV R2,#30
LI2: LCALL DELAY
MOV C,K3
JNC LI3
RET
LI3: DJNZ R2,LI2
LI4: MOV R2,#10
LI5: LCALL DELAY
MOV C,K2
JC LI6
DJNZ R2,PBA5
LJMP LI7
LI6: RET
LI7: MOV A,48H
SUBB A,#01
MOV 48H,A
CLR C
SUBB A,#60
JC LI8
MOV 48H,#00
LI8: LCALL DI48
LJMP LI4
RET
;***********PBA2 (分+1) ***********
PBA2: MOV A,49H
ADD A,#01
MOV 49H,A
CLR C
SUBB A,#60
JC QBA1
MOV 49H,#00
QBA1: LCALL DI49
MOV R2,#30
QBA2: LCALL DELAY
MOV C,K2
JNC QBA3
RET
QBA3: DJNZ R2,QBA2
QBA4: MOV R2,#10
QBA5: LCALL DELAY
MOV C,K2
JC QBA6
DJNZ R2,QBA5
LJMP QBA7
QBA6: RET
QBA7: MOV A,49H
ADD A,#01
MOV 49H,A
CLR C
SUBB A,#60
JC QBA8
MOV 49H,#00
QBA8: LCALL DI49
LJMP QBA4
RET
;****************PC2分减1******************
PC2: MOV A,49H
SUBB A,#01
MOV 49H,A
CLR C
SUBB A,#60
JC LII1
MOV 49H,#00
LII1: LCALL DI49
MOV R2,#30
LII2: LCALL DELAY
MOV C,K3
JNC LII3
RET
LII3: DJNZ R2,LII2
LII4: MOV R2,#10
LII5: LCALL DELAY
MOV C,K3
JC LII6
DJNZ R2,LII5
LJMP LII7
LII6: RET
LII7: MOV A,49H
SUBB A,#01
MOV 49H,A
CLR C
SUBB A,#60
JC LII8
MOV 49H,#00
LII8: LCALL DI49
LJMP LII4
RET
;***********PBA3 (时+1) ***********
PBA3: MOV A,4AH
ADD A,#01
MOV 4AH,A
CLR C
SUBB A,#13
JC SBA1
MOV 4AH,#01
SBA1: LCALL DI4A
MOV R2,#30
SBA2: LCALL DELAY
MOV C,K2
JNC SBA3
RET
SBA3: DJNZ R2,SBA2
SBA4: MOV R2,#10
SBA5: LCALL DELAY
MOV C,K2
JC SBA6
DJNZ R2,SBA5
LJMP SBA7
SBA6: RET
SBA7: MOV A,4AH
ADD A,#01
MOV 4AH,A
CLR C
SUBB A,#13
JC SBA8
MOV 4AH,#01
SBA8: LCALL DI4A
LJMP SBA4
RET
;************PC3时减1******
PC3: MOV A,4AH
SUBB A,#01
MOV 4AH,A
CLR C
SUBB A,#13
JC LCH1
MOV 4AH,#01
LCH1: LCALL DI4A
MOV R2,#30
LCH2: LCALL DELAY
MOV C,K3
JNC LCH3
RET
LCH3: DJNZ R2,LCH2
LCH4: MOV R2,#10
LCH5: LCALL DELAY
MOV C,K3
JC LCH6
DJNZ R2,LCH5
LJMP LCH7
LCH6: RET
LCH7: MOV A,4AH
SUBB A,#01
MOV 4AH,A
CLR C
SUBB A,#13
JC LCH8
MOV 4AH,#01
LCH8: LCALL DI4A
LJMP LCH4
RET
;***********DELAY*********
DELAY: SETB RS0
CLR RS1
MOV R7,#20 ;#50
DL12: MOV R6,#250
DJNZ R6,$
DJNZ R7,DL12 ;10MS ;25MS
CLR RS0
CLR RS1
RET
;*********INT0************
INT0: PUSH PSW
PUSH ACC
CLR EA
CLR TR0
INC 20H
MOV A,20H
CLR C
SUBB A,#8
JC IN2
MOV 20H,#01
IN2: MOV A,20H
DEC A
JZ DISA
DEC A
JZ DISB
DEC A
JZ DISC
DEC A
JZ DISD
DEC A
JZ DISE
DEC A
JZ DISF
DEC A
JZ DISG
DISA: LJMP DIS1
DISB: LJMP DIS2
DISC: LJMP DIS3
DISD: LJMP DIS4
DISE: LJMP DIS5
DISF: LJMP DIS6
;DISG: LJMP DIS7
;============1================
DIS1: ;MOV P2,#0FFH
SETB P2.0
SETB P2.1
SETB P2.2
SETB P2.3
SETB P2.4
SETB P2.5
MOV A,2FH
ORL A,#10000000B
MOV P1,A
CLR P2.2
LJMP DIS8
;============2================
DIS2: ;MOV P2,#0FFH
SETB P2.0
SETB P2.1
SETB P2.2
SETB P2.3
SETB P2.4
SETB P2.5
MOV A,2EH
ORL A,#10000000B
MOV P1,A
CLR P2.1
LJMP DIS8
;============3================
DIS3: ;MOV P2,#0FFH
SETB P2.0
SETB P2.1
SETB P2.2
SETB P2.3
SETB P2.4
SETB P2.5
MOV A,2DH
ORL A,#10000000B
MOV P1,A
CLR P2.5
LJMP DIS8
;============4================
DIS4: ;MOV P2,#0FFH
SETB P2.0
SETB P2.1
SETB P2.2
SETB P2.3
SETB P2.4
SETB P2.5
MOV A,2CH
ORL A,#10000000B
MOV P1,A
CLR P2.0
LJMP DIS8
;============5================
DIS5: ;MOV P2,#0FFH
SETB P2.0
SETB P2.1
SETB P2.2
SETB P2.3
SETB P2.4
SETB P2.5
MOV A,2BH
ORL A,#10000000B
MOV P1,A
CLR P2.4
LJMP DIS8
;============6================
DIS6: ;MOV P2,#0FFH
SETB P2.0
SETB P2.1
SETB P2.2
SETB P2.3
SETB P2.4
SETB P2.5
MOV A,2AH
ORL A,#10000000B
MOV P1,A
CLR P2.3
LJMP DIS8
;============7================
DIS7: ;MOV P2,#0FFH
MOV P1,#00
SETB P1.1
MOV C,10H
MOV P1.3,C
LJMP DIS8
;============================
DIS8: LCALL TCS
MOV TL0,#00H
MOV TH0,#0FBH ;ECH ;5000
CLR TF0
SETB TR0
POP ACC
POP PSW
SETB EA
RETI
;******* DI48 ********
DI48: MOV A,48H
MOV B,#10
DIV AB
MOV 2AH,B
MOV 2BH,A
;--------------------------
CLR EA
MOV A,2AH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 2AH,A
MOV A,2BH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 2BH,A
SETB EA
RET
;******* DI49 ********
DI49: CLR EA
MOV A,49H
MOV B,#10
DIV AB
MOV 2CH,B
MOV 2DH,A
;---------------------------
MOV A,2CH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 2CH,A
MOV A,2DH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 2DH,A
SETB EA
RET
;******* DI4A ********
DI4A: MOV A,4AH
MOV B,#10
DIV AB
MOV 2EH,B
MOV 2FH,A
MOV A,2EH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 2EH,A
MOV A,2FH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 2FH,A
SETB EA
RET
;******* DISP ********
DISP: CLR EA
MOV R0,#07
MOV R1,#29H
LOOP1: MOV A,@R1
MOV DPTR,#TAB
NOP
NOP
MOVC A,@A+DPTR
MOV @R1,A
INC R1
DJNZ R0,LOOP1
SETB EA
RET
TAB: DB 08H,3BH,14H,11H,23H
DB 41H,40H,1BH,00H,01H
DB 00H,01H,02H,04H,08H
DB 10H,20H,40H,80H,0FFH
;*********EREAD*********
EREAD: SETB ESO
MOV R0,#08H
INBYT1: SETB ESCK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR ESCK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,ESO
RLC A
DJNZ R0,INBYT1
RET
;*********EWRITE********
EWRITE: MOV R0,#08H
OUTBYT1: CLR ESCK
RLC A
MOV ESI,C
SETB ESCK
DJNZ R0,OUTBYT1
CLR ESI
RET
;**********ERB**********
ERB: MOV R1,IX
MOV R6,JX
CLR ESCK
CLR ECS
MOV A,DPH
ANL A,#01H
SWAP A
RR A
ORL A,#00000011B
ACALL EWRITE
MOV A,DPL
ACALL EWRITE
ERB1: ACALL EREAD
MOV @R1,A
INC R1
DJNZ R6,ERB1
CLR ESCK
SETB ECS
RET
;***********ERDS*********
ERDS: CLR ESCK
CLR ECS
MOV A,#00000101B
ACALL EWRITE
ACALL EREAD
CLR ESCK
SETB ECS
RET
;**********EWRS*********
EWRS: CLR ESCK
CLR ECS
MOV A,#01H
LCALL EWRITE
MOV A,#00H
LCALL EWRITE
CLR ESCK
SETB ECS
EWRS1: LCALL ERDS
JB ACC.0,EWRS1
RET
;**********PAWR**********
PAWR: MOV R1,IX
MOV R6,JX
CLR ESCK
CLR ECS
MOV A,#00000110B
ACALL EWRITE
SETB ECS
NOP
CLR ECS
MOV A,DPH
ANL A,#01
SWAP A
RR A
ORL A,#00000010B
ACALL EWRITE
MOV A,DPL
ACALL EWRITE
PAWR1: MOV A,@R1
ACALL EWRITE
INC R1
DJNZ R6,PAWR1
CLR ESCK
SETB ECS
PAWR2: LCALL ERDS
JB ACC.0,PAWR2
RET
;**********MRSR**********
MRSR: CLR ESCK
CLR ECS
MOV A,#00000110B
LCALL EWRITE
CLR ESCK
SETB ECS
NOP
CLR ECS
MOV A,#01H
LCALL EWRITE
MOV A,#00H
LCALL EWRITE
CLR ESCK
SETB ECS
EWRW1: LCALL ERDS
JB ACC.0,EWRW1
RET
;***************PP1XV********
PP1XV: CLR EA
CLR P2.7
XAT1: MOV DPTR,#000AH
MOVX A,@DPTR
JBC ACC.7,XAT1
MOV DPTR,#000CH
MOVX A,@DPTR
SETB P2.7
SETB EA
RET
;*********X0IN*******
X0IN: PUSH ACC
PUSH PSW
CLR EA
CPL 10H
CLR P2.7
WAT1: MOV DPTR,#000AH
MOVX A,@DPTR
JBC ACC.7,WAT1
;----------------------------------
MOV DPTR,#00
MOVX A,@DPTR ;SECONDS
MOV R0,A
MOV DPTR,#02
MOVX A,@DPTR ;MINUTES
MOV R1,A
MOV DPTR,#04
MOVX A,@DPTR ;HOUSE
MOV R2,A
MOV DPTR,#06
MOVX A,@DPTR ;DAY OF THE WEEK
MOV R3,A
MOV DPTR,#07
MOVX A,@DPTR ;DAY OF THE MONTH
MOV R4,A
MOV DPTR,#08
MOVX A,@DPTR ;MONTH
MOV R5,A
MOV DPTR,#09
MOVX A,@DPTR ;YEAR
MOV R6,A
MOV DPTR,#000CH
MOVX A,@DPTR
SETB P2.7
;-------------------------
MOV A,R0
MOV B,#10
DIV AB
MOV 2AH,B
MOV 2BH,A
;--------------------------
MOV A,R1
MOV B,#10
DIV AB
MOV 2CH,B
MOV 2DH,A
;---------------------------
;MOV A,R2
;CLR C
;SUBB A,#10001100B
;JNC DDD
;MOV A,R2
;CLR C
;SUBB A,#80H
;MOV R2,A
;DDD: MOV A,R2
MOV A,R2
ANL A #01111111B
MOV B,#10
DIV AB
MOV 2EH,B
MOV 2FH,A
LCALL DISP
;-----------------------------
POP PSW
POP ACC
SETB EA
RET ;I
;*********WRITE DS12C887*******
WDS87: CLR EA
CLR P2.7
MOV A,#10010100B ;#10010111B
MOV DPTR,#000BH
MOVX @DPTR,A
;------------------------------
MOV A,48H
MOV DPTR,#00
MOVX @DPTR,A ;SECONDS
MOV A,49H
MOV DPTR,#02
MOVX @DPTR,A ;MINUTES
MOV A,4AH
MOV DPTR,#04
MOVX @DPTR,A ;HOUSE
;-------------------------------
MOV A,#0A0H
MOV DPTR,#000AH
MOVX @DPTR,A
;-------------------------------
MOV A,#00
MOV DPTR,#000CH
MOVX A,@DPTR
;-------------------------------
MOV A,#00
MOV DPTR,#000DH
MOVX A,@DPTR
JB ACC.7,DS81
LCALL ERR1
DS81: MOV A,#00010100B ;#00010101B
MOV DPTR,#000BH
MOVX @DPTR,A ;STAR THE DS887
SETB P2.7
SETB EA
RET
ERR1: MOV 29H,#1
MOV 2AH,#1
MOV 2BH,#1
MOV 2CH,#1
MOV 2DH,#1
MOV 2EH,#1
MOV 2FH,#1
LCALL DISP
MOV R2,#100
ERR2: LCALL DELAY
LCALL DELAY
LCALL TCS
DJNZ R2,ERR2
RET END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -