【51单片机】控制8路舵机源程序.doc

【51单片机】控制8路舵机源程序.doc

ID:55510190

大小:245.50 KB

页数:7页

时间:2020-05-15

【51单片机】控制8路舵机源程序.doc_第1页
【51单片机】控制8路舵机源程序.doc_第2页
【51单片机】控制8路舵机源程序.doc_第3页
【51单片机】控制8路舵机源程序.doc_第4页
【51单片机】控制8路舵机源程序.doc_第5页
资源描述:

《【51单片机】控制8路舵机源程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.仿真截图://仿真文件网盘地址:pan.baidu./s/1ntLqf3N//程序:#includesbitPWM0=P1^0;sbitPWM1=P1^1;sbitPWM2=P1^2;sbitPWM3=P1^3;sbitPWM4=P1^4;sbitPWM5=P1^5;sbitPWM6=P1^6;sbitPWM7=P1^7;sbitADD=P3^6;sbitSUB=P3^7;#defineucharunsignedchar#defineuintunsignedintuintt_up0=1500;//舵机PWM高电平时间1000~2000表示1ms到2ms

2、uintt_up1=1500;uintt_up2=1500;uintt_up3=1500;..uintt_up4=1500;uintt_up5=1500;uintt_up6=1500;uintt_up7=1500;uintt0_h;uintt0_l;voiddelayms(uintms){unsignedchara,b,c;while(ms--){for(c=1;c>0;c--)for(b=142;b>0;b--)for(a=2;a>0;a--);}}voidtimer_init(){EA=1;ET0=1;PT0=1;TMOD=0x11;TH0=(65536-t_up0)

3、/256;TL0=(65536-t_up0)%256;}uchart0_flag=0;uintnum_max=65535;//直接用65535-t_up不用变量-t_up时,误差较大,原因暂时不明【注:65536不能存到uint类型变量中】uintt_change=63036;//换路周期2.5ms8路ucharerror0=45;ucharerror1=45;ucharerror2=52;ucharerror3=52;ucharerror4=57;ucharerror5=57;ucharerror6=63;ucharerror7=63;ucharerror8=70;uc

4、harerror9=70;..ucharerror10=76;ucharerror11=76;ucharerror12=82;ucharerror13=82;ucharerror14=88;ucharerror15=88;voidtimer0()interrupt1{if(t0_flag==0){PWM0=1;TH0=(num_max-t_up0+error0)/256;//+?是为了抵消执行语句花的时间TL0=(num_max-t_up0+error0)%256;t0_flag=1;}elseif(t0_flag==1){PWM0=0;TH0=(t_change+t_u

5、p0+error1)/256;TL0=(t_change+t_up0+error1)%256;t0_flag=2;}elseif(t0_flag==2){PWM1=1;TH0=(num_max-t_up1+error2)/256;//+?是为了抵消执行语句花的时间TL0=(num_max-t_up1+error2)%256;t0_flag=3;}elseif(t0_flag==3){PWM1=0;TH0=(t_change+t_up1+error3)/256;TL0=(t_change+t_up1+error3)%256;t0_flag=4;}elseif(t0_flag

6、==4){..PWM2=1;TH0=(num_max-t_up2+error4)/256;//+?是为了抵消执行语句花的时间TL0=(num_max-t_up2+error4)%256;t0_flag=5;}elseif(t0_flag==5){PWM2=0;TH0=(t_change+t_up2+error5)/256;TL0=(t_change+t_up2+error5)%256;t0_flag=6;}elseif(t0_flag==6){PWM3=1;TH0=(num_max-t_up3+error6)/256;//+?是为了抵消执行语句花的时间TL0=(num_m

7、ax-t_up3+error6)%256;t0_flag=7;}elseif(t0_flag==7){PWM3=0;TH0=(t_change+t_up3+error7)/256;TL0=(t_change+t_up3+error7)%256;t0_flag=8;}elseif(t0_flag==8){PWM4=1;TH0=(num_max-t_up4+error8)/256;//+?是为了抵消执行语句花的时间TL0=(num_max-t_up4+error8)%256;t0_flag=9;}elseif(t0_flag==9

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。