单片机第6章-定时计数器概要

上传人:n**** 文档编号:93086325 上传时间:2019-07-16 格式:PPT 页数:71 大小:914KB
返回 下载 相关 举报
单片机第6章-定时计数器概要_第1页
第1页 / 共71页
单片机第6章-定时计数器概要_第2页
第2页 / 共71页
单片机第6章-定时计数器概要_第3页
第3页 / 共71页
单片机第6章-定时计数器概要_第4页
第4页 / 共71页
单片机第6章-定时计数器概要_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《单片机第6章-定时计数器概要》由会员分享,可在线阅读,更多相关《单片机第6章-定时计数器概要(71页珍藏版)》请在金锄头文库上搜索。

1、2019年7月16日星期二,第六章 定时/计数器,2019年7月16日星期二,6.1 定时器/计数器结构 6.2 定时器/计数器的四种工作方式 6.3 定时器/计数器对输入信号的要求 6.4 定时器/计数器编程和应用,教学内容,2019年7月16日星期二,6.1.1 定时/计数器的结构与原理 重点:定时的实质,定时与计数的关系 6.1.2 定时/计数器方式寄存器TMOD 6.1.3 定时/计数器控制寄存器TCON 6.1.4 定时/计数器的初始化,返回本章首页,6.1 定时/计数器结构,2019年7月16日星期二,6.1.1 定时/计数器结构与原理,定时器/计数器简称定时器,8051单片机内部

2、有2个16位的可编程定时/计数器:定时器0(T0)和定时器1(T1)。可编程是指其功能(如工作方式、定时时间、启动方式等)可以由指令来确定和改变。 在定时器/计数器中除了有两个16位的计数器之外,还有2个特殊功能寄存器(控制寄存器TCON和方式寄存器TMOD)。,2019年7月16日星期二,这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。,定时器/计数器的结构,2019年7月16日星期二,从结构图可以看出: 16位的定时器/计数器分别由两个专用寄存器组成,即T0由TH0和TL0构成;T1由TH1和TL1构成。这些寄存器由于存放定时和计数初值。此外,内部还有一个8位的TMOD和一个8位的T

3、CON。TMOD 主要用于选定定时器的工作方式;TCON主要用于控制定时器的启动与停止。,定时器/计数器的结构,2019年7月16日星期二,定时器/计数器的原理,16位的定时器/计数器的实质上是一个加1的计数器,其控制电路受软件控制、切换。 计数的次数和时间之间是相关的。,只要计数脉冲的间隔相等,计数值就代表时间的流逝,2019年7月16日星期二,当定时器/计数器为定时工作方式时,加1信号由振荡器的12分频产生,即每过一个机器周期,计数值增1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。由于一个机器周期等于12个振荡周期,所以 计数频率 fcount=1/12fosc 例:晶

4、振为12MHZ ,则计数周期为 T=1/(12*106)Hz*1/12 =1微秒,最短的定时周期,2019年7月16日星期二,当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿触发计数 采样过程:,在每个机器周期的 S5P2期间采样引脚,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。 由于检测一个由1到0的跳变需要两个机器周期,所以 计数的最高频率为振荡频率的1/24。为了确保给定电平在变化前至少被采样一次,外部计数脉冲的高低电平均需保持一个机器周期以上。(占空比没有限制),2019年7月16日星期二,单片机中的定时器和计数器是一个部件,只不过计数器用来

5、记录外界发生的事情,而定时器则是由单片机提供的一个非常稳定的计数源。,结论,2019年7月16日星期二,综上所述,我们已知定时器/计数器是一种可编程部件,所以在其开始工作之前,CPU必须将一些命令(控制字)写入定时器/计数器。这个过程称为定时器/计数器的初始化。 当CPU用软件给定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计数溢出,才可能中断CPU当前操作。,结论,2019年7月16日星期二,6.1.2 定时器/计数器方式寄存器TMOD,GATE,C/T,M,1,0,M,GATE,C/T,1,M,0,M,控 制 T,1,控 制 T,0,

6、89H,和T 类同,0,1,M,0,M,0 0,0 1,1 0,1 1,方 式,方式0 13位,方式1 16位,方式2 自动重装,方式3 适用T0,0,1,定时器模式,计数器模式,0,1,与INT 无关,0,0,与INT 有关,定时器工作模式寄存器TMOD,M1M0:方式选择位,C/T:功能选择位,GATE: 门控位,2019年7月16日星期二,GATE=1时 若TR1=1,并且 INT1=1,允许T0计数, 若TR1=0,或INT1=0,禁止T0计数,GATE=0,若TR1=1,允许计数 若TR1=0,禁止计数,2019年7月16日星期二,由于在不同方式下计数器位数不同,因而最大计数值(量程

7、)也不同。 方式0:M=213=8192 方式1:M=216=65536 方式2:M=28=256 方式3:定时器分成两个8位计数器,两个M均256,2019年7月16日星期二,TR1(0):运行控制位,6.1.3 定时器/计数器控制寄存器 TCON(88H),定时器工作模式寄存器TCON,TF1(0): 溢出标志,2019年7月16日星期二,6.1.4 定时器/计数器的初始化,初始化的步骤如下: 确定工作方式-对TMOD赋值 置定时或计数的初值-可直接写入TH0(1),TL0(1) 根据需要开放定时器/计数器的中断 启动定时器/计数器。 当实现了启动要求之后,定时器就按规定的工作方式和初值开

8、始计数或定时。,2019年7月16日星期二,因为定时器/计数器是作“加1”计数,并在计满溢出时产生中断,初值X可以这样计算: X = M - 计数值(计数次数) 例:在6MHZ主频下,要求产生1ms的定时,计算初值 分析:因为定时器每“加1”一次所需的时间为2s,如果要产生1ms的定时,需加500次,500即为计数值。方式1下工作。 初值 X =M-计数值=65536-500=FE0CH,2019年7月16日星期二,6.2 定时器/计数器的4种工作方式,由上节可知,通过对TMOD中的M1、M0的设置,可以选择四种工作方式。也就是每个定时器可构成4种电路结构模式。 在模式0、1和2,T0和T1的

9、工作方式相同,在模式3,两个定时器的方式不同。下面以T1为例,分述各种工作方式的特点和用法。,2019年7月16日星期二,方式0,16位寄存器中只用13位,其中TL1的高三位未用。,2019年7月16日星期二,16位寄存器全用,方式1,2019年7月16日星期二,这种工作方式可省去用户软件中重装常数的程序,并可产生相当精度的定时时间。,方式2,2019年7月16日星期二,该方式只适用于定时器T0,T0被拆成两个独立的8位计数器TH0和TL0。,方式3下的T0,方式 3,2019年7月16日星期二,T0工作在方式3时,T1可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的

10、场合.,T1工作在方式0,2019年7月16日星期二,T0工作在方式3时T1为方式1的工作示意图,T1工作方式1,2019年7月16日星期二,T0工作在方式3时T1为方式2的工作示意图,T1工作方式2,2019年7月16日星期二,T1的控制字M1M0=11时,T1停止计数,注意:在T0为方式3时,T1运行的控制条件只有2个,即C/T和M1,M0。,T1工作方式3,2019年7月16日星期二,6.3 定时器/计数器对输入信号的要求,当T0或T1被选定为定时工作模式时, 定时器/计数器的输入脉冲的周期与机器周期一样,为时钟振荡频率的1/12。若 f振荡=12MHz,则计数速率为1MHz。 当T0或

11、T1用作计数器时,计数脉冲来自相应的外部输入引脚.一次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡频率的1/24.如:f振荡=12MHz,则可输入的最高频率为500KHz。 注:外部输入信号脉冲宽度至少保持1个机器周期.,返回本章首页,2019年7月16日星期二,6.4 定时/计数器及中断系统综合应用,【例6.1】设MCS-51单片机系统时钟频率CLK为6MHZ,要在P1.0引脚上输出1个周期为1毫秒的方波,占空比为50%的方波信号.如下图:,P1.0,2019年7月16日星期二,解:(1)计算初值: 机器周期=2s=2*10-6s (216-X)*2*

12、10-6=1*10-3, 即(216-X)=500,X=65036 X=FE0CH=1111111000001100B 则TH0=0FEH,TL0=0CH,2019年7月16日星期二,(2)初始化程序: 对定时器初始化和中断初始化 即对IP,IE,TCON,TMOD的相应位设置,并将计 数初值装入定时器.如: TMOD=01H, 定时方式1 IP=00H,IE=92H,TCON=10H即ET0=1,EA=1, TR0=1,2019年7月16日星期二,ORG 0000H RESET : AJMP MAIN ORG 000BH AJMP IT0P ORG 0100H MAIN : MOV SP ,

13、 #60H MOV TMOD,#01H,方法一:中断方式,2019年7月16日星期二,ACALL PT0M0 HERE : AJMP HERE PT0M0 : MOV TL0 , #0CH MOV TH0 , #0FEH SETB TR0 SETB ET0 SETB EA SJMP $,IT0P : MOV TL0 , #0CH MOV TH0 , #0FEH CPL P1.0 RETI,2019年7月16日星期二,ORG 0000H MOV TMOD,#01H LOOP: MOV TH0,#0FE MOV TL0,#0CH SETB TR0,LOOP1: JNB TF0,LOOP1 CLR

14、TR0 CPL P1.0 SJMP LOOP,方法二:软件查询,2019年7月16日星期二,【例6.2】设MCS-51单片机系统时钟频率CLK为6MHZ,请编出利用定时/计数器T0在P1.0引脚上产生周期为2秒,占空比为50%的方波信号的程序 (1)主程序 任务: 1)T0工作方式的设定: 选择方式1(16位方式)(最大定时131ms) 2)定时常数的设定: TC=216-100ms/2s =15536=3CB0H 每隔100ms中断一次,中断10次为1s,2019年7月16日星期二,即:TH0应装3CH,TL0应装B0H。 3)中断管理: 允许T0中断,开放总中断 即:IE应装1000001

15、0B 4)启动定时器T0: SETB TR0 5)设置软件计数器初值:(如使用R7) 即R7应装0AH 6)动态停机:SJMP $,2019年7月16日星期二,MAIN: MOV TMOD,#01H ;设定T0为方式1 MOV TH0 ,#3CH ;装入定时常数高8位 MOV TL0 ,#0B0H ;装入定时常数低8位 MOV IE ,#82H ;开放T0中断 SETB TR0 ;启动T0 MOV R7 ,#0AH ;设置软件计数器 SJMP $,主程序,2019年7月16日星期二,任务: 1)恢复T0常数; 2)软件计数器减1; 3)判断软件计数器是否为0。为0时,改变P1.0状态,并恢复软件计数器初值;不为0时中断返回。,(2)中断服务程序,2019年7月16日星期二,TOINT: MOV TL0,#0B0H ;恢复定时常数 MOV TH0,#3CH DJNZ R7, NEXT CPL P1.0 MOV R7,#0AH NEXT: RETI,中断服务程序,2019年7月16日星期二,ORG 0000H MOV TH0,#3CH AJMP MAIN MOV TL0,#0B0H ORG 000BH MOV IE,#82H AJMP TOINT SETB TR0 ORG 0030

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

当前位置:首页 > 大杂烩/其它

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