void LEFT_MOVE_DOWNLOAD_HS30806_X(uint Pluse2_num)
{
DOWNLOAD_HS30806_X_DIR=0;
DOWNLOAD_HS30806_X_PULSE1 = 1;//脉冲负
mDelay(20);
for(;Pluse2_num>0;Pluse2_num--)
{
DOWNLOAD_HS30806_X_PULSE1 = ~DOWNLOAD_HS30806_X_PULSE1;//脉冲负
mDelay(20);
DOWNLOAD_HS30806_X_PULSE1 = ~DOWNLOAD_HS30806_X_PULSE1;//脉冲负
mDelay(20);
}
}
//***************************************************************************
//下料部X停止程序
//***************************************************************************
void DOWNLOAD_HS30806_X_Stop()
{
DOWNLOAD_HS30806_X_DIR=0;
DOWNLOAD_HS30806_X_PULSE1 = 1;//脉冲负
mDelay(20);
}
//***************************************************************************
//伺服电机右转程序
//***************************************************************************
void RIGHT_MOVE_SERVO(uint Pluse1_num)
{
//SERVO_ON = 0;
//mDelay(100);
SERVO_DIR = 1;
mDelay(3);
SERVO_PULSE1 = 1;//脉冲负
for(;Pluse1_num>0;Pluse1_num--)
{
SERVO_PULSE1 = ~SERVO_PULSE1;//脉冲负
mDelay(3);
// mDelay(2);
SERVO_PULSE1 = ~SERVO_PULSE1;//脉冲负
mDelay(3);
// mDelay(2);
}
}
//***************************************************************************
//伺服电机左转程序
//***************************************************************************
void LEFT_MOVE_SERVO(uint Pluse2_num)
{
// SERVO_ON = 0;
// mDelay(100);
SERVO_DIR = 0;
mDelay(33);
SERVO_PULSE1 = 1;//脉冲负
for(;Pluse2_num>0;Pluse2_num--)
{
SERVO_PULSE1 = ~SERVO_PULSE1;//脉冲负
//Delay();
mDelay(3);
SERVO_PULSE1 = ~SERVO_PULSE1;//脉冲负
//Delay();//
mDelay(3);
}
}
//***************************************************************************
//伺服电机停止程序
//***************************************************************************
void SERVO_PULSE1_Stop()
{
SERVO_DIR=0;
SERVO_PULSE1 = 1;//脉冲负
mDelay(20);
}
//***************************************************************************
//键盘处理程序
//***************************************************************************
uchar Key()
{
uchar KValue;
uchar tmp;
P3|=0x3c; //将P3口的接键盘的中间四位置1
KValue=P3;
KValue|=0xc3; //将未接键的4位置1
if(KValue==0xff) //中间4位均为1,无键按下
return(0); //返回
mDelay(10); //延时10ms,去键抖
KValue=P3;
KValue|=0xc3; //将未接键的4位置1
if(KValue==0xff) //中间4位均为1,无键按下
return(0); //返回
//如尚未返回,说明一定有1或更多位被按下
for(;;)
{ tmp=P3;
if((tmp|0xc3)==0xff)
break; //等待按键释放
}
return(KValue);
}
void KProce(uchar KValue) //键值处理
{
if((KValue&0x04)==0)
LEFT_MOVE_SERVO(10000);
//RIGHT_MOVE_DOWNLOAD_HS30806_X(2000);
//QIGANG=0;
if((KValue&0x08)==0)
RIGHT_MOVE_SERVO(10000);
//LEFT_MOVE_DOWNLOAD_HS30806_X(2000);
//QIGANG=1;
if((KValue&0x10)==0)
SERVO_ON = 0;
mDelay(100);
// RIGHT_MOVE_DOWNLOAD_HS30806_Y(2000);
if((KValue&0x20)==0)
SERVO_ON = 1;
mDelay(100);
//LEFT_MOVE_DOWNLOAD_HS30806_Y(2000);
}
//***************************************************************************
//初始化程序
//***************************************************************************
void init()
{
// P0=0xFF;
上一页 [1] [2] [3] 下一页
本文关键字:电机 单片机 程序 松下伺服 源码-程序,单片机-工控设备 - 源码-程序