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

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

3天内不再提示

寄存器中的逐位定义和功能

MCU开发加油站 来源:MCU开发加油站 作者:MCU开发加油站 2022-04-10 16:19 次阅读

目前常用的单片机中往往都配备了定时器/计数器。在AT89S52芯片内包含有三个16位的定时器/计数器:T0、T1和T2,其核心是加1计数器。我们主要要求掌握T0和T1的结构和功能。学习中要注意从电路结构上来理解功能的实现。定时器/计数器方式寄存器TMOD和定时器/计数器控制寄存器TCON是用以设定定时器/计数器的工作方式、定时或计数功能,控制启动或停止以及产生溢出中断的重要模块,应该对这两个寄存器中的逐位的定义和功能进行学习和掌握。

3073b8d4-b75b-11ec-aa7f-dac502259ad0.jpg

30874be2-b75b-11ec-aa7f-dac502259ad0.jpg

图1:T0和T1的基本构成

一、定时器/计数器的功能

AT89S52单片机定时器/计数器的基本部件是两个8位的计数器(T1计数器分为高8位TH1和低8位TL1,T0计数器的高8位是TH0,低8位是TL0)。如图1所示。

定时器/计数器的核心是一个加1计数器,在作定时器使用时,它对机器周期进行计数,每过一个机器周期计数器加1,直到计数器计满溢出。

当它用作对外部事件计数时,计数器接相应的外部输入引脚T0(P3.4)或T1(P3.5)并在每个机器周期的S5P2时采样,当采样到1—0的负跳变时,计数器加1。二、定时器/计数器的结构

AT89S52单片机内部的定时/计数器的结构如图2所示。定时器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)构成。每个寄存器均可单独访问。

3098cd5e-b75b-11ec-aa7f-dac502259ad0.jpg

图2 定时器/计数器的内部结构1、定时/计数的基本概念定时和计数是日常生活和生产中最常见和最普遍的问题。

定时器和计数器功能基本上都是使用相同的逻辑实现的,而且这两个功能都包含输入的计数信号,本质上都是对脉冲计数。计数器用来计数并指示在任意间隔内输入信号(事件)的个数,而定时器则对规定间隔内输入的信号个数进行计数,用来指示经历的时间。

在单片机中,定时/计数器作定时功能用时,对机器周期计数(由单片机的晶体振荡器经过12分频后得到),因每次计数的周期是固定的,所以根据它计数的多少就可以很方便的计算出它计数的时间。如图3所示。

30adab02-b75b-11ec-aa7f-dac502259ad0.png

图3 计数与定时

2、溢出的基本概念从一个生活中的例程看起:一个水盆在水龙头下,水龙头没关紧,水一滴滴地滴入盆中。盆的容量是有限的,水滴持续落下,盆中的水持续变满,最终有一滴水使得盆中的水满了,这就是“溢出”。如果一个空的盆要1万滴水滴进去才会满,开始滴水之前可以先放入一部分水,叫做计数初值。如果现在要计数9000,那么可以先放入1000滴水,也就是计数初值为1000,再计数9000就可以溢出产生中断。

单片机中通常采用计数初值的办法,如果每个脉冲是1微秒,则计满256个脉冲需时256微秒,如果现在要定时100微妙,只要在计数器里面先放进156,然后计数100就可以就可以溢出产生中断了。如图4所示。

30ce6eb4-b75b-11ec-aa7f-dac502259ad0.png

图4 定时器/计数器的溢出

3、定时/计数的主要方法

实现定时或计数,主要有三种方法。

(1)软件延时

软件延时利用微处理器执行一个延时程序段实现。因为微处理器执行每条指令都需要一定时间,通过指令的循环实现软件延时。软件定时具有不使用硬件的特点,但却占用了大量CPU时间。另外,软件定时精度不高,在不同系统时钟频率下,执行一条指令的时间不同,同一个软件延时程序的定时时间也会不同。

(2)硬件定时

硬件定时采用数字电路中的分频器将系统时钟进行适当分频产生需要的定时信号,也可以采用单稳电路或简易定时电路(如常用的555定时器)由外接RC(电阻电容)电路控制定时时间。这样的定时电路较简单,利用不同分频倍数或改变电阻阻值、电容容值使定时时间在一定范围内改变。

(3)可编程的硬件定时

可编程定时器/计数器最大特点是可以通过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功能或计数功能。这种电路不仅定时值和定时范围可用程序改变,而且具有多种工作方式,可以输出多种控制信号,具备较强的功能。

原文标题:单片机定时器/计数器基本原理

文章出处:【微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

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

    关注

    6035

    文章

    44554

    浏览量

    634635
  • 寄存器
    +关注

    关注

    31

    文章

    5336

    浏览量

    120230
  • 计数器
    +关注

    关注

    32

    文章

    2256

    浏览量

    94477

原文标题:单片机定时器/计数器基本原理

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    解析CPU寄存器

    8寄存器在16寄存器,而16寄存器在32
    发表于 09-19 10:10 4105次阅读

    如何根据自己设计寄存器配置总线定义来生成一套寄存器配置模版

    无论是FPGA还是ASIC,系统设计总会存在配置寄存器总线的使用,我们会将各种功能、调试寄存器挂载在寄存器总线上使用。
    的头像 发表于 03-04 13:56 1143次阅读
    如何根据自己设计<b class='flag-5'>中</b>的<b class='flag-5'>寄存器</b>配置总线<b class='flag-5'>定义</b>来生成一套<b class='flag-5'>寄存器</b>配置模版

    xsdk的64寄存器有什么功能

    你好,我想读取和写入xsdk的64寄存器。我发现Xil_Out32和Xil_In32用于32寄存器。 64
    发表于 04-23 10:09

    寄存器与移位寄存器

    寄存器与移位寄存器 寄存器是用来寄存数码的逻辑部件,所以必须具备接收和寄存数码的功能。任何一种
    发表于 03-12 15:19 59次下载

    第二十六讲 寄存器和移位寄存器

    第二十六讲 寄存器和移位寄存器7.4.1 寄存器1.定义2.电路举例 3.逻辑功能分析7.4.2 移位
    发表于 03-30 16:30 9619次阅读
    第二十六讲 <b class='flag-5'>寄存器</b>和移位<b class='flag-5'>寄存器</b>

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定义  寄存器是中央处理内的组成部分。
    发表于 03-08 14:26 2.2w次阅读

    寄存器培训教程

    寄存器培训教程 7.4.1 寄存器1.定义2.电路举例 3.逻辑功能分析7.4.2 移位寄存器一、单向移位
    发表于 03-08 14:52 1242次阅读

    32寄存器,32寄存器是什么意思

    32寄存器,32寄存器是什么意思  从X8086开始学了一年,第一个ASM的程序就是变32换16进制的程序,不过现在叫我从新开始写ASM程
    发表于 03-08 17:26 1.7w次阅读

    CAN寄存器功能

    fesscale的8单片机can寄存器对应的功能
    发表于 03-29 14:44 4次下载

    寄存器的使用技巧及定义

    寄存器是中央处理内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。在中央处理的控制部件,包含的
    发表于 09-12 16:16 2次下载
    <b class='flag-5'>寄存器</b>的使用技巧及<b class='flag-5'>定义</b>

    HELLODSPF2812寄存器速查

    周期寄存器,选用定时 1 的周期寄存器。这一在 T1CON 是保留。在 EVB
    发表于 04-12 14:33 14次下载
    HELLODSP<b class='flag-5'>中</b>F2812<b class='flag-5'>寄存器</b>速查

    51单片机特殊功能寄存器在C51程序定义详细说明

    MCS - 51单片机,除了程序计数PC和4组工作寄存器组外,其它所有的寄存器均为特殊功能寄存器
    发表于 07-22 17:37 1次下载
    51单片机特殊<b class='flag-5'>功能</b><b class='flag-5'>寄存器</b>在C51程序<b class='flag-5'>中</b>的<b class='flag-5'>定义</b>详细说明

    16和32寄存器的区别 16寄存器有哪些

    16寄存器可以存储2个字节(16)的数据,数据范围为0~65535。在单片机,16寄存器
    发表于 03-31 18:14 1.5w次阅读

    单片机工作寄存器作用 单片机常用专用寄存器

    除了通用寄存器(如累加、通用寄存器等),单片机还会有特定功能寄存器,如定时
    的头像 发表于 04-08 14:46 7515次阅读

    寄存器定义功能 寄存器的分类和工作原理

    在计算机系统寄存器作为一种特殊的存储设备,扮演着至关重要的角色。它是中央处理(CPU)内部的重要组成部分,用于暂时存储数据和指令,以便于CPU进行高速的运算和控制。本文将对寄存器
    的头像 发表于 05-12 17:07 5447次阅读