。哈哈-哈哈。 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日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)