。哈哈-哈哈。 2022-02-06 15:26 采纳率: 33.3%
浏览 72
已结题

51单片机无法控制舵机,如何解决?(语言-c语言)

问题遇到的现象和发生背景

P3^2口通过200欧的电阻与5v相连,当P3^2口直接与gnd快速短接舵机开始旋转,角度到中间的某一位置,若一直不断开舵机到头后就不动了。但当断开P3^2与gnd后,舵机又返回最开始的角度。怀疑是中断的变量不能共享,但我是以下降沿来触发的为什么直接到中间的某一个位置呢?求帮助
(```c
#include <reg52.h>
sbit PWM0=P1^0;
sbit PWM1=P1^1;
sbit ip=P3^2;
sbit LED=P0^0;
int jishu=0;
int biaozhi=0;
int jiaodu=4;//4<=jiaodu<=10
void delay100us(void)
{
unsigned char a,b;
for(b=3;b>0;b--)
for(a=13;a>0;a--);
}
void init()
{
PWM0=0;
PWM1=0;
EA=1;
ET1=1;
EX0=1;
TMOD=0X20;
TH1 = 0x1a;//0.25ms
TL1 = 0x1a;
PX0=1;
IT0=1;
TR1=1;
}
void intr() interrupt 3
{
if(jishu==0)
{
PWM0=1;
}
if(jishu==jiaodu)
{
PWM0=0;
}
jishu=jishu+1;
if(jishu==80)//80,20ms
{
jishu=0;
}
}
void intr1() interrupt 0
{
if(jiaodu==10)
jiaodu=4;
else
jiaodu=jiaodu+1;

}
int main()
{
init();
LED=1;
while(1);

}

```)

我想要达到的结果

通过P3^2口,让角度依次增加,循环。

  • 写回答

1条回答 默认 最新

  • 。哈哈-哈哈。 2022-02-11 09:28
    关注

    原来是给舵机供电的电源输出功率不足,更换功率更大的电源就解决了。另外对于P3^2口下降沿触发还需要进行消抖的优化。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月19日
  • 已采纳回答 2月11日
  • 创建了问题 2月6日

悬赏问题

  • ¥20 如何在visual studio 2022中添加ImageMagick库
  • ¥50 如何实现uniapp编译的微信小程序做可回溯视频
  • ¥15 求Houdini使用行家,付费。价格面议。
  • ¥15 前端高拍仪调用问题报错
  • ¥15 想用octave解决这个数学问题
  • ¥15 Centos新建的临时ip无法上网,如何解决?
  • ¥15 海康威视如何实现客户端软件对设备语音请求的处理。
  • ¥15 支付宝h5参数如何实现跳转
  • ¥15 MATLAB代码补全插值
  • ¥15 Typegoose 中如何使用 arrayFilters 筛选并更新深度嵌套的子文档数组信息