資源簡介
該程序是關(guān)于如何實(shí)現(xiàn)用一個298驅(qū)動兩相步進(jìn)電機(jī)的程序,實(shí)現(xiàn)了整步、半步,將注釋的解除后可實(shí)現(xiàn)上述功能,調(diào)整定時器時間間隔可調(diào)整速度

代碼片段和文件信息
//******************************************************************************************
//作???????者:碧海云天
//
//功???????能:用298驅(qū)動兩相步進(jìn)電機(jī),使其分別工作在單拍整步,雙拍整步和混合半步狀態(tài)
//
//日???????期:2009年8月12日
//******************************************************************************************
#include
#define?uint?unsigned?int
#define?uchar?unsigned?char
uchar?counter=0;
sbit?enA=P0^0;
sbit?in1=P0^1;
sbit?in2=P0^2;
sbit?in3=P0^3;
sbit?in4=P0^4;
sbit?enB=P0^5;
void?T0_init();??//定時器初始化
void?delay(uchar);
void?main()
{
???enA=1;????//使能
???enB=1;
???T0_init();
??while(1)
??{};
}
?void?delay(uchar?x)
{
???uchar?i;
???uint?j;
???for(i=0;i ?????for(j=0;j<300;j++);
}
void?T0_init()
??{
??TMOD=0x01;?????????????????//定時器0工作于16位計(jì)時器模式
??TH0=(65535-20000)/256;??????//賦初值?
??TL0=(65535-20000)%256;????????????????
??
??EA=1;??????????????????????//開總中斷
??ET0=1;?????????????????????//允許定時器0中斷
??TR0=1;?????????????????????//啟動定時器??
??}
void?clock_signal()?interrupt??1???//單拍運(yùn)行,耗電少,精度好,但力矩小,為整步運(yùn)行
{
?
??counter++;
??if(1==counter)
????{in1=1;in3=0;in2=0;in4=0;}
??else?if(2==counter)
????{in1=0;in3=1;in2=0;in4=0;}
??else?if(3==counter)
????{in1=0;in3=0;in2=1;in4=0;}
??else?if(4==counter)
????{in1=0;in3=0;in2=0;in4=1;}
??else
????{counter=0;}
???
??TH0=(65535-3000)/256;???????????
??TL0=(65535-3000)%256;?
????
}
/*void?clock_signal()?interrupt??1??//雙拍運(yùn)行,耗電大,轉(zhuǎn)矩大,為整步運(yùn)行
{
?
??counter++;
??if(1==counter)
????{in1=1;in3=1;in2=0;in4=0;}
??else?if(2==counter)
????{in1=0;in3=1;in2=1;in4=0;}
??else?if(3==counter)
????{in1=0;in3=0;in2=1;in4=1;}
??else?if(4==counter)
????{in1=1;in3=0;in2=0;in4=1;}
??else
????{counter=0;}
???
??TH0=(65535-30000)/256;???????????
??TL0=(65535-30000)%256;?
????
}*/
/*void?clock_signal()?interrupt??1??//混合運(yùn)行,精度高,為半步運(yùn)行
{
?
??counter++;
??if(1==counter)
????{in1=1;in3=0;in2=0;in4=0;}
??else?if(2==counter)
????{in1=1;in3=1;in2=0;in4=0;}
??else?if(3==counter)
????{in1=0;in3=1;in2=0;in4=0;}
??else?if(4==counter)
????{in1=0;in3=1;in2=1;in4=0;}
??else?if(5==counter)
????{in1=0;in3=0;in2=1;in4=0;}
??else?if(6==counter)
????{in1=0;in3=0;in2=1;in4=1;}
??else?if(7==counter)
????{in1=0;in3=0;in2=0;in4=1;}
??else?if(8==counter)
????{in1=1;in3=0;in2=0;in4=1;}
??else
????{counter=0;}
???
??TH0=(65535-30000)/256;???????????
??TL0=(65535-30000)%256;?
????
}*/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4059??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī)
?????文件???????2571??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).c
?????文件????????864??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).hex
?????文件???????5315??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).LST
?????文件???????7100??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).M51
?????文件???????3665??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).OBJ
?????文件???????1250??2009-08-13?11:04??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).Opt
?????文件???????2517??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).plg
?????文件???????2116??2009-08-12?19:13??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī).Uv2
????.......?????????0??2009-08-12?16:24??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī)_Uv2.Bak
?????文件???????5115??2002-04-16?15:32??298驅(qū)動步進(jìn)電機(jī)\STARTUP.A51
?????文件??????11762??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\STARTUP.lst
?????文件????????859??2009-08-13?10:41??298驅(qū)動步進(jìn)電機(jī)\STARTUP.obj
?????目錄??????????0??2009-08-13?11:04??298驅(qū)動步進(jìn)電機(jī)
????.......??????1250??2009-08-12?19:13??298驅(qū)動步進(jìn)電機(jī)\298驅(qū)動步進(jìn)電機(jī)_Opt.Bak
-----------?---------??----------?-----??----
????????????????48443????????????????????15
評論
共有 條評論