标题:
单片机无法停止发送脉冲,求助
[打印本页]
作者:
Double_bass
时间:
2017-11-22 19:49
标题:
单片机无法停止发送脉冲,求助
单片机型号为stc12c5a60s2,写了一段程序用来驱动步进电机转动,但发现一旦给过一个脉冲后就一直有脉冲出现在P1^1口,导致步进电机无法停止转动。程序如下,求助!!
#include "reg52.h"
#include "INTRINS.H"
sbit a=P1^1; //脉冲
sbit b=P1^2; //方向
void delay(unsigned int x)
{
unsigned int j;
for(;x>0;x--)
{
for(j=0;j<124;j++);
}
}
void move()
{
a=1;
delay(500);
a=0;
delay(500);
}
void main(){
b=1;
int i=10;
while(i>0)
{
move();
i--;
}
a=0;
}
作者:
HC6800-ES-V2.0
时间:
2017-11-23 08:40
问题很简单!
因为你的程序,没有设置终止,单片机执行完main()函数后,会自动再次执行它,所以你的电机不会停了。
解决办法是:
在a=0;语句后,加上while(1);就好了,你试试。
这样做的目的,就是当执行到while(1)时,就永远停在那里循环,不会再从头执行main(),你的电机也就停了。
作者:
Double_bass
时间:
2017-11-26 10:32
HC6800-ES-V2.0 发表于 2017-11-23 08:40
问题很简单!
因为你的程序,没有设置终止,单片机执行完main()函数后,会自动再次执行它,所以你的电机不 ...
您好,我试了一下你说的方法,是可以停止的,但是请问一下还有其他的使电机停止的方法吗?因为我是想实现给电机几个脉冲就让它转几下,但是如果用while(1)的话就无法再次启动了,请问这个有解决方法吗?万分感谢!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1