永发信息网

单片机如何控制进步电机?

答案:2  悬赏:10  手机版
解决时间 2021-03-17 15:05
我只能让它转起来,但是它不能按照我想的转.
最佳答案

#include "reg52.h"
//Motor
sbit A = P1^0; //定义管脚
sbit b = P1^1;
sbit C = P1^2;
sbit D = P1^3;

///////////////////////////////////////
//步进电机驱动
unsigned char MotorStep=0;
unsigned int MotorTimer = 0;
unsigned int MotorDelay,Speed=1,TIM,CT;

#define speed 8 // 调整速度 数值不要设的太低 低了会引起震动。


void InitMotor()
{
A = 1;
b = 1;
C = 1;
D = 1;
}

void SetMotor()
{
// if(Speed == 0) return;

MotorDelay=Speed; //调整速度
switch(MotorStep)
{
case 0:
if(TIM) // A
{
A = 0; //0xf1
b = 1;
C = 1;
D = 1;
MotorStep = 1;
TIM=0;
}
break;

case 1: // AB
if(TIM)
{
A = 0; //0xf3
b = 0;
C = 1;
D = 1;
MotorStep = 2;
TIM=0;
}
break;

case 2: //B
if(TIM)
{

A = 1;
b = 0; //0xf2
C = 1;
D = 1;

MotorStep = 3;
TIM=0;
}
break;

case 3: //BC
if(TIM)
{
A = 1;
b = 0; //0xf6
C = 0;
D = 1;
MotorStep = 4;
TIM=0;
}
break;
case 4: //C
if(TIM)
{
A = 1;
b = 1; //0xf4
C = 0;
D = 1;
MotorStep = 5;
TIM=0;
}
break;
case 5: //CD
if(TIM)
{
A = 1;
b = 1; //0xfc
C = 0;
D = 0;
MotorStep = 6;
TIM=0;
}
break;
case 6: //D
if(TIM)
{
A = 1;
b = 1; //0xf8
C = 1;
D = 0;
MotorStep = 7;
TIM=0;
}
break;
case 7: //DA
if(TIM)
{
A = 0;
b = 1; //0xf9
C = 1;
D = 0;
MotorStep = 0;
TIM=0;
}
break;

}

}

void system_Ini()
{
TMOD|= 0x11;
TH0=0xDC; //11.0592M
TL0=0x00;
IE = 0x8A;
TR0 = 1;

}

main()
{ system_Ini();
InitMotor();
while(1)
{
SetMotor();

}

}


void Tzd(void) interrupt 1
{
TH0 = 0xfe; //11.0592
TL0 = 0x33;

if( CT++==speed)
{TIM=1;
CT=0;
}
}
全部回答
如果只有一个转向的话就比较容易了,如果要有正反两个转向,就需要一个h桥,并且两个i/o口输出高低电频控制,现在就来说说一个转向的控制方式吧。 比如用p1口的p1.0,p1.1,p1.2三个i/o口接按键,p3.4口接电频输出,编个定时程序及按键程序,如果是快(全速运行),那就p3.4口直接输出高电频“1”;中(50%),那就让p3.4口0—50ms输出高电频“1”,50ms—100ms输出低电频“0”,后面就一直以50ms进行一次取反;慢(就用10%吧),0—40ns输出高电频“1”,41ns—400ns输出低电频“0”,这样为一个周期,后面就一直循环吧。如果按键p1.0按下,执行方式1,全速运行,否则以默认方式运行;按键p1.1按下,执行方式2,改变占空比,以50%的速度运行,否则,不作改变;按键p1.2按下,执行方式3,改变占空比,以10%的速度运行,否则,不作改变。当然,占空比及定时时间可以根据个人需要进行改变,这只跟定时程序有关了,定时程序跟按键程序这边就不说了,别忘了按键去抖,咔咔,不然可能会乱掉。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海贼王在一集里,香吉士VS一个剑士。索隆VS一
天外天烤鸭店马家堡分店我想知道这个在什么地
潍柴动力股份有限公司上海分公司待遇? 本科
PVC软胶帕数是怎么算的
欧莱雅与施华寇哪个品牌的染发剂好?
大家帮我看看这是什么虫子,屋里出现的,哪来
什么叫继电保护装置???
企业赊销购买汽车一辆,价值20万元,这项业务
哈尔滨华良科技有限公司在哪里啊,我有事要去
南京哪里有卖拉杆箱的
开店地税要钱和房屋租金有关系吗
昨天安装暖气锯铁管时不小心把瓷砖弄成这样,
驾照考试科目二考什么内容,怎么考
江苏益诚电器有限公司地址在哪,我要去那里办
租车要什么手续吗?要抵押东西吗?
推荐资讯
帮我同学黄世锟写一首藏头诗
255点六除以十八列式计算
10kv高压电的办理流程是什么?
浙江省内水产鱼养殖基地在哪里最多
主角是个废宅,无意中与来自魔界的魅魔订下了
手撕炝莲白怎么做好吃
烂肉豇豆是荤菜还是素菜
比较坚强又飞得高的鸟是什么鸟
人生总是如此艰难吗?还是只有小时候是这样
如何对待现代西方教育理论或思潮
郎平在排球场上的位置
怎么把word 文件转换成pjd
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?