找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3754|回复: 2
收起左侧

51单片机控制步进电机Proteus仿真文件及源程序

[复制链接]
ID:327346 发表于 2018-5-11 09:56 | 显示全部楼层 |阅读模式
本文件包括有51单片机控制步进电机Proteus仿真文件及控制源程序,实现了步进电机的正反转控制。
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code FFW[]=
  5. {
  6.         0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
  7. };

  8. uchar code REV[]=
  9. {
  10.         0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
  11. };

  12. sbit K1 = P3^0;
  13. sbit K2 = P3^1;
  14. sbit K3 = P3^2;

  15. void DelayMS(uint ms)
  16. {
  17.         uchar i;
  18.         while(ms--)
  19.         {
  20.                  for(i=0;i<120;i++);
  21.         }
  22. }

  23. void SETP_MOTOR_FFW(uchar n)
  24. {
  25.         uchar i,j;
  26.         for(i=0;i<5*n;i++)
  27.         {
  28.                  for(j=0;j<8;j++)
  29.                 {
  30.                          if(K3 == 0)        break;
  31.                         P1 = FFW[j];
  32.                         DelayMS(25);
  33.                 }
  34.         }
  35. }

  36. void SETP_MOTOR_REV(uchar n)
  37. {
  38.         uchar i,j;
  39.         for(i=0;i<5*n;i++)
  40.         {
  41.                  for(j=0;j<8;j++)
  42.                 {
  43.                          if(K3 == 0)        break;
  44.                         P1 = REV[j];
  45.                         DelayMS(25);
  46.                 }
  47.         }
  48. }

  49. void main()
  50. {
  51.         uchar N = 3;
  52.         while(1)
  53.         {
  54.                  if(K1 == 0)
  55.                 {
  56.                          P0 = 0xfe;
  57.                         SETP_MOTOR_FFW(N);
  58.                         if(K3 == 0) break;
  59.                 }
  60.                 else if(K2 == 0)
  61.                 {
  62.                          P0 = 0xfd;
  63.                         SETP_MOTOR_REV(N);
  64.                         if(K3 == 0) break;
  65.                 }
  66.                 else
  67.                 {
  68.                          P0 = 0xfb;
  69.                         P1 = 0x03;
  70.                 }
  71.         }
  72. }
复制代码


仿真图

仿真图

51单片机控制步进电机Proteus仿真文件及源程序.zip

31.99 KB, 下载次数: 82, 下载积分: 黑币 -5

回复

使用道具 举报

ID:327233 发表于 2018-5-13 12:48 来自手机 | 显示全部楼层
我照你的画了,但是仿真转不起来什么问题呢?
回复

使用道具 举报

ID:700054 发表于 2020-5-18 09:59 | 显示全部楼层
博主的代码写的真漂亮,点赞
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表