使用51单片机驱动舵机
单片机用的是普中科技的学习板,芯片STC89C52RC,舵机futabas3003。我只用的是直接接P1^0,P1^1,P1^2。但是发现舵机不转。是什么原因我不知道,我...
单片机用的是普中科技的学习板,芯片STC89C52RC,舵机futaba s3003。我只用的是直接接P1^0,P1^1,P1^2。但是发现舵机不转。是什么原因我不知道,我是通过两个中断,使得程序产生方波的,不知道对不对。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit a=P1^0;//黑线地
sbit b=P1^1;//红线Vcc
sbit c=P1^2;//白线控制线
void begin() //初始化程序
{
a=0;
b=1;
c=1;
TMOD=0x11; //设置定时器0和定时器1的工作方式为方式1
TH0=(65536-1500)/256; //求模
TL0=(65536-1500)%256; //求余
TH1=(65536-18500)/256; //求模
TL1=(65536-18500)%256; //求余
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
}
void main()
{
begin();
while(1);
}
void timer0() interrupt 1 //定时器0中断服务程序
{
a=0;
b=1;
c=0;
TH0=(65536-1500)/256; //求模
TL0=(65536-1500)%256; //求余
ET1=1;//开定时器1中断
TR1=1;//启动定时器1
ET0=0;//关定时器0中断
TR0=0;//关闭定时器0
}
void timer1() interrupt 3 //定时器1中断服务程序
{
a=0;
b=1;
c=1;
TH1=(65536-18500)/256; //求模
TL1=(65536-18500)%256; //求余
ET1=0;//关定时器1中断
TR1=0;//关闭定时器1
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
} 展开
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit a=P1^0;//黑线地
sbit b=P1^1;//红线Vcc
sbit c=P1^2;//白线控制线
void begin() //初始化程序
{
a=0;
b=1;
c=1;
TMOD=0x11; //设置定时器0和定时器1的工作方式为方式1
TH0=(65536-1500)/256; //求模
TL0=(65536-1500)%256; //求余
TH1=(65536-18500)/256; //求模
TL1=(65536-18500)%256; //求余
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
}
void main()
{
begin();
while(1);
}
void timer0() interrupt 1 //定时器0中断服务程序
{
a=0;
b=1;
c=0;
TH0=(65536-1500)/256; //求模
TL0=(65536-1500)%256; //求余
ET1=1;//开定时器1中断
TR1=1;//启动定时器1
ET0=0;//关定时器0中断
TR0=0;//关闭定时器0
}
void timer1() interrupt 3 //定时器1中断服务程序
{
a=0;
b=1;
c=1;
TH1=(65536-18500)/256; //求模
TL1=(65536-18500)%256; //求余
ET1=0;//关定时器1中断
TR1=0;//关闭定时器1
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
} 展开
展开全部
sbit a=P1^0;//黑线地
sbit b=P1^1;//红线Vcc
sbit c=P1^2;//白线控制线
黑线 和VCC要接电源,单片机的电压还不能够驱动舵机,还有你没有了解什么是PWM,你好好研究下单片机怎么模拟PWM 这里可以认为用PWM来输出电压,舵机通过对控制电压的比较来控制转动角度!
sbit b=P1^1;//红线Vcc
sbit c=P1^2;//白线控制线
黑线 和VCC要接电源,单片机的电压还不能够驱动舵机,还有你没有了解什么是PWM,你好好研究下单片机怎么模拟PWM 这里可以认为用PWM来输出电压,舵机通过对控制电压的比较来控制转动角度!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
想用io口直接驱动舵机 电流够么?? 先用示波器看看你的信号对不对,其次 我认为 io口做高低电平驱动不了 你还是用5v电试吧 还有 外部电源一定要和单片机公地 也可以直接从板上拉出5v电 只要信号对 我保证好使
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询