📄 h2_3.asm
字号:
CJNE A,#STOREMARK,CP11_0
MOV DPTR,#Z10_1
CALL BYTRD_VERIFY
MOV TEMP5,A
MOV DPTR,#Z10_2
CALL BYTRD_VERIFY
MOV TEMP6,A
MOV DPTR,#Z10_3
CALL BYTRD_VERIFY
MOV TEMP7,A
MOV DPTR,#Z10_4
CALL BYTRD_VERIFY
MOV TEMP8,A
CLR C
MOV A,R7
SUBB A,TEMP8
MOV TEMP8,A
MOV A,R6
SUBB A,TEMP7
MOV TEMP7,A
MOV A,R1
SUBB A,TEMP6
MOV TEMP6,A
MOV A,R0
SUBB A,TEMP5
MOV TEMP5,A ;(TEMP5~8)=[(CODER CURRENT VAULE)-Z0]-Z10
JNC CP12
CP11_0: MOV DPTR,#A10_H
CALL BYTRD_VERIFY
MOV R6,A
MOV DPTR,#A10_L
CALL BYTRD_VERIFY
MOV R7,A
MOV DPTR,#A9_HEIGHT_H
CALL BYTRD_VERIFY
PUSH ACC
MOV DPTR,#A9_HEIGHT_L
CALL BYTRD_VERIFY
PUSH ACC
MOV R2,TEMP1
MOV R3,TEMP2
MOV R4,TEMP3
MOV R5,TEMP4
CALL CPX
POP ACC
ADD A,R5
MOV HEIGHT_L,A
POP ACC
ADDC A,R4
MOV HEIGHT_H,A
RET
CP12: MOV DPTR,#Z12_M
CALL BYTRD_VERIFY
CJNE A,#STOREMARK,CP12_0
MOV DPTR,#Z11_1
CALL BYTRD_VERIFY
MOV TEMP1,A
MOV DPTR,#Z11_2
CALL BYTRD_VERIFY
MOV TEMP2,A
MOV DPTR,#Z11_3
CALL BYTRD_VERIFY
MOV TEMP3,A
MOV DPTR,#Z11_4
CALL BYTRD_VERIFY
MOV TEMP4,A
CLR C
MOV A,R7
SUBB A,TEMP4
MOV TEMP4,A
MOV A,R6
SUBB A,TEMP3
MOV TEMP3,A
MOV A,R1
SUBB A,TEMP2
MOV TEMP2,A
MOV A,R0
SUBB A,TEMP1
MOV TEMP1,A ;(TEMP1~4)=[(CODER CURRENT VAULE)-Z0]-Z11
JNC CP13
CP12_0: MOV DPTR,#A11_H
CALL BYTRD_VERIFY
MOV R6,A
MOV DPTR,#A11_L
CALL BYTRD_VERIFY
MOV R7,A
MOV DPTR,#A10_HEIGHT_H
CALL BYTRD_VERIFY
PUSH ACC
MOV DPTR,#A10_HEIGHT_L
CALL BYTRD_VERIFY
PUSH ACC
MOV R2,TEMP5
MOV R3,TEMP6
MOV R4,TEMP7
MOV R5,TEMP8
CALL CPX
POP ACC
ADD A,R5
MOV HEIGHT_L,A
POP ACC
ADDC A,R4
MOV HEIGHT_H,A
RET
CP13: MOV DPTR,#Z13_M
CALL BYTRD_VERIFY
CJNE A,#STOREMARK,CP13_0
MOV DPTR,#Z12_1
CALL BYTRD_VERIFY
MOV TEMP5,A
MOV DPTR,#Z12_2
CALL BYTRD_VERIFY
MOV TEMP6,A
MOV DPTR,#Z12_3
CALL BYTRD_VERIFY
MOV TEMP7,A
MOV DPTR,#Z12_4
CALL BYTRD_VERIFY
MOV TEMP8,A
CLR C
MOV A,R7
SUBB A,TEMP8
MOV TEMP8,A
MOV A,R6
SUBB A,TEMP7
MOV TEMP7,A
MOV A,R1
SUBB A,TEMP6
MOV TEMP6,A
MOV A,R0
SUBB A,TEMP5
MOV TEMP5,A ;(TEMP5~8)=[(CODER CURRENT VAULE)-Z0]-Z12
JNC CP14
CP13_0: MOV DPTR,#A12_H
CALL BYTRD_VERIFY
MOV R6,A
MOV DPTR,#A12_L
CALL BYTRD_VERIFY
MOV R7,A
MOV DPTR,#A11_HEIGHT_H
CALL BYTRD_VERIFY
PUSH ACC
MOV DPTR,#A11_HEIGHT_L
CALL BYTRD_VERIFY
PUSH ACC
MOV R2,TEMP1
MOV R3,TEMP2
MOV R4,TEMP3
MOV R5,TEMP4
CALL CPX
POP ACC
ADD A,R5
MOV HEIGHT_L,A
POP ACC
ADDC A,R4
MOV HEIGHT_H,A
RET
CP14: MOV DPTR,#Z14_M
CALL BYTRD_VERIFY
CJNE A,#STOREMARK,CP14_0
MOV DPTR,#Z13_1
CALL BYTRD_VERIFY
MOV TEMP1,A
MOV DPTR,#Z13_2
CALL BYTRD_VERIFY
MOV TEMP2,A
MOV DPTR,#Z13_3
CALL BYTRD_VERIFY
MOV TEMP3,A
MOV DPTR,#Z13_4
CALL BYTRD_VERIFY
MOV TEMP4,A
CLR C
MOV A,R7
SUBB A,TEMP4
MOV TEMP4,A
MOV A,R6
SUBB A,TEMP3
MOV TEMP3,A
MOV A,R1
SUBB A,TEMP2
MOV TEMP2,A
MOV A,R0
SUBB A,TEMP1
MOV TEMP1,A ;(TEMP1~4)=[(CODER CURRENT VAULE)-Z0]-Z13
JNC CP15
CP14_0: MOV DPTR,#A13_H
CALL BYTRD_VERIFY
MOV R6,A
MOV DPTR,#A13_L
CALL BYTRD_VERIFY
MOV R7,A
MOV DPTR,#A12_HEIGHT_H
CALL BYTRD_VERIFY
PUSH ACC
MOV DPTR,#A12_HEIGHT_L
CALL BYTRD_VERIFY
PUSH ACC
MOV R2,TEMP5
MOV R3,TEMP6
MOV R4,TEMP7
MOV R5,TEMP8
CALL CPX
POP ACC
ADD A,R5
MOV HEIGHT_L,A
POP ACC
ADDC A,R4
MOV HEIGHT_H,A
RET
CP15: MOV DPTR,#Z15_M
CALL BYTRD_VERIFY
CJNE A,#STOREMARK,CP15_0
MOV DPTR,#Z14_1
CALL BYTRD_VERIFY
MOV TEMP5,A
MOV DPTR,#Z14_2
CALL BYTRD_VERIFY
MOV TEMP6,A
MOV DPTR,#Z14_3
CALL BYTRD_VERIFY
MOV TEMP7,A
MOV DPTR,#Z14_4
CALL BYTRD_VERIFY
MOV TEMP8,A
CLR C
MOV A,R7
SUBB A,TEMP8
MOV TEMP8,A
MOV A,R6
SUBB A,TEMP7
MOV TEMP7,A
MOV A,R1
SUBB A,TEMP6
MOV TEMP6,A
MOV A,R0
SUBB A,TEMP5
MOV TEMP5,A ;(TEMP5~8)=[(CODER CURRENT VAULE)-Z0]-Z14
JNC CP16
CP15_0: MOV DPTR,#A14_H
CALL BYTRD_VERIFY
MOV R6,A
MOV DPTR,#A14_L
CALL BYTRD_VERIFY
MOV R7,A
MOV DPTR,#A13_HEIGHT_H
CALL BYTRD_VERIFY
PUSH ACC
MOV DPTR,#A13_HEIGHT_L
CALL BYTRD_VERIFY
PUSH ACC
MOV R2,TEMP1
MOV R3,TEMP2
MOV R4,TEMP3
MOV R5,TEMP4
CALL CPX
POP ACC
ADD A,R5
MOV HEIGHT_L,A
POP ACC
ADDC A,R4
MOV HEIGHT_H,A
RET
CP16: MOV DPTR,#A15_H
CALL BYTRD_VERIFY
MOV R6,A
MOV DPTR,#A15_L
CALL BYTRD_VERIFY
MOV R7,A
MOV DPTR,#A14_HEIGHT_H
CALL BYTRD_VERIFY
PUSH ACC
MOV DPTR,#A14_HEIGHT_L
CALL BYTRD_VERIFY
PUSH ACC
MOV R2,TEMP5
MOV R3,TEMP6
MOV R4,TEMP7
MOV R5,TEMP8
CALL CPX
POP ACC
ADD A,R5
MOV HEIGHT_L,A
POP ACC
ADDC A,R4
MOV HEIGHT_H,A
RET
;-----------------------------------------------------------------------------------------
CPX: CLR C
MOV A,R7
SUBB A,#A_MIN
MOV A,R6
SUBB A,#0
JNC CPX0
MOV R6,#0
MOV R7,#A_MIN
CPX0: MOV B,#6 ;R2R3R4R5*64
CLR C
CPX1: MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
DJNZ B,CPX1
CALL DIV32_16
CALL ROUND
RET
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;HEIGHT MONITOR 重量零点
HEIGHTMONITOR:
JNB SIGN,HEI1
SETB ALM_P1
RET
HEI1:MOV DPTR,#LP1_M
CALL BYTRD_VERIFY
CJNE A,#STOREMARK,HMR0_0 ;下限
MOV DPTR,#LP1_H
CALL BYTRD_VERIFY
MOV R0,A
MOV DPTR,#LP1_L
CALL BYTRD_VERIFY
MOV R1,A
MOV R2,#0
MOV R3,AR0
MOV R4,AR1
CALL BCDBIN
MOV R0,AR6
MOV R1,AR7
CLR C
MOV A,HEIGHT_L
SUBB A,R1
MOV A,HEIGHT_H
SUBB A,R0
JC HMR0_0
CLR ALM_P1
JMP HMR1
HMR0_0: SETB ALM_P1
HMR1: MOV DPTR,#LP2_M ;上限
CALL BYTRD_VERIFY
CJNE A,#STOREMARK,HMR1_0
MOV DPTR,#LP2_H
CALL BYTRD_VERIFY
MOV R0,A
MOV DPTR,#LP2_L
CALL BYTRD_VERIFY
MOV R1,A
MOV R2,#0
MOV R3,AR0
MOV R4,AR1
CALL BCDBIN
MOV R0,AR6
MOV R1,AR7
CLR C
MOV A,HEIGHT_L
SUBB A,R1
MOV A,HEIGHT_H
SUBB A,R0
JNC HMR1_0
CLR ALM_P2
JMP HMR2
HMR1_0: SETB ALM_P2
HMR2: RET
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;TWINKLE BIT
TWINK1: DJNZ TWINBIT1CNT,TWK1OUT
MOV TWINBIT1CNT,#TWINKLEINTVL1
CPL TWINBIT1
TWK1OUT: RET
TWINK2: MOV A,TWINBIT2CNT1
JZ TWK2_0
SETB TWINBIT2
DJNZ TWINBIT2CNT1,TWK2OUT
MOV TWINBIT2CNT2,#TWINBIT2OFF
TWK2_0: CLR TWINBIT2
DJNZ TWINBIT2CNT2,TWK2OUT
MOV TWINBIT2CNT1,#TWINBIT2ON
TWK2OUT: RET
TWINK3: MOV A,TWINBIT3CNT1
JZ TWK3_0
SETB TWINBIT3
DJNZ TWINBIT3CNT1,TWK3OUT
MOV TWINBIT3CNT2,#TWINBIT3OFF
TWK3_0: CLR TWINBIT3
DJNZ TWINBIT3CNT2,TWK3OUT
MOV TWINBIT3CNT1,#TWINBIT3ON
TWK3OUT: RET
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;SOUND_LIGHT ALARM AND OUTPUT CONTORL声光设置和控制
ALARM: MOV A,#OUTMOD
MOV C,ACC.0
MOV OUTMOD_M,C
JC AM0_0
MOV C,ALM_P1
MOV OUT_P1,C
MOV C,ALM_P2
MOV OUT_P2,C
JMP AM0_1
AM0_0:MOV C,ALM_P1
CPL C
MOV OUT_P1,C
MOV C,ALM_P2
CPL C
MOV OUT_P2,C
AM0_1:MOV C,ALM_P1
ORL C,ALM_P2
JC AM1
JNB ALMSODEN,AM0
CLR BUZR
CLR LED_ALM_P1
CLR LED_ALM_P2
CLR ALMSODEN
AM0: RET
AM1: SETB ALMSODEN
JNB ALM_P1,AM2
MOV C,TWINBIT3
MOV LED_ALM_P1,C
ANL C,/LP1_BUZR_OK
MOV BUZR,C
AM2: JNB ALM_P2,AMOUT
MOV C,TWINBIT3
MOV LED_ALM_P2,C
ANL C,/LP8_BUZR_OK
MOV BUZR,C
AMOUT: RET
ALARM1:JNB ZS_EN1,ALA_1
MOV C,ALM_SH
MOV OUT_SH,C
MOV C,ALM_JI
MOV OUT_JI,C
MOV C,ALM_SH
MOV LED_SH,C
MOV C,ALM_JI
MOV LED_JI,C
RET
ALA_1: JNB OK_Y,ALA_2
CLR C
MOV OUT_JI,C
MOV LED_JI,C
RET
ALA_2: JNB OK_X,ALA_3
CLR C
MOV OUT_SH,C
MOV LED_SH,C
ALA_3:RET
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SEQADJ: MOV C,RIGHTKEY ;利用中断监控RIGHTKEY,LEFTKEY按键时间
ORL C,LEFTKEY
JC SA0
CLR SEQADJ_EN
MOV SHIFTDLYCNT,#SHIFTDLY*2
RET
SA0: DJNZ SHIFTDLYCNT,SAOUT
SETB SEQADJ_EN
MOV SHIFTDLYCNT,#SHIFTDLY*2
SAOUT: RET
;-----------------------------------------------------------------------------------------
KEYMONITOR:
JB DESKTOP,KMOUT ;如当前菜单处于顶层则直接退出KEYMONITOR
MOV C,FUN
ORL C,LEFTKEY
ORL C,ENT
ORL C,RIGHTKEY
ORL C,ESC
JC KM1 ;判断是否有键按下
DJNZ KMTCNT1,KMOUT ;利用中断产生长时间延时,通过改变参数KMT1,KMT2达到改变延时时间目的
MOV KMTCNT1,#KMT
DJNZ KMTCNT2,KMOUT
SETB DESKTOP
KM1: MOV KMTCNT1,#KMT
MOV KMTCNT2,#20
KMOUT: RET
;-----------------------------------------------------------------------------------------
LP1_BUZR_DLY:
JB ALM_P1,LP1BD0
MOV LP1_BUZRCNT1,#LP1_BUZRTIM
MOV LP1_BUZRCNT2,#20
CLR LP1_BUZR_OK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -