欢迎分享,转载请注明来源:内存溢出
#include<reg52.h>typedef unsigned int uinttypedef unsigned char ucharsbit pwm=P0^3//输出PWM信号uchar count=0uint pwm_value=1500//初值为1.5msuint value[]={1500,1000,1500,2000,1500}//void delay_ms(uint x){uint iwhile(x--)for(i=0i<125i++)}void InitTimer(void){TMOD=0x11//开定型纳烂时卜漏器0,1TH0=-20000/256//茄中定时20MS,20MS为一个周期TL0=-20000%256TH1=-1500/256//定时1.5MS,这时舵机处于0度TL1=-1500%256EA=1//开总断TR0=1//开定时器0ET0=1TR1=1//开定时器1ET1=1}void timer0(void) interrupt 1//定时器0中断函数{pwm=1TH0=-20000/256TL0=-20000%256TR1=1count++}void timer1(void) interrupt 3//定时器1中断函数{pwm=0TH1=-pwm_value/256TL1=-pwm_value%256TR1=0}void main(void)//主函数{uchar iInitTimer()pwm_value=1500while(1){for(i=0i<5i++){pwm_value=value[i]//通过数组就可以改变舵机的转角度delay_ms(1000)}}}因为舵机中有电位器,输出1.5ms宽度的脉冲宽度是正90度,所以你可以写一个for循环,厅汪李然后引进一个参陵丛数,不停地改变0.5ms到2.5ms之间的脉冲宽度就行了。(用延迟函数可以调整速度)希扮迟望能帮到你!
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
计算机中现存的旧版本的MF驱动程序怎么找
上一篇
2023-05-25
微信小程序本地调试的方法,小程序如何本地调试
下一篇
2023-05-25
评论列表(0条)