标题:
c51控制sg90舵机
[打印本页]
作者:
sky日耀
时间:
2018-1-9 22:32
标题:
c51控制sg90舵机
为什么我写的单片机控制舵机转动固定角度;求大佬指点下,谢谢。
#include<reg52.h>
sbit SEV_PWM = P0^0;
void ConfigUART(unsigned int baud);
void initTimer0();
unsigned char count = 0;
unsigned char SEV_count = 15;
unsigned char command;
void main()
{
EA=1;
initTimer0();
ConfigUART(9600);
while(1)
{
switch(command)
{
case 'f':
{
SEV_count++;
if(SEV_count >= 25)
{
SEV_count = 25;
}
count=0;
break;
}
case 'g':
{
SEV_count--;
if(SEV_count <=5)
{
SEV_count = 5;
}
count=0;
break;
}
case 'k':
{
SEV_count = 15;
count=0;
break;
}
default:
{
break;
}
}
}
}
void initTimer0()
{
TMOD=0X01;
TH0 = 0xff;
TL0 = 0xa3;
ET0 = 1;
TR0 = 1;
}
void ConfigUART(unsigned int baud)
{
SCON = 0x50;
TMOD &= 0x0F;
TMOD |= 0x20;
TH1 = 256 - (11059200/12/32)/baud;
TL1 = TH1;
ET1 = 0;
ES = 1;
TR1 = 1;
}
void Time0_Int() interrupt 1
{
TH0 = 0xff; //????0.1ms
TL0 = 0xa3;
if(count >= SEV_count) //???????
{
SEV_PWM = 1;
}
else
{
SEV_PWM = 0;
}
count++;
if (count >= 200)
{
count = 0;
}
}
void uart_ser() interrupt 4
{
if (RI)
{
RI = 0;
command= SBUF;
}
if(TI)
{
TI=0;
}
}
作者:
HC6800-ES-V2.0
时间:
2018-1-10 08:37
第一:你的舵机接在P0口,有上拉电阻没?
第二:好像控制舵机的占空比不对啊,“占”太多了。
例如:转动45度时,高电平20,则低电平要380(相同比例,周期20ms,占的时间0~2.5ms)。
转动90度时,高电平30,则低电平要370
作者:
sky日耀
时间:
2018-1-10 10:29
HC6800-ES-V2.0 发表于 2018-1-10 08:37
第一:你的舵机接在P0口,有上拉电阻没?
第二:好像控制舵机的占空比不对啊,“占”太多了。
例如:转动 ...
周期20ms,占的时间0~2.5ms,定时器0.1ms,转动90度应该不是高电平15吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1