51单片机的步进电机控制系统(仿真+程序+报告+原理图) |
您所在的位置:网站首页 › 单片机正反转编程 › 51单片机的步进电机控制系统(仿真+程序+报告+原理图) |
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、资源获取本项目包含的所有文件都可以在gzh:今天也不想打工,回复“51步进电机”获取! 希望可以帮到你哈! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |