单片机按键控制舵机转动

发布时间: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();

}

/***************************************************/

单片机按键控制舵机转动.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219