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

📄 hso_正反转.txt

📁 运用模糊算法和PID调节控制开关磁阻电机的调速。采用的单片机是Intel的80c196KB,编程语言为PL/M.
💻 TXT
字号:
/*高速输出处理程序*/
HSO_PROCESS:PROCEDURE ;/*两相定角度开通角-7.5,关断角22.5*/
  DISABLE;
  IF DIRECT=1 THEN DO;/*逆时针*/
      IF RUN_SPD<60 THEN DO;     /*run_spd<60 两相启动*/
       TURNON=02H;
       TURNOFF=02H;
       DO CASE ORDER;
       T00:DO;
         HSO_COMMAND=20H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
         HSO_COMMAND=02H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
       END;
       T01:DO;
         HSO_COMMAND=21H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
         HSO_COMMAND=03H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
       END;
       T02:DO;
         HSO_COMMAND=22H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
         HSO_COMMAND=00H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
       END;
       T03:DO;
         HSO_COMMAND=23H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
         HSO_COMMAND=01H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
       END;
      END;
     END;
 ELSE  DO;
TURNON=T_SPAN/2;
TURNOFF=T_SPAN/2;
DO CASE ORDER;
T00:DO;/*P=1,Q=0*/
  HSO_COMMAND=21H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=03H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
TO1:DO;/*P=1,Q=1*/
  HSO_COMMAND=22H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=00H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
TO2:DO;/*P=0,Q=1*/
  HSO_COMMAND=23H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=01H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
TO3:DO;/*P=0,Q=0*/
  HSO_COMMAND=20H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=02H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
END;
END;
END;
ELSE DO;/*顺时针*/
       IF RUN_SPD<60 THEN DO;
      TURNON=02H;
      TURNOFF=02H;
      DO CASE ORDER;
       T50:DO;
         HSO_COMMAND=22H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
         HSO_COMMAND=00H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
       END;
       T51:DO;
         HSO_COMMAND=23H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
         HSO_COMMAND=01H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
       END;
       T52:DO;
         HSO_COMMAND=20H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
         HSO_COMMAND=02H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
       END;
       T53:DO;
         HSO_COMMAND=21H;
         HSO_TIME=TIMER1+TURNOFF;
         R0=0;
         R0=0;
         HSO_COMMAND=03H;
         HSO_TIME=TIMER1+TURNON;
         R0=0;
         R0=0;
       END;
      END;
    END;
    ELSE DO;
TURNON=T_SPAN/2;
TURNOFF=T_SPAN/2;
DO CASE ORDER;
T10:DO;/*P=1,Q=1*/
  HSO_COMMAND=21H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=03H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
T11:DO;/*P=0,Q=1*/
  HSO_COMMAND=22H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=00H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
T12:DO;/*P=0,Q=0*/
  HSO_COMMAND=23H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=01H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
T13:DO;/*P=1,Q=0*/
  HSO_COMMAND=20H;
  HSO_TIME=TIMER1+TURNOFF;
  R0=0;
  R0=0;
  HSO_COMMAND=02H;
  HSO_TIME=TIMER1+TURNON;
  R0=0;
  R0=0;
 END;
END;
END;
END;
  ENABLE;
END HSO_PROCESS;

⌨️ 快捷键说明

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