智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8545|回复: 13
打印 上一主题 下一主题

用51单片机控制舵机

  [复制链接]

4

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
威望
163
贡献
42
兑换币
0
注册时间
2011-10-18
在线时间
10 小时
跳转到指定楼层
1#
发表于 2011-10-25 00:28:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请问一下各位大侠,怎么用51单片机控制舵机的转动啊?
不要百度上搜的那些,有点千篇一律的感觉。有没有可能在某个地方创新一下哈
在此拜谢!

19

主题

171

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2786
威望
1410
贡献
766
兑换币
880
注册时间
2013-12-25
在线时间
305 小时
14#
发表于 2014-4-9 21:49:35 | 只看该作者
可以但是不精确
回复 支持 反对

使用道具 举报

15

主题

223

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1451
威望
737
贡献
426
兑换币
424
注册时间
2013-9-25
在线时间
144 小时
13#
发表于 2013-9-28 16:37:16 | 只看该作者
回复 支持 反对

使用道具 举报

4

主题

120

帖子

0

精华

高级会员

Rank: 4

积分
883
威望
468
贡献
353
兑换币
74
注册时间
2011-9-10
在线时间
31 小时
12#
发表于 2012-10-26 14:01:56 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

3

主题

283

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1406
威望
788
贡献
380
兑换币
272
注册时间
2012-9-20
在线时间
119 小时
毕业学校
陕西理工学院
11#
发表于 2012-10-19 21:23:43 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
135
威望
103
贡献
28
兑换币
2
注册时间
2012-8-26
在线时间
2 小时
10#
发表于 2012-10-19 14:34:37 | 只看该作者
fanglichao10 发表于 2011-10-28 08:52
改变emp  就可以改变占空比了

单片机控制舵机可以不用定时器吗?直接设置20ms周期的脉冲,然后改变它的占空比。搭接出来的电路会不会有问题
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
113
威望
89
贡献
24
兑换币
0
注册时间
2012-3-21
在线时间
0 小时
9#
发表于 2012-3-21 15:29:56 | 只看该作者
谢谢
回复 支持 反对

使用道具 举报

4

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
威望
163
贡献
42
兑换币
0
注册时间
2011-10-18
在线时间
10 小时
8#
 楼主| 发表于 2011-10-28 10:35:33 | 只看该作者
回复 支持 反对

使用道具 举报

2

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
威望
244
贡献
84
兑换币
10
注册时间
2011-1-8
在线时间
23 小时
7#
发表于 2011-10-28 08:52:24 | 只看该作者
改变emp  就可以改变占空比了
回复 支持 反对

使用道具 举报

2

主题

39

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
威望
244
贡献
84
兑换币
10
注册时间
2011-1-8
在线时间
23 小时
6#
发表于 2011-10-28 08:51:25 | 只看该作者
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar cycle = 0,emp =194;
sbit PWM=P0^0;

main()
{
  TMOD|= 0x11;
  TH1 =(65536-100)/256;
  TL1 =(65536-100)%256;
  ET1 = 1;
  TR1  = 1;
  EA = 1;
  while(1)
  {
    if(cycle >200) cycle=0;
    if(cycle < emp) PWM=0;      
            else PWM = 1;
   }
}

void timer(void) interrupt 3   
{
        TH1 =(65536-100)/256;
        TL1 =(65536-100)%256;
        cycle++;  
}
直接上程序   定时器的  频率很准。  晶振12M的
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-5-2 03:57 , Processed in 0.068341 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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