一.硬件方案
本设计是基于51单片机控制的步进电机设计课题是以单片机为主控制模块,从而实现电机的启停、正反转和调速的目的的一个设计。步进电动机是纯粹的数字控制电动机,它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电动机就转一个角度,因此非常适合于单片机控制。
整体按键主要由51单片机+最小系统+四位数码管显示电路+ULN2003驱动电路+步进电机+按键模块;
二.设计功能
(1)本设计采用51单片机作为主控器,电机采用DC-5V步进减速电机(步进角度5.625°,减速比1/64);
(2)集成芯片ULN2003作为电机驱动;
(3)按键功能:按键1正转、按键2反转、按键3速度加、按键4速度减5暂停/开始;
(4)LED数码管一位显示电机的正反转,三位和四位显示电机运行速度的档数;
(5)五个红色LED,一个为电源指示,四个指示电机的转速。
三.设计原理图
Protues仿真图:
四.程序设计
主程序源码如下:
//================================主函数=============================================
void main()
{
T0_T1_init();
buf[1] = 10;//不显示
a=b=c=d=0;
while(1)
{
display();
if(s1 == 0)
{
delay1m(3);
if(s1 == 0)
{
flag1 = 0;//正转
buf[0] = 0;//最高位显示0
// haha = 0x00;//停止
}
while(!s1) display();
}
if(s2 == 0 )
{
delay1m(3);
if(s2 == 0)
{
flag1 = 1;//反转
buf[0] = 1;//最高位显示1
// haha = 0x00;//停止
}
while(!s2) display();
}
if(s3 == 0) //速度加1档
{
delay1m(3);
if(s3 == 0)
{
k++;
TR1=1;
if(k > 10 )
{
k = 1;
}
buf[2]= k/10;
buf[3]= k%10;
}
while(!s3) display();
}
if(s4 == 0) //速度减1档
{
delay1m(3);
if(s4 == 0)
{
k--;
TR1=1;
if(k <= 0)
{
k = 10;
}
buf[2]= k/10;
buf[3]= k%10;
}
while(!s4) display();
}
if(s5==0)
{
delay1m(3);
if(s5==0)
{
if(TR1==1)
{
pause=k;
k=0;
TR1=0;
a=b=c=d=0;
}
else if(TR1==0)
{
k=pause;
TR1=1;
}
buf[2]= k/10;
buf[3]= k%10;
while(!s5) display();
}
}
}
}
资料链接:https://pan.baidu.com/s/1GrPNYqqHBB11oA4Xh_aGHg?pwd=14du
提取码:14du