标题:
求助:一个舵机控制小程序的编写
[打印本页]
作者:
slh0721
时间:
2015-7-9 15:21
标题:
求助:一个舵机控制小程序的编写
我有个小项目上需要做一个用来控制舵机左右摆动且持续一分钟后停止的小程序。单片机用的是STC89C52RC,哪位大侠给练练手,帮忙写个C语言的。不胜感激。
作者:
xtitxjg
时间:
2015-7-9 19:24
PWM20MS周期,高电平1—2SM 来回变,变一分钟
作者:
jiakuo25
时间:
2015-7-10 07:06
这有个我发的舵机控制程序:
http://www.51hei.com/bbs/dpj-37116-1.html
作者:
slh0721
时间:
2015-7-11 17:27
你这个程序我有点看不太懂啊。
作者:
slh0721
时间:
2015-7-15 00:46
有没有人劳驾写个程序啊?我试了好几次,舵机总是不动。
作者:
stewart_leung
时间:
2015-8-19 12:27
同求!!!!
作者:
腾飞的龙
时间:
2015-8-23 22:27
你试试这个程序,适当改改。
/****************************************************
功能:正确的3路舵机控制左,右,归中,程序
单片机:STC89C52
晶振:11.0592M
作者:苏义江
时间:2014-3-5
可以通过按键和传感器控制
*****************************************************/
//#include<12c5a.h>
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit moto_pwm=P1^0;//PWM输出脚控制舵机
sbit moto_pwm1=P1^1;//PWM输出脚控制舵机
sbit moto_pwm2=P1^2;//PWM输出脚控制舵机
sbit xiaocheting=P1^3;//按键控制
sbit xiaochehouti=P1^4;
sbit xiaocheqianjin=P1^5;
uchar pwm_lefr=0;//定义 定时器自加1变量
uchar pwm_lefr1=0;//定义 定时器自加1变量
uchar pwm_lefr2=0;//定义 定时器自加1变量
uchar duojiguizhong=12;//舵机归中1.5ms
uchar duojiguizhong1=12;//舵机归中1.5ms
uchar duojiguizhong2=12;//舵机归中1.5ms
void pwmmaic()//产生PWM
{
if(pwm_lefr<=duojiguizhong)
moto_pwm=1;
else
moto_pwm=0;
if(pwm_lefr>=200)
pwm_lefr=0;
if(pwm_lefr1<=duojiguizhong1)
moto_pwm1=1;
else
moto_pwm1=0;
if(pwm_lefr1>=200)
pwm_lefr1=0;
if(pwm_lefr2<=duojiguizhong2)
moto_pwm2=1;
else
moto_pwm2=0;
if(pwm_lefr2>=200)
pwm_lefr2=0;
}
void time1() interrupt 3
{
// TH1=0XFf;//100us的赋值11.0592M
// TL1=0XAE;
TH1=(65536-60)/256;//100us的赋值
TL1=(65536-60)%256;
pwm_lefr++;
pwm_lefr1++;
pwm_lefr2++;
pwmmaic();
}
void inttime()
{
// TMOD=0X10;
TMOD=0X11;
TH1=(65536-60)/256;//100us的赋值12M
TL1=(65536-60)%256;
// TH1=0XFf;//100us的赋值11.0592M
// TL1=0XAE;
ET1=1;
TR1=1;
EA=1;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=240;y>0;y--);
}
void main()
{
duojiguizhong=12;//舵机归中
duojiguizhong1=12;//舵机归中
duojiguizhong2=12;//舵机归中
inttime();
while(1)
{
if(xiaocheting==0)
{
delay(10);
if(xiaocheting==0)
{
duojiguizhong=4;
delay(2000);
duojiguizhong1=6;
delay(1000);
duojiguizhong=14;
delay(2000);
duojiguizhong1=14;
delay(2000);
while(xiaocheting==0);
duojiguizhong=12;//归中
delay(2000);
}
}
}
}
复制代码
作者:
51code
时间:
2015-9-15 21:38
有点看不懂
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1