標(biāo)題:
我寫的單片機程序循環(huán)讓步進電機轉(zhuǎn)一定角度,可它一直轉(zhuǎn)求大神解答
[打印本頁]
作者:
15939010388
時間:
2018-4-4 15:26
標(biāo)題:
我寫的單片機程序循環(huán)讓步進電機轉(zhuǎn)一定角度,可它一直轉(zhuǎn)求大神解答
通電以后步進電機一直在轉(zhuǎn),我分析的應(yīng)該轉(zhuǎn)5個周期就停下了啊
單片機源程序如下:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define GPIO_DJ P1
unsigned char code eight_pos[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//八拍驅(qū)動方式正轉(zhuǎn)表 AD-D-DC-C-CB-B-BA-A
unsigned char code eight_rev[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//八拍驅(qū)動方式反轉(zhuǎn)表 A-AB-B-BC-C-CD-D-DA
unsigned char code eight_pos[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//八拍驅(qū)動方式正轉(zhuǎn)表 AD-D-DC-C-CB-B-BA-A
unsigned char code eight_rev[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//八拍驅(qū)動方式反轉(zhuǎn)表 A-AB-B-BC-C-CD-D-DA
void Delay1ms(unsigned int c);//定義延時程序
unsigned int a,b,i,j,k,z; //采集的亮度值及當(dāng)前的步進電機角度
unsigned char pp; //讀取二十次ad值for循環(huán)
unsigned int c=0,d=0;
void Delay(unsigned int i)//延時
{
while(--i);
}
void delay1ms(z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void m_eight_pos()
{
j=0;
for(i=0;i<8;i++)//在八拍工作方式下,一個脈沖轉(zhuǎn)子轉(zhuǎn)動角度為5.625度,八拍共45度
{
P1=eight_pos[j];
delay1ms(2);
j++;
}
}
/*******************八拍驅(qū)動反轉(zhuǎn)(N*45/16)度***********************/
void m_eight_rev()
{
j=0;
for(i=0;i<8;i++)//在八拍工作方式下,一個脈沖轉(zhuǎn)子轉(zhuǎn)動角度為5.625度,八拍共45度
{
P1=eight_rev[j];
delay1ms(2);
j++;
}
}
void main(void)
{
b=0;
while(1)
{
a=100;
if(a>=b)
{
for(i=((a-b)/20);i>0;i--)
{
b+=20;
m_eight_rev();
}
}
else
{
for(i=((b-a)/20);i>0;i--)
{
b-=20;
m_eight_pos();
}
}
}
}
復(fù)制代碼
作者:
賊心不死
時間:
2018-9-15 08:30
想問下樓主解決了嗎?我們也遇到了類似的問題....
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1