📄 kr.asm
字号:
ret
here41: mov r0,#0aah;lt4dycsjdsl
mov b,@r0
mov a,bcsjdsl
clr c
subb a,b
jc here42
mov r0,#0a3h;lt4js ;本次读数>第一次读数 存储计时时间
mov @r0,a
mov r0,#0abh;lt4dycsjdsh
mov b,@r0
mov a,bcsjdsh
clr c
cjne a,b,here43
mov r0,#0a3h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs4xs
ret
here43: mov r0,#0a3h;lt4js
mov a,@r0
add a,#60
mov @r0,a
mov r0,#0a3h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs4xs
ret
here42: mov a,bcsjdsl
add a,#60
mov r0,#0aah;lt4dycsjdsl
mov b,@r0
subb a,b
mov r0,#0a3h;lt4js
mov @r0,a
mov r0,#0a3h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs4xs
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;VFZH子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VFZH: CLR EA
PUSH PSW
PUSH A
PUSH DPH
PUSH DPL
CLR RS1
SETB RS0
MOV TL1,#0B0H ;定时中断50MS
MOV TH1,#3CH
tttpp1:
JNB HM4BZ,VFZHFH ;不在第四画面中,不进行控温,中断返回
DJNZ VFBHZQ,VFZH2 ;不到500ms,不进行温度数据采集,转去控温程序
MOV VFBHZQ,#10 ;定时时间为500ms ,重新赋值
MOV T0JSZL,TL0
MOV T0JSZH,TH0 ;取计数值
MOV TL0,#00
MOV TH0,#00 ;
JMP VFZH1 ;转去温度换算
VFZHFH1: MOV WDZHH,#0
MOV WDZHL,#0
MOV WDZBH,#0
MOV WDZBL,#0
VFZHFH: POP DPL ;中断返回
POP DPH
POP A
POP PSW
SETB EA
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VFZH2: JNB kwBZ,VFZHFH ;若预设温度未选中,不进行控温,中断返回
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR CS8255
setb a08255
setb a18255
MOV A,#0dH ;qidongshuiyu搅拌
MOVX @R0,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,POUTH
CJNE A,#00H,YTKW1 ;加热时间未完,转去加热子程序
;电炉停止加热程序 ;###############
CLR CS8255
setb a08255
setb a18255
MOV A,#08h ;1000w电炉停止加热
MOVX @R0,A
MOV A,POUTL
CJNE A,#00H,YTKW2
;停止加热时间未完,转去停止加热子程序
CALL PDJS ;调PD控温子程序 PD计算
cpl ysxsbzw
jnb ysxsbzw,ytkw3
call here1 ;調延时显示20s显一次
jmp ytkw3
YTKW1: DEC A ;加热子程序 ;#################
MOV POUTH,A
CLR CS8255
setb a08255
setb a18255
MOV A,#09H ;1000w电炉加热
MOVX @R0,A
MOV A,#07H
MOVX @R0,A
JMP YTKW3
YTKW2:
DEC A ;停止加热子程序 ;###############
MOV POUTL,A
CLR CS8255
setb a08255
setb a18255
MOV A,#08H ;1000w电炉停止加热
MOVX @R0,A
MOV A,#06H
MOVX @R0,A
YTKW3:
jb dadaowdbz,rfvv2 ;在静止搅拌动作之前,判断控温到了预设值没有
djnz zancun,ytkw32 ;目的多取几次温度值,在进行温度判断,防止出错
mov zancun,#01h
jb wd54bz,ytyt1 ;预设值为54度
jb wd82bz,ytyt2 ;预设值为82度
jmp vfzhfh ;中断返回
ytyt1: MOV BLXS,#200
MOV WFXS,#45;50
clr c
mov a,#17h
mov b,wdzhl ;535度带一位小数
subb a,b
mov a,#02h
mov b,wdzhh ;实测值-535
subb a,b
jc ytyt3
; clr jzbz
; clr jbbz
clr dadaowdbz
jmp ytkw32
ytyt2:
MOV BLXS,#255;100
MOV WFXS,#1
clr c
mov a,#34h
mov b,wdzhl
subb a,b ;820度带一位小数
mov a,#03h
mov b,wdzhh ;实测值-820
subb a,b
jc ytyt3
; clr jzbz
; clr jbbz
clr dadaowdbz
ytkw32: jmp VFZHFH
ytyt3:
clr cs8255
setb a08255
setb a18255
mov a,#08h ;到了预设温度关闭1000电炉
movx @r0,a
MOV A,#06H
MOVX @R0,A ;到了预设温度关闭600电炉
call fengmingqi1 ;;到了预设温度,蜂鸣器响
setb dadaowdbz ;到了预设温度,其标志位置位
rfvv2:
jnb qdbz,ytkw32 ;启动标志未按下,不进行静止,中断返回
JNB JZBZ,YTKW4 ;静止时间结束,转去搅拌时间
DJNZ DSZQ1S,ytkw41 ;1S定时未到,中断返回
MOV DSZQ1S,#20 ;定时1S时间常数 基数为50MS
CALL JZSJXIANSHI ;调静止时间显示 ###############
DJNZ DSZQ10S,ytkw41 ;10S定时未到,中断返回
MOV DSZQ10S,#10
DJNZ DSZQ600S,ytkw41 ;600S定时未到,中断返回
MOV DSZQ600S,#60
CLR JZBZ ;清静止标志
SETB JBBZ ;搅拌标志置位
YTKW4: JNB JBBZ,ytkw41 ;搅拌时间结束,中断返回
CLR CS8255
setb a08255
setb a18255 ;启动样品搅拌
MOV A,#0bH
MOVX @R0,A
DJNZ DSZQ1S,ytkw41
MOV DSZQ1S,#20
CALL JBSJXIANSHI ;调搅拌时间显示 #########
DJNZ DSZQ10S,ytkw41
MOV DSZQ10S,#10
DJNZ DSZQ300S,ytkw41
MOV DSZQ300S,#30
;搅拌时间完毕,搅拌杆上升,结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
call jbgssaaa
CLR JBBZ ;清搅拌标志
CLR CS8255
setb a08255
setb a18255
MOV A,#0aH ;停止样品搅拌
MOVX @R0,A
; mov a,#06h ;停止600电炉
; movx @r0,a
; mov a,#08h ;停止1000电炉
; movx @r0,a
call fengmingqi1 ;结束后蜂鸣器长响一声
jb lt1bz,ytypsl1
jb lt2bz,ytypsl2
jb lt3bz,ytypsl3
jb lt4bz,ytypsl4321
ytkw41: JMP VFZHFH ;中断返回
ytypsl4321: jmp ytypsl4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ytypsl1: call lt1lse ;调量筒1蓝色,清lt1bz
; call qidonglse ;结束后清启动标志
setb lt1jsbz ;置量筒1结束后的计数标志
setb rhsjbz ;乳化时间标志位置位
call rhsjxianshi ;显示乳化时间
jmp vfzhfh
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -