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

diy个东西,没学过单片机,也没时间学习。愿意提供程序的高手请速加企鹅2419583157详聊,是比较简单的编程... diy个东西,没学过单片机,也没时间学习。愿意提供程序的高手请速加企鹅2419583157详聊,是比较简单的编程 展开
 我来答
cjj796
2013-08-29 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3495万
展开全部

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
追答
满意这个先采纳吧,然后私信联系
叫我矮穷丑
2017-12-25
知道答主
回答量:1
采纳率:0%
帮助的人:924
展开全部
#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);}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
情涵人0Q
2013-08-29
知道答主
回答量:83
采纳率:0%
帮助的人:56.9万
展开全部
我一个朋友是做单片机培训的,应该懂的比较多,他们公司是北京德天驰鼎科技有限公司,如果你需要我可以帮你做联系哦。呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式