不要使用89C52或者51,用12C5A60S2或其他1T单片机,因为89C51控制2个,速度跟不上,指令执行较慢
用2个定时器,在定时器中断种处理
步进电机有4相的,2相的,等,4线的,6线的,5线的等,控制起来,只有5线跟别人不怎么相同,但却是最简单的,4线只要控制好A+ A- B+ B-也是差不多
51单片机步进电机正反转程序
单片机控制步进电机,我想你说的是两相步进电机,一般是控制其相序分配的顺逆从而控制正反转,一般而言,步进电机相序分配你可以做成一个数组比如step[]={0x03,0x06,0x0c,0x09},这样来说可以假设P0口是步进电机控制口,那么可以按如下方式来控制: while(1) { for(i=0;i<4;i++) { if(fx==1...
怎样用51单片机接两相步进电机驱动器来控制步进电机?
脉冲信号就是像流水灯差不多,用两个口。例如:用到P1^0和P1^1;把P10制低电平,P11制高电平,延时一段时间后,P10制高电平 P11制低电平,如此循环,看程序:include "reg52.h"sbit P10=P1^0;sbit P11=P1^1;void delay(unsigned int x)P10=0;P11=1;delay(1000);P10=1;P11=0;delay(10...
求51单片机控制步进电机,实现其间歇运动的程序,最好要有C语言的
\/\/#include"delay.h" \/\/在本文件中加入一个延时函数,或添加带有延时函数的.c文件 unsigned char code table1[]={0x00,0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};\/\/0x00表示停止转动 \/\/ \/\/bit flag;\/\/正反转标志 void delayus(unsigned int t) \/\/延时函数 { while(--t);}...
51单片机控制二相四线步进电机程序
include<reg52.h>\/\/头文件 sbit A1=P1^0;\/\/定义A线圈正端口 sbit A2=P1^1;\/\/定义A线圈负端口 sbit B1=P1^2;\/\/定义B线圈正端口 sbit B2=P1^3;\/\/定义B线圈负端口 sbit en1=P2^0;sbit en2=P2^1;int t=0;define F1 {A1=1;B1=0;A2=0;B2=0;} \/\/A线圈通正向电压 define ...
51单片机控制步进电机
下面是程序:include <reg51.h> \/\/选用晶振11.0592MHz unsigned int m=0,n=0; \/\/设置循环的周期 unsigned char start=0,t0temp=0;sbit Y0=P0^0; \/\/控制步进电机的管脚 delay(){ unsigned char i,j;for(i=m;i>0;i--)for(j=n;i>0;j--);} main(){ \/\/自检测T0时间设...
关于51单片机控制步进电机编程(c语言),求助
include <reg52.h> define uchar unsigned char define uint unsigned int uchar key_l,key,i;uchar code temp1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};uchar code temp2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};uchar code aa[16]=" :";uchar code smg[...
51单片机可以同时执行两个操作吗
换个思路。步进电机用中断来执行。把步进电机的转动放到定时器中断里面来。步进电机的转动速度通过设置定时器的中断时间来控制。用变量来控制步进电机的步伐。主函数里面,你爱干什么就干什么。
如何用c51编写51单片机控制步进电机转动程序
A=( 50h ),SP=( 50h ),(51H)=( 30h ),(52H)=(50h ),PC=( 5030h )pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:(A)=50H;sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次...
帮忙写个51单片机的c程序!两相四线混合式步进电机,正反转功能能实现,但 ...
include<reg52.h> void delay(){int x,y;for(x=0;x<40;x++)for(y=0;y<10;y++);} main(){while(1){P1=0x3f;delay();P1=0x6f;delay();P1=0xcf;delay();P1=0x9f;delay();} } 正反转改P1的值,速度改delay的值。我默认步进电机是由P1口驱动的。
通过51单片机控制驱动芯片298控制两个步进电机画圆的简单程序
不是很复杂,自己编就行,找片两路pwm的stc片,用定时器0做它的时钟,再用定时器1做个定时中断,定时刷新两路pwm的占空比,在存储器上开一片数据区存下正弦表给定时器1用。定时器0的定时长度决定画圆的大小,数据区决定圆的平滑度