📄 test.txt
字号:
JMP RE16
RE15:
RL HT24_ADDR
JMP RE12
RE16:
SET PBC.2
SET SCL
RE17:
SZ SDA
JMP RE17
MOV A, 08H ;读出8位数据
MOV HT24_LOOP, A
RE18:
CLR SCL
NOP
NOP
nop
nop
nop
nop
SET SCL
NOP
SZ SDA
JMP RE19
CLR HT24_RWDATA.0
JMP RE20
RE19:
SET HT24_RWDATA.0
RE20:
DEC HT24_LOOP
SZ HT24_LOOP
JMP RE21
JMP RE22
RE21:
;SET SCL
RL HT24_RWDATA
JMP RE18
RE22:
NOP
NOP
;CLR SCL
CLR PBC.2
CLR SDA
;NOP
;SET SCL
NOP
SET SDA
RET
READ ENDP
;**********************************
; 读24中的参数
READ_PARAMENTS PROC
MOV A, 08H ;显示4个8
MOV BCD_DATA4, A
MOV A, 08H
MOV BCD_DATA3, A
MOV A, 08H
MOV BCD_DATA2, A
MOV A, 08H
MOV BCD_DATA1, A
CALL DISPLAY
;SZ FLAG6 ;读24标志
;JMP CHECK0
MOV A, 00H ;读24中零点值
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV ZERO_L, A
CALL LONG_DELAY
MOV A, 01H
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV ZERO_H, A
CALL LONG_DELAY
MOV A, 0DH ;读最小称量数
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV D_MINWEIGHT, A
CALL LONG_DELAY
MOV A, 4eH ;读最小锁定称量数
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV min_lock, A
CALL LONG_DELAY
MOV A, 48H ;读自动追零设定值
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV AUTOTOZEROVALUE, A
CALL LONG_DELAY
MOV A, 02H ;读24中校准点值
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV CALDOT1L, A
CALL LONG_DELAY
MOV A, 03H
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV CALDOT1H, A
CALL LONG_DELAY
MOV A, 012H ;读校准点常数
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV CALCONST1L, A
CALL LONG_DELAY
MOV A, 013H
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV CALCONST1H, A
CALL LONG_DELAY
MOV A, 40H ;读零点稳定设定值
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV ZEROSTABLEVALUE, A
CALL LONG_DELAY
clr wdt
MOV A, 41H ;读开机归零时间 设定值
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV ToZeroTime, A
CALL LONG_DELAY
MOV A, 4CH ;读称重待机时间 设定值
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV AutoOffTime, A
CALL LONG_DELAY
MOV A, 46H ;读归零范围 设定值 (重量值)
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV ToZeroRang, A
CALL LONG_DELAY
MOV A, 4BH ;读称重 重量变化范围 设定值
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV AutoOffRange, A
CALL LONG_DELAY
MOV A, 0AH ;读 最大称重 低位 设定值 (重量值)
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV D_MAXWEIGHTL, A
CALL LONG_DELAY
MOV A, 0BH ;读 最大称重 高位 设定值 (重量值)
MOV HT24_ADDR1, A
CALL READ
MOV A, HT24_RWDATA
MOV D_MAXWEIGHTH, A
CALL LONG_DELAY
;SET FLAG6
READ_PARAMENTS ENDP
;************************************************************************
; 入口参数: BCD_NEIMAH, BCD_NEIMAL
; 出口参数: BCD_DATA4, BCD_DATA3, BCD_DATA2, BCD_DATA1
;显示高4位
BCDE PROC
CLR BCD_RAM0
CLR BCD_RAM1
CLR BCD_RAM2
MOV A, 10H
MOV COUNT, A
BB0:
CLR C
RLC BCD_NEIMAL
RLC BCD_NEIMAH
MOV A, BCD_RAM0
ADC A, BCD_RAM0
DAA BCD_RAM0
MOV A, BCD_RAM1
ADC A, BCD_RAM1
DAA BCD_RAM1
MOV A, BCD_RAM2
ADC A, BCD_RAM2
DAA BCD_RAM2
SDZ COUNT
JMP BB0
MOV A, 0F0H
AND A, BCD_RAM0
SWAP ACC
MOV BCD_DATA1, A
MOV A, 0FH
AND A, BCD_RAM1
MOV BCD_DATA2, A
MOV A, 0F0H
AND A, BCD_RAM1
SWAP ACC
MOV BCD_DATA3, A
MOV A, 0FH
AND A, BCD_RAM2
MOV BCD_DATA4, A
RET
BCDE ENDP
;*********************************************************
; 入口参数: BCD_NEIMAH, BCD_NEIMAL
; 出口参数: BCD_DATA4, BCD_DATA3, BCD_DATA2, BCD_DATA1
;显示低4位
BCD1 PROC
CLR BCD_RAM0
CLR BCD_RAM1
CLR BCD_RAM2
MOV A, 10H
MOV COUNT, A
BB1:
CLR C
RLC BCD_NEIMAL
RLC BCD_NEIMAH
MOV A, BCD_RAM0
ADC A, BCD_RAM0
DAA BCD_RAM0
MOV A, BCD_RAM1
ADC A, BCD_RAM1
DAA BCD_RAM1
MOV A, BCD_RAM2
ADC A, BCD_RAM2
DAA BCD_RAM2
SDZ COUNT
JMP BB1
MOV A, 0FH
AND A, BCD_RAM0
MOV BCD_DATA1, A
MOV A, 0F0H
AND A, BCD_RAM0
SWAP ACC
MOV BCD_DATA2, A
MOV A, 0FH
AND A, BCD_RAM1
MOV BCD_DATA3, A
MOV A, 0F0H
AND A, BCD_RAM1
SWAP ACC
MOV BCD_DATA4, A
RET
BCD1 ENDP
;*********************************************************
;*******************************************************************
;*******************************************************************
; 入口参数: BCD_DATA4, BCD_DATA3, BCD_DATA2, BCD_DATA1
DISPLAY PROC
SZ BCD_DATA4 ;高位是零不显示
JMP DD0
MOV A, 20H
MOV BCD_DATA4, A
SZ BCD_DATA3
JMP DD0
MOV A, 20H
MOV BCD_DATA3, A
;SZ BCD_DATA2
;JMP DD0
;MOV A, 20H
;MOV BCD_DATA2, A
DD0:
MOV A, BCD_DATA1 ;查表得显示短码
MOV TBLP, A
TABRDL TAB_DATA1
MOV A, BCD_DATA2
MOV TBLP, A
TABRDL TAB_DATA2
MOV A, BCD_DATA3
MOV TBLP, A
TABRDL TAB_DATA3
MOV A, BCD_DATA4
MOV TBLP, A
TABRDL TAB_DATA4
SET BP.0
MOV A, TAB_DATA1
AND A, 0F0H
SWAP ACC
MOV ZHAN_CHUN, A
MOV A, 04BH ;49H
MOV MP1, A
MOV A,ZHAN_CHUN
MOV R1, A
MOV A, TAB_DATA1
MOV ZHAN_CHUN, A
MOV A, 04AH
MOV MP1, A
MOV A, ZHAN_CHUN
MOV R1, A
MOV A, TAB_DATA2
AND A, 0F0H
SWAP ACC
MOV ZHAN_CHUN, A
MOV A, 049H
MOV MP1, A
MOV A,ZHAN_CHUN
MOV R1, A
MOV A, TAB_DATA2
MOV ZHAN_CHUN, A
MOV A, 048H
MOV MP1, A
MOV A, ZHAN_CHUN
MOV R1, A
MOV A, TAB_DATA3
AND A, 0F0H
SWAP ACC
MOV ZHAN_CHUN, A
MOV A, 047H
MOV MP1, A
MOV A,ZHAN_CHUN
MOV R1, A
MOV A, TAB_DATA3
MOV ZHAN_CHUN, A
MOV A, 046H
MOV MP1, A
MOV A, ZHAN_CHUN
MOV R1, A
MOV A, TAB_DATA4
AND A, 0F0H
SWAP ACC
MOV ZHAN_CHUN, A
MOV A, 045H
MOV MP1, A
MOV A,ZHAN_CHUN
MOV R1, A
MOV A, TAB_DATA4
MOV ZHAN_CHUN, A
MOV A, 044H
MOV MP1, A
MOV A, ZHAN_CHUN
MOV R1, A
;jmp pinbi
SZ FLAG3 ; FLAG3 = 1 显示小数点、KG、LB
JMP DD4
MOV A, 49H ;47H
MOV MP1, A
CLR R1.0 ;不显示小数点 KG LB
MOV A, 41H
MOV MP1, A
CLR R1.3
CLR R1.2
JMP DD1
DD4:
MOV A, 49H ; 显示小数点、KG 或 LB
MOV MP1, A
SET R1.0
SZ FLAG4 ; FLAG4 = 1 显示 LB
JMP DD2
JMP DD3 ; FLAG4 = 0 显示 KG
DD2:
MOV A, 41H
MOV MP1, A
SET R1.2
CLR R1.3
JMP DD1
DD3:
MOV A, 41H
MOV MP1, A
SET R1.3
CLR R1.2
JMP DD1
pinbi:
DD1:
CLR BP
RET
DISPLAY ENDP
;*************************************************************************
;*********************************************************
;入口参数: CMP—H, CMP_L CMP1_H, CMP1_L
;出口参数: 二者相减的绝对值: CMP_H, CMP_L
JUE_DUI_ZHI PROC
MOV A, CMP1_H ;比较 CMP1, CMP 大小
SUB A, CMP_H
SZ C
JMP JU1
JMP CMP_DA
JU1:
SZ ACC
JMP CMP1_DA
MOV A, CMP1_L
SUB A, CMP_L
SZ C
JMP CMP1_DA
JMP CMP_DA
CMP1_DA:
MOV A, CMP1_L ;差值保存在CMP1
SUB A, CMP_L
SZ C
JMP JU2
DEC CMP1_H
MOV A, 0FFH
SUB A, CMP_L
INC ACC
ADDM A, CMP1_L
JMP JU3
JU2:
MOV CMP1_L, A
JU3:
MOV A, CMP1_H
SUB A, CMP_H
MOV CMP1_H, A
MOV A, CMP1_H ;差值保存在 CMP
MOV CMP_H, A
MOV A, CMP1_L
MOV CMP_L, A
RET
CMP_DA: ;差值保存在 CMP
MOV A, CMP_L
SUB A, CMP1_L
SZ C
JMP JU4
DEC CMP_H
MOV A, 0FFH
SUB A, CMP1_L
INC ACC
ADDM A, CMP_L
JMP JU5
JU4:
MOV CMP_L, A
JU5:
MOV A, CMP_H
SUB A, CMP1_H
MOV CMP_H, A
RET
JUE_DUI_ZHI ENDP
;***********************************************************
;32 BIT / 16 BIT
;(DIV_B4, DIV_B3, DIV_B2, DIV_B1) / (DIVH, DIVL)
; = (DIV_S4, DIV_S3, DIV_S2, DIV_S1) + (DIV_Y4, DIV_Y3, DIV_Y2, DIV_Y1)
DIV PROC
CLR DIV_S1
CLR DIV_S2
CLR DIV_S3
CLR DIV_S4
CLR DIV_Y1
CLR DIV_Y2
CLR DIV_Y3
CLR DIV_Y4
MOV A, 20H
MOV COUNT, A
DDD0:
RLC DIV_B1
RLC DIV_B2
RLC DIV_B3
RLC DIV_B4
RLC DIV_Y1
RLC DIV_Y2
RLC DIV_Y3
RLC DIV_Y4
SZ DIV_Y3
JMP DDD1
MOV A, DIV_Y2
SUB A, DIVH
SZ C
JMP DDD2
JMP DDD3
DDD2:
SZ ACC
JMP DDD1
MOV A, DIV_Y1
SUB A, DIVL
SZ C
JMP DDD1
JMP DDD3
DDD3:
CLR DIV_S1.0
DDD13:
SDZ COUNT
JMP DDD4
JMP DDD14
DDD4:
RLC DIV_S1
RLC DIV_S2
RLC DIV_S3
RLC DIV_S4
JMP DDD0
DDD1:
SET DIV_S1.0
MOV A, DIV_Y1
SUB A, DIVL
SZ C
JMP DDD5
JMP DDD6
DDD5:
MOV DIV_Y1, A
DDD7:
MOV A, DIV_Y2
SUB A, DIVH
SZ C
JMP DDD9
JMP DDD8
DDD9:
MOV DIV_Y2, A
JMP DDD13
DDD8:
DEC DIV_Y3
MOV A, 0FFH
SUB A, DIVH
INC ACC
ADDM A, DIV_Y2
JMP DDD13
DDD6:
SZ DIV_Y2
JMP DDD10
JMP DDD11
DDD10:
DEC DIV_Y2
DDD12:
MOV A, 0FFH
SUB A, DIVL
INC ACC
ADDM A, DIV_Y1
JMP DDD7
DDD11:
DEC DIV_Y3
MOV A, 0FFH
MOV DIV_Y2, A
JMP DDD12
DDD14: ;四舍五入
CLR C
RLC DIV_Y1
RLC DIV_Y2
MOV A, DIVH
SUB A, DIV_Y2
SZ C
JMP DDD15
INC DIV_S1
RET
DDD15:
SZ ACC
RET
MOV A, DIVL
SUB A, DIV_Y1
SZ C
RET
INC DIV_S1
RET
DIV ENDP
;*************************************************************************
;16 BIT * 16 BIT = 32 BIT
; (DIV_B4, DIV_B3) * (DIV_B2, DIV_B1)
; = MUL_RAM4, MUL_RAM3, MUL_RAM2, MUL_RAM1
MUL PROC
CLR MUL_RAM1
CLR MUL_RAM2
CLR MUL_RAM3
CLR MUL_RAM4
CLR MUL_RAM5
CLR MUL_RAM6
MOV A, 10H
MOV COUNT, A
MM0:
SZ DIV_B1.0
JMP MM1
MM2:
SDZ COUNT
JMP MM3
RET
MM3:
RRC DIV_B2
RRC DIV_B1
CLR C
RLC DIV_B3
RLC DIV_B4
RLC MUL_RAM5
RLC MUL_RAM6
JMP MM0
MM1:
MOV A, DIV_B3
ADDM A, MUL_RAM1
MOV A, DIV_B4
ADCM A, MUL_RAM2
MOV A, MUL_RAM5
ADCM A, MUL_RAM3
MOV A, MUL_RAM6
ADCM A, MUL_RAM4
JMP MM2
MUL ENDP
;*************************************************************************
SHORT_DELAY PROC ;256us
MOV A, 0FFH
MOV DELAY_LOOP1, A
DE0:
SDZ DELAY_LOOP1
JMP DE0
RET
SHORT_DELAY ENDP
;*******************************************************************
LONG_DELAY PROC ;7.68ms
;MOV ACC_RAM, A
;MOV A, STATUS
;MOV STATUS_RAM, A
MOV A, 0FFH
MOV DELAY_LOOP1, A
MOV A, 01EH
MOV DELAY_LOOP2, A
DE1:
SDZ DELAY_LOOP1
JMP DE1
MOV A, 0FFH
MOV DELAY_LOOP1, A
SDZ DELAY_LOOP2
JMP DE1
;MOV A, STATUS_RAM
;MOV STATUS, A
;MOV A, ACC_RAM
RET
LONG_DELAY ENDP
;*************************************************************************
; ORG 0700H
; 0 1 2 3 4 5 6 7 8 9
;TAB: DC 07DH, 060H, 03EH, 07AH, 063H, 05BH, 05FH, 70H, 07FH, 07BH
; E P A S S O U E r
; DC 1FH, 0ECH, 0EEH, 0DAH, 0DAH, 7DH, 6DH, 1FH, 07H
;*************************************************************************
ORG 0700H
; 0 1 2 3 4 5 6 7 8 9
TAB: DC 0ebH, 060H, 0c7H, 0e5H, 06cH, 0adH, 0afH, 0e0H, 0efH, 0edH
; E P A S S O U E r
DC 8FH, 0CEH, 0EEH, 0ADH, 0ADH, 0EBH, 6BH, 8FH, 0EH
;*************************************************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -