dpj5(定时器)剖析

上传人:今*** 文档编号:107473728 上传时间:2019-10-19 格式:PPT 页数:28 大小:626.50KB
返回 下载 相关 举报
dpj5(定时器)剖析_第1页
第1页 / 共28页
dpj5(定时器)剖析_第2页
第2页 / 共28页
dpj5(定时器)剖析_第3页
第3页 / 共28页
dpj5(定时器)剖析_第4页
第4页 / 共28页
dpj5(定时器)剖析_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《dpj5(定时器)剖析》由会员分享,可在线阅读,更多相关《dpj5(定时器)剖析(28页珍藏版)》请在金锄头文库上搜索。

1、第5章,MCS-51子系列单片机内有两个可编程的定时器计数器 T0和T1;它可由用户程序选择其工作方式,设定其工作参 数和条件。,第5章 MCS51定时/计数器及其应用,本章重点: 定时/计数器的编程结构 控制字与编程方法 应用编程,5.1 定时/计数器的结构与工作原理,5.1.1 定时/计数器的逻辑结构,第5章 5-1,定时计数器的结构图:,定时/计数器的核心部件是加1计数器,其输入的计数脉冲有两个来源。 当加到计数器为全“1”时,再输入一个脉冲,就使计数器回零,同时产生溢出脉冲使TCON中溢出中断标志TF0或TF1置1,并可向CPU申请中断。,5.1.2 定时/计数器的工作原理,对内部机器

2、周期计数,对外部引脚输入脉冲计数,第5章 5-1,1. 定时器工作模式对机器周期TM计数。这时计数器的计数脉冲由振荡器的12分频信号产生,即每经过一个机器周期,计数值加1,直至计满溢出。在机器周期固定的情况下,定时时间的长短与计数器事先装入的初值有关,装入的初值越大,定时越短。,2. 计数器工作模式通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当T0或T1脚上输人的脉冲信号出现由1到0的负跳变时,计数器值加1。,定时器的2种工作模式:,第5章 5-1,5.2 定时/计数器的控制与工作方式,应用问题 1.如何设定定时/计数的工作方式? 2.定时/计数器如何启动? 3.定时/计数的

3、值如何设定?,单片机内部的定时/计数器是一种可编程器件,可设置为四种工作方式,由两个8位专用寄存器TMOD和TCON进行管理与控制。,第5章 5-2,5.2.1 定时计数器的管理与控制 1.工作方式寄存器TMOD,控 制 T1,控 制 T0,与T0同,用于选定定时/计数器的工作方式、启动方式等。,第5章 5-2,2、定时器控制寄存器TCON,CPU复位后TMOD、TCON各位均清零。,与定时器有关的位: 1) TF1 定时器1溢出标志 2) TR1 定时器1运行控制位 3) TF0 定时器0溢出标志 4) TR0 定时器0运行控制位,1 启动定时器工作 0 关定时器,例如:设定时器T0工作于方

4、式1定时,由软件启动控制,则可用如下指令来装入控制字。,MOV TMOD,#00000001B ; 或 MOV TMOD,#01H ;,练习:设定时器T1工作于方式2计数,由外部脉冲启动,试写入方式控制字。,第5章 5-2,通过对TMOD中的M1,M0位选择定时器4种工作方式。,5.2.2 定时/计数器的工作方式,1.方式0 13位定时/计数器,方式0下的逻辑结构图,(1)C/T=1为计数工作方式,计数脉冲由T1输入。计数个数: N=( 213初值X), X 213计数个数N (2)C/T=0为定时工作方式,计数脉冲为时钟频率fosc/12。 定时时间t=(213初值X)*时钟周期*12 X

5、213定时时间t/时钟周期*12,方式0下工作时:,思考: (1)最大计数或定时时的初值 X 是多少? (2)时钟频率为12MHZ时,方式0最大定时时间是多少?,第5章 5-2,定时/计数器工作于方式1时为一个16位的计数器。其逻辑结构、操作及运行控制几乎与方式0完全样,差别仅在于计数器的位数不同。,定时工作方式1时,定时时间为: 定时时间 t (216计数初值X)机器周期 最大定时时间= 216机器周期 最大计数值为: 21665536,2.方式1 16位定时/计数器,3. 方式2可自动重装载的8位定时/计数器 工作于方式2时,将两个8位计数器THx、TLx分成独立的两部分,组成一个可自动重

6、装载的8位定时/计数器。,方式2的控制运行与方式0、方式1相同。 用于定时工作方式时,定时时间t为:t(28计数初值X)机器周期 用于计数工作方式时,最大计数值(初值0时)是28。,方式2特别适合于用作较精确的定时和脉冲信号发生器。还常用作串行口波特率发生器 。,4.方式3 T0被分成两个相互独立的8位计数器,方式3只适用于定时器T0,1)TH0和TL0变成2个分开的计数器。 2)TL0占用了全部的定时器控制位。 (C/T, GATE, TR0, TF0) 3)TH0只能用于定时方式,运行控制位和溢出标志位则借用定时器1的TR1和TF1。 4)在T0设置为方式3工作时,一般是将定时器T1作为串

7、行口波特率发生器,或用于不需要中断的场合。相当于增加了一个8位的定时器。,定时/计数器工作于方式3时:,5.3 定时/计数器的应用,1. 定时计数器的初始化方法,初始化步骤: 1)分析定时器计数器的工作方式,将方式字写入TMOD寄存器 2)计算T0或T1中的计数初值,赋值给TH0、TL0 或 TH1、TL1; 3)根据需要开放CPU和定时计数器的中断,置位 ET0 或 ET1、EA; 4)启动定时器计数器工作: 要求用软件启动: 置位 TR0或TR1 若由外部中断引脚电平启动: 则对TR0或TR1置位后,还需在 INT0或 INT1 引脚提供启动电平(高),一、定时/计数器初始化,1)计数器模

8、式时的计数初值 X2MN (M为计数器位数,N为要求的计数值),则计数初值: X 2M -(t/12T osc ),计数器初值的计算:,X0,计数器的计数值最大 2M,2)定时器模式时的计数初值 定时时间为:t(2M计数初值X )机器周期,若 fOSC12MHz,1机器周期1S; 方式 0: M13, tmax 213*机器周期8192S 方式 1: M16, tmax216*机器周期65536S 方式2、3: M8, tmax28*机器周期256S,X = 605360EC78H,X0,定时器的定时时间最大: tmax 2M机器周期,例: 若fOSC6MHz,定时时间为10ms,使用定时器T

9、0工作于方式1 ,则初值:,例: 若fOSC12MHz,定时时间为1ms,使用定时器T1工作于方式0 ,初值:,X =719211100000 11000B,例4-1:要求定时器T1于方式1,定时50ms,由软件启动,允许中断。设系统时钟频率fOSC6MHz,编写初始化程序段。 解:1)方式控制字为 00010000B=10H 2)计数初值为 X1,T1初始化程序段如下: MOV TMOD,#10H ;写入工作方式字 MOV TH1,#9EH ;写入计数初值 MOV TL1,#58H SETB ET1 ;开放T1中断 SETB EA ;开放CPU中断 SETB TR1 ;启动T1工作 ,2.

10、定时/计数器初始化举例,二、定时/计数器应用举例,对计数溢出信息的处理有两种方法: 中断法在定时器初始化时要开放对应的源允许(ET0或ET1)和总允许,启动定时计数器后即可等待中断。 CPU响应计数器溢出中断时,程序会转到中断服务程序入口地址,可在中断服务程序中安排相应的处理程序。 查询法既在定时器初始化并启动后,在程序中安排指令查询TFx的状态。 LP:JBC TF0,NEXT ;TF0为1,转后面的处理程序,并将TF0复位 SJMP LP ;TF0为0,继续查询 NEXT:,注意:中断法时,CPU响应中断会自动清TF,采用中断方式时的一般编程模式: ORG 0000H SJMP MAIN

11、ORG 000BH LJMP T0FW ORG 0030H MAIN: MOV TMOD,# ;工作方式设置 MOV TH0,# ; 置初值 MOV TL0,# SETB ET0 ;开放中断 SETB EA ; - ;置其他初值 SETB TR0 ;计数器启动 - ;其他操作 SJMP $ ;暂停,等待中断 T0FW: MOV TH0,# ; 重装初值 MOV TL0,# - ;处理程序 RETI,采用查询方式时的一般编程模式: ORG 0030H MAIN: MOV TMOD,# ;置工作方式 MOV TH0,# ;置初值 MOV TL0,# - SETB TR0 ;启动计数 WAIT: J

12、BC TF0,NEXT ;等待计数器溢出 SJMP WAIT; NEXT:MOV TH0,# ;重装 MOV TL0,# ;初值 - - ;处理程序 - - SLMP WAIT,应用举例: 1. 定时模式的应用 例: 利用定时/计数器定时产生周期信号。要求用定时器T0定时,在P1.7引脚上输出周期为50Hz的方波。设晶振频率为12MHz。 解:1)按题意分析:方波周期T=1/50=20ms,可用T0方式1定时10ms,使P1.7每隔10ms取反一次,即可得到周期为20ms的方波。设T0工作在方式1,由软件启动。 2)TMOD控制字为 0000 0001 B 3)初值计算:fosc=12MHz,

13、机器周期为1s。 初值216-10103/1=65536-10000=55536=D8F0H, 即有TH0=D8H,TL0=F0H。,CPL P1.7 ; 定时处理,P1.7取反输出方波,例:要求用定时器T1定时,在P1.0引脚上输出如图方波。设晶振频率为12MHz。,解:1)按题意分析:可用T1为16位定时器模式(方式1)定时1ms。判断P1.0为高电平时,溢出二次才对端口取反。 2)TMOD控制字为 0001 0000 B 3)初值计算:fosc=12MHz,机器周期为1s。 初值216 - 12 106 103 / 12= 65536-1000=64536=FC18H, 即 TH1=FC

14、H,TL1=18H。,若采用查询法,编程如下: ORG 0030H STAR:MOV TMOD,#10H ;写入工作方式字 MOV TH1,#0FCH ;写入计数初值 MOV TL1,#18H MOV R2 , #2 SETB TR1 ;启动T1 LOOP: JBC TF1,CPLP ; TF1为1转CPLP并清TF1 SJMP LOOP ; TF1为0转LOOP等待,CPLP:MOV TH1,#0FCH ;重装初值 MOV TL1,#18H JB P1.0 , CPLP1 ;P1.0为1转CPLP1 CPL P1.0 ;P1.0为0则取反 MOV R2,#2 ;R2重赋初值 AJMP LOOP ;转LOOP等定时时间到 CPLP1:DJNZ R2,LOOP ;2ms未到转LOOP CPL P1.0 ;2ms到P1.0取反 AJMP LOOP ;转LOOP等定时时间到 END,例4-4: 某系统要求用定时器T1对由P3.5(T1)引脚输入的脉冲计数,每计满100个脉冲,在P1.0引脚输出一个正脉冲。 解:1)据题意分析,可将定时器T1设置为方式2计数,由软件启动。 2)方式控制 TMOD01100000B60H

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

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

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