#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit servo1=P1^0;
sbit servo2=P1^1;
sbit servo3=P1^2;
sbit servo4=P1^3;
sbit servo5=P1^4;
sbit servo6=P1^5;
uchar M=10;
uchar a=0;
//uchar c=0;
uchar jd1,jd2,jd3,jd4,jd5,jd6;//角度标识
uchar pwm;
void delay_1ms(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void Init_T0()
{
TMOD=0x01;
TH0=(65536-100)/256;//定时100us
TL0=(65536-100)%256;
ET0=1;
TR0=1;
EA=1;
}
void Time0() interrupt 1
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if(a<M)
pwm=1;
else
pwm=0;
a=a+1;
a=a%200;
}
void move(uchar t,uchar p,uchar n)
{
uchar i,j;
M=p;
for(i=0;i<150;i++)
{
for(j=0;j<t;j++)
{
switch(n)
{
case 1:servo1=pwm;jd1=p;break;
case 2:servo2=pwm;jd2=p;break;
case 3:servo3=pwm;jd3=p;break;
case 4:servo4=pwm;jd4=p;break;
case 5:servo5=pwm;jd5=p;break;
case 6:servo6=pwm;jd6=p;break;
default:break;
}
}
}
}
void servo_move()//舵机运动指令
{
move(100,25,1);
move(100,25,2);
move(200,15,1);
move(100,13,1);
move(200,5,2);
move(200,25,1);
move(300,5,1);
move(100,9,1);
move(100,18,1);
}
void main()
{
Init_T0();
// jd1=jd2=jd3=jd4=jd5=jd6=M;
// servo1=servo2=servo3=servo4=servo5=servo6;
servo_move();
}
这怎么总只是执行前面两个mov 后面的不执行啊
帮我看看啊 调蒙啦
#define uchar unsigned char
#define uint unsigned int
sbit servo1=P1^0;
sbit servo2=P1^1;
sbit servo3=P1^2;
sbit servo4=P1^3;
sbit servo5=P1^4;
sbit servo6=P1^5;
uchar M=10;
uchar a=0;
//uchar c=0;
uchar jd1,jd2,jd3,jd4,jd5,jd6;//角度标识
uchar pwm;
void delay_1ms(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void Init_T0()
{
TMOD=0x01;
TH0=(65536-100)/256;//定时100us
TL0=(65536-100)%256;
ET0=1;
TR0=1;
EA=1;
}
void Time0() interrupt 1
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if(a<M)
pwm=1;
else
pwm=0;
a=a+1;
a=a%200;
}
void move(uchar t,uchar p,uchar n)
{
uchar i,j;
M=p;
for(i=0;i<150;i++)
{
for(j=0;j<t;j++)
{
switch(n)
{
case 1:servo1=pwm;jd1=p;break;
case 2:servo2=pwm;jd2=p;break;
case 3:servo3=pwm;jd3=p;break;
case 4:servo4=pwm;jd4=p;break;
case 5:servo5=pwm;jd5=p;break;
case 6:servo6=pwm;jd6=p;break;
default:break;
}
}
}
}
void servo_move()//舵机运动指令
{
move(100,25,1);
move(100,25,2);
move(200,15,1);
move(100,13,1);
move(200,5,2);
move(200,25,1);
move(300,5,1);
move(100,9,1);
move(100,18,1);
}
void main()
{
Init_T0();
// jd1=jd2=jd3=jd4=jd5=jd6=M;
// servo1=servo2=servo3=servo4=servo5=servo6;
servo_move();
}
这怎么总只是执行前面两个mov 后面的不执行啊
帮我看看啊 调蒙啦