第五章——定时器计数器_第1页
第五章——定时器计数器_第2页
第五章——定时器计数器_第3页
第五章——定时器计数器_第4页
第五章——定时器计数器_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 定时计数技术 第第5章章 定时计数技术定时计数技术 单片机控制系统中常常用到的定时与计数问题。单片机控制系统中常常用到的定时与计数问题。定时计数概述定时计数概述MCS-51单片机的定时计数器单片机的定时计数器第5章 定时计数技术定时定时/计数器概述计数器概述 1、定时的定义:、定时的定义: 定时是对周期固定、已知的脉冲计数。2、计数的定义:、计数的定义: 计数是对外界产生的周期不固定的未知脉冲计数。计数器的计数方式可以是加1计数,也可以是减1计数。3、定时、定时/计数的实现方法:计数的实现方法: 定时/计数的实现方法有3种(比较): 硬件数字电路:硬件数字电路:用555构成的定时器/计

2、数器等(不能编程)。 软件编程软件编程: 缺点:占用CPU资源 可编程定时可编程定时/计数器计数器 优点:灵活且不占CPU资源第5章 定时计数技术软件编程软件编程例:编制一个例:编制一个延时延时2mS左右左右的子程序。的子程序。 D2MS: MOV R7,#2 ;1个机器周期 D2MS0:MOV R6,#250;1个机器周期 DJNZ R6,$ ;2个机器周期 DJNZ R7,D2MS0 ;2个机器周期 RET ;2个机器周期例:统计开关按动次数,并存于例:统计开关按动次数,并存于30H单元。单元。 MOV 30H,#0 UP: JB P1.0,$ JNB P1.0,$ INC 30H SJM

3、P UP第5章 定时计数技术可编程定时可编程定时/计数器计数器 有的控制系统是按时间间隔来进行控制的,如定时的温度检测等。虽然可以利用延迟程序延迟程序来取得定时的效果,但这会降低CPU的工作效率。如果能用一个可编程的实时时钟可编程的实时时钟,以实现定时或延时控制,则CPU不必通过等待来实现延时,就可以提高CPU的效率。 另外也有些控制是按计数的结果来进行的,因此在微机控制系统中常使用可编程的硬件定时计数器可编程的硬件定时计数器。现在有很多专门用作定时计数器的接口芯片。单片机内带有硬件定时计数器可以 简化系统设计。 第5章 定时计数技术可编程定时可编程定时/计数器计数器不论是独立的定时器芯片(8

4、253)还是单片机内的定时器,都有以下特点:1定时计数器可以有多种工作方式,可以是计数方式也可以是定时方式等等。2计数器模值是可变的,当然计数的最大值是有一定限制的,这取决于计数器的位数。计数的最大值也就限制了定时的最大值。3可以按照规定的定时或计数值,当定时的时间到或者计数终止时,可发出中断申请,以便实现定时或计数控制。除了上述共同特点外,各种定时器还会有各自的特点,各自的工作方式和控制方式。第5章 定时计数技术 MCS51单片机内部的定时单片机内部的定时/计数器计数器 1. 定时定时/计数器结构计数器结构 2. 定时定时/计数器工作方式计数器工作方式3. 定时定时/计数器应用计数器应用第5

5、章 定时计数技术1. 定时定时/计数器结构计数器结构 MCS51单片机内有2个独立的16位的可编程定时/计数器T0和T1。它们的结构相似。T0的结构如图所示:振荡器12C/T=0C/T=1+加加1计数器计数器TF0合合/断断T0TR0GATE0INT0TCONTMODTH0TL0TH1TL1第5章 定时计数技术 TMOD:89H 只能按字节操作。只能按字节操作。振荡器12C/T=0C/T=1+加加1计数器计数器TF0合合/断断T0TR0GATE0INT0GATECT: 用来确定T0(T1)是工作在计数方式还是工作在定时方式。CT=0为定时为定时方式方式,CT=1为计数方式为计数方式。即对外部引

6、脚的外部输入脉冲计数。外部引脚上输入的每一个脉冲的负跳变使计数值加1,由于外输入脉冲的每个高、低电平持续时间各应大于一个机器周期,因此最小的计数周期为两个机器周期。例如,若单片机晶振频率为12MHZ,则外部计数脉冲的最高频率只能为500KHz。M1和和M2: 两位用来确定T0(T1)的具体工作模式。M1、M2的四种组合刚好与四种工作模式对应,分别是方式方式0、方式、方式1、方式、方式2、方式、方式3。GATE : 一般称为门控标志。它对定时/数器的启动起着控制作用。当GATE=1时,定时计数器的启动除了受TR控制外,还受INT引脚的控制。当TR=0且INT引脚上出现高电平时才能启动定时计数器。

7、TMODC/TM1M0GATEC/TM1M0第5章 定时计数技术 TCON:88H 可以按字节操作,也可以按位操作。可以按字节操作,也可以按位操作。TCONTF0: T0溢出中断标志位。当T0计数溢出时,TF0=1。在允许中断的情况下,CPU响应T0中断,转向T0中断服务程序,此时由硬件自动将TF0清0。该标志位可由软件查询,也可用软件清0或置1。TR0:为T0启动控制位。当TR0=1时,启动T0;TR0=0时,关闭T0。该位由软件进行设置。TF1: T0溢出中断标志位。当T0计数溢出时,TF0=1。在允许中断的情况下,CPU响应T0中断,转向T0中断服务程序,此时由硬件自动将TF0清0。该标

8、志位可由软件查询,也可用软件清0或置1。TR1:为T0启动控制位。当TR0=1时,启动T0;TR0=0时,关闭T0。该位由软件进行设置。TF1TR1TF0TR0IE1IT1IE0IT0第5章 定时计数技术 TCON:88H 可以按字节操作,也可以按位操作。可以按字节操作,也可以按位操作。振荡器12C/T=0C/T=1+加加1计数器计数器TF0合合/断断T0TR0GATE0INT0TCONTF1TR1TF0TR0IE1IT1IE0IT0第5章 定时计数技术 MCS-51单片机内部有两个16位的定时/计数器T0和T1。每个定时/计数器占用两个特殊功能寄存器: T0由TH0和TL0两个8位计数器组成

9、,字节地址分别是8CH和8AH。 T1由TH1和TL1两个8位计数器组成,字节地址分别是8DH和8BH。 用于存放定时或计数的初值。当计数器工作时,其值随计数脉冲做加其值随计数脉冲做加1 变化变化。计数寄存器计数寄存器振荡器12C/T=0C/T=1+加加1计数器计数器TF0合合/断断T0TR0GATE0INT0TH0TL0第5章 定时计数技术振荡器12C/T=0C/T=1+加加1计数器计数器TF0合合/断断T0TR0GATE0INT0 MCS-51单片机内部有两个16位的定时/计数器T0和T1。每个定时/计数器占用两个特殊功能寄存器: T0由TH0和TL0两个8位计数器组成,字节地址分别是8C

10、H和8AH。 T1由TH1和TL1两个8位计数器组成,字节地址分别是8DH和8BH。 用于存放定时或计数的初值。当计数器工作时,其值随计数脉冲做加其值随计数脉冲做加1 变化变化。计数寄存器计数寄存器TH0TL0第5章 定时计数技术 由于T0由TL0(低8位)和TH0(高8位)组成;T1由TH和THl组成。所以T0、T1都是16位计数器。但是若将它们设置成不同的工作方式,其计数长度(最大值)和计数方式都可变化。内部定时计数器一共有四种工作方式,由TMOD的相关位设置。 2. 定时定时/计数器的工作方式计数器的工作方式GATE1C/T1M11M10GATE1C/T1M11M10M1和M2: 两位用

11、来确定T0(T1)的具体工作模式。M1、M2的四种组合刚好与四种工作模式对应。定时/计数器工作模式如下:第5章 定时计数技术M1 M0模式说 明0 0方式方式0 13位定时/计数器(TH高8位加上TL中的低5位)0 1方式方式1 16位定时/计数器1 0方式方式2 自动重装初值的8位定时/计数器1 1方式方式3模式3只针对T0,T0分成两个独立的8位定时/计数器;T1无模式3第5章 定时计数技术 在方式0下,T0构成一个13位的计数器,由TH0的8位和TL0的低5位组成,TL0的高3位未用,满计数值为213。 T0启动后立即加1计数,当TL0的低5位计数溢出时向TH0进位,TH0计数溢出则对相

12、应的溢出标志位TF0置位,以此作为定时器溢出中断标志。当单片机进入中断服务程序时,由内部硬件自动清除该标志。方式方式0振荡器12C/T=0C/T=1+TF0合合/断断T0TR0GATE0INT0TH0D5D4D3D2D1D0TL0计数器 第5章 定时计数技术方式方式0GATE=0时,计数器启动控制开关只取决于TR0。(软控制)(软控制)GATE=1时,计数器启动控制开关不仅要由TR0来控制,而且还要受到引脚(INT0引脚) 高电平控制。 (软硬控制)(软硬控制)振荡器12C/T=0C/T=1+TF0合合/断断T0TR0GATE0INT0TH0D5D4D3D2D1D0TL0计数器 第5章 定时计

13、数技术 在方式1下,定时/计数器T0和T1的方式1都是相同的。以下仅以T0为例。 T0构成一个16位的计数器,由TH0的8位和TL0的8位组成,满计数值为216。 方式方式1振荡器12C/T=0C/T=1+TF0合合/断断T0TR0GATE0INT0TH0TL0计数器 第5章 定时计数技术 T0启动后立即加1计数,当TL0计数溢出时向TH0进位,TH0计数溢出则对相应的溢出标志位TF0置位,以此作为定时器溢出中断标志。当单片机进入中断服务程序时,由内部硬件自动清除该标志。方式方式1振荡器12C/T=0C/T=1+TF0合合/断断T0TR0GATE0INT0TH0TL0计数器 第5章 定时计数技

14、术 在方式2下,定时/计数器T0和T1的方式2都是相同的。以下仅以T0为例。 TH0和TL0被当作两个8位计数器,计数过程中,TH0寄存8位初值并保持不变,由TL0进行8位计数。当低8位计数溢出时,除了可产生中断申请外,还将TH0中保存的内容向TL0重新装人,以便于重新计数,而TH0中的初值仍然保留,以便下次再行对TL0进行重装。方式方式2振荡器12C/T=0C/T=1+TF0合合/断断T0TR0GATE0INT0TH0TL0计数器 第5章 定时计数技术 方式2对于循环计数比较有利。这时不需要在溢出后用软件重新装入计数初值,而是可以自动装入,但此时计数的长度将受到很大的限制,只有28=256次

15、。方式方式2振荡器12C/T=0C/T=1+TF0合合/断断T0TR0GATE0INT0TH0TL0计数器 第5章 定时计数技术方式3只适用于定时/计数器T0。这种工作方式下,定时/计数器T0被拆成2个独立的定时/计数器来用。 方式方式3振荡器12C/T=0C/T=1+TF0合合/断断T0TR0GATE0INT0TL0计数器 振荡器12TF1TH0计数器 TR1合合/断断第5章 定时计数技术方式方式3在方式3下,T0和T1的工作有很大的不同。若把T1置于方式3,则Tl停止计数,定时器T1保持其内容不变。所以,一般不会把T1置于方式3。若把T0置于方式3,则16位计数器拆开为两个独立工作的8位计

16、数器TL0和 TH0。但这两个8位计数器的工作是有差别的。首先是工作方式的不同:对TL0来说它既可以按计数方式工作,也可以按定时方式工作,而TH0则只能按定时方式工作。另外是控制方式的不同。 一般情况下,当定时/计数器T0处于工作方式3时,定时/计数器T1可工作为方式0、1、2,但由于此时其已没有控制通断和溢出中断的功能,T1只能作为串行口的波特率发生器使用,或不需要中断的场合。第5章 定时计数技术 MCS-51的定时计数器是可编程的,因此,在进行定时或计数之前也要用对其进行初始化。初始化一般应包括以下几个步骤:1、对TMOD寄存器赋值,以确定定时器的工作方式。2置定时计数器初值定时计数器初值

17、,直接将初值写入寄存器的TH0,TL0或TH1,TLl。3根据需要,对寄存器IE置初值,开放定时器中断。4对TCON寄存器中的TRl或TR0置位,启动定时计数器。启动以后,计数 器即按规定的工作方式和初值进行计数或开始定时。3. 定时定时/计数器的应用计数器的应用例例 1例例 2第5章 定时计数技术定时计数器初值定时计数器初值 在初始化过程中,要置入定时值或计数值的初值,这时要作一些计算。方法如下:设计数器的最大值为M(在不同的工作方式中,M可以为213,216或28),则置入的初值X可这样来计算: 计数方式计数方式时: X=M计数值 定时方式定时方式时: (MX)T=定时值,所以X=M定时值

18、T。 其中T为计 数周期,它是单片机时钟周期的12 倍。 第5章 定时计数技术定时计数器初值定时计数器初值 当时钟周期为112MHZ时,计数周期为 1us。在这种情况下,若定时器工作在方式0,则最大定时值213X 112MHz(s)=8.192ms ;若工作在方式1,则最大定时值为216X 112MHz(s)=65.536ms例例 若单片机的频率为若单片机的频率为12MHz,请计算,请计算2ms所需要的定时器初所需要的定时器初值。值。解解:计数脉冲个数为2/0.001=2000若方式0,则计数初值为:213-2000=6192=1830H TH0=18H,TL0=30H若方式1,则计数初值为:

19、216-2000=63536=F830H TH0=F8H,TL0=30H第5章 定时计数技术方法方法1:用延时程序实现:用延时程序实现2mS的延时。的延时。 UP:SETB P1.0 ;拉高;拉高P1.0 LCALL D1MS ; 调用延时调用延时1ms子程序子程序 CLR P1.0 ;拉低;拉低P1.0 LCALL D1MS ;调用延时;调用延时1ms子程序子程序 SJMP UP ;继续循环;继续循环例例1 使使P1.0输出一个周期为输出一个周期为2mS的方波。的方波。第5章 定时计数技术方法方法2:用:用T0定时定时2mS,查询,查询TF0 确定工作方式 方式方式0 计算初值 E018H

20、编程 MOV TMOD,#00H ; 定时器定时器0工作方式工作方式0 SETB TR0 ;启动计数器;启动计数器LOOP: MOV TH0,#0E0H ;初始化计数初值;初始化计数初值 MOV TL0,#18H ;初始化计数初值;初始化计数初值 JNB TF0,$ ;查询定时到?;查询定时到? CPL P1.0 ;P1.0反相反相 CLR TF0 ;清除溢出标志位;清除溢出标志位 SJMP LOOP ;继续循环;继续循环例例1 使使P1.0输出一个周期为输出一个周期为2mS的方波。的方波。第5章 定时计数技术例例1 使使P1.0输出一个周期为输出一个周期为2mS的方波。的方波。方法方法3:用

21、:用T0定时定时2mS,中断。,中断。 ORG 0000H ; 复位中断向量复位中断向量 LJMP MAIN ; 转到主程序转到主程序 ORG 000BH ; 定时器定时器0中断向量中断向量 LJMP AT0 ; 转到中断服务程序处转到中断服务程序处 MAIN: MOV TMOD,#00H;采用定时器;采用定时器T0工作方式工作方式0 MOV TH0,#0E0H ;初始化计数初值(高;初始化计数初值(高8位)位) MOV TL0,#18H ;初始化计数初值(低;初始化计数初值(低5位)位) SETB EA ;开放全局中断总允许位;开放全局中断总允许位 SETB ET0 ;开放定时器;开放定时器T0中断总允许位中断总允许位 SETB TR0 ;启动定时器;启动定时器T0 SJMP $ ;原地踏步;原地踏步 AT0: MOV TMOD,#00H ;采用定时器;采用定时器T0工作方式工作方式0 MOV TH0,#0E0H ;初始化计数初值(高;初始化计数初值(高8位)位) MOV TL0,#18H ;初始化计数初值(低;初始化计数初值(低5位)位) CPL P1.0 ;P1.0反相反相 RETI ;中断返回;中断返回第5章 定时计数技术 欲产生周期为2秒的方波,定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论