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

📄 pwm-hao.asm

📁 温度控制 实现温度的1度控制 用单片机实现
💻 ASM
字号:
   KP EQU 40H
   KI EQU 41H
   KD EQU 42H
   EI EQU 43H
   EI1 EQU 44H
   EI2 EQU 45H
   EK EQU 46H
   EK1 EQU 4BH
   EK2 EQU 4CH
   GWEN EQU 47H
   SWEN EQU 48H
   TH EQU 49H
   TL EQU 4AH
   DFLAG  EQU  10H
  ORG  0000H
          SJMP   MAIN
          ORG   000BH
          LJMP   PWM
  MAIN:
          CLR   DFLAG
        ;  MOV   SCON,#90H      ;设置为方式2
          MOV   TMOD,#01H
          SETB   EA
          SETB   ET0
          SETB    TR0
          MOV   TH0,#00H
          MOV   TL0,#00H
          CLR  P1.2        ;关输出
          CLR    RS1
          CLR    RS0
          MOV   GWEN,#21   ;设置温度给定值Tg=48度
          MOV   KP,#14    ;设置KP
          MOV   KI,#12     ;设置Ki
          MOV   KD,#1     ;设置KD
          MOV  EI,#0
          MOV   EI1,#0
          MOV   EI2,#0
          MOV    EK,#0
          MOV EK1,#0
          MOV EK2,#0
          MOV   71H,#0
          MOV   72H,#0
          MOV   73H,#0
          MOV   74H,#0
          MOV   75H,#0
          MOV   76H,#0
          MOV   77H,#0
          MOV   78H,#0
          MOV   79H,#0
          MOV   7AH,#0
          mov 7dh,#0
          mov 7eh,#0
          MOV   TL,#00H     ;初始定时时间
          MOV   TH,#00H
          MOV   SWEN,#1   ;采集温度Tc=SWEN


;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    LOOP1:;mov 7dh,#0
          ; mov 7eh,#0
           LCALL   PID
           MOV  R5,#10        ;每2秒采集温度一次
   LOOP2: LCALL YANSHI
           DJNZ  R5,LOOP2
           SJMP LOOP1

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          ;PID子程序
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PID:     MOV   A,GWEN        ;计算Ei,先取温度给定值
             CLR   C
             SUBB   A,SWEN       ;Ei
             JNC   PID1         ;判Ei正负,如为正,跳至PID1
             CLR  P1.2
             RET
    PID1:    MOV  EI,A        ;Ei值存EI
             MOV   R1,EI       ;计算Ei-(Ei-1),先将Ei送R1
             MOV   R2,EI1       ;将(Ei-1)值送R2
             LCALL   DJF
             MOV   EK,R3      ;将差值Ei-(Ei-1)送6EH
             MOV    C,22H       ;将差值Ei-(Ei-1)的符号位送33H
             MOV    33H,C     ;*******33H为Ei-(Ei-1)的符号
             MOV    R1,EI1       ;  计算(Ei-1)-(Ei-2),先将(Ei-1)值送R1
             MOV    R2,EI2       ; 将(Ei-2)值送R2
             LCALL   DJF
             MOV    EK1,R3    ; 将差值(Ei-1)-(Ei-2)送6FH
             MOV    C,22H     ; 将差值(Ei-1)-(Ei-2)的符号位送34H
             MOV    34H,C     ;

⌨️ 快捷键说明

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