📄 soc080225.asm
字号:
SETB BDB ;;;摆动标志,存在递增或递减时BDB=1.
RET
PXCPRR2:
CLR BDB
RET
PXCPRL: ;;;识别左边是否递减
MOV A,ADMIN ;;;识别左边
CLR C
SUBB A,#06H
MOV R1,A
INC A
INC A
MOV R0,A
MOV R2,#02H
SJMP PXCPRR1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;; int0 interrupt ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTRR0:
PUSH ACC
PUSH PSW
SETB RS1
CLR RS0
MOV R0,#ADCD3
MOV R2,#03H
LCALL RD7799
MOV DATD1,ADCD2
MOV DATD2,ADCD3
SETB ADEN
POP PSW
POP ACC
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;; tt0 interrupt ;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTT0:
PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
CLR SPK
MOV TH0,#0FCH
MOV TL0,#17H
LCALL DISPLAY ;;;显示
LCALL FMQCTR
SETB TR0
POP PSW
POP ACC
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
READKEY: ;;;功能说明:按键识别
CLR TDB
CLR GJB
SETB ZERO
SETB SETS
MOV R5,#0FFH
MOV R6,#0FFH
MOV R7,#0AH
JNB ZERO,RKEY1
JNB SETS,RKEY5
RET
RKEY1:
SETB SPK ;;;开蜂鸣器
SETB FMQ
RKEY01:
SETB ZERO
JB ZERO,RKEY3 ;;;按键释放后有效
DJNZ R5,RKEY2
MOV R5,#0FFH
DJNZ R6,RKEY2
MOV R6,#0FFH
DJNZ R7,RKEY2
MOV R7,#0AH
SETB TDB
SJMP RKEY4
RKEY2:
SJMP RKEY01
RKEY3:
JB TDB,RKEY4
LCALL ZHILING ;;;调用置零操作
RET
RKEY4:
LCALL BIAODING ;;;标定
RET
RKEY5:
SETB SPK
SETB FMQ ;;;开蜂鸣器
RKEY05:
SETB SETS
JB SETS,RKEY7
DJNZ R5,RKEY6
MOV R5,#0FFH
DJNZ R6,RKEY6
MOV R6,#0FFH
DJNZ R7,RKEY6
MOV R7,#0AH
SETB GJB
SJMP RKEY7
RKEY6:
SJMP RKEY05
RKEY7:
JNB GJB,RKEY8
CLR NET1 ;;;软件关机
RKEY8:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY: ;;;功能说明:显示扫描.R2初始值为00H,COM初始值为01H
sjmp dsp0
mov p2,#01h
mov p0,#0fh
ret
dsp0:
MOV P0,#0FFH ;;;黑屏显示
CJNE R2,#07H,DSP1
MOV R2,#00H ;;;判断起始点
MOV CON,#01H
DSP1:
MOV A,CON
MOV P2,A ;;;送位码
MOV A,#DSPL1
ADD A,R2
MOV R0,A
MOV A,@R0
MOV DPTR,#SEGTAB
MOVC A,@A+DPTR
CJNE R2,#01H,DSP2 ;;;
JNB DDT,DSP2 ;;;小数点控制标志
JNB DOT,DSP2 ;;;小于等于1t时显示小数点
ORL A,#80H ;;;显示小数点
DSP2:
MOV P0,A ;;;送段码
INC R2 ;;;修正显示位
CLR C
MOV A,CON ;;;修正位控制
RLC A
MOV CON,A
RET
SEGTAB:
DB 3FH,06H,5BH,4FH,66H,6DH ;;;0,1,2,3,4,5 (0-5)
DB 7DH,07H,7FH,6FH,77H,7CH ;;;6,7,8,9,A,b (6-B)
DB 58H,5EH,79H,71H,76H,38H ;;;C,d,E,F,H,L (C-11)
DB 5CH,54H,73H,00H,40H,7FH ;;;o,n,P,BANK,-,8 (12-17)
DB 50H,04H,01H,6EH,78H,3DH ;;;r,i,_,y,t,G (18-1D)
DB 1CH ;;;u (1E)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
FMQCTR: ;;;功能说明:控制蜂鸣器熄灭.
JNB FMQ,FMQC1 ;;;判断蜂鸣器开否?
DJNZ R3,FMQC1
CLR SPK
CLR FMQ
MOV R3,#20H
FMQC1:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;标定设置:先输入密码,再设定分度值,置0范围;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;0跟踪范围,超载重量,空载重量,加载重量等;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BIAODING:
CLR DDT
MOV DSPL1,#15H ;;;第一步设定.
MOV DSPL2,#15H ;;;显示[SEL ]
MOV DSPL3,#11H
MOV DSPL4,#0EH
MOV DSPL5,#05H
BIAO1:
SETB SETS
JNB SETS,BIAO2
SJMP BIAO1 ;;;按下[置零]进入下一步
BIAO2:
SETB SPK
SETB FMQ
LCALL DSPSCAN ;;;显示[d **]最近设定的分度值
MOV DSPL5,#0DH
MOV DSPL4,#15H
MOV DSPL3,#15H
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
BIAO3:
SETB SETS
SETB ZERO
JNB ZERO,BIAO4 ;;;按下[置零],修改分度值
JNB SETS,BIAO8 ;;;按下[开关],进入下一步
SJMP BIAO3
BIAO4:
SETB SPK
SETB FMQ
MOV A,DSPL1
CJNE A,#00H,BIAO5
MOV DSPL1,#01H
MOV DSPL2,#15H
SETB ZERO
BIAOD5:
JNB ZERO,$
LCALL DELAY1
LCALL DELAY1
SJMP BIAO3
BIAO5:
CJNE A,#01H,BIAO6
MOV DSPL1,#02H
MOV DSPL2,#15H
SJMP BIAOD5
BIAO6:
CJNE A,#02H,BIAO7
MOV DSPL1,#05H
MOV DSPL2,#15H
SJMP BIAOD5
BIAO7:
MOV DSPL1,#00H
MOV DSPL2,#01H
SJMP BIAOD5
BIAO8:
SETB SPK
SETB FMQ
LCALL SCALE ;;;保存分度值在5045中
MOV DSPL1,#15H ;;;设定小数点有无.
MOV DSPL2,#15H
MOV DSPL3,#15H ;;;显示[C ***]
MOV DSPL4,#15H
MOV DSPL5,#0CH
LCALL DSPDOT
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
BIAO9:
SETB ZERO
SETB SETS
JNB ZERO,BIAO10
JNB SETS,BIAO12
SJMP BIAO9
BIAO10:
SETB SPK
SETB FMQ
JNB DOT,BIAO11
MOV DSPL1,#12H
MOV DSPL2,#13H ;;;显示no
MOV DSPL3,#15H
CLR DOT
BIAOD10:
JNB ZERO,$
LCALL DELAY1
LCALL DELAY1
SJMP BIAO9
BIAO11:
SETB DOT
MOV DSPL1,#05H
MOV DSPL2,#0EH ;;;显示YES
MOV DSPL3,#1BH
SJMP BIAOD10
BIAO12:
SETB SPK
SETB FMQ
LCALL SVDOT
MOV DSPL1,#11H ;;;开始满量程设定
MOV DSPL2,#11H
MOV DSPL3,#1EH ;;;[FuLL ]
MOV DSPL4,#0FH
MOV DSPL5,#15H
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
BIAO13:
SETB SETS
JNB SETS,BIAO14
SJMP BIAO13
BIAO14:
SETB SPK
SETB FMQ
SETB DDT
LCALL DSPOVL ;;;满量程显示
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
MOV R2,#05H
MOV R5,#0FFH
MOV R6,#20H
BIAO15:
SETB ZERO
SETB SETS
JNB SETS,BIAO16
JNB ZERO,BIAO18
DJNZ R5,BIAO15
MOV R5,#0FFH
DJNZ R6,BIAO15
MOV R6,#20H
LCALL SHANSHUO
SJMP BIAO15
BIAO16:
SETB SPK
SETB FMQ
DJNZ R2,BIAO17
SJMP BIAO19 ;;;设定完成
BIAO17:
LCALL TTOL5 ;;;更新显示
MOV R5,#0FFH
MOV R6,#20H
JNB SETS,$
LCALL DELAY1
LCALL DELAY1
SJMP BIAO15
BIAO18:
SETB SPK
SETB FMQ
LCALL ZENGYI
JNB ZERO,$
LCALL DELAY1
SJMP BIAO17
BIAO19:
LCALL OVLOAD ;;;保存满量程
MOV DSPL1,#0DH ;;;显示[ LOAD]
MOV DSPL2,#0AH ;;;修正系数
MOV DSPL3,#12H
MOV DSPL4,#11H
MOV DSPL5,#15H
JNB SETS,$
LCALL DELAY1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -