m0_72990642 2022-12-14 17:37 采纳率: 75%
浏览 71
已结题

基于c51的sg90舵机问题

sg90舵机执行一次后就不再执行了。比如以下代码中,

void rou () interrupt 3
{
    
    TH1 = 0xfe;
    TL1 = 0x0c;
    if(round1 == 1){sg90 = 1;}//在这里给出高电平
    if(round1 == round){sg90 = 0;}//当达到指定时间时设为低电平。第一次round为5。第二次为3,但是第二次的时候舵机只响不转
    round1 ++;
        if(round1 == 40)//完成一个pvm波
    {
        round1 =0;
        led=0;      
        round2 ++;
    }
        if(round2 ==4)//当输出4个pvm波以后把round设为3。但是舵机只响不转
        {
      round=3;
      round1=0;
      round2=0;
      TR1=0;
      delay(3000);
      TR1=1;
      }
}

这是全部的代码

#include "reg52.h"
sbit sg90 = P0^2;
sbit led = P0^6;
static unsigned int round = 5;
static unsigned int round1 = 0;
static unsigned int round2 = 0;

void delay(int length)
{
    int i = 0;
    int j = 0; 
    for(;i<125;i++)
    {for(;j<length;j++){}}
}

void main()
{
    TMOD = 0X11;
    TH1 = 0XFE;
    TL1 = 0X0C;
    EA = 1;
    ET1 = 1;
    TR1 = 1;
    while(1);
    
}

void rou () interrupt 3
{
    
    TH1 = 0xfe;
    TL1 = 0x0c;
    if(round1 == 1){sg90 = 1;}
    if(round1 == round){sg90 = 0;}
    round1 ++;

    if(round1 == 40)
        {
            round1 =0;
            led=0;      
            round2 ++;
        }
if(round2 ==4){
    round=3;
    round1=0;
    round2=0;
    TR1=0;
    delay(3000);
    TR1=1;
}

}

  • 写回答

1条回答 默认 最新

报告相同问题?

问题事件

  • 系统已结题 12月28日
  • 已采纳回答 12月20日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么