📄 xiushiyi.asm
字号:
MOV A,#00H
MOVX @R0,A
SETB YJA0
MOV A,#5BH ;设置合成方式
MOVX @R0,A
CLR YJA0
MOV A,#0BH
MOVX @R0,A
CALL CLEAR ;调清内存子程序
SETB YJA0
MOV A,#59H ;1-4区开显示,关光标设置
MOVX @R0,A
CLR YJA0
MOV A,#54H
MOVX @R0,A
; SETB YJCS
POP A
POP PSW
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;光标开关程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GBK: CLR YJCS
SETB YJA0
MOV A,#59H ;1-4区开显示,关光标设置
MOVX @R0,A
CLR YJA0
MOV A,#55H
MOVX @R0,A
SETB YJA0
MOV A,#5DH ;设置光标形状横7竖2
MOVX @R0,A
CLR YJA0
MOV A,#07H
MOVX @R0,A
MOV A,#02H
MOVX @R0,A
RET
GBG: CLR YJCS
SETB YJA0
MOV A,#59H ;1-4区开显示,关光标设置
MOVX @R0,A
CLR YJA0
MOV A,#54H
MOVX @R0,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;清屏子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLEAR: call ys50ms
CLR YJCS
PUSH A
PUSH PSW
SETB RS0
SETB RS1
SETB YJA0
MOV A,#4CH ;设置光标右移
MOVX @R0,A
MOV A,#46H ;设置光标地址
MOVX @R0,A
CLR YJA0
MOV A,#00H
MOVX @R0,A
MOV A,#00H
MOVX @R0,A
MOV R2,#0C0H
MOV R3,#00H
SETB YJA0
MOV A,#42H ;清显示缓冲区
MOVX @R0,A
CLR YJA0
MOV A,#00H
CLEAR1: MOVX @R0,A
DJNZ R3,CLEAR1
DJNZ R2,CLEAR1
POP PSW
POP A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;向液晶屏发送字符程序;;;;;;;;;;;;;;;;;;;;;;;;;;;
SUNFD: PUSH A
PUSH PSW
SETB RS0
SETB RS1
SUNFD11: CLR YJCS
MOV R3,ZISHU
SETB YJA0
MOV A,#46H ;设置光标地址
MOVX @R0,A
CLR YJA0
MOV A,SDPL
MOVX @R0,A
MOV A,SDPH
MOVX @R0,A ;写完光标地址
SETB YJA0
MOV A,#42H
MOVX @R0,A
MOV R6,CDPL ;存第一个字的每行首址
MOV R7,CDPH
MOV R4,CDPL
MOV R5,CDPH
SUFD22:
MOV R1,#00H
SUFD221: MOV DPL,R4
MOV DPH,R5
MOV A,R1 ;取字符位置的指针
MOVC A,@A+DPTR
CLR YJA0
MOVX @R0,A ;发送字符数据
MOV DPL,R4
MOV DPH,R5
INC R1
MOV A,R1
CJNE A,C24Z,SUFD221 ;
CLR C
MOV A,ZIJIESHU
ADD A,R4
MOV DPL,A
MOV R4,A
MOV A,R5
ADDC A,#00H
MOV DPH,A
MOV R5,A
DJNZ R3,SUFD22 ;显示完整个一行 R3中存字数
CLR C
MOV A,SDPL ;指向下一行
ADD A,#28H ;28h为液晶屏系统参数设置时的每行所占的字节数,每行40个字节
MOV SDPL,A
MOV A,SDPH
ADDC A,#0
MOV SDPH,A
CLR C
MOV A,R6
ADD A,C24Z
MOV DPL,A
MOV A,R7
ADDC A,#00H
MOV DPH,A
MOV CDPL,DPL
MOV CDPH,DPH
DJNZ ZGDS,SUNFD11 ;所有字显示完返回
POP PSW
POP A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;液晶屏系统参数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SYS: DB 30H,87H,07H,27H,42H,0F0H,28H,00H ;SYSTEM parameter DMF50081
SCR: DB 00H,00H,0F0H,00H,40H,0F0H,00H,50H,00H,00H ;SRCOLL parameter DMF50081
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;延时10秒子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
YS10MS:
MOV YSCC1,#14H
YS2: MOV YSCC2,#0FAH
YS1: DJNZ YSCC2,YS1
DJNZ YSCC1,YS2
RET
YS50MS:
MOV YSCC1,#64H
YS3: MOV YSCC2,#0FAH
YS4: DJNZ YSCC2,YS4
DJNZ YSCC1,YS3
RET
ys1s: mov r7,#25
ys1s1: call ys50ms
djnz r7,ys1s1
ret
YS500MS: MOV R7,#10
YS500MS1: CALL YS50MS
DJNZ R7,YS500MS1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VFZHFH: POP DPL ;中断返回
POP DPH
POP A
POP PSW
SETB EA
RETI
VFZH:
CLR EA
PUSH PSW
PUSH A
PUSH DPH
PUSH DPL
CLR RS1
SETB RS0
MOV TL1,#0b0h;0f0H
MOV TH1,#3ch;3CH ;定时50ms 晶振12
JNB HM2BZ,VFZHFH
DJNZ VFZHZQ,VFZHNEXT2
MOV VFZHZQ,#10
MOV T0JSZL,TL0
MOV T0JSZH,TH0
MOV TH0,#00
MOV TL0,#00
VFZHNEXT1:
JNB KWBZ,VFZHFH ;按下确认后进行温度显示
;;;;;;;;;;;;;;;;;以下内容为温度计算与显示;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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,VFZHNEXT2 ;结果有溢出,被除数小于除数中断返回
; MOV SCWDZHH,WDZHH ;16进制温度值转存
; MOV SCWDZHL,WDZHL
MOV WDZHH,R2 ;
MOV WDZHL,R3 ;将16进制的温度值转存
MOV A,R2
MOV R6,A
MOV A,R3
MOV R7,A
MOV R3,#0
MOV R4,#0
MOV R5,#0
CALL HB2
MOV WDZBH,R4 ;用于温度显示 BCD码
MOV WDZBL,R5
mov a,T0JSZH
CLR C
SUBB A,#18H
JC VFZH111
CALL OPEN ;显示开路
SETB JRDZ ;停止加热
JMP VFZHFH
VFZH111: CLR C
mov a,T0JSZH
CJNE A,#00,VFZH112
MOV A,T0JSZL
CJNE A,#00,VFZH112
CALL CLOSE ;显示短路
SETB JRDZ ;停止加热
JMP VFZHFH
VFZH112: CLR C
CALL WENDUXIANSHI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VFZHFHHF: JMP VFZHFH
VFZHNEXT2: JNB QDBZ,VFZHFHHF ;按下启动后进行控温
clr jiaoban ;进行搅拌
mov r2,wdzbh
mov r3,wdzbl
mov r4,#0 ;修正后的值再重新付给16进制保存地址用于PI计算
call bh2
mov wdzhh,r2
mov wdzhl,r3
;在此处判是否达到预设温度前10度,在此之前全速加温,之后pi控温
JB QUANSUJIAWENBZ,PIDKW
MOV A,SDWDHL
CLR C
SUBB A,#50
MOV B,A ;设定温度-10存于b中
JC HHPP4A ;##########
MOV A,WDZHl
CLR C
SUBB A,B ;低位相减
JC HHPPU1A ;适时温度低位《设定温度低位,转走
CLR C
MOV A,WDZhh
ANL A,#0FH
SUBB A,SDWDHH ;高位相减
JC HHPPFH ;适时温度高位《设定温度高位,转走
SETB QUANSUJIAWENBZ ;适时温度低位〉设定温度低位,高位〉=设定高位,湿润时间开始
JMP PIDKW
HHPPU1A: MOV A,WDZHH
ANL A,#0FH
DEC A
CLR C
SUBB A,SDWDHH
JC HHPPFH ;适时温度高位《设定温度高位,转走
SETB QUANSUJIAWENBZ
JMP PIDKW
HHPP4A: MOV A,SDWDHH
DEC A
MOV ZANCUN6,A
MOV A,WDZHL
CLR C
SUBB A,B
JC HHPP41A
CLR C
MOV A,WDZhH
ANL A,#0FH
SUBB A,ZANCUN6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -