1、主要功能
该系统由AT89C51单片机+数码管模块+步进电机模块+按键模块构成。
可实现功能:
1、按键控制步进电机正反转、加减速、停止;
2、2个发光二极管显示正反转,1位7段LED数码管显示当前转速档位(共9个档位);
3、4个红色LED,指示电机的转速。
2、仿真
protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)
3、程序代码
只是放上来了部分代码,仅供参考。
// 公众号:今天也不想打工
// 回复:“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、原理图
5、报告
内含4.5k字,17页的相关报告一份,纯手打,内容一致
6、常见问题汇总
里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)
7、资源获取
文章来源:https://www.toymoban.com/news/detail-503956.html
本项目包含的所有文件都可以在gzh:今天也不想打工,回复“51步进电机”获取!
希望可以帮到你哈!文章来源地址https://www.toymoban.com/news/detail-503956.html
到了这里,关于51单片机的步进电机控制系统(仿真+程序+报告+原理图)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!