单片机定时器/计数器的基本结构及工作原理

发布者:快乐的天使最新更新时间:2015-03-23 来源: diangon关键字:单片机  定时器  计数器  基本结构  工作原理 手机看文章 扫描二维码
随时随地手机看文章
    本文主要学习定时器/计数器的基本结构。对结构的学习首先要明确定时器/计数器的功能,可参考第一节的内容来理解。目前常用的单片机中往往都配备了定时器/计数器。在AT89S52芯片内包含有三个16位的定时器/计数器:T0、T1和T2,其核心是加1计数器。我们主要要求掌握T0和T1的结构和功能。学习中要注意从电路结构上来理解功能的实现。定时器/计数器方式寄存器TMOD和定时器/计数器控制寄存器TCON是用以设定定时器/计数器的工作方式、定时或计数功能,控制启动或停止以及产生溢出中断的重要模块,应该对这两个寄存器中的逐位的定义和功能进行学习和掌握。
一、定时器/计数器的功能

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


图1 T0和T1的基本构成

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

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

二、定时器/计数器的结构

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



图2 定时器/计数器的内部结构

 

三、TMOD和TCON

AT89S52的定时器/计数器是一种可编程部件,在定时器/计数器开始工作之前,CPU必须将一些命令(控制字)写入定时/计数器。

例如:选择哪一个定时器/计数器在何种工作方式下工作?

是用作定时器计时功能还是用作计数器的计数功能?

是否启动定时器/计数器的运行?

……

这些设置的功能是通过对特殊功能寄存器TMOD和TCON的设置来实现。在初始化过程中,要将工作方式控制字写入方式寄存器(初始化工作的一部分),工作状态字写入控制寄存器,CPU就会按设定的工作方式独立运行。

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

    定时器/计数器方式控制寄存器TMOD在特殊功能寄存器中,字节地址为89H。TMOD不能进行位寻址,只能用字节传送指令设置定时器工作方式,低半字节定义为定时器/计数器0,高半字节定义为定时器/计数器1。复位时,TMOD所有位均为0。TMOD的格式

如下表所示。

D7

D6

D5

D4

D3

D2

D1

D0

GATE

C/

M1

M0

GATE

C/

M1

M0

T1方式控制字

T0方式控制字

M1、M0:工作方式选择位。用来定义定时器/计数器的四种工作方式。

C/:功能选择位:C/位为定时器方式或计数器方式选择位。C/=1时,为计数器方式;C/=0时,为定时器方式。

GATE:门控制位,确定定时器的开启与关闭。当GATE=0时,只要定时器控制寄存器TCON中的TR0(或TR1)被置1时,T0(或T1)被允许开始计数(TCON各位含义见后面叙述)。

当GATE=1时,外部中断引脚的输入电平控制T0或T1的开启与关闭。[page]

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

TCON是T0和T1的控制寄存器,它同时也用来锁存T0、T1的溢出中断请求源和外部中断请求源。TCON寄存器复位时为00H,可以进行位寻址。定时器/计数器控制寄存器TCON字节地址为88H。TCON寄存器各位定义如下表

D7

D6

D5

D4

D3

D2

D1

D0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

 

 

 

 

用于外部中断

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中的控制位对工作方式、定时/计数模式、启动、溢出中断的控制的实现。


关键字:单片机  定时器  计数器  基本结构  工作原理 引用地址:单片机定时器/计数器的基本结构及工作原理

上一篇:AT89S52单片机定时器/计数器的工作方式
下一篇:单片机中断源系统的设计

推荐阅读最新更新时间:2024-03-16 13:55

ARM7学习---LPC2103 Time0定时器练习
继续学习ARM7,练习了下LPC2103的内部定时器T0,定时1S,让LED闪烁。具体测试程序如下: /**************ARM7(LPC2103)练习程序**************************/ /*************************************************************/ /*****File Function : Time0测试程序 *****/ /*****Program Author : ZhengWen(ClimberWin) *****/ /*****MCU : LPC2103F 外部11.0592M晶
[单片机]
ARM7学习---LPC2103 Time0<font color='red'>定时器</font>练习
单片机编程:键控定时灯
如图所示的电路,要求开机时灯灭,按一下按钮,灯D1亮,延时10秒后自动熄灭。 若在灯亮期间再按一下按钮,则灯立即熄灭。 试编写实现上述功能的完整程序。 要用汇编的哦,C俺还没学。 ;------------------------------------------------------- 这个题目,共有四人给出了程序,楼主选择的,却是一个最差的程序。 有位网友,已经对做而论道的程序和另一个程序,进行了对比,结果说明做而论道的程序是正确的。 下面把做而论道的程序写在下面,供大家评论。 下列程序,经过仿真,可以满足要求。 ;================================ ORG 0000H START:
[单片机]
<font color='red'>单片机</font>编程:键控定时灯
Flash型单片机的加密与解密
引言 厂商利用单片机进行产品开发时,都会关心其代码和数据的保密性。考虑到用户在编写和调试代码时所付出的时间和精力,代码的成本是不言而喻的。 早期的单片机,代码是交给芯片制造商制成掩膜ROM。有两种加密的机制,一是彻底破坏读取代码的功能,无论是开发者还是使用者都永远无法读取其中的内容。从安全上来说,这种方式很彻底,但是已经无法检查ROM中的代码了。另一种方法是不公开读取方法,厂商仍可以读取代码。这种方式留有检查代码的可能性,但是并不能算是一种真正的“加密”,被破解的可能性是存在的。 客观地讲,一方面希望加密很彻底,而另外一方面又希望留有检查代码的可能,这是相互矛盾的要求。 自Flash技术得到广泛应用以来,各类单片机
[单片机]
Flash型<font color='red'>单片机</font>的加密与解密
基于PIC16C74单片机空调室内机软件的实现
单片机软件实现是单片机系统应用的重点,他是在硬件设计基础上实现程序设计的 重要环节 。单片机程序设计一般包括以下几个步骤:软件规划、流程图编制、代码编写。由于单片机 系统具有软硬件紧密结合的特点,因此在基于某种单片机系统的软件开发时,应充分了解该 系统实现的硬件环境,同时也应该在系统设计与硬件设计阶段,对软件设计有一个大体的规 划。因此,本文在介绍室内机控制器功能的基础上,重点讨论如何用软件实现该室内机的功 能。 1室内机控制器的功能 室内机控制器主要是驱动风门步进电机,接收来自红外遥控器设计的指令,进入到相应的工 作状态,并显示运行状态。 室内机控制器包括以下几个硬件电路模块:室内机处理器,室内机
[应用]
技术解析:单片机应用系统的可靠性设计
随着单片机在国防、金融、工业控制等重要领域应用越来越广泛,单片机应用系统的可靠性越来越成为人们关注的一个重要课题。单片机应用系统的可靠性是由多种因素决定的,大体分为硬件系统可靠性设计和软件系统可靠性设计。 一、硬件系统可靠性设计 (1)选优设计 在系统硬件设计和加工时,应该选用质量好的接插件,设计好工艺结构;选用合格的元器件,进行严格的测试、筛选和老化;设计时技术参数(如负载)要留有一定的余量或降额使用元器件;提高印制板和组装的质量。 (2)冗余与容错设计 保证单片机应用系统100%无故障是不可能的。容错是指当系统的某个部件发生故障时,系统仍能完全正常地工作,即给系统增加容忍故障的能力。为使系统具有容错能力,必须在系统中
[电源管理]
技术解析:<font color='red'>单片机</font>应用系统的可靠性设计
单片机DAC0832+LM324波形发生器程序设计
单片机源程序如下: #include reg51.h #include string.h #define uchar unsigned char #define uint unsigned int sbit RS=P3^0; sbit RW=P3^1; sbit EN=P3^3; sbit K1=P2^0; sbit K2=P2^1; sbit K3=P2^2; sbit K4=P2^3; sbit K5=P2^4; uchar WaveChoice=1; uchar ys=30; uchar i,a=0; uchar sqar_num=128; uint freq; uchar code Sin ={
[单片机]
<font color='red'>单片机</font>DAC0832+LM324波形发生器程序设计
51单片机控制TC35 之发送TEXT短信——MADE BY lyq
主函数 #include reg52.h #include 1602.h #include uart.c #include tc35.c //#define RsBuf_N 50 //char RsBuf ; //定义串口接收数据缓冲区 //uchar RsPoint=0; uchar code PhoneNO = +8615900000000 ;//改了 uchar code Text = I love SDNU ; uchar code center = +8613800531500 ; void main() { TC35_init(); Uart_init(); init_1602(); Send_AT(
[单片机]
基于16位单片机和CPLD实时数据采集显示系统设计
1 引言 数据采集是分析模拟信号量数据的有效方法。而实时显示数据是自动化检测系统的现实需求。在测试空空导弹导引头的过程中,导引头的响应信号包括内部二次电源信号和模拟量电压信号。检测过程中要求检测系统实时显示导引头的工作状态,显示二次电源和模拟量响应电压信号,判断导引头性能,同时保证在非常情况下人为对导引头做出应急处理,保护导引头。对于模拟量电压信号,通常采用模数转换、事后数据标定的方法实现。根据现实需求,研制相应检测系统可作为导引头日常维护和修理的重要工具。这里介绍一种基于单片机和CPLD的实时数据采集显示系统设计方案。 2 系统构成 该系统中待采集显示电压信号共16路,动态电压范围为-22~+27 V。由于这些电压信号
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved