ZKX's LAB

51单片机控制两个步进电机的程序 51单片机 步进电机控制

2020-10-03知识8

51单片机, 编一个控制步进电机转动的程序。 include<;reg51.h>;/51芯片管脚定义头文件include<;intrins.h>;/内部包含延时函数_nop_();define uchar unsigned chardefine uint unsigned intuchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};延时t毫秒11.0592MHz时钟,延时约1msvoid delay(uint t){uint k;while(t-){for(k=0;k;k+){ }}}步进电机正转void motor_ffw(uint n){uchar i;uint j;for(j=0;j*n;j+)/转1×n圈{for(i=0;i;i+)/一个周期转30度{P1=FFW[i];取数据delay(15);调节转速}}}步进电机反转void motor_rev(uint n){uchar i;uint j;for(j=0;j*n;j+)/转1×n圈{for(i=0;i;i+)/一个周期转30度{P1=REV[i];取数据delay(15);调节转速}}}主程序main(){while(1){motor_ffw(5);电机正转delay(5000);换向延时motor_rev(5);电机反转delay(1000);换向延时}}

51单片机控制步进电机 自己写,然后发出来别人在给你建议,一味的追求别人给你的答案,你遇到新问题永远不会处理。所以很多人根本没那么多时间为你设计,调试,编写程序,这些都是你自己要先完成的。现在很多人都比较讨厌一上来就要答案的人,我之前初学的时候刚开始也是跟你一样,总觉得自己是新手,不管什么问题都发出来等别人告诉我答案,后面基本上都是石沉大海,所以后面都是我自己写,然后有遇到问题,查了资料后不懂得,在去问别人得话,人家只要稍微提醒我就知道是怎么回事了,你这样了,人家跟你说了,你估计也是云里雾里的。

51单片机控制两个步进电机的程序 不要使用89C52或者51,用12C5A60S2或其他1T单片机,因为89C51控制2个,速度跟不上,指令执行较慢用2个定时器,在定时器中断种处理步进电机有4相的,2相的,等,4线的,6线的,5线的等,控制起来,只有5线跟别人不怎么相同,但却是最简单的,4线只要控制好A+A-B+B-也是差不多

如何用51单片机PWM控制3个步进电机? 用单片机同时是不2113可能的,当然5261,时间间隔小到可以接受,跑几个任务,那也可4102以视为同时。要实现真正意义1653上的同时,用FPGA/CPLD是可以完成的。话说回来,也许你的同时并不是说一定严格地同时工作,只是说一个单片机去控制四个步进电机,那就好办多了。一个步进电机,比如4相5线那种,4个IO口可控制一个,四个步进电机就要16个,驱动芯片用ULN2003即可。当然,如果你的IO口不允许使用这么多,那也可以通过串转并的方法,扩展IO口,比如用74HC595,三根IO口控制它,它可以级联,三根线可以控制很多片。一片为8位,两片就为16位,3片为24位…

#单片机#单片机最小系统#步进电机

随机阅读

qrcode
访问手机版