第八章 定时计数器及其应用_第1页
第八章 定时计数器及其应用_第2页
第八章 定时计数器及其应用_第3页
第八章 定时计数器及其应用_第4页
第八章 定时计数器及其应用_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章 定时计数器及其应用,第八章 定时计数器及其应用,8.0 引言 8.1 T0/T1的基本结构和工作方式 8.2 定时器的应用,第八章 定时计数器及其应用,定时器与计数器 计数器(Counter)? 定时器(Timer)? 单片机如何实现定时? 软件定时 在软件中利用循环指令制造一定的延时,通过循环次数和时钟周期的时间长度来定时; 独占CPU时间,机时精度受中断等各种因素影响; 硬件定时 对时钟电路的周期脉冲信号进行计数;,第八章 定时计数器及其应用,定时计数器在单片机应用系统中的地位和作用 时间基准、延时、电子音乐、电机速度控制 工业测量(电机速度、产量、信号频率、脉冲宽度) 51 系列

2、单片机片上定时计数器的基本特性: 可编程(3 个方面):位数、启动方式、定时/计数方式 2个定时计数器:T0、T1、T2(仅52 系列具有) 其它计数器: 74LS161、163、160、162 (不可编程),8.1 T0/T1的基本结构和工作方式,MCS- 51单片机的内部有两个16位可编程定时器/计数器T0和T1(简称定时器T0,T1); 它们具有计数和定时两种工作方式以及四种工作棋式。 两个特殊功能寄存器(定时器控制寄存器TCON和定时器方式寄存器TMOD)用于确定定时器/计数器的功能和操作方式。,8.1 T0/T1的基本结构和工作方式,定时器T0、T1的核心是一个加1计数器,它由8位寄

3、存器TH0和TL0(TH1和TL1)组成,可被编程为13位、16位、两个分开的8位等不同的结构。 计数器的输入 脉冲源可以是外部 脉冲源或系统时钟 振荡器; 计数器对这两个 输入脉冲之一进行 递增计数。,8.1 T0/T1的基本结构和工作方式,8.1.1 定时/计数器控制 两个寄存器TCON和TMOD用于定时器/计数器的控制。 TMOD用于控制和确定各定时器/计数器的功能和工作模式; TCON用于控制定时器T0、T1的启动和停止计数,同时定义定时器/计数器的状态。 用户可用软件对TCON和TMOD进行写入或零改,但系统复位时,TCON和TMOD的所有位清零。,8.1.1 定时/计数器控制,TC

4、ON(Timer/Counter Control Register) 定时器的控制寄存器TCON具有中断控制和定时控制两种功能。TCON的字节地址是88H,并且可以位寻址,它的格式如下: TF1: 定时器T1的溢出中断标志位。 当定时器T1从初值开始递增计数至计满溢出时,由单片机内部硬件对TF1置1,并向GPU请求中断。当CPU响应中断转向中断服务程序时,由硬件对TF1自动清零。也可以由程序对TF1查询或清零。,8.1.1 定时/计数器控制,TR1: 定时器T1的运行控制位。 该位由软件置位和复位,用来启动/关闭定时器T1。 TF0: 定时器T0的溢出中断标志位。控制机理与TF1相同。 TR0

5、: 定时器T0的运行控制位。控制原理与TR1相同。,8.1.1 定时/计数器控制,TMOD(Timer/Counter Mode Register) 定时器的方式寄存器TMOD用于控制定时器/计数器的工作方式及四种工作模式。 它不能被位寻址,其内容只能用字节传送指令来设置。 TMOD的字节地址为89H ,它的格式如下:,8.1.1 定时/计数器控制,GATE (TMOD.7对应定时器T1, TMOD.3对应定时器T0:门控制位。 GATE为1时,定时器/计数器的计数受外部引脚输入电平的控制; /INT0控制T0运行,/INT1控制T1运行,以高电平为有效信号; 启动T0(或者T1)要求TR0(

6、或者TR1)必须为1;,8.1.1 定时/计数器控制,GATE为0时,定时器/计数器的运行不受外部输入引脚的控制,而是由TR0(或者TR1)来启动; 当TR0(或者TR1)被置为1时,相应定时器启动; 因此,通常称前者为外部控制,后者为内部控制。,8.1.1 定时/计数器控制,C/T(TMOD.6对应定时器T1 , TMOD.2对应定时器T0):选择定时器或计数器的方式位。 当C/T=1时,定时器/计数器为计数方式,计数脉冲从外部引脚输入; 当C/T=0时,定时器/计数器为定时方式,计数脉冲是内部脉冲,其周期等于机器周期。,8.1.1 定时/计数器控制,M1、M0(TMDD.5、 TMOD.

7、4对应定时器T1,TMOD.1 、TMOD. 0对应定时器T0):工作模式选择位。 定时器的工作模式由M1、M0两位状态确定。,8.1.2 工作方式,工作模式0:13 位定时或计数模式。,8.1.2 工作方式,计数器位数 TL1 中的04 位参与计数,TL1.4 位向TH1.0 进位! 计数信号源 定时方式:对机器周期计数,计数信号频率fOSC/12 计数方式:对外部信号计数,引脚T0(P3.4)、T1(P3.5) 信号频率不可高于 fOSC/24,8.1.2 工作方式,工作于外部计数方式时,外部计数脉冲发生从1变0的负跳变,则计数器计数一次。 晶振频率分别为12MHz和8MHz,最高可计数信

8、号频率为多少?,8.1.2 工作方式,启动和停止控制方法 启动方式: Control1 = TR1 (!GATE + /INT1) 软控方式: GATE=0 时, TR11 启动定时或计数 门控方式: GATE1 时,TR11 且 /INT1 引脚(P3.3)为高电平启动定时或计数 通常情况下使用软控方式,只有需要外部信号控制定时/计数时才使用门控方式。,8.1.2 工作方式,8.1.2 工作方式,Timer/Counter 的计数和溢出规律 TH1 TL1 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0001 1111 0000 000

9、1 0000 0000 1111 1111 0001 1111 0000 0000 0000 0000 TF1=1 , 并申请中断,8.1.2 工作方式,工作模式1:16 位定时或计数模式。 TL1(8bits) TH1(8bits) TH1 TL1 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 1111 1111 0000 0001 0000 0000 1111 1111 1111 1111 0000 0000 0000 0000 TF1=1 , 并申请中断,8.1.2 工作方式,工作模式2: 特点:8bits 定时/计数 自动装载初值

10、T0、T1 溢出后对TF0、TF1置位,并自动将TH0(TH1)内容装入TL0(TL1),完成自动赋初值操作。,8.1.2 工作方式,工作模式3: T0 分为两个独立的计数部件 TH0 借用T1 的控制位TR1 和中断标志TF1。 T1 工作于方式3 时,等同于关闭T1。,8.2 定时器的应用,定时/计数器的初始化 工作方式的选择 初值(THx,TLx)的计算 初始值:Timer/counter 开始计数以前的预赋值 定时方式: 方式1(16bits):(65536X)cycle定时时间 方式2(8bits):(256X)cycle定时时间,8.2 定时器的应用,计数方式: 方式1(16bit

11、s):65536X计数值 方式2(8bits):256X计数值 cycle:机器周期(s) 12MHz 下T0 单次最长定时时间能够达到多少ms? 定时时间与哪些因素有关?,8.2 定时器的应用,方式1 的应用 Exam1:利用T0 定时在P1.0 端持续产生如下波形。 fosc 6MHz,8.2 定时器的应用,工作方式的选择和初值的计算: cycle12/6=2us T0:定时方式1 TMOD=0000 0001B01H 初值x 有 (65536x)2us1000 us x65036FE0CH 则有TH0FEH,TL00CH,8.2 定时器的应用,查询方式: ;Timer1ms.asm SE

12、TB P1.0 LOOP: ACALL D1MS CPL P1.0 SJMP LOOP D1MS: MOV TMOD, #01H ;1ms 延时程序(查询方式) MOV TH0, #0FEH MOV TL0, #0CH SETB TR0 JNB TF0, $ CLR TF0 CLR TR0 RET,8.2 定时器的应用,中断方式: Timer1msint.asm 关键:确定主程流和中断流程分别包含哪些操作?,8.2 定时器的应用,1. 如何产生如下波形? 2. 如何定时1s ?,8.2 定时器的应用,方式2 的应用 Exam2:负脉冲展宽,晶振为6MHz。,8.2 定时器的应用,基本思想: T

13、1 计数,T0 定时 TMOD 和初值的计算: T1 为计数方式2(8bits) TMOD0110 xxxxB T1 的初值x 有: 256x1 x255FFH TH1FFH,TL1FFH,8.2 定时器的应用,T0 为定时方式2: TMODxxxx 0010B 初值x 有: (256x)2us500us x06H TH006H,TL006H TMOD0110 0010B62H,8.2 定时器的应用,流程 主流程 系统初始化: SP30H P1.01 中断系统初始化: ET01,ET11 EA1 T0、T1 初始化: TMOD62H TH006H,TL006H TH1FFH,TL1FFH 启动

14、T1: TR11 等待中断 ;等待负脉冲到来,即T1 的溢出中断,8.2 定时器的应用,T0 中断流程: ;500us 定时到 ;CPU 自动完成 MOV TL0, TH0 ; CLR TF0 P1.01 ;上拉 P1.0 端 TR00 ;关闭T0 RETI ;中断返回,8.2 定时器的应用,T1 中断流程: ;发现负脉冲 ;CPU 自动完成 MOV TL1, TH1 ; CLR TF0 P1.00 ;下拉 P1.0 端 TR01 ;启动T0 定时500us RETI ;中断返回 源程序:see also pulse500.asm 如何精确控制时间?,8.2 定时器的应用,T0、T1 用于外部

15、中断扩展 当T0、T1设定为计数方式时,若设定计数初值为满量程,则从T0(P3.4)或从T1(P3.5)引脚输入一个负跳变信号,T0或T1计数器加1,产生溢出中断。 将P3.4和P3.5作为外部中断请求输入线; 定时器的溢出中断标志TF0和TF1作为外部中断请求标志; T0和T1的中断入口地址作为扩展的外部中断源的中断入口地址。,8.2 定时器的应用,例如,定时器T0设置为方式2(自动恢复常数),即外部事件计数方式,TH0,TL0初值均为FFH、允许T0中断,CPU开放中断,则初始化程序如下: MOV TMOD,#06H ;置T0为工作方式2 MOV TL0,#0FFH;置计数器初值 MOV

16、THD,#0FFH SETS TR0 ;启动T0 SETB ET0;允许T0中断 SETB EA ;开中断,8.2 定时器的应用,当连接在P3. 4上的外部中断请求输入线上的电平发生负跳变时,TL0加1,产生溢出,置位IF0,向CPU发出中断申请; 同时TH0的内容FFH送TL0,即TL0恢复初值。 P3. 4相当于边沿触发的外部中断源输入端; P3. 5与此类似。 用这种方法扩展了两个外部中断源。,8.2 定时器的应用,门控方式的应用:脉冲宽度测量 当TMOD中的门控位GATE0=1时,定时器T0的启动受/INT0上的电平控制,只有当INT0和TR0同时为1时,定时器T0才启动。 利用这个功

17、能,可以测试/INT0上输入的正脉冲宽度。 待测脉冲信号接与哪个引脚?(/INT0 引脚、T0 引脚) 设定T0 为定时方式还是计数方式?几位? 设初值TH0、TL0 为多少? 何时置位TR0?何时读取结果TH0、TL0? 若TH0、TL0 发生溢出应如何处理? 如何测量负脉冲宽度? 测量精度与什么有关?,8.2 定时器的应用,ORG 200H MOV TMQD,#09H MOV TL0,#00H MOV TH0,#00H CLR 0AFH; 关中断 HERE1: JB /INT0,HEREl ;等/INT0为低电平 SETB TR0 HERE2: JNB /INT0,HERE2 ;等/INT0为高电平, ;启动定时器T0 HERE3: JB INT0,HERE3;等/INT0低电平到来 CLR TR0 ;停止定时器T0工作 LCALL DIR ;显示子程序,显示T

温馨提示

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

评论

0/150

提交评论