单片机按键控制舵机转动
发布时间:2024-11-04
发布时间:2024-11-04
单片机按键控制舵机转动
忆飞工作室
http://
忆飞电子淘宝店 欢迎进入
设计者:曾传辉
时间 2012年8月13号
手机:13400662495
QQ:36439133
旺旺:epiapl_cn
程序名称: 按键控制舵机控制
程序效果: 单片机两个按键控制左右转,转角90度单片
#include<AT89x51.H>
#define Sevro_moto_pwm P1_0 //接舵机信号端输入PWM信号调节速度
#define k1 P2_5
#define k2 P2_6 //按键控制舵机左转 //按键控制舵机右转
unsigned char pwm_val_left = 0;//变量定义
unsigned char push_val_left;// =14;//舵机归中,产生约,1.5MS 信号
unsigned int timer=0; //延时基准变量
unsigned char timer1=0; //扫描时间变量
void pwm_Servomoto(void); //函数申明
unsigned int val,val2,fl1,fl2; //变量申明
/************************************************************************/ void delay(unsigned int k) //延时函数
{
unsigned int x,y;
for(x=0;x<k;x++)
} for(y=0;y<2000;y++);
/************************************************************************/
void cpuint()
{
单片机按键控制舵机转动
}
void main()
{
cpuint();
delay(100);
fl1=1;
//push_val_left=5; //舵机向左转90度
//push_val_left=14; //舵机归中
push_val_left=23; //舵机向右转90度
while(1) //大循环
{
if(k1==0) //判定向左转按键是否按下
{
val++;//变量++
}
if(fl1==1)//判定标记位是否为真
{
if(val==1) //判定按键变量是否==1
{
push_val_left=14; //舵机归中
delay(100);
}
// 延时函数 TMOD=0X11; TH1=(65536-100)/256; //100US定时 TL1=(65536-100)%256; TH0=0; TL0=0; TR1= 1; ET1= 1; ET0= 1; EA = 1;
单片机按键控制舵机转动
if(val==2)//判定按键变量是否==2
{
push_val_left=5; //舵机向左转90度
delay(100);
fl1=0;
fl2=1;
val=0;
}
}
if(k2==0) //判定向右转按键是否按下
{
val2++; //变量++
}
if(fl2==1) //判定标记位是否为真
{
if(val2==1) // 延时函数 // 标记位清零 表时向右到位 //打开向右移按键开关 //按键变量清零 //判定按键变量是否==1
{
push_val_left=14; //舵机归中
delay(100); // 延时函数
}
单片机按键控制舵机转动
if(val2==2) //判定按键变量是否==2
{
push_val_left=23; //舵机向右转90度
delay(100); // 延时函数
fl1=1; // 标记位清零 表时向左到位
fl2=0; //打开向左移按键开关
val2=0; //按键变量清零
}
}
}
}
/*调节push_val_left的值改变电机转速,占空比
void pwm_Servomoto(void)
{
if(pwm_val_left<=push_val_left)
Sevro_moto_pwm=1;
else
Sevro_moto_pwm=0;
if(pwm_val_left>=500)
{
pwm_val_left=0;
}
}
*/
单片机按键控制舵机转动
/***************************************************/ ///*TIMER1中断服务子函数产生PWM信号*/
void time1()interrupt 3 using 2
{
TH1=(65536-100)/256; //100US定时
TL1=(65536-100)%256; pwm_val_left++; pwm_Servomoto();
}
/***************************************************/