📄 soc080225.asm
字号:
LCALL DELAY1
BIAO20:
SETB SETS
JNB SETS,BIAO21
SJMP BIAO20
BIAO21:
SETB SPK
SETB FMQ
LCALL DSPXS ;;;显示系数
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
MOV R2,#05H
MOV R5,#0FFH
MOV R6,#20H
BIAO22:
SETB ZERO
SETB SETS
JNB SETS,BIAO23
JNB ZERO,BIAO25
DJNZ R5,BIAO22
MOV R5,#0FFH
DJNZ R6,BIAO22
MOV R6,#20H
LCALL SHANSHUO
SJMP BIAO22
BIAO23:
SETB SPK
SETB FMQ
DJNZ R2,BIAO24 ;;;移位
SJMP BIAO26 ;;;设定完成
BIAO24:
LCALL TTOL5 ;;;更新显示
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
MOV R5,#0FFH
MOV R6,#20H
SJMP BIAO22
BIAO25:
SETB SPK
SETB FMQ
LCALL ZENGYI
JNB ZERO,$
LCALL DELAY1
SJMP BIAO24
BIAO26:
LCALL SVXS
MOV DSPL1,#0DH ;;;显示[ END]
MOV DSPL2,#13H ;;;结束标定
MOV DSPL3,#0EH
MOV DSPL4,#15H
MOV DSPL5,#15H
MOV R5,#0FFH
MOV R6,#50H
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
BIAO27:
SETB SETS
JNB SETS,BIAO28 ;;;按下[置零]退出
DJNZ R5,BIAO27
MOV R5,#0FFH
DJNZ R6,BIAO27
MOV R6,#50H ;;;时间到后自动退出
BIAO28:
SETB SPK
SETB FMQ
SETB DDT
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;置零操作:当前质量在置零范围内时,;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;允许清0,否则显示" Err-1"并退出;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ZHILING:
MOV MNDAT1,CQDAT1 ;;;保存修补质量对应的内码
MOV MNDAT2,CQDAT2
MOV CQXS1,#00H
MOV CQXS2,#00H
MOV A,#15H
LCALL DISPLAY5
MOV DSPL1,#00H
JNB DDT,ZL1
MOV DSPL2,#00H
ZL1:
CLR SYMB1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DSPSCAN: ;;;功能说明:设定分度值时,先读取设定值.
MOV R5,#00H
MOV R3,#01H
MOV R6,#00H
MOV R0,#DSPT1
CLR EA
LCALL RDBYTE
SETB EA
MOV A,DSPT1
ANL A,#0FH
CJNE A,#0AH,BIAO04
MOV DSPL1,#00H
MOV DSPL2,#01H
RET
BIAO04:
CJNE A,#05H,BIAO05
MOV DSPL2,#15H
MOV DSPL1,#05H
RET
BIAO05:
CJNE A,#02H,BIAO06
MOV DSPL2,#15H
MOV DSPL1,#02H
RET
BIAO06:
MOV DSPL2,#15H
MOV DSPL1,#01H
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SCALE: ;;;功能说明:标定分度值,保存在x5045的00单元
MOV A,DSPL1
CJNE A,#00H,SCALE1
MOV A,#0AH
JMP SCALE5
SCALE1:
CJNE A,#01H,SCALE2
MOV A,#01H
JMP SCALE5
SCALE2:
CJNE A,#02H,SCALE3
MOV A,#02H
JMP SCALE5
SCALE3:
MOV A,#05H
SCALE5:
MOV DSPT1,A
MOV SCADAT,A ;;;更新当前分度值
MOV R0,#DSPT1 ;;;待写入的数据在RAM中首地址
MOV R3,#01H ;;;写入数据的个数
MOV R5,#00H ;;;A8=0
MOV R6,#00H ;;;存放在x5045中的地址00H
CLR EA
LCALL WRBYTE
SETB EA
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DSPDOT: ;;;功能说明:设定分度值时,先读取设定值.
MOV R5,#00H
MOV R3,#01H
MOV R6,#01H
MOV R0,#DSPT1
CLR EA
LCALL RDBYTE
SETB EA
MOV A,DSPT1
CJNE A,#0AAH,DSPDOT1
SETB DOT
MOV DSPL1,#05H
MOV DSPL2,#0EH ;;;显示YES
MOV DSPL3,#1AH
RET
DSPDOT1:
MOV DSPL1,#12H
MOV DSPL2,#13H ;;;显示no
MOV DSPL3,#15H
CLR DOT
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SVDOT: ;;;功能说明:标定小数位,保存在x5045的00单元
JB DOT,SVDOT1
MOV A,#55H
SJMP SVDOT2
SVDOT1:
MOV A,#0AAH
SVDOT2:
MOV DSPT1,A
MOV DOTDAT,A ;;;更新当前小数点位
MOV R0,#DSPT1 ;;;待写入的数据在RAM中首地址
MOV R3,#01H ;;;写入数据的个数
MOV R5,#00H ;;;A8=0
MOV R6,#01H ;;;存放在x5045中的地址00H
CLR EA
LCALL WRBYTE
SETB EA
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DSPOVL:
MOV A,DOTDAT
CJNE A,#0AAH,DSPOVL1
SETB DOT
SJMP DSPOVL2
DSPOVL1:
CLR DOT
DSPOVL2:
MOV R5,#00H
MOV R3,#02H
MOV R6,#02H
MOV R0,#DSPT1
CLR EA
LCALL RDBYTE
SETB EA
MOV R5,DSPT1
MOV R6,DSPT2
MOV R7,#00H
MOV R1,#DSPT1
LCALL BCD
LCALL TTOL5
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OVLOAD: ;;;功能说明:标定满量程时,将满量程转换为2个字节的重量值保存在02H,03H中
LCALL LTOT5
LCALL TWOBCD
MOV FSDAT1,TEMP1
MOV FSDAT2,TEMP2 ;;;更新满量程设定值
MOV R0,#TEMP1 ;;;待写入的数据在RAM中首地址
MOV R3,#02H ;;;写入数据的个数
MOV R5,#00H ;;;A8=0
MOV R6,#02H ;;;存放在x5045中的地址02H
CLR EA
LCALL WRBYTE
SETB EA
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DSPXS: ;;;功能说明:显示最后一次标定的系数.
MOV R5,#00H
MOV R3,#02H
MOV R6,#04H
MOV R0,#DSPT1
CLR EA
LCALL RDBYTE
SETB EA
MOV R5,DSPT1
MOV R6,DSPT2
MOV R7,#00H
MOV R1,#DSPT1
LCALL BCD
LCALL TTOL5
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SVXS: ;;;功能说明:标定载重时系数,将数据保存在0BH,0CH(内码)中,将标定参数保存在0DH中.
LCALL LTOT5
LCALL TWOBCD
MOV XSDAT1,TEMP1
MOV XSDAT2,TEMP2 ;;;更新当前标定系数
MOV DSPT1,TEMP1
MOV DSPT2,TEMP2
MOV DSPT3,#0AAH
MOV R0,#DSPT1 ;;;待写入的数据在RAM中首地址
MOV R3,#03H ;;;写入数据的个数
MOV R5,#00H ;;;A8=0
MOV R6,#04H ;;;存放在x5045中的地址04H
CLR EA
LCALL WRBYTE
SETB EA
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ZENGYI:
CJNE R2,#05H,ZY1
INC DSPT5
MOV A,DSPT5
MOV B,#0AH
DIV AB
MOV DSPT5,B
MOV DSPL5,DSPT5
RET
ZY1:
CJNE R2,#04H,ZY2
INC DSPT4
MOV A,DSPT4
MOV B,#0AH
DIV AB
MOV DSPT4,B
MOV DSPL4,DSPT4
RET
ZY2:
CJNE R2,#03H,ZY3
INC DSPT3
MOV A,DSPT3
MOV B,#0AH
DIV AB
MOV DSPT3,B
MOV DSPL3,DSPT3
RET
ZY3:
CJNE R2,#02H,ZY4
INC DSPT2
MOV A,DSPT2
MOV B,#0AH
DIV AB
MOV DSPT2,B
MOV DSPL2,DSPT2
RET
ZY4:
INC DSPT1
MOV A,DSPT1
MOV B,#0AH
DIV AB
MOV DSPT1,B
MOV DSPL1,DSPT1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SHANSHUO:
CJNE R2,#05H,SHSH2
MOV A,DSPL5
CJNE A,#15H,SHSH1
MOV DSPL5,DSPT5
RET
SHSH1:
MOV DSPL5,#15H
RET
SHSH2:
CJNE R2,#04H,SHSH4
MOV A,DSPL4
CJ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -