当前位置: 首页 > news >正文

11.舵机控制

jd就是cnt,分别对应着

        0.5ms-------------0度;   1 
        1.0ms------------45度;  2
        1.5ms------------90度;  3
        2.0ms-----------135度; 4
        2.5ms-----------180度; 5

并且软件PWM是不稳定的,所以前面要用软件延时稳定一下

#include "reg52.h"sbit sg90_con = P1^1;
int jd;
int cnt = 0;void Delay2000ms()		//@11.0592MHz
{unsigned char i, j, k;i = 15;j = 2;k = 235;do{do{while (--k);} while (--j);} while (--i);
}void Time0Init()
{//1. 配置定时器0工作模式位16位计时TMOD = 0x01;//2. 给初值,定一个0.5ms出来TL0=0x33;TH0=0xFE;//3. 开始计时TR0 = 1;TF0 = 0;//4. 打开定时器0中断ET0 = 1;//5. 打开总中断EAEA = 1;
}void Delay300ms()		//@11.0592MHz
{unsigned char i, j, k;i = 3;j = 26;k = 223;do{do{while (--k);} while (--j);} while (--i);
}void main()
{Delay300ms();//让硬件稳定一下Time0Init(); //初始化定时器jd = 1;      //初始角度是0度,0.5ms,溢出1就是0.5,高电平cnt = 0;sg90_con = 1;//一开始从高电平开始//每隔两秒切换一次角度while(1){jd = 3; //90度 1.5ms高电平cnt = 0;Delay2000ms();jd = 1; //0度cnt = 0;Delay2000ms();}
}void Time0Handler() interrupt 1
{cnt++;  //统计爆表的次数. cnt=1的时候,报表了1//重新给初值TL0=0x33;TH0=0xFE;//控制PWM波if(cnt < jd){sg90_con = 1;}else{sg90_con = 0;}if(cnt == 40){//爆表40次,经过了20mscnt = 0;  //当40次表示20ms,重新让cnt从0开始,计算下一次的20mssg90_con = 1;}}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Linux】CodeServer:云IDE部署
  • word并排查看,同步滚动
  • springboot定时任务@scheduled自定义配置定时开关
  • 软考高项彻底没用了?谁说的?站出来,我保证不笑场!
  • 微知-nandflash和norflash名字为什么叫nand和nor?主要区别是什么?
  • Java Script网页设计案例
  • MySQL大量数据偏移查询优化:从LIMIT偏移到基于ID的数据读取
  • JavaEE 第16节 线程安全的集合类
  • 华为设备默认密码
  • 【人工智能】多模态AI:如何通过融合文本、图像与音频重塑智能系统未来
  • 【数仓建模过程】Spark数据清洗篇
  • 深入理解DPO(Direct Preference Optimization)算法
  • erlang学习:用OTP构建系统1
  • 单链表——随机链表的复制
  • Mask R-CNN论文原理讲解
  • Google 是如何开发 Web 框架的
  • 30秒的PHP代码片段(1)数组 - Array
  • ES2017异步函数现已正式可用
  • ES6 ...操作符
  • idea + plantuml 画流程图
  • Java 23种设计模式 之单例模式 7种实现方式
  • mysql常用命令汇总
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PAT A1120
  • python docx文档转html页面
  • scrapy学习之路4(itemloder的使用)
  • session共享问题解决方案
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • SQLServer插入数据
  • 从setTimeout-setInterval看JS线程
  • 给Prometheus造假数据的方法
  • 技术胖1-4季视频复习— (看视频笔记)
  • 如何利用MongoDB打造TOP榜小程序
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 温故知新之javascript面向对象
  • 我看到的前端
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #LLM入门|Prompt#3.3_存储_Memory
  • (152)时序收敛--->(02)时序收敛二
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (三)SvelteKit教程:layout 文件
  • (算法二)滑动窗口
  • (转) Face-Resources
  • (转)Scala的“=”符号简介
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .gitignore