|
楼主 |
发表于 2017-1-11 10:37:31
|
显示全部楼层
/*======================================================================
// °üà¨í·Îļt
======================================================================*/
#include "Config.h"
/*======================================================================
======================================================================*/
unsigned char UART_DAT;
unsigned char temp;
/*======================================================================
======================================================================*/
void main()
{uchar i;int a;
UART_init();
Timer0_Init();
temp=UART_DAT;
while(1)
{
Delay_Ms(500);
temp=0x35;
SetServoAngle(1,90);Delay_Ms(7);
SetServoAngle(3,85);Delay_Ms(7);
SetServoAngle(5,90);Delay_Ms(7);
SetServoAngle(7,90);Delay_Ms(7);
if(temp!=UART_DAT)
{switch(UART_DAT)
{
case 0x31://行走
temp=0x31;
for(i=0;i<10;i++)//óòíèÇ°Âõ
{SetServoAngle(7,90-3*i);
SetServoAngle(5,90+5*i);
Delay_Ms(10);
}
a=1;
while(1)
{
for(i=0;i<10;i++)//óòíèÇ°Âõ×óíèoóÂõ
{ if(a==0)
{SetServoAngle(7,90-3*i);
SetServoAngle(1,90-3*i);
Delay_Ms(10);
}
else
{SetServoAngle(1,90-3*i);
Delay_Ms(10);
}
}
for(i=0;i<10;i++)//á½íèêÕ£
{SetServoAngle(7,60+3*i);
SetServoAngle(5,120-3*i);
SetServoAngle(1,60+3*i);
SetServoAngle(3,85-5*i);
Delay_Ms(10);
}
for(i=0;i<10;i++)//óò½ÅoóÂõ×óíèÇ°Âõ
{SetServoAngle(1,90+3*i);
SetServoAngle(7,90+3*i);
Delay_Ms(10);
}
for(i=0;i<10;i++)//á½íèêÕ£
{SetServoAngle(1,120-3*i);
SetServoAngle(3,55+3*i);
SetServoAngle(7,120-3*i);
SetServoAngle(5,90+5*i);
Delay_Ms(10);
}
a=0;
if(temp!=UART_DAT)
{break;}
}
break;
case 0x32://上楼梯
//′®¿úêä3öêy×Ö 2£¬¶Ôó|ASCIIÂëÖμ£o0x32
temp=0x32;
for(i=0;i<10;i++)//óòíèÅàÂ¥ìY
{SetServoAngle(7,90-7*i);
SetServoAngle(5,90+7*i);
Delay_Ms(10);
}
while(1)
{
for(i=0;i<10;i++)//óòíèêÕ£×óíèÅàÂ¥ìY
{SetServoAngle(7,20+7*i);
SetServoAngle(5,140-7*i);Delay_Ms(10);
SetServoAngle(1,90+7*i);
SetServoAngle(3,85-7*i);Delay_Ms(10);
}
for(i=0;i<10;i++)//×óíèêÕ£óòíèÅàÂ¥ìY
{SetServoAngle(1,160-7*i);
SetServoAngle(3,35+7*i);Delay_Ms(10);
SetServoAngle(7,90-7*i);
SetServoAngle(5,90+7*i);Delay_Ms(10);
}
if(temp!=UART_DAT)
{break;}
}
break;
case 0x33://下楼梯
temp=0x33;
for(i=0;i<10;i++)//óòíèÇ°Âõ
{SetServoAngle(7,90-5*i);
SetServoAngle(5,90+6*i);
Delay_Ms(10);
}
a=1;
while(1)
{
for(i=0;i<10;i++)//óòíèÇ°Âõ×óíèoóÂõ
{ if(a==0)
{SetServoAngle(7,90-5*i);
SetServoAngle(1,90-3*i);
Delay_Ms(10);
}
else
{SetServoAngle(1,90-3*i);
Delay_Ms(10);
}
}
for(i=0;i<10;i++)//á½íèêÕ£
{SetServoAngle(7,40+6*i);
SetServoAngle(5,170-8*i);
SetServoAngle(1,60+3*i);
SetServoAngle(3,85-8*i);
Delay_Ms(10);
}
for(i=0;i<10;i++)//óò½ÅoóÂõ×óíèÇ°Âõ
{SetServoAngle(1,90+5*i);
SetServoAngle(7,90+3*i);
Delay_Ms(10);
}
for(i=0;i<10;i++)//á½íèêÕ£
{SetServoAngle(1,140-5*i);
SetServoAngle(3,5+8*i);
SetServoAngle(7,120-3*i);
SetServoAngle(5,90+8*i);
Delay_Ms(10);
}
a=0;
if(temp!=UART_DAT)
{break;}
}
break;
case 0x34://坐下
while(1)
{
for(i=0;i<10;i++)//á½íèêÕ£
{SetServoAngle(7,90-8*i);
SetServoAngle(5,90+8*i);
SetServoAngle(1,90+8*i);
SetServoAngle(3,85-8*i);
Delay_Ms(10);
}
if(temp!=UART_DAT)
{break;}
}
break;
case 0x35: //停止
break;
}
}
}
}
/*======================================================================
// 中断
======================================================================*/
void UART_Interrupt_Receive(void) interrupt 4
{uchar t;
UART_DAT=SBUF;
RI=0;
}
|
|