【大学课件】mcs-51单片机的定时器计数器

上传人:xiao****1972 文档编号:71247097 上传时间:2019-01-19 格式:PPT 页数:53 大小:537.55KB
返回 下载 相关 举报
【大学课件】mcs-51单片机的定时器计数器_第1页
第1页 / 共53页
【大学课件】mcs-51单片机的定时器计数器_第2页
第2页 / 共53页
【大学课件】mcs-51单片机的定时器计数器_第3页
第3页 / 共53页
【大学课件】mcs-51单片机的定时器计数器_第4页
第4页 / 共53页
【大学课件】mcs-51单片机的定时器计数器_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《【大学课件】mcs-51单片机的定时器计数器》由会员分享,可在线阅读,更多相关《【大学课件】mcs-51单片机的定时器计数器(53页珍藏版)》请在金锄头文库上搜索。

1、郑州大学,3.3 MCS-51单片机的定时器/计数器,3.3.1 定时器/计数器 1基本概念 (1)计数:计数是指对外部事件的个数进行计量。其实质就是对外部输入脉冲的个数进行计量。实现计数功能的器件称为计数器。 (2)定时:8051单片机中的定时器和计数器是一个部件,只不过计数器记录的是外界发生的事件,而定时器则是由单片机内部提供一个非常稳定的计数源进行定时的。这个计数源是由单片机的晶振经过12分频后获得的一个脉冲源。所以定时器计数脉冲的时间间隔与晶振有关。,http:/ 软件定时:利用执行一个循环程序进行时间延迟。其特点是定时时间精确,不需外加硬件电路,但占用CPU时间。因此软件定时的时间不

2、宜过长。 硬件定时:利用硬件电路实现定时。其特点是不占用CPU时间,通过改变电路元器件参数来调节定时,但使用不够灵活方便。对于时间较长的定时,常用硬件电路来实现。 可编程定时器:通过专用的定时器/计数器芯片实现。其特点是通过对系统时钟脉冲进行计数实现定时,定时时间可通过程序设定的方法改变,使用灵活方便。也可实现对外部脉冲的计数功能。,http:/ 计数器:对引脚T0(P 3.4 )和T1(P3.5.)输入的外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。计数的最高频率一般为振荡频率的1/24。 定时器:对系统晶振振荡脉冲的12分频输出进行计数。 (1)定时器/计数器的结构

3、 组成:16位加法计数器、工作方式寄存器TMOD和控制寄存器TCON。 T0: TL0(低8位)和TH0(高8位) T1: TL1(低8位)和TH1(高8位),2MCS-51内部定时器/计数器,http:/ (88H),TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,TF0/TF1:T0/1计数溢出标志位。可用于申请中断或供CPU查询。在进入中断服务程序时会自动清零;但在查询方式时必须软件清零。 =1 :计数溢出; =0 :计数未满。 TR0/TR1:T0/1启停控制位。 =1 :启动计数; =0: 停止计数。 IE0/IE1和IT0/IT1:用于管理外部中断(前面已介绍过)。

4、,http:/ 。 =00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装的8位定时器/计数器(常用); =11:T0 分为2个8位定时器/计数器;仅适用于T0。 C/T :定时方式/计数方式选择位。 = 1:选择计数器工作方式,对T0/T1引脚输入的外部事件的负脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲计数定时。 如下页图所示。,(3)工作方式寄存器TMOD,T1,T2,http:/ = 0 :软件控制,只由TCON中的启/停控制位TR0/TR1控制定时器/计数器的启/停。 = 1 :硬件控制,由外部中断请求信号 / 和TCON中的启/停控制

5、位TR0/TR1组合状态控制定时器/计数器的启/停。 其控制逻辑如下图所示。,http:/ 定时器/计数器的工作方式,8051单片机的定时器/计数器共有四种工作模式,现以T0为例加以介绍,T1与T0的工作原理相同,但方式3下T1停止计数。方式(如F0)和用户定义名称等几种方式。 1工作方式0( M1M0=00 ,13位定时器/计数器) 由TH0的全部8位和TL0的低5位( TL0的高3位未用)构成13位加1计数器,当TL0低5位计数满时直接向TH0进位,并当全部13位计数满溢出时,溢出标志位TF0置“1”。 2工作方式1 ( M1M0=01 ,16位定时器/计数器) 由TH0和TL0构成16位

6、加1计数器,其他特性与工作方式0相同。 3工作方式2 ( M1M0=10 ,自动重装计数初值的8位定时器/计数器) 16位定时器/计数器被拆成两个8位寄存器TH0和TL0,CPU在对它们初始化时必须装入相同的定时器/计数器初值。以TL0作计数器,而TH0作为预置寄存器。当计数满溢出时,TF0置“1”,同时TH0将计数初值以硬件方法自动装入TL0。这种工作方式很适合于那些重复计数的应用场合(如串行数据通信的波特率发生器)。,http:/ ( M1M0=11 , 2个8位定时器/计数器,仅适用于T0) TL0:8位定时器/计数器,使用T0原有控制资源TR0和TF0,其功能和操作与方式0或方式1完全

7、相同。 TH0:只能作为8位定时器,借用T1的控制位TR1和TF1,只能对片内机器周期脉冲计数。 在方式3模式下,定时器/计数器0可以构成两个定时器或者一个定时器和一个计数器。 T0方式3下的T1方式2,因定时初值能自动恢复,用作波特率发生器更为合适。,http:/ 1. 定时器T0/T1 中断申请过程 (1)在已经开放T0/T1中断允许且已被启动的前提下,T0/T1加1计满溢出时 TF0/TF1标志位自动置“1” ; (2)CPU 检测到TCON中TF0/TF1变“1”后,将产生指令:LCALL 000BH/LCALL 001BH 执行中断服务程序; (3)TF0/TF1标志位由硬件自动清“

8、0”,以备下次中断申请。,3.3.3 定时器/计数器的应用,http:/ 定时器/计数器初始化的步骤,(1)写TMOD,设置定时器/计数器的工作方式; (2)计算定时器/计数器的初值,写入TH0/TH1、TL0/TL1。 (3)设置IE、IP,以开放相应的中断和设定中断优先级。 3. 定时器/计数器的定时器/计数器范围 (1)工作方式0:13位定时器/计数器方式 最大计数值= 213 = 8192 (2)工作方式1:16位定时器/计数器方式 最大计数值= 216 = 65536 (3)工作方式2和工作方式3:8位的定时器/计数器方式因此, 最大计数值= 28 = 256,http:/ 计数器初

9、值的计算,方法:用最大计数量减去需要的计数次数。即: TC=MC 其中:TC计数器需要预置的初值; M计数器的模值(最大计数值); 方式0时,M=213;方式1时,M=216;方式2, 3时,M=28; C计数器计满回0所需的计数值,即设计任务要求的计数值。 例如:流水线上一个包装是12盒,要求每到12盒就产生一个动作,用单片机的工作方式0来控制,则应当预置的初值为: TC = M C = 213 12=8180,http:/ 定时器初值的计算,定时时间的计算公式为: T=(MTC)T0 (或TC=MT/T0 ) 其中:T定时器的定时时间,即设计任务要求的定时时间; T0计数器计数脉冲的周期,

10、即单片机系统主频周期的12倍; M计数器的模值; TC定时器需要预置的初值。 若设初值TC=0,则定时器定时时间为最大。若设单片机系统主频为12MHz,则各种工作方式定时器的最大定时时间为: 工作方式0: Tmax=2131s=8.192ms 工作方式1: Tmax=2161s=65.536ms 工作方式2和3:Tmax=281s=0.256ms,http:/ 解:将外部计数源连到引脚T1上,可用LED将计数的值显示出来,我们用P1口连接的8个LED来显示计到的数据。 程序如下: ORG 0000H AJMP START ; 转入主程序 ORG 0030H START: MOV SP, #60

11、H ; 设置堆栈指针 MOV TMOD, #60H ; 定时器/计数器1作计数用 01100000B MOV TL1,#00H MOV TH1,#00H SETB TR1 ; 启动计数器1开始运行 LOOP: MOV A, TL1 ; 读计数器1的计数值送A MOV P1, A ; 将计数值输出到P1口,驱动LED显示 AJMP LOOP ; 转回LOOP END,5. 定时器/计数器应用举例,http:/ 例3.6 设一只发光二极管LED和8051的P1.0脚相连。当P1.0脚是高电平时,LED不亮;当P1.0脚是低电平时,LED亮。编制程序用定时器来实现发光二极管LED的闪烁功能。已知单片

12、机系统主频为12MHz。 解:设置LED每60ms闪烁1次。选择定时器/计数器0工作在方式1。此时定时器对系统主频的12分频脉冲计数。T0=1微秒, TC=M-T/T0=5536=15A0H,http:/ 0000H MOV TH0,#15H AJMP START MOV TL0,#0A0H ORG 0030H SETB TR0 START:MOV SP,#60H AJMP LOOP MOV P1,#0FFH END MOV TMOD,#01H ;00000001 MOV TH0,#15H MOV TL0,#0A0H SETB TR0 LOOP: JBC TF0,NEXT AJMP LOOP NEXT: CPL P1.0,http:/ 0000H TIME0:PUSH ACC AJMP START PUSH PSW ORG 000BH CPL P1.0 AJMP TIME0 MOV TH0,#15H ORG 0030H MOV TL0,#0A0H START:MOV SP,#60H SETB TR0 MOV P1,#0FFH POP PSW MOV TMOD,#01H POP ACC MOV TH0,#15H RETI MOV TL0,#0A0H END SETB EA SETB ET0 S

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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