資源簡介
單片機控制多個步進電機程序,可以同時控制兩個步進電機
代碼片段和文件信息
//*************************************************************************************************************
//實驗名稱:單片機控制多個電機
//程序說明:燒好程序,連接好控制線(步進電機1的控制線I1-I4連接到P2.0-P2.3,步進電機2的控制線I1-I4連接
//??????????到P2.4-P2.7。按S19可控制步進電機1的轉(zhuǎn)動停止、加減速和正反轉(zhuǎn),按S20可控制步進電機2的轉(zhuǎn)動停
// 止、加減速和正反轉(zhuǎn)。
//實驗平臺:YZ200?V2.2開發(fā)箱,STC89C52單片機。
//作者:徐銳鋒
//日期:2010-12-20
//廣州研展電子科技有限公司?www.52yanfa.com?(我愛研發(fā)網(wǎng))??版權(quán)所有?
//****************************************************************************************************************
#include?
//#include?
sbit?A1=P2^0; //步進電機1輸出腳定義
sbit?B1=P2^1;
sbit?C1=P2^2;
sbit?D1=P2^3;
sbit?A2=P2^4; //步進電機2輸出腳定義
sbit?B2=P2^5;
sbit?C2=P2^6;
sbit?D2=P2^7;
//步進電機1工作定義------------------------------------------------------------------------------------------------------
#define?Coil_A1?{A1=1;B1=0;C1=0;D1=0;}//A相通電,其他相斷電
#define?Coil_B1?{A1=0;B1=1;C1=0;D1=0;}//B相通電,其他相斷電
#define?Coil_C1?{A1=0;B1=0;C1=1;D1=0;}//C相通電,其他相斷電
#define?Coil_D1?{A1=0;B1=0;C1=0;D1=1;}//D相通電,其他相斷電
#define?Coil_OFF1?{A1=0;B1=0;C1=0;D1=0;}//全部斷電
//步進電機2工作定義
#define?Coil_A2?{A2=1;B2=0;C2=0;D2=0;}//A相通電,其他相斷電
#define?Coil_B2?{A2=0;B2=1;C2=0;D2=0;}//B相通電,其他相斷電
#define?Coil_C2?{A2=0;B2=0;C2=1;D2=0;}//C相通電,其他相斷電
#define?Coil_D2?{A2=0;B2=0;C2=0;D2=1;}//D相通電,其他相斷電
#define?Coil_OFF2?{A2=0;B2=0;C2=0;D2=0;}//全部斷電
unsigned?char?x1y1i1s1;
unsigned?char?x2y2i2s2;
//unsigned?char?y1;
//unsigned?char?i1;
//unsigned?char?S1;
//------------------------------------------------------------------------------------------------------
//?uS延時函數(shù),含有輸入?yún)?shù)?unsigned?char?t,無返回值
//?unsigned?char?是定義無符號字符變量,其值的范圍是
//?0~255?這里使用晶振12M,精確延時請使用匯編大致延時
//?長度如下?T=tx2+5?uS?
//-----------------------------------------------------------------------------------------------------
void?DelayUs2x(unsigned?char?t)
{???
?while(--t);
}
//--------------------------------------------------------------------------------------------------------
//?mS延時函數(shù),含有輸入?yún)?shù)?unsigned?char?t,無返回值
//?unsigned?char?是定義無符號字符變量,其值的范圍是
//?0~255?這里使用晶振12M,精確延時請使用匯編
//-----------------------------------------------------------------------------------------------------------
void?DelayMs(unsigned?char?t)
{????
?while(t--)
?{
?????//大致延時1mS
?????DelayUs2x(245);
?DelayUs2x(245);
?}
}
//---------------------------------------------------------------------------------------------------
//???????????????????定時器初始化子程序
//---------------------------------------------------------------------------------------------------
void?Init_Timer(void)
{
TMO
- 上一篇:信息安全考試及答案
- 下一篇:一步步教你移植FatFS文件系統(tǒng)
評論
共有 條評論