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

📄 kr.asm

📁 破乳化仪
💻 ASM
📖 第 1 页 / 共 5 页
字号:
AOOL1:
                               MOV   A,BCPCHL
                               MOV   SCPCHL,A
                               MOV   A,BCPCHH
                               MOV   SCPCHH,A
                               JB    BLPCFH,MLLP1        ;将本次偏差数值与符号赋给上次保存地址
                               CLR   SCBLPCFH
                               JMP   MLLP2
MLLP1:
                               SETB  SCBLPCFH

MLLP2:
                               MOV   R2,BCPCHH
                               MOV   R3,BCPCHL
                               MOV   R4,#0             ;求kp*e(t)
                               MOV   R5,#0
                               MOV   R6,#0
                               MOV   R7,BLXS
                               CALL  MULD
                               MOV   BLCSL,R5          ;结果送到比例常数存储
                               MOV   BLCSH,R4
                               MOV   R3,PCWFL
                               MOV   R2,PCWFH
                               MOV   R4,#0
                               MOV   R5,#0
                               MOV   R6,#0
                               MOV   R7,WFXS
                               CALL  MULD              ;求kd*(e(t)-e(t-1))
                               MOV   WFCSL,R5
                               MOV   WFCSH,R4          ;结果送到微分常数存储
                               JB    BLPCFH,FOOL2      ;比例相为负,不计算结果,直接赋pouth=#00  poutl=#200,退出中断
                               JB    WFPCFH,AOOL2      ;微分项为负转走
                               CLR   C
                               MOV   A,BLCSL
                               ADD   A,WFCSL           ;KP>0,KD>0
                               MOV   ZSJCSL,A          ;将结果存入总时间常数中  kp*e(t)+kd*(e(t)-e(t-1))
                               MOV   A,BLCSH
                               ADDC  A,WFCSH
                               MOV   ZSJCSH,A
AOOL4:
                               CLR  C
                               MOV   A,ZSJCSL
                               SUBB  A,#0D0H
                               MOV   A,ZSJCSH
                               SUBB  A,#07H
                                               ;为什么是小于2000而不是200呢,因为进行偏差计算时时带一位小数的扩大了10倍
                              JC    AOOL3             ;有借位,说明总时间常数《2000h,数据没有溢出继续
                              MOV   ZSJCSL,#0D0H
                              MOV   ZSJCSH,#07H        ;无借位说明总时间常数>2000h,数据溢出赋最大值2000h继续

                              JMP   AOOL3

FOOL2:
                             MOV  ZSJCSL,#0          ;比例项小于微分项不加热
                             MOV  ZSJCSH,#0
                             JMP  AOOL3

AOOL2:
                             CLR  C
                             MOV  A,BLCSL
                             SUBB A,WFCSL            ;KP>0,KD<0
                             MOV  ZSJCSL,A           ;将结果存入总时间常数中  kp*e(t)-kd*(e(t)-e(t-1))
                             MOV  A,BLCSH
                             SUBB A,WFCSH
                             MOV  ZSJCSH,A
                             JNC   AOOL4             ;KP>KD
                             MOV  ZSJCSL,#0          ;比例项小于微分项不加热
                             MOV  ZSJCSH,#0
                             JMP  AOOL3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下程序的4舍5入是为了增加精度,否则总时间常数可以直接除以10得POUTH值;;;;;;;;
AOOL3:                       MOV   R6,ZSJCSH
                             MOV   R7,ZSJCSL          ;总数据常数里面存的是16进制数
                             MOV   R3,#0
                             MOV   R4,#0
                             MOV   R5,#0
                             CALL  HB2               ;换算成bcd码出口在r3,r4,r5中
                             MOV   A,R5
                             ANL   A,#0FH            ;取小数位
                             CLR   C
                             SUBB  A,#5
                             JC    PPPOOP1           ;小数位<5,转走
                             MOV   A,R5
                             ANL   A,#0F0H
                             SWAP  A
                             INC   A
PPPOOP2:
                             MOV   R5,A              ;小数位>5,个位数加1实现四舍五入
                             MOV   A,R4
                             ANL   A,#0FH
                             SWAP  A
                             ADD  A,R5
                             MOV  R3,A
                             MOV  A,R4
                             ANL  A,#0F0H
                             SWAP A
                             MOV  R2,A
                             CALL  BH2
                             MOV  POUTH,R3
                             MOV  A,#200
                             SUBB A,R3
                             MOV  POUTL,A
                             RET

PPPOOP1:                     MOV  A,R5
                             ANL  A,#0F0H
                             SWAP  A
                             JMP   PPPOOP2


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;显示画面程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HM1:
                                call   fengmingqi

                                MOV    DPTR,#HM1SJ         ;赋数据地址
                                MOV    FSGESHU,#00H
                                MOV    A,FSGESHU
HM11:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE    A,#0ffH,HM11         ;共发送255个数
                                CLR    HM2BZ
                                CLR    HM3BZ
                                CLR    HM4BZ
                                CLR    HM5BZ
                                SETB   HM1BZ


                                RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;画面2显示程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;

HM2:
                                call   fengmingqi

                                MOV    DPTR,#HM2SJ         ;赋数据地址
                                MOV    FSGESHU,#00H
                                MOV    A,FSGESHU
HM21:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE    A,#0c9H,HM21         ;共发送201个数
                                CLR    HM1BZ
                                CLR    HM3BZ
                                CLR    HM4BZ
                                CLR    HM5BZ
                                SETB   HM2BZ

                                RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;画面3显示程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HM3:
                                call   fengmingqi

                                MOV    DPTR,#HM3SJ         ;赋数据地址
                                MOV    FSGESHU,#00H
                                MOV    A,FSGESHU
HM31:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE    A,#0f1H,HM31         ;共发送235个数
                                MOV    DPTR,#L3K
                                MOV    FSGESHU,#0
                                MOV    A,FSGESHU
HM32:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE   A,#30H,HM32
                                CLR    HM1BZ
                                CLR    HM2BZ
                                CLR    HM4BZ
                                CLR    HM5BZ
                                SETB   HM3BZ
                                mov    zhuanhuancishu,#00h

                                call   jbgssaaa
                                call   bjdjhoutui
                                RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;画面4显示程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
HM4:

                                call   fengmingqi
                                call   ys500ms
                                MOV    DPTR,#HM4SJ         ;赋数据地址
                                MOV    FSGESHU,#00H
                                MOV    A,FSGESHU
HM41:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE    A,#241,HM41         ;共发送241个数
                                MOV    DPTR,#H4YPH3
                                MOV    FSGESHU,#0
                                MOV    A,FSGESHU
HM42:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE   A,#244,HM42           ;;;239

                                MOV    DPTR,#H4FHJ
                                MOV    FSGESHU,#0
                                MOV    A,FSGESHU
HM43:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE   A,#26,HM43           ;;;239
                                CLR    HM1BZ
                                CLR    HM2BZ
                                CLR    HM3BZ
                                CLR    HM5BZ
                                SETB   HM4BZ
                                clr    dadaowdbz
                                call   jbgssaaa
                                call   bjdjhoutui
                                RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;画面5显示程序;;;;;;;;;;;;;;;;;;;;;;;;;;;
HM5:                            call   fengmingqi


                                call    readdzj
                                MOV    DPTR,#HM5SJ         ;赋数据地址
                                MOV    FSGESHU,#00H
                                MOV    A,FSGESHU
HM51:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE    A,#0f9H,HM51         ;共发送249个数
                                MOV    DPTR,#H5SJ1
                                MOV    FSGESHU,#0
                                MOV    A,FSGESHU
HM52:                           MOVC   A,@A+DPTR
                                CALL   FSA
                                INC    FSGESHU
                                MOV    A,FSGESHU
                                CJNE   A,#0F8H,HM52           ;;;248

                                call   xsshijian
                                setb   sjsxbz
                                CLR    HM1BZ
                                CLR    HM2BZ
                                CLR    HM3BZ
                                CLR    HM4BZ
                                SETB   HM5BZ

                                RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;画面6显示程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
hm6:
                                MOV    DPTR,#hm6sj
                                MOV 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -