51单片机C语言程序按键控制步进电机转速

#include <reg52.h>

unsigned char code F_Rotation[4]={0x08,0x10,0x20,0x40};//正转表格
unsigned char code B_Rotation[4]={0x40,0x20,0x10,0x08};//反转表格

void Delay(unsigned int i)//延时
{
while(--i);
}

main()
{

unsigned char i;

while(1)
{
for(i=0;i<4;i++) //4相
{
/*P1=F_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(500); //改变这个参数可以调整电机转速
Delay(5000);*/
P1=B_Rotation[i];
Delay(265);
P1=F_Rotation[i];
Delay(265);

}
}
}
求大虾们帮忙改改能用按键控制Delay(265)语句里面265的大小,最好每按一次值只改变1,可上下调,范围:250——300

sbit K1=P1^0;
sbit K2=P1^1;
char y=0;
while(1)
{
pangduan();
for(i=0;i<4;i++) //4相
{
/*P1=F_Rotation[i]; //输出对应的相 可以自行换成反转表格
Delay(500); //改变这个参数可以调整电机转速
Delay(5000);*/
P1=B_Rotation[i];
Delay(265+y);
P1=F_Rotation[i];
Delay(265+y);

}
}
void pangduan()
{
if(K1==0)
{ y++; //加
while(~k1)
}
if(K2==0)
{ y--;
while(~k2); //减
}
}
}
没有下上限 要是调的话 需要判断显示延时时间
温馨提示:答案为网友推荐,仅供参考
相似回答