这篇文章,我们对51单片机的定时器0和定时器1的寄存器和功能进行介绍。

1 定时器/计数器工作方式寄存器TMOD

定时器/计数器工作方式寄存器在特殊功能寄存器中,字节地址为89H,不能位寻址,TMOD用来确定定时器T0和T1的工作方式及功能选择,单片机复位时,TMOD全部被清0,TMOD寄存器的定义如下。

定时器/计数器工作方式寄存器TMOD

这个寄存器的高4位用来设置定时器T1,低4位用来设置定时器T0。

GATE—门控制位。

GATE=0,定时器/计数器启动与停止仅受TCON寄存器中TRx位来控制。

GATE=1,定时器/计数器启动与停止由TCON寄存器中TRx位和外边中断引脚(INT0或INT1)上的电平状态来共同控制。

C/T—定时器模式和计数器模式选择位。

C/T=0,定时器模式。

C/T=1,计数器模式。

M1:M0—工作方式选择位。

每个定时器/计数器由4中工作方式,他们由M1和M0设定,对应关系如下表所示。

定时器/计数器的4种工作方式

M1

M0

工作方式

0

0

方式0:13位定时器/计数器

0

1

方式1:16位定时器/计数器

1

0

方式2:8位初始值自动重置的8位定时器/计数器

1

1

方式3:仅适用于T0,分成两个8位计数器,T1停止计数

关于这4中工作方式,我们在介绍完TCON寄存器之后再进行介绍。

2 定时器/计数器控制寄存器TCON

定时器/计数器控制寄存器在特殊功能寄存器中,字节地址为88H,位地址(由低位到高位)分别为88H~8FH,该寄存器可以进行位寻址。TCON寄存器用来控制定时器的启、停,标志定时器的溢出和中断情况。单片机复位时TCON全部清0。这个寄存器的给位定义如下表所示。其中TF1、TR1、TF0和TR0位用于定时器/计数器的设置。IE1、IT1、IE0和IT0位用于外部中断的设置。

定时器/计数器控制寄存器TCON

位序号

D7

D6

D5

D4

D3

D2

D1

D0

位符号

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

位地址

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

TF1—定时器1溢出标志位。

当定时器1计满溢出时,由硬件使TF1置1,并且申请中断。进入中断服务程序后,由硬件自动清0。需要注意的是,如果使用定时器的中断,那么该位完全不用人为去操作,但是如果使用软件查询的方式的话,当查询到该位置1后,就必须用软件清0。

TR1—定时器1运行控制位。

由软件清0关闭定时器1。当GATE=1时,INT1为高电平且TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1。

TF0—定时器0溢出标志位。

该位与TF1功能和操作方法相同。

TR0—定时器0运行控制位。

该位与TR1功能和操作方法相同。

IE1—外部中断1请求标志。

当IT1=0时,外部中断INT1为电平触发方式,每个机器周期采用INT1引脚,若INT1引脚为低电平,则置1,否则IE1清0。

当IT1=1时,外部中断INT1为边沿触发方式,当采集到INT1由高电平向低电平的跳变时则将IE1置1。IE1=1表示外部中断1正向CPU申请中断。当CPU响应中断转向中断服务程序时,该位由硬件清0。

IT1—外部中断1触发方式选择位。

IT1=0,电平触发方式,引脚INT1上低电平触发中断。

IT0=1,边沿触发方式,引脚INT1上由高电平向低电平的跳变触发中断。

IE0—外部中断0请求标志。

这一位的用法与IE1相同。

IT0—外部中断0触发方式选择位。

这一位的用法与IT1相同。

3 定时器的4种工作方式

1)方式0

下图为定时器工作在方式0下的原理图。

在此方式下,定时器配置为13位计数器,由TLn的低5位和THn的8位构成。TLn的低5位溢出时向THn进位。THn计数溢出置位TCON中的溢出标志位TFn(n=0,1)。当GATE=0时,如果TRn=1,则定时器计数。当GATE=1时,允许由外部输入INT1控制定时器1,INT0控制定时器0。这样可以实现脉宽测量。方式0的操作对于定时器0和定时器1都是相同的。

2)方式1

方式1的工作原理如下图所示。方式1与方式0相比,除了使用了THn和TLn的全部16位外,其它用法与方式0完全相同。

3)方式2

方式2的工作原理如下图所示。

在这种方式下,定时器/计数器0和1作为可自动重新装载的8位计数器(TLn),TLn用来计数,TLn的溢出,不仅置位TFn,而且将THn的内容重新装入TLn,THn内容由软件预置,重装时THn内容不变。方式2的操作对于定时器0和定时器1也都是相同的。

4)方式3

对于定时器1,在方式3时,定时器1停止计数。

对于定时器0,在此方式下,定时器0的TL0和TH0作为2个独立的8位计数器。下图为方式3时定时器的原理图。TL0占用定时器0的控制位,包括C/T 、GATE、TR0和TF0以及INT0输入引脚。而TH0限定为定时器功能,不能用作计数器。TH0占用了定时器1的TR1和TF1。此时TH0控制定时器1中断。

方式3是为了增加一个附加的8位定时器/计数器而提供的。使单片机具有三个定时器/计数器。方式3只是用于定时器/计数器0,定时器T1处于方式3时相当于TR1=0,停止计数(此时T1可用来做串行口波特率发生器)。而T0可作为两个定时器用。

51单片机(十六)—— 定时器0和定时器1寄存器介绍及功能描述相关推荐

  1. 51单片机实验 LED半秒闪烁 定时器0方式2 中断实现

    51单片机实验 LED半秒闪烁 定时器0方式2 中断实现 实验目的: P1.0接一个发光管,实现亮半秒灭半秒, 要求使用定时器0工作方式2,中断实现. C语言代码: #include "at ...

  2. 51单片机入门教程(5)——定时器中断

    51单片机入门教程(5)--定时器中断 一.中断的概念 二.定时器中断 2.1 软件延时的不足 2.2 中断寄存器 2.2.1 中断允许控制寄存器 IE 2.2.2 定时器工作方式寄存器 TMOD 2 ...

  3. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

    编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00.01.02--98.99每间隔500ms加1显示. 程序: #include <reg51.h> ...

  4. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

    编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00.01.02--98.99每间隔500ms加1显示. 程序: #include <reg51.h> #defin ...

  5. 定时器中断实验 编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。

    编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器. 程序: #include<reg51.h> sbit fm=P2^3; unsigned char cnt; int ...

  6. LPC2103学习之定时器0和定时器1

    2019独角兽企业重金招聘Python工程师标准>>> 这两天学习LPC2103的定时器.开始看前面的寄存器介绍看的有点头晕,一会儿就搞混了.不过当我看到后面用图片描述定时器相关寄存 ...

  7. 51单片机复习:外部中断,定时器/计数器中断

    中断: 什么是中断,就是打断,你一开始在做一件事,突然意外发生(中断源),你不得不停止手中的事,(中断响应),去处理那 件意外(中断服务),处理完意外后你继续做刚才那件事(中断返回),这就是中断,而单 ...

  8. 快速复习51单片机的外部中断、计数/定时器中断和串行口中断,加代码实现

    目录 1.中断系统的概念 1.1中断的概念 1.2中断系统的概念 1.3中断系统的优点 1.4我们要说的三种中断源 2.外部中断 2.1 外部中断0 代码示范 2.2 外部中断 分析 3.计数/定时器 ...

  9. 51单片机点亮LED和使用定时器中断控制蜂鸣器发声

      初学51单片机第一个实验一般都是以点亮LED灯开始,以下是使用Proteus仿真软件的实验效果.   实验需要仿真仪器:   示波器.LED.电压表.蜂鸣器.AT89C51 实验电路图: 实验代码 ...

  10. 51单片机(十七)—— 定时器2寄存器介绍及功能描述

    这篇文章,我们对51单片机的定时器2的寄存器和功能进行介绍. 1 定时器2控制寄存器T2CON 定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计 ...

最新文章

  1. crossdomain.xml配置错误导致登录不了
  2. AI给老照片上色,真的准吗?技术圈和历史圈吵了1000帖
  3. EWM RF 开发常用代码
  4. Windows2008安装组件命令行工具ServerManagerCmd用法介绍
  5. Ubuntu Linux系统下搭建自己的Web服务器
  6. error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void)”中被引用
  7. 字体编辑器_三款好用的字体编辑器分享,让您拥有属于自己的字体
  8. 2021 年 Web 开发的 7 大趋势,我只能说牛逼!
  9. 敏感型人格的特征,怎么改变敏感型性格?
  10. 远程控制客户端使用教程-multiDesk
  11. 电脑分屏工具 v1.22
  12. BZOJ 3654: [湖南集训]图样图森破 SA
  13. 【毕业设计】基于单片机的心率检测系统 - stm32 物联网 嵌入式
  14. 求 26个字母任意3个字母的所有组合
  15. ajax thinkphp配合ajax的简单列子
  16. java打印api_java 调用打印机API无法打印的问题,请问找到解决方案了吗?
  17. hibernate一对一主键唯一外键关联(二)
  18. android百度地图 okhttp,阳光沙滩-Android8.0用OkHttp3报错,而andoird9.0和10.0不报错
  19. eclipse选择java版本_Eclipse 版本选择
  20. Viso插入Word后空白过多解决方法

热门文章

  1. 「镁客早报」微软总市值超过苹果亚马逊;Linux内核出现漏洞
  2. ASP中Split分割字符串函数的实例用法
  3. DWT(离散小波变换)与其简单应用
  4. Open Aspect Target Sentiment Classification with Natural Language Prompts
  5. 基于java的URP教务系统爬虫实现
  6. 《计算机视觉特征提取与图像处理(第三版)》笔记/第一章(1)计算机视觉基础
  7. 基础知识——PMIC
  8. 表带式无线测温传感器图片(开关柜测温装置传感器)
  9. xml解析错误语法错误
  10. 用IE浏览器打开网址https显示不能访问怎么办