定时器/计数器及应用分析课件

上传人:桔**** 文档编号:567552263 上传时间:2024-07-21 格式:PPT 页数:22 大小:146KB
返回 下载 相关 举报
定时器/计数器及应用分析课件_第1页
第1页 / 共22页
定时器/计数器及应用分析课件_第2页
第2页 / 共22页
定时器/计数器及应用分析课件_第3页
第3页 / 共22页
定时器/计数器及应用分析课件_第4页
第4页 / 共22页
定时器/计数器及应用分析课件_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《定时器/计数器及应用分析课件》由会员分享,可在线阅读,更多相关《定时器/计数器及应用分析课件(22页珍藏版)》请在金锄头文库上搜索。

1、5 定时器定时器/计数器及其应用计数器及其应用.1 定时器定时器/计数器工作原理计数器工作原理1 1基本概念基本概念(1 1)计计数数:计计数数是是指指对对外外部部事事件件的的个个数数进进行行计计量量。其其实实质质就就是是对对外外部部输输入入脉脉冲冲的的个个数数进进行行计计量量。实实现现计计数数功功能能的的器器件件称为计数器。称为计数器。(2 2)定定时时:8051单单片片机机中中的的定定时时器器和和计计数数器器是是一一个个部部件件,只只不不过过计计数数器器记记录录的的是是外外界界发发生生的的事事件件,而而定定时时器器则则是是由由单单片片机机内内部部提提供供一一个个非非常常稳稳定定的的计计数数

2、源源进进行行定定时时的的。这这个个计计数数源源是是由由单单片片机机的的晶晶振振经经过过12分分频频后后获获得得的的一一个个脉脉冲冲源源。所以定时器计数脉冲的时间间隔与晶振有关。所以定时器计数脉冲的时间间隔与晶振有关。(3 3)定时的种类)定时的种类 软软件件定定时时:利利用用执执行行一一个个循循环环程程序序进进行行时时间间延延迟迟。其其特特点点是是定定时时时时间间精精确确,不不需需外外加加硬硬件件电电路路,但但占占用用CPU时时间间。因因此此软件定时的时间不宜过长。软件定时的时间不宜过长。 硬硬件件定定时时:利利用用硬硬件件电电路路实实现现定定时时。其其特特点点是是不不占占用用CPU时时间间,

3、通通过过改改变变电电路路元元器器件件参参数数来来调调节节定定时时,但但使使用用不不够够灵灵活活方便。对于时间较长的定时,常用硬件电路来实现。方便。对于时间较长的定时,常用硬件电路来实现。 可可编编程程定定时时器器:通通过过专专用用的的定定时时器器/计计数数器器芯芯片片实实现现。其其特特点点是是通通过过对对系系统统时时钟钟脉脉冲冲进进行行计计数数实实现现定定时时,定定时时时时间间可可通通过过程程序序设设定定的的方方法法改改变变,使使用用灵灵活活方方便便。也也可可实实现现对对外外部部脉脉冲的计数功能。冲的计数功能。 MCS-51单片机内部有两个单片机内部有两个16位可编程的定时器位可编程的定时器/

4、计数器,简计数器,简称为称为T0和和T1,均可作定时器用也可计数器,它们均是二进制加,均可作定时器用也可计数器,它们均是二进制加法计数器,当计数器计满回零时能自动产生溢出中断请求,表示法计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已终止。适用于定时控制、延时、外部计数定时时间已到或计数已终止。适用于定时控制、延时、外部计数和检测等。和检测等。计数器:计数器:对引脚对引脚T0(P 3.4 )和)和T1(P3.5.)输入的外部脉冲信号)输入的外部脉冲信号计数,当输入脉冲信号从计数,当输入脉冲信号从1到到0的负跳变时,计数器就自动加的负跳变时,计数器就自动加1。计数的最高

5、频率一般为振荡频率的计数的最高频率一般为振荡频率的1/24。定时器:定时器:对系统晶振振荡脉冲的对系统晶振振荡脉冲的12分频输出进行计数。分频输出进行计数。 (1 1)定时器)定时器/ /计数器的结构计数器的结构组成:组成:16位加法计数器、工作方式寄存器位加法计数器、工作方式寄存器TMOD和控制寄存器和控制寄存器TCON。 T0: TL0(低(低8位)和位)和TH0(高(高8位)位) T1: TL1(低(低8位)和位)和TH1(高(高8位)位)2MCS-51内部定时器/计数器 8051单片机内部的定时器单片机内部的定时器/计数器的结构如下图所示。计数器的结构如下图所示。(2)控制寄存器TCO

6、N (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF0/TF1:T0/1计数溢出标志位。可用于申请中断或供计数溢出标志位。可用于申请中断或供CPU查询。在进入中断服务程序时会自动清零;但在查询方式时查询。在进入中断服务程序时会自动清零;但在查询方式时必须软件清零。必须软件清零。 =1 :计数溢出;计数溢出; =0 :计数未满。计数未满。TR0/TR1:T0/1启停控制位。启停控制位。 =1 :启动计数;启动计数; =0: 停止计数。停止计数。IE0/IE1和和IT0/IT1:用于管理外部中断(前面已介绍过)。用于管理外部中断(前面已介绍过)。 M1,M0:工作方式

7、选择位工作方式选择位 。 =00:13位定时器位定时器/计数器;计数器; =01:16位定时器位定时器/计数器(常用);计数器(常用); =10:可自动重装的:可自动重装的8位定时器位定时器/计数器(常用);计数器(常用); =11:T0 分为分为2个个8位定时器位定时器/计数器;仅适用于计数器;仅适用于T0。 C/ :定时方式:定时方式/计数方式选择位。计数方式选择位。 = 1:选择计数器工作方式,对:选择计数器工作方式,对T0/T1引脚输入的外部事件引脚输入的外部事件的负脉冲计数;的负脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲计数定时。:选择定时器工作方式,对机器周期脉冲计数

8、定时。 如下页图所示。如下页图所示。(2)工作方式寄存器TMOD GATE C / T M1 M0 GATE C / T M1 M0T1T0GATE:门控位,定时器门控位,定时器/计数器的启计数器的启/停可由软件与硬件两者控停可由软件与硬件两者控制制 = 0 :软件控制,只由软件控制,只由TCON中的启中的启/停控制位停控制位TR0/TR1控制控制定时器定时器/计数器的启计数器的启/停。停。 = 1 :硬件控制,由外部中断请求信号硬件控制,由外部中断请求信号 / 和和TCON中的启中的启/停控制位停控制位TR0/TR1组合状态控制定时器组合状态控制定时器/计数器的启计数器的启/停。停。 其控制

9、逻辑如下图所示。其控制逻辑如下图所示。 定时器/计数器的工作方式 8051单单片片机机的的定定时时器器/计计数数器器共共有有四四种种工工作作模模式式,现现以以T0为为例例加加以以介介绍绍,T1与与T0的的工工作作原原理理相相同同,但但方方式式3下下T1停停止止计计数数。方方式式(如如F0)和用户定义名称等几种)和用户定义名称等几种方式。方式。1工作方式工作方式0( M1M0=00 ,13位定时器位定时器/计数器)计数器) 由由TH0的的全全部部8位位和和TL0的的低低5位位( TL0的的高高3位位未未用用)构构成成13位位加加1计计数数器器,当当TL0低低5位位计计数数满满时时直直接接向向TH

10、0进进位位,并并当当全全部部13位位计计数数满溢出时,溢出标志位满溢出时,溢出标志位TF0置置“1”。2工作方式工作方式1 ( M1M0=01 ,16位定时器位定时器/计数器)计数器) 由由TH0和和TL0构成构成16位加位加1计数器,其他特性与工作方式计数器,其他特性与工作方式0相同。相同。3工工作作方方式式2 ( M1M0=10 ,自自动动重重装装计计数数初初值值的的8位位定定时时器器/计数器)计数器) 16位位定定时时器器/计计数数器器被被拆拆成成两两个个8位位寄寄存存器器TH0和和TL0,CPU在在对对它它们们初初始始化化时时必必须须装装入入相相同同的的定定时时器器/计计数数器器初初值

11、值。以以TL0作作计计数数器器,而而TH0作作为为预预置置寄寄存存器器。当当计计数数满满溢溢出出时时,TF0置置“1”,同同时时TH0将将计计数数初初值值以以硬硬件件方方法法自自动动装装入入TL0。这这种种工工作作方方式式很很适适合合于于那那些些重重复复计计数的应用场合(如串行数据通信的波特率发生器)。数的应用场合(如串行数据通信的波特率发生器)。4工工作作方方式式3 ( M1M0=11 , 2个个8位位定定时时器器/计计数数器器,仅仅适适用用于于T0)TL0:8位位定定时时器器/计计数数器器,使使用用T0原原有有控控制制资资源源TR0和和TF0,其功能和操作与方式其功能和操作与方式0或方式或

12、方式1完全相同。完全相同。TH0:只只能能作作为为8位位定定时时器器,借借用用T1的的控控制制位位TR1和和TF1,只只能能对片内机器周期脉冲计数。对片内机器周期脉冲计数。 在在方方式式3模模式式下下,定定时时器器/计计数数器器0可可以以构构成成两两个个定定时时器器或或者一个定时器和一个计数器。者一个定时器和一个计数器。 T0方方式式3下下的的T1方方式式2,因因定定时时初初值值能能自自动动恢恢复复,用用作作波波特率发生器更为合适。特率发生器更为合适。 定定时时器器/计计数数器器可可按按片片内内机机器器周周期期定定时时,也也可可对对由由T0/T1引引脚脚输输入入一一个个负负脉脉冲冲进进行行加加

13、法法计计数数。在在应应用用时时,其其工工作作方方式式和和工工作作过过程程均均可可通通过过程程序序设设定定和和控控制制,因因此此,定定时时器器/计计数数器器在工作前必须先对其进行初始化,计算和设置初值。在工作前必须先对其进行初始化,计算和设置初值。 1. 定时器定时器T0/T1 中断申请过程中断申请过程 (1)在已经开放)在已经开放T0/T1中断允许且已被启动的前提下,中断允许且已被启动的前提下,T0/T1加加1计满溢出时计满溢出时 TF0/TF1标志位自动置标志位自动置“1” ; (2)CPU 检测到检测到TCON中中TF0/TF1变变“1”后后,将产生指令:将产生指令:LCALL 000BH

14、/LCALL 001BH 执行中断服务程序;执行中断服务程序; (3)TF0/TF1标志位由硬件自动清标志位由硬件自动清“0”,以备下次中断申请。以备下次中断申请。. 定时器/计数器的应用 2. 定时器/计数器初始化的步骤 (1)写)写TMOD,设置定时器,设置定时器/计数器的工作方式;计数器的工作方式; (2)计算定时器)计算定时器/计数器的初值,写入计数器的初值,写入TH0/TH1、TL0/TL1。 (3)设置)设置IE、IP,以开放相应的中断和设定中断优先级。,以开放相应的中断和设定中断优先级。 3. 定时器定时器/计数器的定时器计数器的定时器/计数器范围计数器范围 (1 1)工作方式)

15、工作方式0 0:13位定时器位定时器/计数器方式计数器方式 最大计数值最大计数值= 213 = 8192 (2 2)工作方式)工作方式1 1:16位定时器位定时器/计数器方式计数器方式 最大计数值最大计数值= 216 = 65536 (3)工作方式工作方式2和工作方式和工作方式3:8位的定时器位的定时器/计数器方式计数器方式 最大计数值最大计数值= 28 = 256 3. 计数器初值的计算计数器初值的计算 方法:方法:用最大计数量减去需要的计数次数。即:用最大计数量减去需要的计数次数。即: TC=M C 其中:其中:TC计数器需要预置的初值;计数器需要预置的初值; M计数器的模值(最大计数值)

16、;计数器的模值(最大计数值); 方式方式0时,时,M=213;方式;方式1时,时,M=216;方式;方式2, 3时,时,M=28; C计计数数器器计计满满回回0所所需需的的计计数数值值,即即设设计计任任务务要要求的计数值。求的计数值。例如:例如:流水线上一个包装是流水线上一个包装是12盒,要求每到盒,要求每到12盒就产生一个动盒就产生一个动作,用单片机的工作方式作,用单片机的工作方式0来控制,则应当预置的初值为:来控制,则应当预置的初值为: TC = M C = 213 12=81804. 定时器初值的计算定时器初值的计算 定时时间的计算公式为:定时时间的计算公式为: T=(M TC)T0 (

17、或或TC=M T/T0 )其中:其中:T定时器的定时时间,即设计任务要求的定时时间;定时器的定时时间,即设计任务要求的定时时间; T0计计数数器器计计数数脉脉冲冲的的周周期期,即即单单片片机机系系统统主主频频周周期期的的12倍;倍; M计数器的模值;计数器的模值; TC定时器需要预置的初值。定时器需要预置的初值。 若若设设初初值值TC=0,则则定定时时器器定定时时时时间间为为最最大大。若若设设单单片片机机系统主频为系统主频为12MHz,则各种工作方式定时器的最大定时时间为:,则各种工作方式定时器的最大定时时间为:工作方式工作方式0 0: Tmax=2131 s=8.192ms工作方式工作方式1

18、 1: Tmax=2161 s=65.536ms工作方式工作方式2 2和和3 3:Tmax=281 s=0.256ms5. 5. 定时器定时器/ /计数器应用举例计数器应用举例 例例题题44 设设一一只只发发光光二二极极管管LED和和8051的的P1.0脚脚相相连连。当当P1.0脚脚是是低低电电平平时时,LED发发亮亮;当当P1.0脚脚是是高高电电平平时时,LED不不亮亮。编编制制程程序序用用定定时时器器来来实实现现发发光光二二极极管管LED的的闪闪烁烁功功能能,设置设置LED每每1s闪烁一次。已知单片机系统主频为闪烁一次。已知单片机系统主频为12MHz。解解:定定时时器器/计计数数器器的的最

19、最长长的的定定时时是是65.536ms,无无法法实实现现1s的的定时。可以采用软件计数器来进行设计。定时。可以采用软件计数器来进行设计。设设计计思思想想:定定义义一一个个软软件件计计数数器器单单元元30H,先先用用定定时时器器/计计数数器器0做做一一个个50ms的的定定时时器器,定定时时时时间间到到了了以以后后将将软软件件计计数数器器中中的的值值加加1,如如果果软软件件计计数数器器计计到到了了20,取取反反P1.0,并并清清掉掉软软件件计计数数器器中中的的值值,否否则则直直接接返返回回。则则完完成成了了20次次定定时时中中断断才才取取反反一次一次P1.0,因此定时时间就为,因此定时时间就为20

20、50=1000ms=1s。定时器定时器/计数器计数器0采用工作方式采用工作方式1,其初值为:,其初值为: 216 50ms/1 s=65536 50000=15536=3CB0H电路图如下:电路图如下:定时器初值的新算法定时器初值的新算法:程序如下:程序如下: ORG 0000H AJMP START ; 转入主程序转入主程序 ORG 000BH ; 定时器定时器/计数器计数器0的中断服务程序入口地址的中断服务程序入口地址 AJMP TIME0; 跳转到真正的定时器中断服务程序处跳转到真正的定时器中断服务程序处 ORG 0030H START: MOV SP, #60H ; 设置堆栈指针设置堆

21、栈指针 MOV P1, #0FFH ; 关发光二极管关发光二极管LED(使其灭)(使其灭) MOV 30H, #00H ; 软件计数器预清软件计数器预清0 MOV TMOD, # 01H ; 定时器定时器/计数器计数器0工作于方式工作于方式1 MOV TH0, #3CH ; 设置定时器设置定时器/计数器的初值计数器的初值 MOV TL0, #0B0H SETB EA ; 开总中断允许开总中断允许 SETB ET0 ; 开定时器开定时器/计数器计数器0中断允许中断允许 SETB TR0; 启动定时器启动定时器/计数器计数器0 LOOP: AJMP LOOP ; 循环等待循环等待 (真正工作时,这

22、里可写任意其他程序)(真正工作时,这里可写任意其他程序)定时器定时器/ /计数器计数器0 0的中断服务程序的中断服务程序1 1: TIME0: PUSH ACC ; 将将PSW和和ACC推入堆栈保护推入堆栈保护 PUSH PSW INC 30H ; 软件计数器加软件计数器加1 MOV A, 30H CJNE A, #20, T_LP2 ; 软件计数器单元中的值到了软件计数器单元中的值到了20了吗?了吗? 到了,继续执行到了,继续执行; 否则,转入否则,转入T_LP2 T_LP1: CPL P1.0 ; 到了,到了,P1.0取反取反 MOV 30H, #00H; 清软件计数器清软件计数器(或置初

23、值或置初值20) T_LP2: MOV TH0, #3CH; 重置定时器重置定时器/计数器的初值计数器的初值 MOV TL0, #0B0H POP PSW ; 恢复恢复PSW和和ACC POP ACC RETI; 中断返回中断返回 END定时器定时器/ /计数器计数器0 0的中断服务程序的中断服务程序2 2: TIME0: MOV TL0, #0B0H ; 重置定时器重置定时器/计数器的初值计数器的初值 MOV TH0, #3CH DJNZ 30H, T_LP2 ; 软件计数器单元中的值到了软件计数器单元中的值到了20了吗?了吗? ; T_LP1: CPL P1.0 ; 到了,到了,P1.0取

24、反取反 MOV 30H, #20; 重置软件计数器初值重置软件计数器初值 T_LP2: RETI; 中断返回中断返回 END 例例题题55 设设外外部部有有一一个个计计数数源源。编编制制程程序序,对对外外部部计计数数源源进进行行计数并显示。计数并显示。解解:将将外外部部计计数数源源连连到到定定时时器器/计计数数器器1的的外外部部引引脚脚T1上上,可可用用LED将将计计数数的的值值显显示示出出来来,我我们们用用P1口口连连接接的的8个个LED来来显显示示计到的数据。计到的数据。LED对对P1口电平要求同例口电平要求同例4。(电路图类同例(电路图类同例3 3)程序如下:程序如下: ORG 0000H AJMP START; 转入主程序转入主程序 ORG 0030H START: MOV SP, #60H; 设置堆栈指针设置堆栈指针 MOV TMOD, #60H ; 定时器定时器/计数器计数器1作计数用作计数用 SETB TR1 ; 启动计数器启动计数器1开始运行开始运行 LOOP: MOV A, TL1 ; 读计数器读计数器1的计数值送的计数值送A MOV P1, A ; 将计数值输出到将计数值输出到P1口,驱动口,驱动LED显示显示 AJMP LOOP ; 转回转回LOOP END

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号