单片机定时器详解

来源:互联网 编辑:王志 手机版

一、MCS-51单片机的定时器/计数器概念

单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件;MCS-51单片机的晶振经过12分频之后提供给单片机的只有1MHZ的稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的,这个准确的时间间隔是1微秒;

MCS-51单片机外接的是12MHZ的晶振(实际上是11.0592MHZ),所以,MCS-51单片机内部的工作频率(时钟脉冲频率)是12MHZ/12=1MHZ=1000000次/秒=1000000条指令/秒=1000000次/1000000微秒=1次/微秒=1条指令/微秒;也就是说,晶振振荡一次,就会给单片机提供一个时钟脉冲,花费的时间是1微秒,此时,CPU会执行一条指令,经历一个机器周期;即:1个时钟脉冲=1个机器周期=1微秒=1条指令;

注:个人PC机上的CPU主频是晶振经过倍频之后的频率,这一点恰好与MCS-51单片机的相反,MCS-51单片机的主频是晶振经过分频之后的频率;

总之:MCS-51单片机中的时间概念就是通过计数脉冲的个数来测量出来的;1个脉冲=1微秒=1条指令=1个机器周期;

MCS-51单片机定时器/计数器的简单结构图:

??

8051系列单片机有两个定时器:T0和T1,分别称为定时器和定时器T1,这两个定时器都是16位的定时器/计数器;8052系列单片机增加了第三个定时器/计数器T2;它们都有定时或事件计数功能,常用于时间控制、延时、对外部时间计数和检测等场合;

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

8051单片机的两个定时器T0和T1分别都由两个特殊功能寄存器组成;T0由特殊功能寄存器TH0和TL0构成,而T1则是由TH1和TL1构成;

作为定时器使用时,定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12;

作为计数器使用时,通过引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1;计数器的最高频率一般是时钟振荡频率的1/24;

由此可知,不论是定时器还是计数器工作方式,定时器T0和T1均不占用CPU的时间,除非定时器/计数器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序;所以说,定时器/计数器是单片机中效率高而工作灵活的部件;

三、定时器/计数器的工作模式

除了可选择定时器和计数器的这两种工作方式外,每个定时器/计数器都有4种工作模式;

在模式0、1和2时,T0和T1的工作模式相同;在模式3时,两个定时器/计数器的工作模式不同;

工作模式0:

由TL0的低5位和TH0的全部8位共同构成一个13位的定时器/计数器;定时器/计数器启动后,定时或计数脉冲个数加到TL0上,从预先设置的初值(时间常数)开始累加,不断递增1;当 TL0计满后,向TH0进位,直到13位寄存器计满溢出;溢出时,定时器/计数器硬件会自动地把13位的寄存器值清0,中断标记TF0置1;如果需要进一步定时/计数,需要使用相关指令重置时间常数,并把定时器/计数器的中断标记TF0置0;工作模式0的结构如下图:

??

工作模式1:

模式1与模式0几乎完全相同,唯一的区别就是,模式1中的寄存器TH0和TL0共同构成的是一个16位定时器/计数器来参与操作,因此比模式0中的定时/计数范围更大;工作模式1的结构如下图:

??

工作模式2:

这种模式又称为自动再装入预置数模式;当定时器/计数器的寄存器TH0/TL0的值溢出时,定时器/计数器硬件设备会自动把寄存器TH0/TL0的值清0,以重新开始操作;但是有时候,我们的定时/计数操作是需要多次重复定时/计数的,如果溢出时不做任何处理,那么,在第二轮定时/计数时就是从0开始定时/计数了,而这并不是我们想要的;所以,要保证每次溢出之后,在重新开始定时/计数的操作是我们想要的,那就要把预置数(时间常数)重新装入某个地方;而重新装入预置数的操作是硬件设备自动完成的,不需要人工干预所以,这种工作模式就叫自动再装入预置数方式;既然需要重新装入预置数,那么预置数就必须要存放在某个地方,才能保证重装操作成功;在工作模式2中,把自动重装入的预置数存放在定时器/计数器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0参与定时/计数操作;显然,定时/计数的方位小了很多;

注:这个工作模式常用于波特率发生器(串口通讯),T1工作在串口模式2;用于这种方式时,定时器就是为了提供一个时间基准;计数溢出之后,不需要做太多的事情,只做一件事就可以,就是重新装入预置数,再开始重新计数,而且中间不需要任何延时;工作模式2的结构如下图:

??

工作模式3:

由于定时器/计数器T1没有工作模式3,如果把定时器/计数器T0设置为工作模式3,那么TL0和TH0将被分割成两个相互独立的8位定时器/计数器;工作模式3的结构如下图:

??

四、定时器/计数器的定时/计数范围

工作方式0——13位定时器 / 计数器 工作 模式,最多可计数2的13次方 次,即:8192次,[0,8191];

工作方式1——16位定时器/计数器 工作 模式,最多可计数2的16次方 次,即:65536次,[0,65535];

工作方式2——8位定时器/计数器工作模式,计算次数最多为2^8,即256,,[0,255];

工作方式3——8位定时器/计数器工作模式 ,计算次数最多为2^8,即256,,[0,255];

预置数的计算公式:预置数=最大值-需要计数的次数;

五、定时器/计数器的控制寄存器

8051单片机设计了两个8位的特殊功能寄存器来控制定时器/计数器的工作状态;这两个特殊功能寄存器分别是TMOD和TCON;它俩都在特殊功能寄存器区;

1、工作模式控制寄存器TMOD(89h):

??

2、工作状态控制寄存器TCON(88H):

??

六、定时器/计数器的初始化

注:由于8051单片机的定时器/计数器使用的时钟脉冲是外部晶振(12MHZ)经过12分频(12MHZ/12=1MHZ)之后的频率,所以,一个时钟脉冲就是1微秒;所以,8192个脉冲=8192微秒=8.192毫秒; 65536个脉冲=65536微秒=65.536毫秒; 256个脉冲=256微秒=0.256毫秒;

1、设置定时器/计数器的工作模式TMOD(常用的是模式1:TMOD=0x01);

2、装入预置数到THx和TLx中(THx=TLx=MAX(8192/65536/256)-计数次数);

3、如果工作在中断方式,则需要开定时器/计数器的中断TCON中的标志位:TF0/TF1=0/1;

4、启动定时器/计数器:TR0/TR1=1;

单片机定时器详解.doc

单片机定时器详解 - 单片机中的定时器和计数器其实是同一个物理的电子元件,只不过...[本文更多相关]

单片机定时器中断原理和C语言代码详解.doc

单片机定时器中断原理和C语言代码详解_信息与通信_工程科技_专业资料。单片机定时器中断原理和 C 语言代码详解 我之前都是用 ARM7,单片机基本不会。但一个项目要......[本文更多相关]

51单片机中断系统详解(定时器、计数器)_图文.doc

51单片机中断系统详解(定时器、计数器)_信息与通信_工程科技_专业资料。慢慢看完这些,对51单片机中断系统(定时器、计数器)就没有什么不懂的了,强烈推荐!!! ......[本文更多相关]

单片机定时器汇编.doc

单片机定时器汇编 - 我们在学单片机时我们第一个例程就是灯的闪烁, 那是用延时程...[本文更多相关]

单片机中定时器的作用.doc

单片机中定时器的作用 - 简述定时器系统的作用,其他系列单片机的定时器都有哪些具体功 能,它们是如何工作的? 定时器的用途,按不同的需要进行大范围的计数。 计数......[本文更多相关]

51单片机定时器使用.doc

51单片机定时器使用 - sTC 单片机定时器的使用可以说非常简单,只要掌握原理...[本文更多相关]

MCS-51单片机计数器定时器详解.doc

MCS-51 单片机计数器定时器详解【1】 2008-08-10 16:28:0...[本文更多相关]

51单片机定时器设置.doc

51单片机定时器设置 - 51单片机定时器设置入门 (STC89C52RC) STC 单片机定时器设置 STC 单片机定时器的使用可以说非常简单,只要掌握原理,有一点的 C 语言基础就......[本文更多相关]

单片机定时器、串行口、中断完美总结版.doc

单片机定时器、串行口、中断完美总结版 - 定时器/计数器接口 TMOD(方式寄存...[本文更多相关]

单片机定时器中断学习资料_图文.doc

单片机定时器中断学习资料 - 单片机教案 第三讲定时器/计数器 1. 教学目标:...[本文更多相关]

单片机定时器程序.doc

单片机定时器程序 - 实现定时器1S的定时,每1S时间到时,使秒钟加一,当秒钟为...[本文更多相关]

基于单片机的定时器设计.doc

基于单片机的定时器设计 - 基于单片机的定时器设计 摘要:生活处处都有单片机,家里的所有电器只要是智能控制的都是单片机控制、现在智能手机 中 arm 处理器也是一种......[本文更多相关]

单片机定时器的设计.doc

单片机定时器的设计 - 摘要 摘要 随着时代的进步,电子行业的发展,定时器的应用...[本文更多相关]

单片机实验定时器 Timer AB_图文.doc

单片机实验定时器 Timer AB - 单片机原理实验报告 学生姓名 所在班级 ...[本文更多相关]

单片机定时器控制设计_图文.doc

单片机定时器控制设计 - 单片机 ,定时器,控制系统设计... 项目一 单片机定时器控制系统设计任务一 单片机最小...二、电路详解 电路图如图2 所示。 图2 从图2 中......[本文更多相关]

单片机内部定时器应用.doc

单片机内部定时器应用 - 武夷学院实验报告 课程名称: 单片机原理与应用技术 项目名称:单片机内部定时器应用 同 姓名 xxx 专业:电子信息工程 班级: (1)班 学号:......[本文更多相关]

利用单片机的定时器.doc

利用单片机的定时器_工学_高等教育_教育专区。毕业设计(论文) 利用单片机的定时器 6.1 前言 这一章包含一个描述的定时器系统微控制器,包括通用定时器,该定时器......[本文更多相关]

单片机定时器,计数器.doc

单片机定时器,计数器_IT/计算机_专业资料。主要介绍单片机的定时器,和计数器的...[本文更多相关]

单片机定时器汇编程序..doc

单片机定时器汇编程序. - ORG 0000H AJMP MAIN ORG 00...[本文更多相关]

基于单片机的多功能定时器设计与实现_图文.doc

基于单片机的多功能定时器设计与实现 - 杭州电子科技大学本科毕业论文 目 录 1...[本文更多相关]

MPS430F149单片机之_数据采集系统的设计与实现.txt

MPS430F149单片机之_数据采集系统的设计与实现_计算机软件及应用_IT/计算机_专业...定时器中断,完成 ADC 转换 interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)......[本文更多相关]

AVR单片机 mega16 C语言 蜂鸣器唱歌实验程序.txt

《AVR系列单片机C语言编程与应用实例》(清华大学出版社) /***/ #include <iom...定时器1溢出中断服务函数(完成单个音的产生)参 数: 无返回值 : 无 /***/......[本文更多相关]

超声波测距原理及误差分析 - 百度文库.txt

使用的12MHz晶体作时钟基准的89C51单片机定时器能方便的计数到1μs的精度...[本文更多相关]

《51单片机开发与应用技术详解》目录.txt

《51单片机开发与应用技术详解》目录_理学_高等教育_教育专区。封面 单片机(QQ群...单片机指令汇总 343 16.10 小结 347 第17章 51系列单片机的定时器/计数器 ......[本文更多相关]

MSP430单片机16 位定时器Timer_A 操作.txt

MSP430单片机16 位定时器Timer_A 操作_信息与通信_工程科技_专业资料 暂无评价|0人阅读|0次下载 | 举报文档 MSP430单片机16 位定时器Timer_A 操作_信息与......[本文更多相关]

单片机c工程师试题.txt

A、8根 B、13根 C、16根 D、20根 29、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为( C ) A、2MHz B、1MHz C、......[本文更多相关]

用AT89C2051做长延时定时器.txt

用AT89C2051做长延时定时器 - pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 单片机与可编程器件 用 AT89C2051 ......[本文更多相关]

基于单片机AT89C52数字时钟设计.txt

空 - 4 - 闲模式下, CPU停止工作,允许RAM、定时器/计数器、串口、中断继 续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一 切工作停止,直到下......[本文更多相关]

51单片机汇编延时程序算法详解.txt

51单片机汇编延时程序算法详解 - 将以12MHZ晶振为例,详细讲解MCS-51单片机中汇编程序延时的精确算法。 指令周期、机器周期与时钟周期 指令周期:CPU执行一条指令所......[本文更多相关]

基于PWM功能的AVR单片机定时-计数器设计.txt

基于PWM功能的AVR单片机定时-计数器设计 一、定时/计数器PWM设计要点 根...[本文更多相关]

单片机外部中断详解及程序.txt

单片机外部中断详解及程序 - 单片机在自主运行的时候一般是在执行一个死循环程序,...[本文更多相关]

单片机原理答案 - 百度文库.txt

01、单片机是将微处理器、一定容量的 RAM 和ROM以及 I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。 2、单片机89C51片内集成了 4 KB的FLASH ......[本文更多相关]

单片机C语言头文件详解.txt

单片机C语言头文件详解_电子/电路_工程科技_专业资料。单片机C语言头文件详解 ...在C 语言里,如果直接写P1.0,C 编译器并不能识别,而且P1.0 也不是一个......[本文更多相关]

单片机控制的简易定时报警器电路设计(含电路图和程序).txt

单片机控制的简易定时报警器电路设计(含电路图和程序) 设计一个单片机单片机控制的简易定时报警器定时报警器。 要求根据设定的初始值 (1-59 秒) 进行倒计时, 当......[本文更多相关]

单片机.txt

单片机 - 用定时器T1定时50MS,实现在P1.0引脚上产生周期为100MS的方波信号,已知单片机只用1 PULSE EQU P1.0 ORG 0000H SJMP MAIN ORG 000B......[本文更多相关]

PIC单片机循环程序应用实例.txt

PIC单片机循环程序应用实例 - 在这里介绍一种定时程序,说明循环程序在PIC单片机上的应用。笔者仍以PIC16F84单片机为例建立其定时源程序清单。该定时器源程序只需改变......[本文更多相关]

51单片机延时程序.txt

单片机延时程序(适合初学者)下面几个是单片机的延时程序(包括asm和C程序,都是我.../*启动定时器*/ while(TF0==0); TR0=0; } 在用定时器做延时程序时如果......[本文更多相关]

单片机修改程序.txt

单片机修改程序 - ORG 0000H ; LJMP MAIN ORG 000BH LJMP INT MAIN: MOV SP ,#67H MOV TMOD,#01H;定时器0选择方式1......[本文更多相关]

六位数码管的电子时钟程序单片机.txt

六位数码管的电子时钟程序单片机 - ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址 LJMP TIMER_0 ......[本文更多相关]

RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机....txt

详解(引脚定义,电气特性,传输格式,接收过程,单片机...器 CTS 允许发送 9 调制解调器 RI 响铃指示器 两...由于数是在传输线上定时的,并且每一个设备有其自己......[本文更多相关]

[单片机定时器详解]相关文章:

  • 单片机定时器的使用解析
  • 单片机定时器的使用解析
  • 51单片机定时器的使用和详细讲解__特别是定时器2
  • 51单片机定时器的使用和详细讲解__特别是定时器2
  • 51单片机定时器的使用和详细讲解特别是定时器2
  • 51单片机定时器的使用和详细讲解特别是定时器2
  • 单片机 第5章 定时器计数器解析
  • 单片机 第5章 定时器计数器解析
  • 51单片机中断系统详解(定时器、计数器)
  • 51单片机中断系统详解(定时器、计数器)
  • MCS-51单片机计数器定时器详解
  • MCS-51单片机计数器定时器详解
  • 单片机定时器中断原理和C语言代码详解
  • 单片机定时器中断原理和C语言代码详解
  • 单片机的定时器
  • 单片机的定时器
  • ATmega16单片机定时器讲解
  • ATmega16单片机定时器讲解
  • 单片机定时器中断原理和C语言代码详解(转)
  • 单片机定时器中断原理和C语言代码详解(转)
  • 单片机定时器详解相关搜索
    最新推荐
    热门推荐