资料编号:158
一:功能介绍
1、采用stm32单片机+LCD1602显示屏+ULN2003驱动+步进电机+独立按键,制作一个基于stm32单片机步进电机正反转控制系统Proteus仿真;
2、采用ULN2003驱动芯片驱动步进电机进行转动;
3、通过独立按键可以控制两组步进电机正转、反转、停止状态;
4、LCD1602显示屏上可以显示两组步进电机的当前状态;
二:仿真演示视频+程序简要讲解(程序有中文注释,新手容易看懂)
158-基于stm32单片机步进电机正反转控制系统Proteus仿真+源程序
三:设计软件介绍
本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真,演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。
四:程序打开方法
特别注意:下载资料包以后一定要先解压! !!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。
程序部分展示,有中文注释,新手容易看懂
int main(void)
{
int i=0;
RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
GPIO_Configuration();//初始化
Init1602();
WrByte1602(0,1,' '); //字符显示
WrByte1602(0,2,'M');
WrByte1602(0,3,'O');
WrByte1602(0,4,'T');
WrByte1602(0,5,'O');
WrByte1602(0,6,'R');
WrByte1602(0,7,'1');
WrByte1602(0,9,'M');
WrByte1602(0,10,'O');
WrByte1602(0,11,'T');
WrByte1602(0,12,'O');
WrByte1602(0,13,'R');
WrByte1602(0,14,'2');
delay_ms(500);
while(1)
{
if(PAin(11)==0) i=0; //按键识别
if(PAin(12)==0) i=3;
if(PAin(13)==0) i=4;
if(PAin(14)==0) i=1;
if(PAin(15)==0) i=2;
if(i==0) //停止
{
MotorStop();
WrByte1602(1,4,'T');
WrByte1602(1,5,'T');
WrByte1602(1,11,'T');
WrByte1602(1,12,'T');
}
if(i==1) //1号正转
{
MotoRccw();
WrByte1602(1,4,'Z');
WrByte1602(1,5,'Z');
WrByte1602(1,11,'T');
WrByte1602(1,12,'T');
}
if(i==2) //1号反转
{
MotoRcw();
WrByte1602(1,4,'F');
WrByte1602(1,5,'Z');
WrByte1602(1,11,'T');
WrByte1602(1,12,'T');
}
if(i==3) //2号正转
{
MotoRccw1();
WrByte1602(1,4,'T');
WrByte1602(1,5,'T');
WrByte1602(1,11,'Z');
WrByte1602(1,12,'Z');
}
if(i==4) //2号反转
{
MotoRcw1();
WrByte1602(1,4,'T');
WrByte1602(1,5,'T');
WrByte1602(1,11,'F');
WrByte1602(1,12,'Z');
}
五:仿真文件(采用Proteus打开)
六:资料清单展示(文件中包含的相关资料)