本人近几天学习51单片机驱动步进电机成果,通过按键控制两个电机正反转,其中按键有单按,双击,长按的功能(无控制加速减速)。
以下是部分代码
#include <config.h>
#include <motor.h>
void main()
{
unsigned char keyvalue;
int a = 0;
int i = 0;
while(1)
{
keyvalue = key_multi();
if(keyvalue == Key1_Single_Click) {}
if(keyvalue == Key1_Double_Click) {}
if(keyvalue == Key1_Long_Click)
{
up_1();
delayms(500);
up_1();
delayms(500);
do_1();
delayms(500);
do_1();
delayms(500);
}
if(keyvalue == Key2_Single_Click) {}
if(keyvalue == Key2_Double_Click) {}
if(keyvalue == Key2_Long_Click)
{up_2();
a++;
}
if(keyvalue == Key3_Single_Click) {}
if(keyvalue == Key3_Double_Click) {}
if(keyvalue == Key3_Long_Click)
{do_2();
a--;
}
if(keyvalue == Key4_Single_Click)
{
if (a % 2 == 0) {//偶数
do_3();
} else { //奇数
up_3();
}
for(i = 0;i<=100;i++){
up_1();
delayms(500);
up_1();
delayms(500);
do_1();
delayms(500);
do_1();
delayms(500);}
}
if(keyvalue == Key4_Double_Click) {}
if(keyvalue == Key4_Long_Click) {}
delayms(10);
}
}
原理图: 无
仿真: 无
代码:
控制步进电机.zip
(40.38 KB, 下载次数: 16)
|