今天我们来讲一下定时器的用法以及PWM的调速
我们最初接触的51单片机有两组定时器(计数器),因为既可以定时,又可以计数,因此叫做定时器(计数器).
定时器和单片机的CPU是相互独立的。
定时器的工作过程是自动完成的,不需要CPU的参与。
51单片机中的定时器是根据机器内部的时钟或者是外部的脉冲信号对寄存器中的数据加1。
有了定时器/计数器之后,可以增加单片机的效率,一些简单的重复加1的工作可以交给定时器/计数器处理。CPU转而处理一些复杂的事情。同时可以实现精确定时作用。

定时器的工作原理:
定时/计数器实质上是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

51单片机的定时器的结构:
定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器THx和TLx组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。


定时器的工作方式
1、方式1的计数位数是16位,由TL0作为低8位,TH0
作为高8位,组成了16位加1计数器 。

计数个数与计数初值的关系为:X=216-N

2、方式2为自动重装初值的8位计数方式。

计数个数与计数初值的关系为:X=28-N
工作方式2特别适合于用作较精确的脉冲信号发生器。

3、方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。

工作方式3将T0分成为两个独立的8位计数器TL0和TH0 。

定时器的初始化程序应完成如下工作:
对TMOD赋值,以确定T0和T1的工作方式。
计算初值,并将其写入TH0、TL0或TH1、TL1。
中断方式时,则对EA赋值,开放定时器中断。
使TR0或TR1置位,启动定时/计数器定时或计数。

下边我放一下我们所用的代码

void Timer0Init()        //定时器的配置
{TMOD|=0x11;TL0=0XFF;TH0=0XFE;EA=1;ET0=1;TR0=1;
}

而调速非常的简单,只要配置好定时器之后就可以用了。

void ConcrolSpeed() interrupt 1      //定时器的使用,pwm
{static unsigned int i=0;TL0=0XFF;TH0=0XFE;i++;if(i==ZKB_L1)ENA_1=0;if(i==ZKB_L2)ENA_2=0;if(i==ZKB_R1)ENB_1=0;if(i==ZKB_R1)ENB_2=0;if(i==55){i=0;ENA_1=1;ENB_1=1;ENA_2=1;ENB_2=1;}
}

完了在运动的函数里边加上速度控制就好了。

void leftrun1()
{ ZKB_L1 = 40;ZKB_R1 = 40;ZKB_L2 = 40;ZKB_R2 = 40;IN0  = 0;IN1  = 1;IN4  = 0;IN5  = 1;IN2    = 1;IN3  = 0;IN6  = 1;IN7  = 0;
}

定时器的用法以及pwm的调速相关推荐

  1. pwm电机调速的原理介绍与代码实现

    文章目录 1.pwm实现调速的原理与介绍 1)占空比 2)配置模式 2.pwm信号配置流程 1)设置自动重装载数值 2)设置捕获比较数值 3)设置pwm输出模式及对齐方式 4)配置信号输出极性并使能输 ...

  2. 【51单片机学习】PWM电机调速

    简单的PWM电机调速--基于51单片机 (一)51单片机需要用到的寄存器 (二)PWM波的产生及调速原理 (三)电机调速的实现 (一)51单片机需要用到的寄存器 中断允许寄存器,详情可以看STC51单 ...

  3. STM32小车——PWM电机调速

    PWM电机调速(寄存器版) 我的上一篇博客已经写了如何用定时器产生PWM来实现LED灯的呼吸灯效果,当我想实现PWM来控制电机调速时,网上翻阅了很多的资料但是大多数是在呼吸灯的基础上改一下代码实现的, ...

  4. PWM波调速原理及循迹小车调速方法

    一.PWM和占空比的概念 ①PWM:又称脉冲宽度调制技术,是一种模拟控制方式,PWM波形如下所示. ②占空比:指高电平在一个周期中所占的比例.例如占空比为50%即高电平占整个周期时间的一半. 二.PW ...

  5. 三相异步电机pwm变频调速matlab,异步电机变频调速PWM控制电气工程

    异步电机变频调速PWM控制电气工程 太 原 理 工 大 学毕 业 设 计 ( 论 文 ) 任 务 书毕业设计(论文)题目:基于 MCS-51 单片机的异步电动机变频调速-f=45,N=27,M=0.8 ...

  6. 计算机控制电机调速闭环控制,直流电机PWM闭环调速系统

    摘要:推出一种使用单片机的PWM直流电机闭环调速系统.本系统结构简单,价格低廉,在实际应用中效果良好. 采用硬件电路实现直流电机闭环调速系统已在实践中应用多年,其硬件组成复杂,调整困难,缺乏控制的灵活 ...

  7. 树莓派Pico直流电机接口技术及PWM电机调速控制MicroPython编程

    内容目录: 一.树莓派Pico开发板直流电机接口技术 1.H桥驱动电路的基本工作原理 2.典型H桥驱动电路分析 3.DRV8833双H桥电机驱动模块介绍 4.Pico开发板与直流电机接口 二.Pico ...

  8. 51单片机 PWM 直流电机调速+Proteus仿真

    51单片机 PWM 电机调速+Proteus仿真 Proteus仿真 实例代码 /*用PWM控制电机脉冲频率应控制在25HZ-35HZ之间*//*定时1ms,1个周期30ms,脉冲频率为33HZ */ ...

  9. vpwm的控制变频_全数字控制的电压型PWM变频调速系统

    n ( 1- s ) = n 0 ( 1- s ) , (1) 式中可知:要改变异步电机的转速,可以分为 3 种方 案, 即改变极对数 p n . 改变转差率 s 或改变定子电压供 电频率 f 1 . ...

  10. 2018 0627 STM32 ----PWM直流电机调速(L298N驱动连接)

    利用STM32 PB6口输出PWM  控制直流电机的速度,用L298N驱动器驱动. 硬件连接部分: 1. 输入12V 2.接地 3.输出5V 4.5 连接STM32的io 6.7 连接直流电机输入端 ...

最新文章

  1. python发送各类邮件的主要方法
  2. pfSense 2.4.4-RELEASE现已发布!
  3. linux脚本退出状态,Shell退出状态的使用
  4. docker(三) 制作自己的镜像
  5. ibatis mysql 自增_mybatis自增主键
  6. 发布任务PHP源码,Thinkphp5新威客任务平台源码
  7. 机器学习基石-作业四-代码部分
  8. Ranger-AdminServer安装
  9. 如何在ASP.NET中生成HTML5离线Web应用
  10. qt 正则 html,Qt 正则表达式 (一)
  11. 弱网测试用什么农_弱网测试--使用fiddler进行弱网测试
  12. ubuntu下配置开机启动服务
  13. [bzoj2594][Wc2006]水管局长数据加强版
  14. 【AI视野·今日CV 计算机视觉论文速览 第155期】Fri, 6 Sep 2019
  15. Android开发好用的依赖库
  16. android11系统原生铃声,原生系统的凤毛麟角 索尼Xperia 1 II推送Android 11体验
  17. 推荐一个超级好用的XML编辑器
  18. oracle静默安装集群,Oracle RAC 静默安装实践
  19. matlab如何寻找兼职
  20. 云计算基础课堂001 Linux系统与CentOS7的安装部署(小白向—怎么在VMware虚拟机安装基于Linux操作系统的CentOS7)

热门文章

  1. 各大主流编程语言简介
  2. vue项目项目启动步骤及常见错误处理
  3. python字典类型中键可以是数字吗_python字典key不能是或可以是啥类型
  4. 浏览器的语音识别功能
  5. tensorflow ckpt模型转saved_model格式并进行模型预测
  6. 屏幕尺寸、屏幕分辨率、高清屏、屏幕像素密度
  7. HTML 拖放功能 - DragDrop
  8. C++实现 利用前序序列和中序序列构建二叉树
  9. 主持人大赛-即兴主持之新闻稿
  10. 一个野生程序员的真实自述:我是如何从数学专业学渣入坑程序员的