#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//TimeOutCounter:定时器溢出计数 LeftOrRight:舵机左右旋转标志
void InitialTimer ( void )
{
TMOD=0x10//定时/计数器1工作于方式1
TH1 = ( 65535 - 500 ) / 256//0.25ms
TL1 = ( 65535 - 500 ) % 256
EA=1//开总中断
ET1=1//允许定时/计数器1 中断
TR1=1//启动定时/计数器1 中断
}
void ControlLeftOrRight ( void ) //控制舵机函数
{
if( KeyStop == 0 )
{
//while ( !KeyStop )//使标志等于Stop(0),改碧薯在中断函数中将用到 LeftOrRight = Stop
}
if( KeyLeft == 0 )
{
//while ( !KeyLeft )//使标志等于Left(1),在中断函数中将用到 LeftOrRight = Left
}
if( KeyRight == 0 )
{
//while ( !KeyRight )//使标志等于Right(2),在中断函数中将用到 LeftOrRight = Right
}
给你个思路0-90度
1、IO输出高电平1.5ms
2、低电平输出18.5ms(饥简周期侍肢芦20ms)
3、循环重复100次步骤1 2
90-0度
1、IO输出高电平0.5ms
2、低电平输出19.5ms(老带周期20ms)
3、循环重复100次步骤1 2
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)