/***************************************************************************************************
函數名:步進電機正反轉壹步
調 用:MOTOR()
參 數:Mot=0,電機反轉壹步 ,Mot=1電機正轉
返回值:無
結 果:電機坐標 Motor 自動加壹或減壹,電機走壹步
***************************************************************************************************/
void MOTOR(void){ //步進電機正反轉壹步子程序
code unsigned char MOTOR_DB[]={0x00,0xb0,0x90,0xd0,0x50,0x70,0x60,0xe0,0xa0,0x00};//定義電機輸出編碼
unsigned char i;
MOIC=0; //開電機電流
i=0; //電機輸出編碼初值設00
CBB=10; //設減小電機電流時間設為10
if(Mot==1)Mo_data++;
else{if(Mo_data!=0)Mo_data--;}//如果電機反轉,並且當前電機坐標不小於1時,坐標減壹
while(1)
{
if(Mot)Motor_t ++;//當前電機輸出編碼加壹指向下壹編碼
else Motor_t --;//電機輸出編碼減壹
i=MOTOR_DB[Motor_t]; //取電機輸出編碼
if(i!=0)break;
else{
if(Mot)Motor_t=0;
else Motor_t=9;
}
}
i=i&0xf8; //屏蔽低3位,高5位不變
M_data=M_data&0x07;//屏蔽P1口的高5位,低3位不變
M_data=M_data|i; //高5位送P1口,P1口的低3位不變
}