找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6831|回复: 4
收起左侧

单片机AT89C51 正反转可控的步进电机

[复制链接]
ID:127163 发表于 2016-10-15 23:17 | 显示全部楼层 |阅读模式
单片机AT89C51 正反转可控的步进电机
捕获.PNG

单片机源程序:
  1. /***************   writer:shopping.w   ******************/
  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar code FFW[]=
  6. {
  7.         0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
  8. };

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

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

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

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

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

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

0.png

正反转可控的步进电机.rar

29.32 KB, 下载次数: 75, 下载积分: 黑币 -5

回复

使用道具 举报

ID:309029 发表于 2018-5-9 22:16 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:337516 发表于 2019-8-24 09:23 | 显示全部楼层
不错的文章,学习中。
回复

使用道具 举报

ID:803622 发表于 2020-7-15 13:24 | 显示全部楼层
不错的文章,学习中。
回复

使用道具 举报

ID:495287 发表于 2020-7-17 22:37 | 显示全部楼层
楼主好,
请问这个uln2003A的COM口供电和89C51电压相同吗?
谢谢解答。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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