智能车制作
标题:
51单片机io口能直接带动futabas3010舵机吗?
[打印本页]
作者:
dennisi123
时间:
2011-9-26 14:24
标题:
51单片机io口能直接带动futabas3010舵机吗?
51单片机io口能直接带动futabas3010舵机吗? 我是新手 请多多指教! 这是我的pwm程序 接上舵机后总是响,但不转, 大家看看哪块有问题?谢了!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar num=0;
uchar ZKB = 10;
sbit dj=P1^0;
//sbit vcc = P1^1;
//sbit gnd = P1^0;
sbit KEY=P1^5;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
// ZKB=30;
TMOD=0x01; //工作模式1
TH0=(65536-10)/256;
TL0=(65536-10)%256;
IE=0x82;
TR0=1;
// vcc = 1;
// gnd = 0;
while(1)
{
if(KEY==0)
{
delay(5);
if(KEY==0)
{
ZKB=ZKB+1;
while(!KEY);
}
}
if(ZKB>20)
ZKB=15;
}
}
void T0_time()interrupt 1
{
TH0=(65536-10)/256;//定时器计时0.01ms
TL0=(65536-10)%256;
num++;
if(num>=200) //设置周期20ms
num=0;
if(num<ZKB)
dj=1;
else
dj=0;
}
作者:
jack_channel
时间:
2011-9-26 15:37
可以的~你那个周期不对吧?0.01ms×200=20ms??你怎么算的?
用定时器产生模拟PWM信号
PWM其实就是特定频率的方波,用IO口可以模拟的
还有你是想用按键控制舵机打角吧??
作者:
YOON
时间:
2011-9-27 09:22
#include<reg52.h>
#define uint unsigned int
unsigned char count;
unsigned char jd;
sbit pwm=P2^0;
sbit jia=P3^6;
sbit jian=P3^7;
void delay(uint SB)
{
uint i,j;
for(i=SB;i>0;i--)
for(j=125;j>0;j--);
}
void Time0_Init()
{
TMOD=0x01;
IE=0x82;
TH0=(65536-92)/256;//100us
TL0=(65536-92)%256;
TR0=1;
}
void Time0_Int() interrupt 1
{
TH0=(65536-92)/256;
TL0=(65536-92)%256;
if(count<jd)
pwm=1;
else
pwm=0;
count=(count+1);
count=count%200;
}
void keyscan()
{
if(jia==0)
{
delay(10);
if(jia==0)
{
jd++;
count=0;
if(jd==20)
jd=19;
while(jia==0);
}
}
if(jian==0)
{
delay(10);
if(jian==0)
{
jd--;
count=0;
if(jd==2)
jd=3;
while(jian==0);
}
}
}
void main()
{
jd=11;
count=0;
Time0_Init();
while(1)
{
keyscan();
}
}
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2