找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4152|回复: 3
打印 上一主题 下一主题
收起左侧

单片机步进电机正反转调速_参考例程 含四拍和八拍

[复制链接]
跳转到指定楼层
楼主
包含以下51单片机程序:

001、步进电机正转两相四拍程序\
002、步进电机正转两相八拍程序\
003、步进电机反转两相四拍程序\
004、步进电机反转两相八拍程序\
005、步进电机两相四拍调速程序\
006、步进电机两相八拍调速程序\



单片机源码:
  1. #include<reg52.h>  
  2. /*****P1.0=A ;P1.1=B ;P1.2=A' ; P1.3=B'****/  
  3. code unsigned char run[4]={0x01,0x08,0x02,0x04};  //四相四拍工作方式
  4. unsigned char s,i,j,k;

  5. void delay(i)//延时函数
  6. {
  7. for(j=0;j<i;j++)
  8. for(k=0;k<250;k++);
  9. }
  10. main()
  11. {
  12. unsigned char z,y;
  13. y=30;            //定义延时时间,时间越长电机转速越慢反之则快
  14. while(1)
  15. {
  16. for(z=0;z<4;z++)
  17. {
  18. P1=run[z];
  19. delay(y);

  20. …………限于本文篇幅 余下代码请从51黑下载附件…………

复制代码
  1. ///////////////////步进电机调试程序/////////////
  2. #include<reg52.h>  

  3. /*****P1.0=A ;P1.1=B ;P1.2=A' ; P1.3=B'****/
  4. //////////////////////////////////////////////////////////////////////////////////////////////
  5. /*******************************正转数组**************************************************/
  6. code unsigned char runz[4]={0x01,0x08,0x02,0x04};  //两相四线四拍工作方式
  7. /*******************************反转数组**************************************************/
  8. code unsigned char runf[4]={0x04,0x02b,0x08,0x01};  //两相四线四拍工作方式
  9. unsigned char keycan=0;                //键值
  10. unsigned char s,i,j,k,z;

  11. int y=30;//定义转动速度,数值越大电机转速越慢反之则快

  12. sbit P2_0=P2^0;//正转按键
  13. sbit P2_1=P2^1;//反转按键
  14. sbit P2_2=P2^2;//电机加速
  15. sbit P2_3=P2^3;//电机减速

  16. void delay(i)//延时函数
  17.   {
  18.       for(j=0;j<i;j++)
  19.       for(k=0;k<250;k++);
  20.   }



  21. void zrun()// 正转运行
  22. {

  23.    for(z=0;z<4;z++)
  24.        {
  25.          P1=runz[z];
  26.          delay(y);
  27.        }
  28. }

  29. void frun()// 反转运行
  30. {
  31.      for(z=0;z<4;z++)
  32.         {
  33.             P1=runf[z];
  34.             delay(y);
  35.          }
  36. }

  37. main()
  38. {
  39.    while(1)
  40.     {
  41.          if(P2_0==0) //如果电机正转按键按下
  42.       {
  43.         keycan=1;         //键值等于1
  44.       }
  45.          if(P2_1==0) //如果电机反转按键按下
  46.       {
  47.         keycan=2;         //键值等于2
  48.        }
  49.                      switch (keycan)
  50.                     {
  51.                      case 1: zrun();  //键值等于1 正转
  52.                                  break;
  53.                      case 2: frun();  //键值等于2 反转
  54. ……………………

  55. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

全部资料下载地址:
两相步进电机正反转_参考例程包.rar (86.73 KB, 下载次数: 69)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-5-31 03:44 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:326699 发表于 2018-6-1 10:12 | 只看该作者
如果附带一下参考电路就好啦
回复

使用道具 举报

地板
ID:353635 发表于 2018-6-18 13:38 | 只看该作者
1111111
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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