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

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 电脑键盘实现触摸功能
  • ¥25 matlab无法将表达式转换为双数组怎么解决?
  • ¥15 单片机汇编语言相关程序
  • ¥20 家用射频美容仪技术规格
  • ¥15 大家帮我看看为什么错了
  • ¥15 unity互动琴弦抖动效果
  • ¥15 做了个的二极管反向饱和电流测量电路,但是测试达不到效果
  • ¥15 nginx无证书访问https失败
  • ¥15 树莓派启动AP热点传入数据
  • ¥15 multisim中关于74ls192n和DSWPK开关的问题(相关搜索:计数器)