以前从没有想过写博客,但是最近发现以前的代码老是找不到,而且找到了也不一定想得起当时的逻辑,很麻烦,所以打算写写提醒一下自己。
最近老板让做一个扫描二维码装钥匙的小盒子,就给个小舵机和3D打印机,传动结构啥的基本搞定了,就差程序了,所以打算先测试一下舵机
说明一下舵机给20ms为周期高电平占0.5到2.5ms的的PWM波就能动,接下来上代码

#include <reg52.h>
#include <math.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit PWM_OUT=P2^7; //PWM输出口
uint PWM_Value; //定义pwm值
uint flag; //中断标志
void Delay(unsigned int s); //延时函数声明

用不到延时函数所以就没写

void Init_Timer0() // 定时器初始化
{TMOD=0x01;//定时器0 工作模式一,16位计数TH0=(65535-10)/256;//应该是每次10usTL0=(65535-10)%256;EA = 1;ET0 = 1;TR0 = 1;PT0=1;
}

这里我刚开始的时候写完程序舵机总是不动,折腾了半个小时没发现哪里有错,所以就翻出了逻辑分析仪测了一下引脚的信号,发现有点问题,计算了一下一次定时中断有0.4432ms所以把后面主函数的代码也稍微改了改。因为就用小舵机开关门,精度要求不高所以就不管这些了。我记得以前好像没遇到过这样的问题,希望有人指点一下。


void timer0(void) interrupt1 //实测一次中断0.04432ms
{ TH0=(65535-10)/256; TL0=(65535-10)%256; if (flag>PWM_Value){PWM_OUT=0;}else{PWM_OUT=1;}if (flag>451){flag=0;}flag++;
}

主函数简单点

void main()
{PWM_Value = 25; //pwm值为11-56,42时门框打开,25时门框闭合Init_Timer0();while(1);}

程序比较简单,打算留着,过些日子闲下来没事干再做个4足。

51单片机控制小舵机相关推荐

  1. 51单片机控制SG90舵机、MG90S舵机

    舵机的控制信号为周期是20ms 的脉宽调制(PWM)信号,其中脉冲宽度从0.5ms-2.5ms,相对应舵盘的位置为0-180度,呈线性变化.也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应 ...

  2. 51单片机控制sg90舵机

    1.PWM PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就 ...

  3. 【Proteus仿真】51单片机8路舵机点动±90°点动控制

    [Proteus仿真]51单片机8路舵机点动±90°点动控制 Proteus仿真 Proteus连线图 程序代码 #include<reg52.h>sbit PWM0 = P1^0; sb ...

  4. 51单片机控制二相四线步进电机

    步进电机按定子上绕组来分,有二相.三相和五相等系列.最受欢迎的是两相混合式步进电机,约占97%以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好.该种电机的基本步距角为1.8°/步,配上半步驱 ...

  5. 51单片机控制TB6600驱动器驱动42步进电机

    51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...

  6. 详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用

       我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍让小车实现自动避障所涉及的一些传感器, ...

  7. 51单片机综合小项目-第2季第4部分-朱有鹏-专题视频课程

    51单片机综合小项目-第2季第4部分-2794人已学习 课程介绍         本课程是<朱有鹏老师单片机完全学习系列课程>第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项 ...

  8. 51单片机控制的数字温度计 PROTEUS 和51单片机教程

    51单片机控制的数字温度计 总览部分 MCU部分 显示部分 开仿真以后实时显示温度 因为这个程序比较简单,我就直接上代码了,有不明白的请看我以前的文章,谢谢哦! 参考代码如下: #include &q ...

  9. 51单片机控制步进电机-电路连接

    51单片机控制步进电机-电路连接 概要:本案例讲解的内容是51单片机控制步进电机硬件连接部分.后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容 硬件清单: 1.51单片机控制板一个 2.二 ...

最新文章

  1. distributed representations的意义
  2. linux 的overcommit_memory、overcommit_ratio、swappiness 的说明
  3. 如何在Windows 7、8、10,Vista或XP中删除Windows服务
  4. MySQL修改表名示例
  5. jq之$(“tr:even“).css(“background-color“,“yellow“)
  6. java中的io复用_从 Java 中的零拷贝到五种IO模型
  7. 庆祝本人在cnblogs排名进入前2000!
  8. 多线程程序中操作的原子性--转帖
  9. duet二重奏hp_Duet游戏安卓下载|Duet二重奏最新版下载v2.0.4-乐游网安卓下载
  10. CSRF - 跨站请求伪造
  11. 常用国内镜像源地址汇总
  12. 数据库迁移(MySQL函数转化为Oracle函数)
  13. win7命令行打开计算机,Win7怎么打开cmd命令提示符_Win7打开命令提示符教程-192路由网...
  14. 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)
  15. python是哪种动物_基于Python的动物识别专家系统
  16. 计算机组装维修考点,计算机维修工(基础知识)—教材
  17. https://blog.csdn.net/watermelon_learn/article/details/88902117
  18. numpy/pandas 10min了解pandas
  19. uefi装完系统后无法引导_uefi安装win10无法启动?uefi安装win10无法启动原因分析及解决方法...
  20. 百度人脸识别搜索是怎么实现的

热门文章

  1. 数千亿汽车后市场亟待标准化 车小亮模式极具想象空间
  2. 用c#语言做课程表系统代码,winform用datagridview制作课程表实例
  3. http请求报错:80 failed to respond
  4. Transporter 上传iPA上架
  5. C语言编程输出象棋棋盘
  6. Field error in object ‘xxx‘ on field ‘xxx‘: rejected value [xxx]
  7. 〖全域运营实战白宝书 - 运营角色认知篇①〗- 初识运营,明晰运营的学习路径
  8. 标准和非标poe交换机如何选择
  9. edt嵌入式确定性测试_CallSerially EDT和InvokeAndBlock(第1部分)
  10. matlab 批量创建文件夹