单片机原理与应用 第5章 定时器计数器_第1页
单片机原理与应用 第5章 定时器计数器_第2页
单片机原理与应用 第5章 定时器计数器_第3页
单片机原理与应用 第5章 定时器计数器_第4页
单片机原理与应用 第5章 定时器计数器_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理与应用,北京交通大学电子信息工程学院自动化系 2017年1月,北京交通大学,2,第5章 定时器/计数器,本章主要内容 定时/计数器的功能 与定时/计数器有关的寄存器 定时/计数器四种工作方式 定时器的应用,北京交通大学,3,本章要求:熟练掌握计数/定时编程方法,定时方法,软件定时 硬件定时 可编程定时器定时,北京交通大学,4,TF1 TR1 TF0 TR0 GATE C/T M1 M0 GATE C/T M1 M0,TCON,TMOD,TH1 TL1 TH0 TL0,CPU,一、定时/计数器的功能,图1定时/计数器与TMOD、TCON的结构框图,共有两个可编程的定时/计数器T0和T1

2、 都是十六位加法计数器结构,分别由TH0、TL0 和TH1、TL1四个8位计数器组成 每个定时计数器都具有定时和计数两种功能,北京交通大学,5,图 2 定时/计数器的结构框,北京交通大学,6,功能:对外来脉冲进行计数 外来计数脉冲加在单片机的两个信号引脚T0(P3.4)T1(P3.5) 外部输入的脉冲在负跳变时触发计数 计数器在每个机器周期的S5P2期间采样外部输入信号。 若一个周期采样值为1,下一个周期采样值为0,则计数器加1。 脉冲的频率最高为振荡频率的1/24 外部输入信号的高电平和低电平保持时间大于一个机器周期 计数器计满回零,发中断申请,1.计数功能,北京交通大学,7,2.定时功能

3、计数器的计数来实现 计数脉冲:每个机器周期产生一个计数脉冲。即计数频率为振荡频率的1/12。 根据计数器的预置值计算出定时时间。按定时时间的要求,计算出计数器的预置值。,北京交通大学,8,二、定时/计数器的方式和控制寄存器 1.定时器控制寄存器(TCON) 控制方式:外部中断控制与定时控制。 定时控制功能: 定时器在溢出时,设定标志位(TFx) 控制定时器的运行或停止等(TRx),北京交通大学,9,定时控制寄存器(TCON),(88H),TF1 TR1TF0 TR0 IE1 IT1 IE0 IT0,8F 8E 8D 8C 8B 8A 89 88,INT0触发方式 0:电平触发(低) 1:边沿触

4、发(下跳沿),INT0请求标志 0:无请求(硬件置位或清除) 1:有请求,INT1触发 请求标志,用于定时/计数器,位地址,外部中断,北京交通大学,10,TF0(TF1):为T0(T1)定时器溢出中断标志位 当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况下,发出中断请求信号。 当CPU响应中断转向中断服务程序(000BH,001BH)时,由硬件自动将该位清0。 TR0(TR1):为T0(T1)运行控制位 当TR0(TR1)=1时启动T0(T1); TR0(TR1)=0时关闭T0(T1) 该位由软件进行设置。 复位时TCON清零,北京交通大学,11,2.定时器方式寄存器(TMOD),用

5、于控制两个定时/计数器的工作方式 高4位定义T1,低4位定义T0, 字节地址为89H,格式:,GATE C/T M1 M0 GATE C/T M1 M0,T0,T1,GATE:门控位,GATE0,以运行控制位TRx启动定时器 GATE1,启动信号=TRxINTx,在没有外中断请求信号(INTx=1)才允许定时器启动,北京交通大学,12,C/T:定时或计数方式选择位: C/T0,定时工作方式; C/T1,计数工作方式。 M1M0:工作方式选择位: M1M000 方式0:13位计数(TL0-4、TH0-7) M1M001方式1:16位计数 M1M010方式2:8位计数 自动装入计数器初值功能 M1

6、M011方式3:T0分为两个8位计数器 TL0允许作为定时或计数方式 TH0只能作为定时方式,北京交通大学,13,三、定时/计数器工作方式 1.方式0 方式0工作逻辑结构图。,12 分频,fosc,C/T=0 C/T=1,TL1 TH1 (5位)(8位),TF1,中断,T1,控 制,GATE INT1,+,TR1,1,软件启动方式,1/24fosc,1/12fosc,计数输入,中断,TF1 ET1 EA,北京交通大学,14,方式0是13位结构的工作方式,其计数器由 TH1的全8位和TL1的低5位构成。TL1的高3位弃之 不用。 计数方式:计数值的范围为:1-8192(213) 定时方式:定时时

7、间T的计算公式为: 启动的条件是: (TRx=1)AND(GATE=1 OR INTx=1),2000H,T(213计数初值x)晶振周期12 或 T(213计数初值x)机器周期 机器周期=12/晶振频率=12*晶振周期,北京交通大学,15,方式0应用举例 设单片机晶振频率fosc=6MHz,使用定时器1以方式0产生周期为500us的方波,并由P1.0输出。以查询或中断方式完成。 解:计算定时初值x 欲产生500us的方波,在P1.0端以250us为周期交替输出高低电平即可实现。为此,定时时间应为250us。晶振为6MHz,则1个机器周期为(12/6)2us。 则: (213x)*2uS250u

8、S x80671111110000011B(2000H-7DH) 即: TH10FCH,TL103H。,北京交通大学,16,步骤:,TMOD初始化,工作方式选择 计数器初值计算 置位EA使CPU开中断 置位ETx允许C/T中断 置位TRx启动计数,北京交通大学,17, TMOD初始化 定时器1,M1M0=00H(方式0) C/T=0(定时) GATE0(以软件启动定时器) 不用的位设定为0 TMOD为初始化00H。 TCON寄存器的TR1位来启动(1) 或停止(0)定时器,北京交通大学,18,程序设计 查询方式: MOV TMOD,#00H ;T1工作在方式0 SETB TR1 ;启动T1工作

9、 LOOP: MOV TL1,#03H MOV TH1,#0FCH ;置定时初值 WAIT: JNB TF1,WAIT ;定时未到,循环等待 CLR TF1 ;定时到,清TF1 CPL P1.0 ;由P1.0输出,信号取反 SJMP LOOP ;循环输出方波,北京交通大学,19,中断方式: ORG 8000H MOV TMOD,#00H ;T1工作在方式0 MOV TL1,#03H MOV TH1,#0FCH ;置定时初值 SETB EA ;开中断 SETB ET1 ;允许T1中断 LOOP: SETB TR1 ;启动T1工作 WAIT: SJMP WAIT ;等待中断 AJMP LOOP O

10、RG 001BH ;T1中断入口 LJMP SUB ;跳至中断服务程序SUB ORG 8100H ;中断服务程序 SUB1: CPL P1.0 ;输出信号取反 MOV TL1,#03H MOV TH1,#0FCH ;重置定时初值 RETI ;中断返回,北京交通大学,20,2.方式1 其逻辑电路和工作情况与方式完全相同。所不同的只是组成计数器的位数为16位。,计数值的范围为: 1-65536(216) 定时时间的计算公式与方式0类似。即:,TL1,TH1,TF1,计数输入,7 0 7 0,T(216计数初值x)晶振周期12 或 T(216计数初值x)机器周期,北京交通大学,21,12 分频,fo

11、sc,C/T=0 C/T=1,TL0 (8位),TF0,TR0,控 制,GATE INT0,+,TR0,TH0 (8位),重装入,中断,3.方式2 工作方式2逻辑结构如图。,北京交通大学,22,该方式把16位计数器分为两部分 既以TL1作计数器 以TH1作预置计数器 初始化计数初值分别装入TL1和TH1中 当计数溢出后,由预置寄存器TH1, 以硬件方法自动给计数器TL1重新加载 最大计数值只能到256,适用于循环定时或循环计数应用,方式2具有自动重新加载功能,即自动加载计数初值,北京交通大学,23,方式2应用举例 设单片机晶振频率fosc=6MHz,使用T0以方式2产生周期为200us的方波,

12、并由P1.0输出。 以查询或中断方式完成 解: 计算计数初值x,晶振为6MHz,则1个机器周期为2us。则: (28x)2100,x206CEH 即 TH00CEH,TL00CEH。,TMOD寄存器初始化 定时器0 M1M0=10H(方式2) C/T=0(定时) GATE0 (以软件启动定时器) 不用的位设定为0 最后得TMOD应初始化为02H。,北京交通大学,24,北京交通大学,25, 用TCON寄存器的TR0位来启动(1)或停止(0)定时器。 程序设计(查询方式): MOV TMOD,#02H ;T0工作在方式2 MOV TL0,#0CEH MOV TH0,#0CEH ;置定时初值 SET

13、B TR0 ;启动T0工作 WAIT: JNB TF0,WAIT ;定时未到, 循环等待 CLR TF0 ;定时到,清TF0 CPL P1.0 ;由P1.0输出,信号取反 SJMP WAIT ;循环输出方波,北京交通大学,26,中断方式: MOV TMOD,#02H ;T0工作在方式2 MOV TL0,#0CEH MOV TH0,#0CEH ;置计数初值 SETB EA ; 开中断 SETB ET0 ; 允许T0中断 LOOP: SETB TR0 ;启动T0工作 WAIT: SJMP $ ;等待中断 CLR TF0 ;计数溢出标志位TF0清0 AJMP LOOP ORG 000BH ;中断服务

14、程序 CPL P1.0 ;由P1.0输出,信号取反 RETI ;中断返回,北京交通大学,27,TH0 (8位),TF1,T0,控制,GATE INT0,+,TR0,C/T=0 C/T=1,1/12fosc,1/12fosc TR1,中断,TL0 (8位),TF0,控制,中断,4. 方式3,计数/定时,定时,北京交通大学,28,工作在方式3下的T0 T被拆成两个独立的8位计数器。 1.TL0既可以作计数器使用,又可以作定时器使用,其功能和操作方式与方式或方式1完全相同。 2.TH0只能作8位定时器使用,并占用了T的中断资源TR1和TF1。,北京交通大学,29,工作在方式3下的T1 如果T已工作在

15、方式3下: T1只能工作在方式02下,用于任何不需要中断控制的场合 用作串行口的波特率发生器 通常只有当T1用作串行口的波特率发生器时: T0才被定义为方式,以增加一个8位计数器。 T1设定工作方式2、计数器初值,T1便可自动运 如停止计数:只需送入一个把它设为方式3的控制字即可,这时T1直接把溢出标志TF1送给串行口,北京交通大学,30,四、定时器的应用,定时器门控位GATE的应用: 当GATE=1时,定时器的启动受外部INTx的控制。 在TRx=1时,若INTx=1,则启动计数; 若INTx=0,则停止计数。 应用:测试外部脉冲的宽度。,北京交通大学,31,12 分频,fosc,C/T=0

16、 C/T=1,TL1 TH1 (8位)(8位),TF1,中断,T1,控 制,GATE INT1,+,TR1,1,软件启动方式,1/24fosc,1/12fosc,计数输入,中断,TF1 ET1 EA,例:设被测脉冲由P3.3输入,利用T1测试正脉冲的宽度。设fosc=12MHz,将测试结果存放在内部RAM的40H,41H单元中。,北京交通大学,32,四、定时器的应用,分析: 测试时,1.检测INT1端由低变高时, TR1=1启动计数;,P3.3 (INT1),置TR1=1 启动计数,停止计数,2. INT1再次变低时,计数停止,此时的计数值即为被测正脉冲的宽度。 3.由于T1工作于方式1,所以

17、可测最大脉宽为65536uS(fosc=12MHz); 4.由于外部脉宽的最高频率为fosc/24,所以,测试值的合理范围是2-65536x2。,北京交通大学,33,四、定时器的应用,ORG 300H START:MOV TMOD,#90H ;GATE=1 ,T1方式1 MOV TL1,#00H ;从零开始计数 MOV TH1,#00H MOV R0,#40H ;置数据指针 DONE:JNB P3.3,DONE ;等INT1变高 SETB TR1 ;启动计数 DONE1:JB P3.3,DONE1 ;等INT1变低,北京交通大学,34,四、定时器的应用,CLR TR1 ;停止计数 MOV A,

18、TH1 ;存结果 MOV R0,A INC R0 MOV A,TL1; MOV R0,A END,北京交通大学,35,练习题,编程实现利用定时器T1产生一个50Hz的方波,由P1.3输出,设晶体振荡器频率为12MHz。,北京交通大学,36,作业 P118: 2, 9,北京交通大学,37,ORG 8000H START:MOV TMOD,#09H ;GATE=1,方式1,定时 MOV TL0,#00H MOV TH0,#00H WAIT1:JB P3.2,WAIT1 SETB TR0 WAIT2:JNB P3.2,WAIT2 WAIT3:JB P3.2,WAIT3 CLR TR0 MOV R0,TL0 MOV R1,TH0 SJMP $,习题: 1.利用T0门控GATE测量INT0引脚出现的脉冲宽度 脉宽=计数值X机器周期 设T0方式1,GATE=1,TR0=1,计数初值=00H,INT0 (P3.2),计数,停止,北京交通大学,38,2.设重复周期大于1ms的低频脉冲信号从T0(P3.4)输入。要求P3.4每发生一次负跳变时,P1.0,P1.1输出如下波形. 设晶振为6MHz,P3.4 (T0),P1.0,P1.1,500US,1ms,方法:T0方式2计数,初值为FFH。当T

温馨提示

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

评论

0/150

提交评论