⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xiushiyi.asm

📁 锈蚀仪
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                  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 + -