求一C程序,关于用单片机控制步进电机的。要求:可以用单片机上的独立按键控制电机的正反转。主要要求可

求一C程序,关于用单片机控制步进电机的。要求:可以用单片机上的独立按键控制电机的正反转。主要要求可看图片!大神们帮帮忙,谢谢了!!!... 求一C程序,关于用单片机控制步进电机的。要求:可以用单片机上的独立按键控制电机的正反转。主要要求可看图片!大神们帮帮忙,谢谢了!!! 展开
 我来答
帐号已注销
推荐于2017-09-11 · TA获得超过2062个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:348万
展开全部

俺手头没有步进电机的硬件驱动电路,只好用LED测试了,测试通过喽


只不过程序中的延时 时间比较长,你可以随意修改


另外,你没说是什么步进电机,和控制方式


所以,本人就按照常用的 两相步进电机写的,方式为 8拍


程序设计思路为,设立一个变量来记录状态,然后再根据状态去执行不同语句


具体程序如下,如有不懂之处可以继续追问或私密我加好友


若满意,帮到了你,请记得采纳,谢谢!


/***************************************************************************/

#include<reg51.h>


sbit S1=P3^2; sbit S2=P3^3; sbit S3=P3^4; sbit S4=P3^5; sbit S5=P3^6;

int i=0,t=0,fe=0;

char LD[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6};//两相8拍编码

/***************************************************************************/

void delay(int t)//延时函数

{

int j;

for(;t>0;t--)

{for(j=200;j>0;j--);}

}

/***************************************************************************/

void main(void)

{

     while(1) //主循环内,只执行端口赋值

     {

         P2=LD[i]; //对 P2 端口赋值,点亮 LED

        

         //方向判断,停止是0,所以没必要编写停止语句

         if(fe==1) //如果是反转

         {

             i++;if(i>7){i=0;}//正向流动

             delay(100);//延时一会,即旋转的速度

         }

         if(fe==2) //如果是正转

         {

             i--;if(i<0){i=7;}//反向流动

             delay(100);//延时一会,即旋转的速度

         }

         if(fe==3) //如果是延时

         {

             delay(1000);//延时一会,再反转

             for(t=0;t<100;t++)//反转 100个脉冲

             {

                 i++;if(i>7){i=0;}//正向流动

                 P2=LD[i];

                 delay(100);//延时一会,即旋转的速度

             }

             fe=0;//反转结束后,则停止

         }

        

         //按键部分

         if(S5==0){fe=0;}//停止

         if(S4==0){fe=1;}//反转

         if(S3==0){fe=2;}//正转

         if(S2==0){fe=3;}//延时

         if(S1==0){fe=2;}//正转

     }

}

/***************************************************************************/

追问
哦!谢谢
追答
别客气
xlzhang_2004
2015-01-31 · TA获得超过308个赞
知道小有建树答主
回答量:256
采纳率:100%
帮助的人:135万
展开全部
可以做,具体要求呢?步进电机型号呢?用单片机做驱动器,还是有额外的驱动器?
追问
57步进电机,用额外的驱动器,现在用的是TB6560    可能会用别的驱动器   谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式