0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

08_51入门_定时器中断

天才小狸花 来源:Sigle_chip 作者:Sigle_chip 2022-09-13 10:38 次阅读

前言

在程序运行中,我们有着去定时运行某一功能的需求,或许1s、或许0.5s。如果使用delay函数,必然导致会使得其他任务阻塞。使用定时器对于程序的精准计时有着很大作用,获取去达到计时的目的,也可以使用定时器,如超声波的测距方式。

我们生活中采用秒等单位作为生活中的基本单位,而秒的详细定义为

铯-133原子位于海平面处于非扰动基态时两个超精细能级间跃迁对应的辐射频率ΔνCs以Hz(即等于s-1)为单位表达时选取固定数值9192631770倍来定义秒

其铯-133原子的辐射频率的9192631770为1s

时钟

单片机内部当然不可能使用铯原子作为计时的时钟源,通常是采用石英晶振制成的一种谐振器件,其时钟频率为其固有属性,只受到自身影响。

通过与51单片机的XTL1和XTL2引脚构成一个皮尔斯振荡器,通过内部时钟电路的整形调整,向单片机提供稳定的时钟频率。若为有员晶振直接将时钟引脚接到XTL1引脚。

常用于单片机的晶振频率有11.0592MHz,12MHz等,为什么会有11.0592这么特殊的晶振频率呢,这涉及到通信的问题,这里暂不引入。

12MHz表示以Hz(即等于s-1)为单位表达时选取固定数值12000000倍为1s。

当然,如果我们使用计数器模式,时钟源便为外部引脚的电平变化,分别是连接51单片机的 P3.4 P3.5两个口。

周期

时钟周期

其时钟周期是指振荡源的周期,定义为时钟脉冲的倒数。

外部晶振12M
则时钟周期为 1s/12M= 1S/12 000 000 = 1/12us

外部晶振11.0592M
则时钟周期为 1s/11.0592M = 1S/11 059 200 = 1/11.0592us

外部晶振24M
则时钟周期为 1s/24M= 1S/24 000 000 = 1/24us

机器周期

机器周期,是指执行一单位指令所需要的时钟周期个数。

机器周期也称为CPU周期。
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个时钟周期组成。如 1T,就表示,需要 1个时钟周期; 12T即为 12个时钟周期。这些都只是
一单位指令的时间(如自增、自减等),多单位指令时间进行倍乘(如赋值语句需要2个机械周期,即乘以2倍),
传统的8051单片机就是12T的,即完成1个单位指令所需时间为12个时钟周期。 1T的完成1个单位指令所需时间则为1个机器周期。

传统的8051使用12Mhz晶振的机器周期是,1T的要比12T的速度更快,而STC89C51RC系列支持6T模式,相当于速度翻倍。

1T 12Mhz的机器周期为1/12us
12T 12Mhz的机器周期为1us

指令周期

CPU完成一条指令的时间叫指令周期

一般一条完整的指令包括:取指周期、间址周期、执行周期、中断周期。

寄存器

在使用定时器时,我们需要对定时器/计数器的初始化。

第一步,开中断,对IP和IE赋值。

第二步,配置模式,对TMOD赋值。

先确定定时器还是计数器,TMOD中有相应的控制位 [ C/T ]来选择T0或T1为定时器还是计数器.

在将控制位GATE打开,最后配置模式位M0,M1,两位可配置4种模式。

  1. 定时器/计数器0模式选择 13位定时器/计数器,兼容8048定时模式,TL0只用低5位参与分频,TH0整个8位全用。
  2. 16位定时器/计数器,TL0、TH0全用
  3. 8位自动重装载定时器,当溢出时将TH0存放的值自动重装入TL0定时器0此时作为双8位定时器/计数器。
  4. TL0作为一个8位定时器/计数器,通过标准定时器0的控制位控制。TH0仅作为一个 8位定时器,由定时器1的控制位控制。

定时器/计数器的核心部件是一个加法(也有减法)的计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:
如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟得到一个计数脉冲,计数值加1;
如果计数脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5),则为计数方式,每来一个脉冲加1。

由于8051单片机为8位单片机,寄存器最多为8位,计数周期太小。

通过两个寄存器组成16位寄存器(实际还是俩),其16位最多可计时 216个机器周期,12T,12Mhz下为 65,535us。

当开启定时器后,16位计时器每个机器周期值自加,全为1时触发中断,执行中断程序,根据是否在使用定时器再将值写入16位寄存器,学习单片机嵌入式,元器件有需求可以去唯样商城看看,学生还有优惠哦。

初值计算

TL表示低8位。TH表示高八位。

其值为

0XFFFF -(初值(单位:s)/1s)*(晶振频率/12)

其初值计算可用相应的工具,如STCISP就自带计算,但我们要理解其相应的工作方式。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6036

    文章

    44555

    浏览量

    634930
  • 定时器
    +关注

    关注

    23

    文章

    3247

    浏览量

    114755
收藏 人收藏

    评论

    相关推荐

    定时器的基本组成和工作模式

    定时器是计算机或电子设备中常见的一个硬件或软件组件,其主要功能是测量和控制时间的流逝。它在各种应用中起着至关重要的作用,如操作系统调度、多媒体播放、网络通信、工业自动化控制以及家电设备的定时功能等。定时器的工作原理基于时序控制,
    的头像 发表于 08-19 18:28 1243次阅读

    定时器的工作方式介绍

    或实现周期性事件的硬件模块。它可以用于实现各种定时任务,如定时中断、PWM(脉冲宽度调制)输出、频率测量等。定时器通常由一个计数、一个时钟源和一个控制寄存
    的头像 发表于 07-12 10:29 936次阅读

    定时器相关的寄存有哪些类型

    在微控制编程中,定时器是一种非常常见的功能模块,用于实现各种定时和计数功能。定时器的工作原理是通过内部的计数来跟踪时间的流逝,当计数
    的头像 发表于 07-12 10:25 922次阅读

    鸿蒙开发系统基础能力:Timer定时器

    设置一个定时器,该定时器定时器到期后执行一个函数。
    的头像 发表于 06-28 11:33 994次阅读
    鸿蒙开发系统基础能力:Timer<b class='flag-5'>定时器</b>

    使用定时器的编码接口模式,打开定时器的溢出中断,当定时器上溢出和下溢出是,是否都会产生溢出中断

    使用定时器的编码接口模式,打开定时器的溢出中断,当定时器上溢出和下溢出是,是否都会产生溢出中断
    发表于 05-24 07:41

    用STM32F103打开了定时器2开定时器中断,关闭就报错 ,定时器如何关闭呢?

    最近用STM32F103打开了定时器2 开定时器中断,开启PA11的中断,在PA11的中断里把定时器
    发表于 05-14 06:52

    如何实现一个软件定时器

    在Linux,uC/OS,FreeRTOS等操作系统中,都带有软件定时器,原理大同小异。典型的实现方法是:通过一个硬件定时器产生固定的时钟节拍,每次硬件定时器中断到,就对一个全局的时间
    的头像 发表于 04-29 11:00 641次阅读

    s7200定时器的五种故障介绍

    定时器或CPU故障:如果定时器本身或PLC的CPU出现故障,也可能导致定时器无法复位。此时,需要检查定时器和CPU的工作状态,确保其正常运行。
    的头像 发表于 04-03 17:08 2438次阅读

    ​PLC定时器介绍

    定时器是PLC中重要的编程元件,是累计时间增量的内部器件。大部分自动控制领域都需要定时器进行延时控制,灵活地使用定时器可以编制出复杂的控制程序。
    发表于 03-22 12:36 2355次阅读
    ​PLC<b class='flag-5'>定时器</b>介绍

    使用555定时器的可调双定时器电路

    定时器 IC 555 是最通用和最常用的 IC 之一,因为它的应用范围更广,如 PWM放大器、延迟定时器、开关电路、占空比选择、时钟脉冲发生等。这也可用于各种应用,如精确
    的头像 发表于 02-25 15:16 2202次阅读
    使用555<b class='flag-5'>定时器</b>的可调双<b class='flag-5'>定时器</b>电路

    单片机外部中断定时器中断的区别和用法

    单片机外部中断定时器中断在触发来源、应用场景以及功能特点上存在明显差异** **。
    的头像 发表于 01-28 17:35 3102次阅读

    定时器原理能控制马达吗为什么

    定时器原理可以用于控制马达。马达是一种将电能转换为机械能的设备,通常由电动机和传动装置组成。定时器是一种电子设备,用来生成和计时精确而稳定的时间信号。通过将定时器与马达控制电路相连,可以实现对马达
    的头像 发表于 01-23 15:21 667次阅读

    AT32 定时器配置中pr和div的作用

    AT32定时器51系列单片机中的一种定时器,可以实现多种定时功能。在AT32定时器中,pr和div是两个相关的参数,用于配置
    的头像 发表于 01-08 10:12 1301次阅读

    单片机定时器的用法

    本章以CW32通用定时器为例介绍单片机定时器的用法。
    的头像 发表于 01-04 10:37 1401次阅读
    单片机<b class='flag-5'>定时器</b>的用法

    51单片机定时器定时1秒程序流水灯结果分析

    流水灯的设计原理、实现步骤和结果分析。 一、设计原理 在51单片机中,定时器常用的工作方式有两种:定时器模式和计数模式。定时器模式是指
    的头像 发表于 12-26 14:57 7210次阅读