51单片机的步进电机控制系统(仿真+程序+报告+原理图)

1、主要功能

该系统由AT89C51单片机+数码管模块+步进电机模块+按键模块构成。

可实现功能:
1、按键控制步进电机正反转、加减速、停止;
2、2个发光二极管显示正反转,1位7段LED数码管显示当前转速档位(共9个档位);
3、4个红色LED,指示电机的转速。

2、仿真

protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

51单片机的步进电机控制系统(仿真+程序+报告+原理图)_第1张图片

3、程序代码

只是放上来了部分代码,仅供参考。

51单片机的步进电机控制系统(仿真+程序+报告+原理图)_第2张图片

// 公众号:今天也不想打工
// 回复:“51步进电机”获取
//-----------------------------------------------------------------
// Timer0 初始化,模式1,允许中断,1ms定时
// Timer0 用于按键扫描
//-----------------------------------------------------------------
void T0_Init()
{
	TMOD &= 0xF0;
	TMOD |= 0x01;										//T0工作于模式1,16位定时器
	TH0 = (65536 - 1000) >> 8;			//1ms定时
	TL0 = (65536 - 1000) & 0xFF;
	ET0 = 1;												//允许T0中断
	TR0 = 1;												//启动T0
}

//-----------------------------------------------------------------
// Timer1 初始化,模式1,允许中断
// Timer1 用于改变步进电机转速
//-----------------------------------------------------------------
void T1_Init()
{
	TMOD &= 0x0F;
	TMOD |= 0x10;							//定时器1工作于模式1,16位定时器
	TH1 = Timer[speed][0];
	TL1 = Timer[speed][1];		//定时器1,定时用于步进电机转速控制
	ET1 = 1;									//允许T1中断
	PT1 = 1;									//定时器1优先级高
	TR1 = 0;									//关闭定时器1
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{	
	T0_Init();					//定时器0初始化
	T1_Init();					//定时器1初始化
	FWD_LED = 0;				//正转指示灯亮,默认初始化是正转
	
	delay_ms(500);			//延时500ms,待各个模块上电稳定
	EA = 1;							//开启中断
	while(1)
	{	
		KeyService();		//按键服务程序
	}
}	

4、原理图

51单片机的步进电机控制系统(仿真+程序+报告+原理图)_第3张图片

5、报告

内含4.5k字,17页的相关报告一份,纯手打,内容一致

51单片机的步进电机控制系统(仿真+程序+报告+原理图)_第4张图片

6、常见问题汇总

里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)

51单片机的步进电机控制系统(仿真+程序+报告+原理图)_第5张图片

7、资源获取

在这里插入图片描述

本项目包含的所有文件都可以在:今天也不想打工,回复“51步进电机”获取!
希望可以帮到你哈!

你可能感兴趣的:(单片机设计,51单片机,单片机,嵌入式硬件)