步进电机控制程序,错在哪了?
时间:10-02
整理:3721RD
点击:
这个步进电机程序错在哪了?为什么电机没反应?
驱动是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;
}
}
人呢,求教~!