找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5975|回复: 15
收起左侧

51单片机可用的舵机控制程序

  [复制链接]
ID:96844 发表于 2015-11-23 18:09 | 显示全部楼层 |阅读模式
我是新手,之前想测试一舵机,在论坛没找到可用的程序,后来在度娘找到了,在这分享一下
  1. #include<reg52.h>
  2. typedef unsigned int uint;
  3. typedef unsigned char uchar;
  4. sbit pwm=P0^3;//输出PWM信号
  5. uint pwm_value=1500;//初值为1.5ms

  6. uint value[]={1500,1000,1500,2000,1500};//
  7. void delay_ms(uint x)
  8. {
  9.         uint i;
  10.         while(x--)for(i=0;i<125;i++);
  11. }
  12. void InitTimer(void)
  13. {
  14.         TMOD=0x11;//开定时器0,1
  15.         TH0=-20000/256;//定时20MS,20MS为一个周期
  16.         TL0=-20000%256;
  17.         TH1=-1500/256;//定时1.5MS,这时舵机处于0度
  18.         TL1=-1500%256;
  19.         EA=1;//开总断
  20.         TR0=1;//开定时器0
  21.         ET0=1;
  22.         TR1=1;//开定时器1
  23.         ET1=1;
  24. }
  25. void timer0(void) interrupt 1//定时器0中断函数
  26. {
  27.         pwm=1;
  28.         TH0=-20000/256;
  29.         TL0=-20000%256;
  30.         TR1=1;
  31. }

  32. void timer1(void) interrupt 3//定时器1中断函数
  33. {
  34.         pwm=0;
  35.         TH1=-pwm_value/256;
  36.         TL1=-pwm_value%256;
  37.         TR1=0;
  38. }
  39. void main(void)//主函数
  40. {
  41.         uchar i;
  42.         InitTimer();
  43.         pwm_value=1500;
  44.         while(1)
  45.         {
  46.                 for(i=0;i<5;i++)
  47.                 {
  48.                         pwm_value=value[i];//通过数组就可以改变舵机的转角度
  49.                         delay_ms(1000);
  50.                 }
  51.         }
  52. }
复制代码


51舵机程序.zip

676 Bytes, 下载次数: 101, 下载积分: 黑币 -5

txt格式

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的积分奖励!

查看全部评分

回复

使用道具 举报

ID:379175 发表于 2018-12-8 22:48 | 显示全部楼层
刘班会 发表于 2018-12-8 17:52
这个是蓝牙控制的吗

应该是5个角度自己循环动作的
回复

使用道具 举报

ID:436733 发表于 2018-12-8 17:52 | 显示全部楼层
这个是蓝牙控制的吗
回复

使用道具 举报

ID:325537 发表于 2018-5-9 21:06 | 显示全部楼层
嘿嘿嘿,有用,谢谢啦
回复

使用道具 举报

ID:242730 发表于 2017-10-25 11:34 来自手机 | 显示全部楼层
请问需要舵机控制板吗
回复

使用道具 举报

ID:205873 发表于 2017-5-29 16:47 | 显示全部楼层
请问这个程序是控制数字舵机还是模拟舵机的?
回复

使用道具 举报

ID:168603 发表于 2017-3-12 20:15 | 显示全部楼层
我是新手,想请教大神一下。定义的是pwm=P0^3,而在主函数中输出的是pwm_value  。这样信号能输出到P0.3口吗?
回复

使用道具 举报

ID:130231 发表于 2017-3-8 18:30 | 显示全部楼层
我是新手,直得学习。
回复

使用道具 举报

ID:136393 发表于 2017-3-8 17:43 | 显示全部楼层
谢谢大神
回复

使用道具 举报

ID:114460 发表于 2016-4-16 23:04 | 显示全部楼层
谢谢大神
回复

使用道具 举报

ID:96844 发表于 2015-12-29 21:56 | 显示全部楼层
腾飞的龙 发表于 2015-11-25 13:22
你把源码贴出来多好,何必这样。

毕竟不是我写的
回复

使用道具 举报

ID:97209 发表于 2015-11-26 11:47 | 显示全部楼层
学习一下,51黑有你更精彩
回复

使用道具 举报

ID:79544 发表于 2015-11-25 13:22 | 显示全部楼层
你把源码贴出来多好,何必这样。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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