所用:单片机STC89C52、42步进电机、驱动器L298N
两个步进电机:电机1由P1.0~P1.3控制,电机2由P1.4~P1.7控制。
运行结果:电机轴来回摆动,转得极慢(电机1更慢)。程序错在哪里?为什么会摆动?望指教!
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code upa_data[8]={ 0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8};
uchar code upb_data[8]={ 0x9f,0x1f,0x3f,0x2f,0x6f,0x4f,0xcf,0x8f};
/********以下是延时函数********/
void Delay(uint speed)
{
uint i,j;
for(i=speed;i>0;i--)
for(j=110;j>0;j--); //大约1毫秒,
}
/********以下是主函数********/
void main()
{
uint count=400;
while(count!=0x00)
{
uchar i;
for (i=0; i<8; i++)
{
P1 = upa_data;
Delay(50);
P1 = upb_data;
Delay(50);
}
}
}
|