舵机程序 (为啥写进去舵机不转,我用的是stc89c52)
时间:10-02
整理:3721RD
点击:
#include <reg52.h>
#define Stop 0
#define Left 1
#define Right 2
sbit ControlPort = P2^0;
sbit KeyLeft = P1^0;
sbit KeyRight = P1^1;
sbit KeyStop = P1^2;
unsigned char TimeOutCounter = 0,LeftOrRight = 0;
void InitialTimer ( void )
{ TMOD=0x10;
TH1 = ( 65535 - 500 ) / 256;
TL1 = ( 65535 - 500 ) % 256;
EA=1;
ET1=1;
TR1=1;
}
void ControlLeftOrRight ( void )
{
if( KeyStop == 0 )
{
LeftOrRight = Stop;
}
if( KeyLeft == 0 )
LeftOrRight = Left;
if( KeyRight == 0 )
LeftOrRight = Right;
}
void main ( void )
{
InitialTimer();
for(;;)
{
ControlLeftOrRight();
}
}
void Timer1 ( void ) interrupt 3
{
TH1 =( 65535-500) / 256;
TL1 = ( 65535 -500) % 256;
TimeOutCounter ++;
switch ( LeftOrRight )
{ case 0:
{ if( TimeOutCounter <= 6 )
ControlPort = 1;
else
ControlPort = 0;
break;
}
case 1:
{ if( TimeOutCounter <= 2 )
ControlPort = 1;
else
ControlPort = 0;
break;
}
case 2:
{ if( TimeOutCounter <= 10 )
ControlPort = 1;
else
ControlPort = 0;
break;
}
default: break;
}
if( TimeOutCounter == 80 )
TimeOutCounter = 0;
}
#define Stop 0
#define Left 1
#define Right 2
sbit ControlPort = P2^0;
sbit KeyLeft = P1^0;
sbit KeyRight = P1^1;
sbit KeyStop = P1^2;
unsigned char TimeOutCounter = 0,LeftOrRight = 0;
void InitialTimer ( void )
{ TMOD=0x10;
TH1 = ( 65535 - 500 ) / 256;
TL1 = ( 65535 - 500 ) % 256;
EA=1;
ET1=1;
TR1=1;
}
void ControlLeftOrRight ( void )
{
if( KeyStop == 0 )
{
LeftOrRight = Stop;
}
if( KeyLeft == 0 )
LeftOrRight = Left;
if( KeyRight == 0 )
LeftOrRight = Right;
}
void main ( void )
{
InitialTimer();
for(;;)
{
ControlLeftOrRight();
}
}
void Timer1 ( void ) interrupt 3
{
TH1 =( 65535-500) / 256;
TL1 = ( 65535 -500) % 256;
TimeOutCounter ++;
switch ( LeftOrRight )
{ case 0:
{ if( TimeOutCounter <= 6 )
ControlPort = 1;
else
ControlPort = 0;
break;
}
case 1:
{ if( TimeOutCounter <= 2 )
ControlPort = 1;
else
ControlPort = 0;
break;
}
case 2:
{ if( TimeOutCounter <= 10 )
ControlPort = 1;
else
ControlPort = 0;
break;
}
default: break;
}
if( TimeOutCounter == 80 )
TimeOutCounter = 0;
}
s
不知道
也在研究啊!不知道啊!
你要清楚舵机是怎么工作的 他有个20ms的基准周期 通过改变脉宽 就可以改变转角 很简单的呢
