?? 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 + -