📄 dtsy.asm
字号:
setb card_check
nop
nop
JB CARD_CHECK,CARDIE
nop
nop
setb card_check
nop
nop
JB CARD_CHECK,CARDIE
nop
nop
CARD11: JB CARD_BIT,CARDIE1
nop
nop
CARD10:
MOV R5,#03H
car1: ACALL DL150MS
DJNZ R5,CAR1
MOV LED_BUFF1,#16H ;----]
MOV LED_BUFF2,#10H
MOV LED_BUFF3,#10H
MOV LED_BUFF4,#10H
MOV DISPTIME,#66
clr dispfh
clr poibit
CLR DISPBLK
CLR DISP_BIT
PUSH PSW
MOV PSW,#08H
MOV R5,#03H
car2: ACALL DL150MS
DJNZ R5,CAR2
CLR TLEDBIT
CLR TLEDBIT1
SETB CARD_BIT
MOV R5,#04H
MOV R3,#078H
MOV R2,#00H
MOV R0,#BUFFER_A
LCALL RDCAR
MOV R0,#BUFFER_A
MOV A,@R0
XRL A,#0AAH
JNZ SALCAR
INC R0
MOV A,@R0
XRL A,#0AAH
JNZ CARDE
INC R0
MOV A,@R0
XRL A,#0BBH
JNZ CARDE
INC R0
MOV A,@R0
XRL A,#0CDH
JZ CARCANS
MOV A,@R0
XRL A,#099H
JZ CARTEST
MOV A,@R0
XRL A,#0AAH
JZ CARRST
MOV A,@R0
XRL A,#0BBH
JZ CARHUI
AJMP CARDE
SALCAR:
ACALL SALEPRO
AJMP CARDE
CARCANS: LCALL CLEARR2
AJMP CARDE
CARTEST: LCALL TESTPRO
AJMP CARDE
CARHUI: LCALL HUICARD
AJMP CARDE
CARRST: LCALL RSTPRO
CARDE: NOP
MOV ADDR,#00H
MOV LENGTH,#1AH
MOV RADD1,#MBUY1
lcall CERTIFY
; JNB LESBIT,CARDe1
; CLR LESBIT
; SETB LESTA
; clr jdqerr
carde1: ; ACALL POWEND
SETB CARDISP
CLR DISPH
MOV DSPLOOP,#01H
CARDF: POP PSW
CARDRET: RET
;============
PBCD1: MOV A,@R0
ANL A,#0FH
CJNE A,#0AH,PBCD2
PBCD2: JNC PBCDEND
MOV A,@R0
SWAP A
ANL A,#0FH
CJNE A,#0AH,PBCD3
PBCD3: JNC PBCDEND
INC R0
MOV A,@R0
ANL A,#0FH
CJNE A,#0AH,PBCD4
PBCD4: JNC PBCDEND
MOV A,@R0
SWAP A
ANL A,#0FH
CJNE A,#0AH,PBCD5
PBCD5: JNC PBCDEND
CLR bcderr
RET
PBCDEND: SETB BCDERR
RET
;======================================
HUIXIE: MOV R0,#MIMA1
MOV R3,#7EH
MOV R5,#2H
MOV R2,#00H
LCALL RDCAR
MOV A,MIMA1
XRL A,MFIELD1
JNZ JMPERR1
MOV A,MIMA2
XRL A,MFIELD2
JNZ JMPERR1
MOV R0,#BUFFER_A
MOV R7,#04H
MOV R1,#MUSE1
HUIXIE1: MOV A,@R0
XRL A,@R1
JNZ JMPERR1
INC R0
INC R1
DJNZ R7,HUIXIE1
CLR C
MOV A,BUFFER_E
XRL A,MNO1
JNZ JMPERR1
; MOV A,MLEF1
; ORL A,MLEF2
; JNZ HUIXIE2
; ACALL POW5
;huixieret: RET
HUIXIE2:
jb chaka_bit,huixieret
JNB POWER_BIT,HUIXIE3
CLR POWER_BIT
ACALL POWSTA
huixieret: RET
HUIXIE3:
ACALL POW5
ACALL DL150MS
nop
ACALL PZERO
MOV A,R7
mov resg1,a
MOV R5,#1
MOV R3,#23H
MOV R2,#00H
MOV R0,#resg1
LCALL WRCAR ;小数
ACALL REWRIC1
CLR A
MOV MLEF1,A
MOV MLEF2,A
MOV MNOW1,A
MOV MNOW2,A
MOV RADD1,#MLEF1
MOV LENGTH,#02H
MOV ADDR,#14H
LCALL WRRAM
MOV ADDR,#0AH
MOV LENGTH,#02H
MOV RADD1,#MNOW1
LCALL WRRAM
MOV R7,#0AH
MOV R2,#060H
HUIXIE4: MOV R5,#01H
MOV R0,#MNOW1
ACALL WRITE
DJNZ R7,HUIXIE4
AJMP ERETT1
;===================================
ERRR1: MOV A,MNO1
JZ SALNO1
JMPERR1: AJMP ERR1
salepro: SETB XBIT18
SETB DISP_BIT
SETB DSP30
MOV R0,#BUFFER_A
MOV R7,#04H
MOV R1,#MUSE1
SALNO: MOV A,@R0
XRL A,@R1
JNZ ERRR1
INC R0
INC R1
DJNZ R7,SALNO
; LCALL REWRIC1
SALNO1: MOV R0,#BUFFER_G
MOV R3,#2AH
MOV R5,#2H
MOV R2,#00H
LCALL RDCAR
MOV R0,#BUFFER_E
MOV R3,#68H
MOV R5,#01H
MOV R2,#00H
LCALL RDCAR
MOV A,BUFFER_G
JZ SSSSS
sx12: AJMP HUIXIE
SSSSS: MOV A,BUFFER_H
JnZ Sx12
MOV R0,#BUFFER_G
MOV R3,#28H
MOV R5,#02H
MOV R2,#00H
LCALL RDCAR
ACALL MIMA
JB MIMAFLAG,ERR1
MOV R0,#BUFFER_G
ACALL PBCD1
JB BCDERR,ERR1
MOV ADDR,#00H
MOV LENGTH,#1AH
MOV RADD1,#MBUY1
LCALL CERTIFY
MOV R0,#MIMA1
MOV R3,#7EH
MOV R5,#2H
MOV R2,#00H
LCALL RDCAR
MOV A,MNO1
JNZ SAL01
MOV A,BUFFER_E
XRL A,#01H
JNZ ERR1
MOV A,MBUY1
JNZ SAL01
MOV A,MBUY2
JNZ SAL01
MOV A,MBUY3
JNZ SAL01
MOV R0,#MIMA1
ACALL PBCD1
JB BCDERR,ERR1
MOV R0,#BUFFER_A
ACALL PBCD1
JB BCDERR,ERR1
MOV R0,#BUFFER_C
ACALL PBCD1
JB BCDERR,ERR1
MOV R0,#BUFFER_A
MOV R1,#MUSE1
MOV R7,#07H
SAL00: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R7,SAL00
CLR A
MOV MALL1,A
MOV MALL2,A
MOV MBUY3,A
MOV A,BUFFER_G
MOV MBUY1,A
MOV MLEF1,A
MOV A,BUFFER_H
MOV MBUY2,A
MOV MLEF2,A
MOV MFIELD1,MIMA1
MOV MFIELD2,MIMA2
AJMP SAL4
ERR1:
MOV LED_BUFF1,#00H ;NO
MOV LED_BUFF2,#13H
MOV LED_BUFF3,#11H
MOV LED_BUFF4,#11H
MOV DISPTIME,#66
CLR DISPBLK
CLR XBIT18
RET
SAL01: MOV A,MIMA1
XRL A,MFIELD1
JNZ ERR1
MOV A,MIMA2
XRL A,MFIELD2
JNZ ERR1
MOV R0,#BUFFER_A
MOV R7,#04H
MOV R1,#MUSE1
SAL1: MOV A,@R0
XRL A,@R1
JNZ ERR1
INC R0
INC R1
DJNZ R7,SAL1
CLR C
MOV A,BUFFER_E
SUBB A,#01H
XRL A,MNO1
JNZ ERR1
JSMLEFT: MOV A,MLEF1
ADD A,BUFFER_G
DA A
MOV A,MLEF2
ADDC A,BUFFER_H
DA A
JNC TRAND
JSSM1:
MOV LED_BUFF1,#12H ;FULL
MOV LED_BUFF2,#12H
MOV LED_BUFF3,#17H
MOV LED_BUFF4,#0FH
MOV DISPTIME,#66
CLR DISPBLK
mov mnow1,buffer_G
mov mnow2,buffer_H
setb sal_bit
CLR XBIT18
RET
TRAND:
MOV A,MLEF1
ADD A,BUFFER_G
DA A
MOV MLEF1,A
MOV A,MLEF2
ADDC A,BUFFER_H
DA A
MOV MLEF2,A
MOV A,MNO1
ADD A,#01H
MOV MNO1,A
MOV A,BUFFER_G
MOV MNOW1,A
MOV A,BUFFER_H
MOV MNOW2,A
MOV A,MBUY1
ADD A,MNOW1
DA A
MOV MBUY1,A
MOV A,MBUY2
ADDC A,MNOW2
DA A
MOV MBUY2,A
MOV A,MBUY3
ADDC A,#00H
DA A
MOV MBUY3,A
SAL4:
MOV R0,#BUFFER_A
MOV R3,#75H
MOV R5,#3H
MOV R2,#00H
LCALL RDCAR
MOV A,BUFFER_A
JNZ SAL5
MOV R0,#BUFFER_B
ACALL PBCD1
JB BCDERR,ERR12
MOV A,BUFFER_B
CJNE A,MLOAD1,SAL41
MOV A,BUFFER_C
CJNE A,MLOAD2,SAL41
AJMP SAL5
SAL41: MOV A,BUFFER_B
MOV MLOAD1,A
MOV A,BUFFER_C
MOV MLOAD2,A
CLR A
MOV HLOAD1,A
MOV HLOAD2,A
SAL5:
; MOV R0,#BUFFER_A
; MOV R3,#65H
; MOV R5,#03H
; MOV R2,#00H
; LCALL RDCAR
; MOV A,BUFFER_A
; JNZ SAL7
; MOV R0,#BUFFER_B
; ACALL PBCD1
; JB BCDERR,ERR12
; MOV A,BUFFER_B
; MOV MALP1,A
; MOV A,BUFFER_C
; MOV MALP2,A
MOV MALP1,#00H
MOV MALP2,#00H
SAL7: jb xbit18,et13
ERR12: MOV ADDR,#00H
MOV LENGTH,#1AH
MOV RADD1,#MBUY1
LCALL CERTIFY
AJMP ERR1
et13:
ACALL REWRIC
MOV rADD1,#mbuy1
MOV LENGTH,#1AH
MOV ADDr,#00h
LCALL WRRAM
MOV BUFFER_A,#00H
MOV R7,#0AH
MOV R2,#060H
ET14: MOV R5,#01H
MOV R0,#BUFFER_A
ACALL WRITE
DJNZ R7,ET14
lcall powend
mov chaka_time,#160
setb chaka_bit
CLR POWER_BIT
ERETT1:
MOV LED_BUFF1,#14H ;END
MOV LED_BUFF2,#18H
MOV LED_BUFF3,#0EH
MOV LED_BUFF4,#11H
MOV DISPTIME,#66
CLR DISPBLK
SETB SAL_BIT
CLR XBIT18
RET
;=================
MIMA:
MOV A,BUFFER_E
ANL A,#7FH
RL A
MOV B,A
MOV DPTR,#MTABLE
MOVC A,@A+DPTR
XRL A,#0AAH
MOV MIMA2,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR
XRL A,#0AAH
MOV MIMA1,A
MOV A,BUFFER_G
XRL MIMA2,A
MOV A,BUFFER_C
XRL MIMA1,A
MOV R0,#RESG1
MOV R3,#70H
MOV R5,#2H
MOV R2,#00H
LCALL RDCAR
MOV A,MIMA1
XRL A,RESG1
SETB MIMAFLAG
JNZ MIRET
MOV A,MIMA2
XRL A,RESG2
JNZ MIRET
CLR MIMAFLAG
SMIMA:
MOV A,BUFFER_E
ANL A,#7FH
RL A
MOV B,A
MOV DPTR,#TABLE_2
MOVC A,@A+DPTR
MOV MIMA2,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR
MOV MIMA1,A
MOV A,BUFFER_H
XRL MIMA2,A
MOV A,BUFFER_B
XRL MIMA1,A
MOV R0,#RESG1
MOV R3,#72H
MOV R5,#2H
MOV R2,#00H
LCALL RDCAR
MOV A,MIMA2
XRL A,RESG1
SETB MIMAFLAG
JNZ MIRET
MOV A,MIMA1
XRL A,RESG2
JNZ MIRET
CLR MIMAFLAG
MIRET: RET
;==============
REWRIC: LCALL WATDOG
MOV BUFFER_A,#0FFH
MOV BUFFER_B,#0FFH
MOV R5,#2
MOV R3,#2AH
MOV R2,#00H
MOV R0,#BUFFER_A
LCALL WRCAR
MOV R5,#1
MOV R3,#65H
MOV R2,#00H
MOV R0,#BUFFER_A
LCALL WRCAR
MOV R5,#1
MOV R3,#75H
MOV R2,#00H
MOV R0,#BUFFER_A
LCALL WRCAR
MOV R5,#2
MOV R3,#24H
MOV R2,#00H
MOV R0,#MNOW1
LCALL WRCAR
MOV R5,#2
MOV R3,#66H
MOV R2,#00H
MOV R0,#MALP1
LCALL WRCAR
RET
;
REWRIC1: LCALL WATDOG
MOV R5,#2
MOV R3,#24H
MOV R2,#00H
MOV R0,#MLEF1
LCALL WRCAR
MOV A,MALL2
MOV MIMA1,A
MOV A,MALL1
MOV MIMA2,A
MOV R5,#2
MOV R3,#30H
MOV R2,#00H
MOV R0,#MIMA1
LCALL WRCAR
MOV R5,#1
MOV R3,#11H
MOV R2,#00H
MOV R0,#MBUY3
LCALL WRCAR
MOV R5,#2
MOV R3,#12H
MOV R2,#00H
MOV R0,#MBUY1
LCALL WRCAR
MOV R5,#2
MOV R3,#54H
MOV R2,#00H
MOV R0,#HLOAD1
LCALL WRCAR
RET
;===================================
HUICARD:
MOV R7,#00H
mov r2,#00h
HUICARD1: MOV A,R7
MOV B,#07H
MUL AB
ADD A,#86H
MOV R3,A
MOV R1,A
MOV A,B
ADDC A,#00H
RL A
ANL A,#0EH
MOV R2,A
MOV R4,A
MOV R5,#01H
MOV R0,#BUFFER_A
LCALL RDCAR
MOV A,BUFFER_A
XRL A,#0AAH
JNZ HUI1
lcall watdog
INC R7
MOV A,R7
XRL A,#250
JNZ HUICARD1
HUIFULL:
MOV LED_BUFF1,#12H
MOV LED_BUFF2,#12H
MOV LED_BUFF3,#17H
MOV LED_BUFF4,#0FH
MOV DISPTIME,#66
CLR DISPBLK
lJMP HUIZUU
HUI1: MOV A,R1
CLR C
SUBB A,#06H
MOV R3,A
MOV A,R4
RR A
SUBB A,#00H
RL A
ANL A,#0EH
MOV R2,A
MOV R5,#4
MOV R0,#MUSE1
LCALL WRCAR
MOV R5,#2
MOV R0,#MALL1
LCALL WRCAR
MOV R5,#1
MOV R0,#BUFFER_A
MOV @R0,#0AAH
LCALL WRCAR
HUIZUU:
MOV LED_BUFF1,#00H ;CAO
MOV LED_BUFF2,#0AH
MOV LED_BUFF3,#0CH
MOV LED_BUFF4,#11H
MOV DISPTIME,#66
CLR DISPBLK
RET
;===================================
RSTPRO:
MOV ADDR,#00H
MOV LENGTH,#1AH
MOV RADD1,#mbuy1
LCALL CERTIFY
JB RAMERR,CLEARR2
MOV R0,#MFIELD1
LCALL PBCD1
JB BCDERR,CLEARR2
MOV R0,#MLEF1
LCALL PBCD1
JB BCDERR,CLEARR2
MOV R5,#02H
MOV R3,#07EH
MOV R0,#BUFFER_A
MOV R2,#00H
LCALL RDCAR
MOV A,BUFFER_A
XRL A,MFIELD1
JNZ RSTRET2
MOV A,BUFFER_B
XRL A,MFIELD2
JNZ RSTRET2
CLEARR2:
CLR RAMERR
CLR XBIT1B
MOV R0,#FLAG2
MOV R5,#60
MOV A,#0
WRRAM0: MOV @R0,A
INC R0
DJNZ R5,WRRAM0
MOV POWST1,#012H
MOV POWST2,#034H
MOV MLOAD1,#80H ;MLOAD1
MOV MLOAD2,#08H
MOV MALP1,#00H ;MALP1
MOV rADD1,#mbuy1
MOV LENGTH,#1AH
MOV ADDr,#00h
LCALL WRRAM
MOV R5,#0AH
MOV R2,#60H
MOV R0,#MBUY1
LCALL write
LCALL POWEND
RSTRET: MOV TLED,#04H
SETB TLEDBIT
CLR TLEDBIT1
RSTRET1: RET
RSTRET2: MOV A,MFIELD1
XRL A,#00H
JNZ TERET
MOV A,MFIELD2
XRL A,#00H
JNZ TERET
lJMP CLEARR2
;*******************************
TESTPRO: NOP
MOV ADDR,#00H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -