首页 > 编程知识 正文

单片机中pwm是什么意思,51单片机分别控制两个舵机

时间:2023-05-04 10:41:42 阅读:48471 作者:2088

舵机控制通常需要20ms的时基脉冲,该脉冲的高电平部分通常是0.5ms~2.5ms范围内的角度控制脉冲部分。 以180度角舵机为例,对应的控制关系如下。

0.5毫秒------- 0度;

1.0毫秒------- 45度;

1.5毫秒------- 90度;

2.0毫秒------- 135度;

2.5毫秒------- 180度;

脉冲与角度的关系可以如下图所示

33558 www.Sina.com/viewplaincopy # includereg 52.hunsignedcharcount; //0.5ms次数标记sbitpwm=P1^0; //信号输出sbitjia=P1^1; //角度增加按钮sbitjan=P1^2; //角度减少按钮charjd; //角度标识voiddelay(unsignedinti ) { unsignedintj,k; for(j=I; j0; j-- ) for(k=125; k0; k----; } voidTime0_init ()//计时器初始化) { TMOD=0x01; IE=0x82; TH0=0xff; TL0=0x19; //12水晶振动,0.25ms TR0=1; //计时器启动}voidtime0_int(interrupt1//中断程序({ TH0=0xff; TL0=0x19; if (计数)//输出计数个高电平pwm=1; else pwm=0; //其馀输出为低电平计数; count=count@; //时钟为40个计数(20ms } voidkeyscan ()//键扫描(if ) Jia==0)//是否按下了角度增加键(delay ) ) 50 ); 按//延迟,支付If (JIA==0) ) JD; //角度标记加1计数=0; 按下//按钮,以20ms周期进行if(JD==50 ) jd=9; //如果已经是180,则保持while (Jia==0); 等待释放//按钮}if(Jan==0)//是否按下了角度减少键) delay(10 ); if(JD==0; { jd--; //角度标记负1计数=0; if(JD==0) jd=1; wile(Jan==0); } } } voidmain () { jd=1; 计数=0; Time0_init (; wile(1) { keyscan );//显示(; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。