步进电机控制程序,错在哪了?

2019-07-16 18:43发布

本帖最后由 gk320830 于 2015-3-4 15:15 编辑

这个步进电机程序错在哪了?为什么电机没反应?
驱动是THB6128,步进电机是混合式两相4线的,步距角1.8度,没设置细分
/*************************************************/
#include<stc12c5a60s2.h>
sbit        CW        =        P2^0; //低电平与悬空时,正转,高电平反转
sbit        EN        =        P2^1; //低电平与悬空时,正常工作,高电平为脱机状态
sbit        CLK        =        P2^2; //有脉冲时运行、无脉冲时进入设定半流状态,锁定、
unsigned int pwm;
void delay(unsigned char a)
{         
        unsigned int b;
                while(a--)
                {
                        for(b=647;b>0;b--)
                        {
                                
                        }
                }
}
void init()
{
        AUXR |= 0x80;                //定时器时钟1T模式
        TMOD &= 0xF0;                //设置定时器模式
        TMOD |= 0x01;                //设置定时器模式
        TL0 = 0xCD;                //设置定时初值
        TH0 = 0xD4;                //设置定时初值
        EA=1;
        ET0=1;
        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
}            
void main()
{
        CW=0;
        EN=0;
        CLK=0;
        pwm=0;
        init();
        while(1);
        {
               
        }
}        
void tiem0() interrupt 1
{
        TL0 = 0xCD;                //设置定时初值
        TH0 = 0xD4;                //设置定时初值
        pwm++;
        if(pwm==5)           //5/1,50/10 500/100   1000/200
        {
                pwm=0;
                CLK=~CLK;
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。