跳转到主要内容

定时器

单片机定时器的寄存器

demi /

标准的 51 单片机内部有 T0 和 T1 这两个定时器,T 就是 Timer 的缩写,现在很多 51 系列单片机还会增加额外的定时器,在这里我们先讲定时器 0 和 1。前边提到过,对于单片机的每一个功能模块,都是由它的 SFR,也就是特殊功能寄存器来控制。与定时器有关的特殊功能寄存器,有以下几个,大家不需要去记忆这些寄存器的名字和作用,你只要大概知道就行,用的时候,随时可以查手册,找到每个寄存器的名字和每个寄存器所起到的作用。

表 5-1 的寄存器是存储定时器的计数值的。TH0/TL0 用于 T0,TH1/TL1 用于 T1。
<center><img width="600" src="http://mcu.eetrend.com/files/2019-01/wen_zhang_/100016902-56539-11.png&…; alt=""></center>

单片机定时器常见两大应用问题解析

demi /

在单片机的学习过程中,单片机定时器的合理设置和应用是非常关键的一步,也是刚开始接触单片机知识的新人工程师们比较容易出错误的一个环节之一。在今天的文章中,我们为大家总结了单片机定时器应用过程中的两大常见问题进行实时解析,希望能够对各位新人工程师的学习提供一定帮助。

问题一:51单片机的T0、T1定时器四种工作方式各有什么特点?

在单片机定时器的应用过程中,定时器在进行设置时会有四种不同的工作方式,合理选择相应的工作方式可以帮助工程师快速完成及时设置。

下面我们就来逐一讲解一下这四种不同的计时方式。
方式0是单片机计时器的第一种计时方式,这一方式13位计数模式。方式1则采用16位计数模式,方式2采用8位自动重装入计数模式,这两种技术模式也是目前在单片机应用过程中最常使用的及时方式。最后一种单片机定时器的计时方式是方式3,这一模式下只有T0有的双8位计数模式。

问题二:在设置单片机定时器的过程中出现了错误,应该怎么进行误差纠正?

STM32通用定时器TIM2的使用方法解析

demi /

STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。(TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟由APB2的输出产生;TIM2-TIM5是普通定时器;TIM6和TIM7是基本定时器,其时钟由APB1输出产生)

本实验要实现的功能是:用普通定时器TIM2每一秒发生一次更新事件,进入中断服务程序翻转LED1的状态。

预备知识:

① STM32通用定时器TIM2是16位自动重装载计数器。

② 向上计数模式:从0开始计数,计到自动装载寄存器(TIMx_ARR)中的数值时,清0,依次循环。

需要弄清楚的两个问题:

1. 计数器的计数频率是什么?

【下载】PIC24系列参考手册 - 双看门狗定时器

demi /

本章将介绍dsPIC33/PIC24双看门狗定时器(Watchdog Timer,WDT)。

WDT使能后,将依靠内部低功耗RC(Low-Power RC ,LPRC)振荡器时钟源或运行模式下可选的时钟源工作。如果软件未定期清零WDT,则可使用WDT通过复位器件来检测系统软件故障。WDT可配置为窗口模式或非窗口模式。使用WDT后分频器可选择各种WDT超时周期。WDT还可用于将器件从休眠或空闲模式(节能模式)唤醒。

以下是WDT模块的一些主要特性:

<ul><li>通过器件配置寄存器配置或由软件控制</li>
<li>运行模式和休眠/空闲模式具有独立的用户可配置超时周期</li>
<li>可将器件从休眠或空闲模式唤醒</li>
<li>用户可在运行模式下选择时钟源</li>
<li>休眠/空闲模式下依靠LPRC工作</li></ul>

STM32定时器功能和用法详解

demi /

<strong>1. STM32的Timer简介</strong>

STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。

<center><img src="http://mcu.eetrend.com/files/2018-08/wen_zhang_/100013872-47328-po.jpg&…; alt="STM32定时器功能和用法详解"></center>

单片机定时器与数码管静态显示

judy /

很多新手在单片机上走的第一步是点亮第一个LED灯,实际上因为开发板的不同,所编写的代码也不同,关键是你要去了解你用的开发板的电路布局。对于电路方面的知识我这里也不祥讲,我要做的是无论你用哪一种开发板我的文章都能帮助你。

  P0 = 0xFE;

  这句代码大家不陌生。

  void main(){
    unsigned char count = 0;
    while(1){
      P0 = ~(0x01 &lt;&lt; count);
      Delay();    //单独实现一个延时函数
      count++;
      if(count &gt; =8){
        count = 0;
      }
    }
  }

以上就是实现流水灯的基本代码,这里没有电路供你分析,但是无论什么开发板,核心代码可以用以上代码实现。

我相信你能看到这里也是有点基础的,这里的延时函数Delay,接下来要讲的是定时器,定时器就是可以替代延时函数的。

四款555定时器产生方波的电路

judy /

1、555定时器原理分析

555定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS触发器和放电管的状态。在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为 0,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 C1 的输出为 0,C2 的输出为 1,可将 RS 触发器置 0,使输出为低电平。

MM32 定时器捕获比较器输出

judy /

MM32L0系列MCU内嵌两个通用比较器 COMP1 和 COMP2,为通用的可编程电压比较器,可独立使用(适用所有终端上的 I/O 口),也可与定时器结合使用, 支持两个独立的比较器。它们可用于多种功能,包括:由模拟信号触发低功耗模式唤醒事件调节模拟信号与 DAC 和定时器输出的 PWM 相结合,组成逐周期的电流控制回路。

<center><i>比较器框图</i></center><center><img src="http://mcu.eetrend.com/files/2018-04/wen_zhang_/100011030-38835-00.jpg&…; alt="MM32 定时器捕获比较器输出"></center>

COMPx信号宽度需要测量的输入信号连接到 PA0-PA7。参考信号可通过以下方式供电:

如何使用定时器做脉冲计数?

judy /

<strong>一、应用简介</strong>

在实际应用的一些产品上可能需要使用到对脉冲的个数进行计数,本文小编将给大家介绍如何使用TIM来做一个脉冲计数的功能。在MM32 TIM中正好有一个外部时钟模式1可以来帮助我们实现这个功能。

<strong>二、外部时钟源模式1描述</strong>

首先我们来了解一下外部时钟源模式1,当 TIMx_SMCR 寄存器的 SMS = 111 时,此模式被选中。计数器可以在选定输入端的每个上升沿或下降沿计数。下图是TI2外部时钟连接例子。
<center><img src="http://mcu.eetrend.com/files/2018-03/wen_zhang_/100010842-38058-1.jpg&q…; alt="如何使用定时器做脉冲计数"></center>

STM32通用定时器功能和用法

judy /

<strong>1. STM32的Timer简介</strong>

STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器 ,看门狗定时器暂不讨论。今天主要是研究剩下的8个定时器。
<center><img src="http://mcu.eetrend.com/files/2018-03/wen_zhang_/100010834-38012-1.jpg&q…; alt="STM32通用定时器功能和用法"></center>