找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4677|回复: 3
打印 上一主题 下一主题
收起左侧

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:140483 发表于 2016-9-26 11:11 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

板凳
ID:140483 发表于 2016-9-26 11:23 | 只看该作者
仿真报错了
回复

使用道具 举报

地板
ID:148913 发表于 2016-11-19 22:28 | 只看该作者
报错呀,可以提供新的吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表