标题: mega128单片机定时器控制舵机正反转的程序及proteus仿真 [打印本页]

作者: 51黑ff    时间: 2016-9-12 00:14
标题: mega128单片机定时器控制舵机正反转的程序及proteus仿真
mega128单片机是一款控制舵机很好的芯片,这里给51黑电子论坛的朋友们分享一个我做的舵机仿真,带程序源码.下面是仿真原理图:


程序源码:
  1. #include<avr/io.h>
  2. #include<util/delay.h>
  3. //实现舵机正转反转,proteus中舵机是按照高电平1ms到2ms控制位置,可修改
  4. void pwm_init()
  5. {
  6.         DDRE|=(1<<PE5);
  7.         TCCR3A=0X0A;//PE5输出pwm,快速14模式,匹配时清零,PE5输出
  8.         TCCR3B=0x1a;//14模式,64分频
  9.         OCR3C=6000;//
  10.         ICR3=6000;
  11. }
  12. void xz( unsigned int r)//按从0到180角度位置输出,就是proteus电机里的-90到+90
  13. {
  14.         OCR3C=2000+r*200/18;//2000是高电平1ms
  15. }
  16. int main()
  17. {
  18.         pwm_init();
  19.         unsigned char r=0;
  20.         while(1)
  21.         {
  22.                 xz(r);//改变角度
  23.                 r++;//角度增加
  24.                 _delay_ms(5);//实际应用应中考虑具体延时,5ms太快
  25.                 if(r==180)
  26.                 {
  27.                         _delay_ms(1000);
  28.                         while(r!=0)
  29.                         {
  30.                                 xz(r);
  31.                                 r--;
  32.                                 _delay_ms(5);
  33.                         }
  34.                         _delay_ms(1000);
  35.                 }
  36.         }
  37.         return 0;        
  38. }
复制代码


mega128用定时器控制舵机正反转.rar

25.77 KB, 下载次数: 29, 下载积分: 黑币 -5


作者: pansubing    时间: 2016-9-26 11:11
谢谢楼主分享
作者: pansubing    时间: 2016-9-26 11:23
仿真报错了
作者: xiqixiaofuzhu    时间: 2016-11-19 22:28
报错呀,可以提供新的吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1