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

📄 kongwen.txt

📁 控温程序此控温程序是采用PD控温方式
💻 TXT
📖 第 1 页 / 共 2 页
字号:

                              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   ZSJCSH,r3                      ;MOV  POUTH,R3   为了节省存储器此处用zsjcsh,zsjcsl
                             MOV  A,#200                          ;代替pouth,poutl
                             SUBB A,R3
                             mov  ZSJCSl,a                        ;MOV  POUTL,A
                             RET

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





;(21)标号: BH2 功能:双字节BCD码整数转换成双字节十六进制整数

;入口条件:待转换的双字节BCD码整数在R2、R3中。
;出口信息:转换后的双字节十六进制整数仍在R2、R3中。
;影响资源:PSW、A、B、R2、R3、R4 堆栈需求: 4字节
BH2: MOV A,R3; ;将低字节转换成十六进制
LCALL BCDH
MOV R3,A
MOV A,R2; ;将高字节转换成十六进制
LCALL BCDH
MOV B,#100; ;扩大一百倍
MUL AB
ADD A,R3; ;和低字节按十六进制相加
MOV R3,A
CLR A
ADDC A,B
MOV R2,A
RET

;(20)标号:BCDH 功能:单字节BCD码整数转换成单字节十六进制整数

;入口条件:待转换的单字节BCD码整数在累加器A中。
;出口信息:转换后的单字节十六进制整数仍在累加器A中。
;影响资源:PSW、A、B、R4 堆栈需求: 2字节
BCDH:            MOV B,#10H         ; ;分离十位和个位
                 DIV AB
                 MOV R4,B           ; ;暂存个位
                 MOV B,#10          ; ;将十位转换成十六进制
                 MUL AB
                 ADD A,R4           ; ;按十六进制加上个位
                 RET


;(17) 标号: HB2 功能:双字节十六进制整数转换成双字节BCD码整数

;入口条件:待转换的双字节十六进制整数在R6、R7中。
;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
HB2:             CLR A         ; ;BCD码初始化
                 MOV R3,A
                 MOV R4,A
                 MOV R5,A
                 MOV R2,#10H          ; ;转换双字节十六进制整数
HB3:             MOV A,R7             ; ;从高端移出待转换数的一位到CY中
                 RLC A
                 MOV R7,A
                 MOV A,R6
                 RLC A
                 MOV R6,A
                 MOV A,R5             ; ;BCD码带进位自身相加,相当于乘2
                 ADDC A,R5
                 DA A                 ; ;十进制调整
                 MOV R5,A
                 MOV A,R4
                 ADDC A,R4
                 DA A
                 MOV R4,A
                 MOV A,R3
                 ADDC A,R3
                 MOV R3,A             ; ;双字节十六进制数的万位数不超过6,不用调整
                 DJNZ R2,HB3           ; ;处理完16bit
                 RET



;(5) 标号: MULD 功能:双字节二进制无符号数乘法
;
;入口条件:被乘数在R2、R3中,乘数在R6、R7中。
;出口信息:乘积在R2、R3、R4、R5中。
;影响资源:PSW、A、B、R2~R7 堆栈需求: 2字节
MULD:            MOV A,R3               ; ;计算R3乘R7
                 MOV B,R7
                 MUL AB
                 MOV R4,B                ; ;暂存部分积
                 MOV R5,A
                 MOV A,R3               ; ;计算R3乘R6
                 MOV B,R6
                 MUL AB
                 ADD A,R4               ; ;累加部分积
                 MOV R4,A
                 CLR A
                 ADDC A,B
                 MOV R3,A
                 MOV A,R2                ; ;计算R2乘R7
                 MOV B,R7
                 MUL AB
                 ADD A,R4               ; ;累加部分积
                 MOV R4,A
                 MOV A,R3
                 ADDC A,B
                 MOV R3,A
                 CLR A
                 RLC A
                 XCH A,R2               ; ;计算R2乘R6
                 MOV B,R6
                 MUL AB
                 ADD A,R3               ; ;累加部分积
                 MOV R3,A
                 MOV A,R2
                 ADDC A,B
                 MOV R2,A
                 RET



⌨️ 快捷键说明

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