✨哈喽大家好,这里是@每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~
🐱🐉这是51单片机毕业设计100篇系列的第2篇:基于51单片机的步进电机控制系统
💻项目相关说明:
- 代码量:340行
- 报告字数:4491字
- 含代码、仿真、原理图、报告、器件清单、常见问题(实物、lw可另外定制)
🎈项目分享:见文末!
1、主要功能
该系统由AT89C51/STC89C52单片机+数码管模块+超声波模块+按键模块+报警模块构成。适用于步进电机调速、正反转等控制项目。
可实现功能:
1、控制步进电机正反转、加减速、停止
2、2个发光二极管显示正反转,1位7段LED数码管显示当前转速档位(共9个档位)
3、4个红色LED,指示电机的转速
2、仿真
proteus仿真使用8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)
3、代码
部分代码,仅供参考,注释齐全。
//-----------------------------------------------------------------
// Timer1 中断服务程序
//-----------------------------------------------------------------
void InterruptTime1() interrupt 3
{
static step1 = 0;
static step2 = 0;
TH1 = Timer[speed - 1][0]; //根据不同的转速档位,给定时器1赋定时器值
TL1 = Timer[speed - 1][1];
//按照定时器1的频率循环发送正转励磁序列的脉冲给步进电机,使其不停地转动
if(flag1 == FwdRun)//正转
{
MotorDriver = FFW[step1++];
if(step1 == 8) step1 = 0;
}
//按照定时器1的频率循环发送反转励磁序列的脉冲给步进电机,使其不停地转动
else if(flag1 == RevRun)
{
MotorDriver = REV[step2++];
if(step2 == 8) step2 = 0;
}
}
4、原理图
使用AD21绘制(不是嘉立创哦
5、参考报告
内含4.5k字,17页相关报告一份,纯手打~
6、常见问题
7、资源获取
扫描如下二维码,回复"51步进电机"获取本项目所有文件!
希望可以对你有所帮助~