单片机控制步进电机,正反转,转速。程序编写帮助

diy个东西,没学过单片机,也没时间学习。愿意提供程序的高手请速加企鹅2419583157详聊,是比较简单的编程

C语言代码,电机调速控制,满意请采纳

追问

能否帮忙做一份,要能用的,STC89C52RC单片机,L298驱动,两相四线步进。
能控制正反转,9.225个脉冲每秒
sbit P0_0=P2^0; //A
sbit P0_1=P2^1; //~A
sbit P0_2=P2^2; //B
sbit P0_3=P2^3; //~B

追答

满意这个先采纳吧,然后私信联系

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-25
#include <reg52.h> //51芯片管脚定义头文件
#include <intrins.h> //内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint unsigned int
#define TIME 30
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2; //D1
sbit key1=P3^1;
sbit key2=P3^0;
sbit key3=P3^2;
sbit BEEP=P1^5;
sbit APositive = P1^0;
sbit ANegative = P1^1;
sbit BPositive = P1^2;
sbit BNegative = P1^3;
void delay(uint t)
{
uchar k;
while(t--)
{
for(k=0; k<125; k++)
{ }
}
}
void delayB(uchar x) //x*0.14MS
{
uchar i;
while(x--)
{
for (i=0; i<13; i++);
}
}
void beep()
{
uchar j;
for (j=0;j<100;j++)
{
delayB(4);
BEEP=!BEEP; //BEEP取反
}
BEEP=1; //关闭蜂鸣器
delay(170);
}
void zhengrun()
{
while(1)
{APositive = 0;
ANegative = 1;
BPositive = 0; // B负和B正这两根线电平只要一样即可,两个1和
BNegative = 0; // 两个0效果是一样的
delay(TIME);
APositive = 0;
ANegative = 0;
BPositive = 1; // B负和B正这两根线电平只要一样即可,两个1和
BNegative = 0; // 两个0效果是一样的
delay(TIME);
APositive = 1;
ANegative = 0;
BPositive = 0; // B负和B正这两根线电平只要一样即可,两个1和
BNegative = 0; // 两个0效果是一样的
delay(TIME);}
}
void fanrun()
{ while(1)
{ APositive = 0;
ANegative = 0;
BPositive = 0; // B负和B正这两根线电平只要一样即可,两个1和
BNegative = 1; // 两个0效果是一样的
delay(TIME);
APositive = 1;
ANegative = 0;
BPositive = 0; // B负和B正这两根线电平只要一样即可,两个1和
BNegative = 0; // 两个0效果是一样的
delay(TIME);
APositive = 0;
ANegative = 0;
BPositive = 1; // B负和B正这两根线电平只要一样即可,两个1和
BNegative = 0; // 两个0效果是一样的
delay(TIME);
APositive = 0;
ANegative = 1;
BPositive = 0; // B负和B正这两根线电平只要一样即可,两个1和
BNegative = 0; // 两个0效果是一样的
delay(TIME);
}
}
void main()
{ while(1)
{
if (key1==0)
{ delay(100);
if ( key1==0 )
{led1=~led1;
beep();
zhengrun();
}
while(!key1);}
if (key2==0)
{ delay(100);
if ( key2==0 )
{
led2=~led2;
beep();
fanrun();}
while(!key2);}
if (key3==0)
{ delay(100);
if ( key3==0 )
{led3=~led3;
beep();}
while(!key3);}

}
}
第2个回答  2013-08-29
我一个朋友是做单片机培训的,应该懂的比较多,他们公司是北京德天驰鼎科技有限公司,如果你需要我可以帮你做联系哦。呵呵

51单片机步进电机正反转程序
单片机控制步进电机,我想你说的是两相步进电机,一般是控制其相序分配的顺逆从而控制正反转,一般而言,步进电机相序分配你可以做成一个数组比如step[]={0x03,0x06,0x0c,0x09},这样来说可以假设P0口是步进电机控制口,那么可以按如下方式来控制: while(1) { for(i=0;i<4;i++) { if(fx==1...

单片机C语音控制步进电机正反转程序
步进电机的正反转控制,不仅限于上述简单的双四拍方式,还可以采用其他控制方式,如单四拍、双八拍等,根据具体需求选择合适的控制方式。总结来说,通过合理安排脉冲的输入顺序和延时时间,可以实现步进电机的正反转控制。这对于自动化控制、机械装置等领域有着广泛的应用前景。

如何用c51编写51单片机控制步进电机转动程序
pc总是指向下一条指令的首地址的。但是在返回的时候得看堆栈中的数了。上面程序执行完之后:(A)=50H;sp=50H(因为在程序中,sp减了两次,后来又加了两次,在程序最后ret有在返回的时候减了两次,即地址出栈,故最终结果是50h。(51h)=30h;(52h)=50h;因为ret指令返回时,出栈的结果是高...

如何用单片机来控制步进电机,并用两盏灯分别来表示其正反转! 大侠可以...
define motor P0 \/*步进电机接口*\/ sbit P12 = P1^2; \/*控制正转按键*\/ sbit P11 = P1^1; \/*控制电机停止*\/ sbit P10 = P1^0; \/*控制电机反转*\/ sbit led1 = P1^3; \/*正转指示灯*\/ sbit led2 = P1^4; \/*反转指示灯*\/ uchar code table1[]={0xf3,0xf6,0xfc,...

用单片机控制步进电机正反转,简单易懂的C语言程序,最好带注释,步进电机...
看题主的情况应该是不太了解编程,向你推荐表控,在不会编程的情况下,可以利用中文表格设置轻松实现步进电机的正反转。具体参见下图:第1行设置由输入端X1作为启动,Y1输出3万个脉冲,脉冲频率600赫兹(每秒600个脉冲的频率),由于只有Y1输出脉冲,没有设置方向输出端,所以电机正转。第3、4行由X2...

单片机控制步进电机要求:有加速、减速、停止、正转、反转按钮,电机是四...
我用的是控制一个步进电机的,这个是我以前写的,你的要求在下面的程序做修改就行了;程序如下:include <reg52.h> define uchar unsigned char define uint unsigned int \/\/uchar table[]={0x18,0x30,0x60,0x48,0x48,0x60,0x30,0x18}; \/\/二相励磁 uchar table[]={0x08,0x10,0x20,0x...

怎样用单片机控制步进电机转速
delay(200);\/\/\/调节转速快慢 } } } main(){ while (1){ motor_turn(360, P_DIR);motor_turn(180, N_DIR);motor_turn(90, P_DIR);motor_turn(360, N_DIR);} } 这个程序主要讲一下motor_turn里面的数据处理部分,不晓得大家是否看懂了。由于电机的旋转一周需要的指令个数是8*8*64=...

51单片机控制步进电机正反转、加减速
51单片机控制步进电机正反转、加减速 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能加速了并且减几下就变得很慢了(经测试上下限都是可以正常速度运转的)求各位路过的大侠指点... 我本来想实现步进电机自由调速的,可现在的程序如果先加速就不能减速了,如果先减速就不能...

用C编写单片机控制两个步进电机正反转程序,驱动用ULN2803,四个按键分...
用P2.0 P2.1 控制下面的步进电机 用P2.2 P2.3 控制上面的步进电机 \/ void main(void){ SysCtlClockInit(); \/\/时钟初始化 IO_bujin();P2DIR |=BIT5;\/\/激光枪 P2OUT&=~BIT5;P2IE|=BIT4;\/\/初始化P2.4的中断按键,激光枪开 P2IES|=BIT4;P2IFG&=~BIT4;_EINT(); \/\/使能...

51系列单片机 程序设计 用4个开关控制步进电机进行启动停止正转和反转...
1、分析功能需求:四个按键控制步进电机的四种状态,那么必须要在程序中有IO口按键扫描程序;而且步进电机的控制一定要先设置好定时器。2、功能模块定义:四个按键对应四个函数,每个函数实现不同功能,对于正反转,先定义控制电机每一步时P0口的数据列表,把列表地址赋给DPTR,即TAB1,和TAB2,分别为正...

相似回答