你好
你是怎么做的?我的最小系统板不可以啊
可以教教我麽
追答51的?还是52的
追问51
今天搞了一天都不行
追答你把端口引出来不就行了
追问我就是把舵机的信号线连接到IO口上啊
就是没有反正
在单片机上可以控制
追答要驱动电路啊
你的舵机带驱动模块不?你自信看看
追问舵机带驱动模块
里面有
这个共地是怎么理解的?
你有没有图啊?发给我
追答舵机有资料吧,你看看你接线有没有问题
追问接线是没有问题,检查了好多遍了
希望你可以帮帮我
😂
都不知怎么办了
追答不就是一个电源线,一个控制线,一个gnd吗。你接的对不对哦
追问对啊
三个线
就是不动
我也没有办法
追答电源5v
# include
#define uchar unsigned char
#define uint unsigned int
uint a,b,c,d;
/*a为舵机1的脉冲宽度,b为舵机2的脉冲宽度,单位1/1000 ms */
/*c、d为中间变量*/
/*以下定义输出管脚*/
sbit p12=P1^2;
sbit p13=p1^3;
sbit p37=P3^7;
/*以下两个函数为定时器中断函数*/
/*定时器1,控制舵机1,输出引脚为P12,可自定义*/
void timer0(void) interrupt 1 using 1
{p12=!p12; /*输出取反*/
c=20000-c; /*20000代表20 ms,为一个周期的时间*/
TH0=-(c/256); TL0=-(c%256); /*重新定义计数初值*/
if(c>=500&&c=500&&d<=2500)d=b;
else d="20000-b";
}
/*主程序*/
void main(void)
{TMOD=0x11; /*设初值*/
p12=1;
p13=1;
a=1500;
b=1500; /*数值1500即对应1.5ms,为舵机的中间90度的位置*/
c=a;d=b;
TH0=-(a/256); TL0=-(a%256);
TH1=-(b/256); TL1=-(b%256); /*设定定时器初始计数值*/
EA=1;
ET0=1; TR0=1;EX0=1;EX1=1;
ET1=1; TR1=1;
PX0=0;PX1=0;PT1=1;PT0=1;/*设定中断优先级*/
for(;;)
{
/*在这个for循环中,可以根据程序需要
在任何时间改变a、b值来改变脉宽的输
出时间,从而控制舵机*/
}
}
按着接,按着写就行了
追问等等
我看看
我只要一路舵机
追答我睡了。明天还上班。
追问好的
谢谢了
?
追答一路你就用一路,这个没什么问题的
追问晚安
嗯嗯