标题:
步进电机不稳定,单片机重启之后随机受控制
[打印本页]
作者:
MATISI
时间:
2019-2-24 10:20
标题:
步进电机不稳定,单片机重启之后随机受控制
求大佬给看看感觉室程序问题把,步进电机我设了个p0按下才转,但是单片机重启之后很随机,大部分会一直转不停,多重启几次会能有一次正常受控制的程序在下面,求大佬给看看,拜托~~~
#include "reg52.h"
#include<intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit MOTOA = P1^0;
sbit MOTOB = P1^1;
sbit MOTOC = P1^2;
sbit MOTOD = P1^3;
sbit pos=P0^0;
#define SPEED 800
void delay(u16 i)
{
while(i--);
}
void main()
{
P1=0X00;
P0=0XFF;
while(1)
{
if(!pos)
{
MOTOA = 1;
MOTOB = 0;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 1;
MOTOB = 1;
MOTOC = 1;
MOTOD = 0;
delay(SPEED);
MOTOA = 0;
MOTOB = 1;
MOTOC = 1;
MOTOD = 1;
delay(SPEED);
MOTOA = 1;
MOTOB = 1;
MOTOC = 0;
MOTOD = 1;
delay(SPEED);
}
}
}
作者:
bemc
时间:
2019-2-24 11:16
!pos 要处理一下
作者:
lfc315
时间:
2019-2-24 18:02
上电要先初始化
作者:
Marlboro
时间:
2019-2-24 21:27
你的按键程序没写好吧,我试一下按键这样来写if(pos == 0){ delay(20); if(pos == 0) { “步进电机的内容”} while(pos==0); }
作者:
Marlboro
时间:
2019-2-24 21:43
或者你可以换一种方式,就是按一下按键电机就转,再按一下电机就停,假设按键接的是p10,先定义pos为0,if(p10==0){delay(5)if(p10==0){(pos=~pos)while(!p10);}} if(pos){ //步进电机的内容}
作者:
徐张克
时间:
2019-2-24 21:54
什么单片机?这种可能性大是单片机干扰了。1、你改用抗干扰强单片机试试。2、看看是否电源功率太小,同时单片机又和步进电机使用同个电源,导致电源不稳定干扰了单片机。
作者:
HC6800-ES-V2.0
时间:
2019-2-25 08:58
我个认为,你的按键接在P00不好,你有上拉电阻吗?最好换成除P0外的其它口,可能就好了。
作者:
笨笨兔
时间:
2019-2-25 10:02
调试程序怎么这样不在行?
可以把电机改为灯泡试试,看你的硬件部分是否抗干扰。。。。。。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1