📄 kr.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ytypsl2:
inc ypslcunchu
mov a,ypslcunchu
cjne a,#01h,ytypsl21
call bjdjhoutui
nop
nop
call ys1s
nop
nop
call bjdjqianjin2
nop
nop
call jbgxjaaa ;调搅拌杆下降子程序
clr jzbz ;不再进行静止时间延时
setb jbbz
mov s600hl,#00h ;静止时间为0
mov s600hh,#00h
mov s300hl,#2ch
mov s300hh,#01h
setb lt1jsbz ;置量筒1结束后的计数标志
setb rhsjbz ;乳化时间标志位置位
call rhsjxianshi ;显示乳化时间
jmp vfzhfh
ytypsl21:
call lt2lse ;调量筒2蓝色,清lt2bz
; call qidonglse ;结束后清启动标志
setb lt2jsbz ;置量筒2结束后的计数标志
jmp vfzhfh
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ytypsl3:
inc ypslcunchu
mov a,ypslcunchu
cjne a,#01h,ytypsl31
call bjdjhoutui
nop
nop
call ys1s
nop
nop
call bjdjqianjin2
nop
nop
call jbgxjaaa ;调搅拌杆下降子程序
clr jzbz ;不再进行静止时间延时
setb jbbz
mov s600hl,#00h ;静止时间为0
mov s600hh,#00h
mov s300hl,#2ch
mov s300hh,#01h
setb lt1jsbz ;置量筒1结束后的计数标志
setb rhsjbz ;乳化时间标志位置位
call rhsjxianshi ;显示乳化时间
jmp vfzhfh
ytypsl31: cjne a,#02h,ytypsl32
call bjdjhoutui
call ys1s
call bjdjqianjin3
call jbgxjaaa ;调搅拌杆下降子程序
clr jzbz
setb jbbz
mov s600hl,#00h ;静止时间为0
mov s600hh,#00h
mov s300hl,#2ch
mov s300hh,#01h
setb lt2jsbz ;置量筒2结束后的计数标志
jmp vfzhfh
ytypsl32:
call lt3lse ;调量筒3蓝色,清lt3bz
; call qidonglse ;结束后清启动标志
setb lt3jsbz ;置量筒3结束后的计数标志
jmp vfzhfh
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ytypsl4: inc ypslcunchu
mov a,ypslcunchu
cjne a,#01h,ytypsl41
call bjdjhoutui
nop
nop
call ys1s
nop
nop
call bjdjqianjin2
nop
nop
call jbgxjaaa ;调搅拌杆下降子程序
clr jzbz ;不再进行静止时间延时
setb jbbz
mov s600hl,#00h ;静止时间为0
mov s600hh,#00h
mov s300hl,#2ch
mov s300hh,#01h
setb lt1jsbz ;置量筒1结束后的计数标志
setb rhsjbz ;乳化时间标志位置位
call rhsjxianshi ;显示乳化时间
jmp vfzhfh
ytypsl41: cjne a,#02h,ytypsl42
call bjdjhoutui
call ys1s
call bjdjqianjin3
call jbgxjaaa ;调搅拌杆下降子程序
clr jzbz
setb jbbz
mov s600hl,#00h ;静止时间为0
mov s600hh,#00h
mov s300hl,#2ch
mov s300hh,#01h
setb lt2jsbz ;置量筒2结束后的计数标志
jmp vfzhfh
ytypsl42: cjne a,#03h,ytypsl43
call bjdjhoutui
call jbgxjaaa
clr jzbz
setb jbbz
mov s600hl,#00h ;静止时间为0
mov s600hh,#00h
mov s300hl,#2ch
mov s300hh,#01h
setb lt3jsbz ;置量筒3结束后的计数标志
jmp vfzhfh
ytypsl43:
; call lt4lse ;调量筒4蓝色,清lt4bz
; call qidonglse ;结束后清启动标志
setb lt4jsbz ;置量筒4结束后的计数标志
jmp vfzhfh
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VFZH1:
MOV R4,T0JSZH ;R2R3R4R5/5
MOV R5,T0JSZL ;这里应该是计数值先*10再/系数50
MOV R6,#0 ;这里就直接计数值/5了
MOV R7,#5
MOV R2,#0
MOV R3,#0
CLR OV
CALL DIVD ;出口在R2R3中 ,到这里数值依然是16进制
JB OV,vfzh223;VFZHFH1FH ;结果有溢出,被除数小于除数中断返回
MOV SCWDZHH,WDZHH ;16进制温度值转存
MOV SCWDZHL,WDZHL
MOV WDZHH,R2 ;
MOV WDZHL,R3 ;将16进制的温度值转存
MOV R6,WDZHH
MOV R7,WDZHL
MOV R3,#0
MOV R4,#0
MOV R5,#0
CALL HB2
MOV WDZBH,R4
MOV WDZBL,R5 ;将温度值的BCD码保存,备用
mov a,T0JSZH
CLR C
SUBB A,#20H
JC VFZH111
CALL OPEN ;显示开路
JMP VFZH2
VFZH111: CLR C
mov a,T0JSZH
CJNE A,#00,VFZH112
MOV A,T0JSZL
CJNE A,#00,VFZH112
CALL CLOSE ;显示短路
JMP VFZH2
VFZH112: CLR C
CALL WDXANSHI ;调温度显示子程序 #######################
vfzh223: JMP VFZH2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;PID控温子程序需定义RAM SDWDHH SDWDHL WDZHL WDZHH BCPCHL BCPCHH SCPCHH SCPCHL
; BLXS WFXS PCWFH PCWFL WFCSL WFCSH BLCSL BLCSH ZSJCSH ZSJCSL
; POUTH POUTL
; 标志位 BLPCFH SCBLPCFH WFPCFH
PDJS: JB WD54BZ,PDJS1
JB WD82BZ,PDJS2
RET
PDJS1: MOV SDWDHH,#02H ;540 ,带一位小数
MOV SDWDHL,#1CH
JMP PDJS3
PDJS2: MOV SDWDHH,#03H ;820 ,带一位小数
MOV SDWDHL,#34H
PDJS3: ;计算e(t) 值
CLR C
MOV A,SDWDHL
MOV R7,WDZHL
SUBB A,R7
MOV BCPCHL,A ;存本次偏差低8位
MOV A,SDWDHH
MOV R7,WDZHH
SUBB A,R7
MOV BCPCHH,A ;存本次偏差高8位
JC BOOLL2
CLR BLPCFH ;清比例偏差符号
BOOLL3: JB BLPCFH,JSSZ3 ;符号位为0表示正值,为1表示负值 本次比例偏差符号 为负不加热退出
JB SCBLPCFH,JSSZ2 ;符号位为0表示正值,为1表示负值 上次比例偏差符号
JMP JSSZ1
BOOLL2:
SETB BLPCFH
CLR C
MOV A,#0FFH
SUBB A,BCPCHL ;本次温度大于设定温度,求补锝实际数值 e(t)
MOV BCPCHL,A
MOV A,#0FFH
SUBB A,BCPCHH
MOV BCPCHH,A
INC BCPCHL
JMP BOOLL3
JSSZ3: MOV A,BCPCHL
MOV SCPCHL,A
MOV A,BCPCHH
MOV SCPCHH,A
JB BLPCFH,MLLP1232 ;将本次偏差数值与符号赋给上次保存地址
CLR SCBLPCFH
JMP fool2
MLLP1232:
SETB SCBLPCFH
jmp fool2
JSSZ2: CLR C ;e(t)>0 e(t-1) <0
MOV A,BCPCHL ;计算e(t)-e(t-1) 的结果,存入PCWFL,PCWFH中
ADDC A,SCPCHL
MOV PCWFL,A
MOV A,BCPCHH
ADDC A,SCPCHH
MOV PCWFH,A
CLR WFPCFH
JMP AOOL1
JSSZ1: CLR C ;到此为止,本次e(t) 值已算出,并有符号位,可判正负%%%%%%%%%%%%%%%%%%%%%%%
MOV A,BCPCHL ;计算e(t)-e(t-1) 的结果,存入PCWFL,PCWFH中
SUBB A,SCPCHL ;e(t) e(t-1) 都为正值
MOV PCWFL,A
MOV A,BCPCHH
SUBB A,SCPCHH
MOV PCWFH,A
CLR WFPCFH
JNC AOOL1 ;本次偏差>上次偏差,转走
SETB WFPCFH ;微分偏差符号置位
CLR C
MOV A,#0FFH
SUBB A,PCWFL ;本次偏差<上次偏差,求补锝实际数值
MOV PCWFL,A
MOV A,#0FFH
SUBB A,PCWFH
MOV PCWFH,A
INC PCWFL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -