单片机定时器/计数器的结构

linkedin定时器/计数器的结构 定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。tmod是定时器/计数器的工作方式寄存器,确定工作方式和功能;tcon是控制寄存器,控制t0、t1的启动和停止及设置溢出标志。
定时器/计数器的工作原理 计数器输入的计数脉冲源
系统的时钟振荡器输出脉冲经12分频后产生;
t0或t1引脚输入的外部脉冲源。
计数过程
每来一个脉冲计数器加1,当加到计数器为全1(即ffffh)时,再输入一个脉冲就使计数器回零,且计数器的溢出使tcon中tf0或tf1置1,向cpu发出中断请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
定时应用
用作定时器:此时设置为定时器模式,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值n乘以机器周期tcy就是定时时间t 。
计数运用
用作计数器:此时设置为计数器模式,外部事件计数脉冲由t0或t1引脚输入到计数器。每来一个外部脉冲,计数器加1。但单片机对外部脉冲有基本要求:脉冲的高低电平持续时间都必须大于1个机器周期。
工作方式寄存器(tmod)
gate:门控位。
gate=0时,只要用软件使tcon中的tr0或tr1为1,就可以启动定时器/计数器工作;(即需要一个启动条件)
gate=1时,要用软件使tr0或tr1为1,同时外部中断引脚也为高电平时,才能启动定时器/计数器工作,即需要两个启动条件。
c/t :定时/计数模式选择位。
c/t =0为定时模式; c/t =1为计数模式。
m1m0:工作方式设置位。
计数器工作方式选择
m1 m0 工 作 方 式 功 能 说 明
0 0 方式0 13位计数器
0 1 方式1 16位计数器
1 0 方式2 自动重装8位计数器
1 1 方式3 定时器0:分成两个8位[page]
定时器1:停止计数
定时器/计数器的控制
控制寄存器tcon
tcon的低4位用于控制外部中断,已在前面介绍。tcon的高4位用于控制定时器/计数器的启动和中断申请。其格式如下:
tf1(tcon.7):t1溢出中断请求标志位。t1计数溢出时由硬件自动置tf1为1。cpu响应中断后tf1由硬件自动清0。tr1(tcon.6):t1起/停控制位。1:启动 0:停止
tf0(tcon.5):t0溢出中断请求标志位,其功能与tf1类同。
tr0(tcon.4):t0起/停控制位。1:启动 0:停止
定时器/计数器的工作方式 方式0
方式0为13位计数,由tl0的低5位(高3位未用)和th0的8位组成tl0的低5位溢出时向th0进位,th0溢出时,置位tcon中的tf0标志,向cpu发出中断请求。
方式1
方式1的计数位数是16位,由tl0(tl1)作为低8位、th0(th1)作为高8位,组成了16位加1计数器 。
方式2
方式2为自动重装初值的8位计数方式。
在方式2下,当计数器计满255(ffh)溢出时,cpu自动把th 的值装入tl中,不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。
方式3
方式3只适用于定时器/计数器t0,定时器t1方式3时相当于tr1=0,停止计数。
工作方式3将t0分成为两个独立的8位计数器tl0和th0 。
tmod和tcon
at89s52的定时器/计数器是一种可编程部件,在定时器/计数器开始工作之前,cpu必须将一些命令(控制字)写入定时/计数器。
例如:选择哪一个定时器/计数器在何种工作方式下工作?
是用作定时器计时功能还是用作计数器的计数功能?
是否启动定时器/计数器的运行?
……
这些设置的功能是通过对特殊功能寄存器tmod和tcon的设置来实现。在初始化过程中,要将工作方式控制字写入方式寄存器(初始化工作的一部分),工作状态字写入控制寄存器,cpu就会按设定的工作方式独立运行。
1.定时器/计数器方式寄存器tmod
定时器/计数器方式控制寄存器tmod在特殊功能寄存器中,字节地址为89h。tmod不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器/计数器0,高半字节定义为定时器/计数器1。复位时,tmod所有位均为0。tmod的格式
如下表所示。
m1、m0:工作方式选择位。用来定义定时器/计数器的四种工作方式。
c/:功能选择位:c/位为定时器方式或计数器方式选择位。c/=1时,为计数器方式;c/=0时,为定时器方式。
gate:门控制位,确定定时器的开启与关闭。当gate=0时,只要定时器控制寄存器tcon中的tr0(或tr1)被置1时,t0(或t1)被允许开始计数(tcon各位含义见后面叙述)。
当gate=1时,外部中断引脚或的输入电平控制t0或t1的开启与关闭。
2.定时器/计数器控制寄存器tcon
tcon是t0和t1的控制寄存器,它同时也用来锁存t0、t1的溢出中断请求源和外部中断请求源。tcon寄存器复位时为00h,可以进行位寻址。定时器/计数器控制寄存器tcon字节地址为88h。tcon寄存器各位定义如下表
tcon中各标志位的功能是:
tf1(d7):定时器1溢出标志位。当t1计满溢出时,由硬件使tf1置1,申请中断。进入中断服务程序后,由硬件自动清0,在查询方式下用软件清0。
tr1(d6):定时器1运行控制位。tr1置1,启动定时器1;tr1置0则停止工作。tr1由软件置1或清零
tf0(d5):定时器0溢出标志。其功能及操作情况同tf1。
tr0(d4):定时器0运行控制位。其功能及操作情况同tr1。
ie1(d3):外部中断1中断请求标志。it1=1时,外部中断1引脚上的电平由1变0时,ie1由硬件置位,外部中断1请求中断。当cpu响应中断并转向该中断服务程序执行时,由内部硬件自动清0。
it1(d2):外部中断1()电平触发方式或者脉冲触发方式控制位。it1=1时,外部中断1为负边沿触发方式,引脚上的电平从高到低负跳变有效。it1=0时,外部中断1为电平触发方式。上输入低电平有效。
ie0(d1):外部中断0中断请求标志。如果it0置1,则当上的电平由1变0时,ie0由硬件置位。在cpu把控制转到中断服务程序时由硬件使ie0复位。
it0(d0):外部中断源0触发方式控制位,其含义同it1。
3.tmod和tcon的控制功能可以通过一个具体的电路结构来加强理解
图3tmod和tcon控制功能的实现
在图3中,清楚的表示了tmod和tcon中的控制位对工作方式、定时/计数模式、启动、溢出中断的控制的实现。

丰田能否掀起氢燃料电池的新浪潮?
国产PL系列脉冲电流源与2600系列源表有何区别?
回顾谷歌发布的雷达芯片,实现人机互动
美国制裁升级!英特尔、台积电、联想等大厂已断供俄罗斯,中国IC企业可获转单?
smt贴片加工对于焊剂化学特性的有何要求?
单片机定时器/计数器的结构
总投资36.5亿元!我国MEMS十强企业西人马将在上海建8英寸芯片产线!
https原理过程详解
ne555可以用什么代替
避坑指南!蓝牙耳机晶振怎么选?
AMD明年初推出下一代GPU架构 命名Vega10和Vega11
受三星S8冲击,华为P10销量不佳!
柔性薄膜电池问世,可穿戴设备再突破
中国三大运营商要求纽交所复议退市决定
全自动智能吸尘器
福英达浅谈MEMS封装焊接技术
电商行业wms系统主要操作流程介绍
关于高空测报灯设计原理的详细讲解
OPPO 正式上线客服远程故障检测系统——远程诊断功能
HDMI连接设备得到认证 8K清晰度将提升四倍