qq_24152651 2016-05-19 17:19 采纳率: 0%
浏览 3787

42步进电机的c程序怎么写啊

问一下42步进电机的c程序怎么写,单片机是c51,只需要实现快转和点动,以及正反转就可以

  • 写回答

1条回答 默认 最新

  • havedream_one 2016-05-19 23:50
    关注
    42步进电机是一个两相电机,一般控制可以分为全步或半步控制,全步控制,每一切换相序,步进电机走1.8度,半步控制则走0.9度。
    全步控制相序分配为:A,/A,B,/B
    半步控制相序分配为:A,AB,B,B/A,/A,/A/B,/B,/BA
    加速的话,就使相序切换快一点就可以;当然减速就是相序切换慢点就行。举例如下:
    #include<reg51.h>
    #define uchar unsigned char
    uchar stepd[]={0x01,0x03,0x02,0x06,0x04,0xc0,0x08,0x09};
    uchar num=0,fx=0;
    sbit keyup=P3^0;
    sbit keydn=P3^1;
    sbit keyfx=P3^2;
    int speed=10000;
    void t0isr() interrupt 1
    {
    TH0=(65536-speed)/256;
    TL0=(65536-speed)%256;
    P2=stepd[num];
    if(fx==0){num++;num%=8;}
    if(fx==1)
    {
    if(num==0)num=7;
    else num--;
    }
    }
    main()
    {
    TMOD=0x01;
    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;
    TR0=1;
    ET0=1;
    EA=1;
    while(1)
    {
    if(keyup==0)
    {
    while(key1==0);
    speed-=10;
    }
    if(keydn==0)
    {
    while(keydn==0);
    speed+=10;
    }
    if(key3==0)
    {
    while(key3==0);
    fx=~fx;
    }
    }
    }
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型