单片机定时器与计数器

上传人:j****9 文档编号:54327343 上传时间:2018-09-11 格式:PPT 页数:81 大小:1.30MB
返回 下载 相关 举报
单片机定时器与计数器_第1页
第1页 / 共81页
单片机定时器与计数器_第2页
第2页 / 共81页
单片机定时器与计数器_第3页
第3页 / 共81页
单片机定时器与计数器_第4页
第4页 / 共81页
单片机定时器与计数器_第5页
第5页 / 共81页
点击查看更多>>
资源描述

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

1、单片机原理与接口技术,大连理工大学出版社,第6章 定时器/计数器,时间就是生命,第6章 定时器/计数器,6.1 定时器/计数器的计数与定时 6.2 定时器/计数器的控制 6.3 定时器/计数器的编程 6.4 定时器/计数器的工作方式 6.5 定时器/计数器的综合应用举例,第6章 定时器/计数器,定时器/计数器与CPU并行工作,实现定时/计数功能,并以定时/计数的结果对单片机系统进行控制。本章主要介绍MCS-51系列单片机定时器/计数器的控制方法、工作方式、简单应用。,6.1 定时器/计数器的计数与定时,MCS-51系列单片机定时器/计数器的功能是用以实现定时、计数,并以定时、计数的结果进行控制

2、。 8051内部有两个16位可编程的定时器/计数器T0和T1。T0(T1)由两个8位寄存器TH0(TH1)和TL0(TL1)拼装而成。其中TH0(TH1)为高8位,TL1(TH1)为低8位。 T0和T1有定时和计数两种工作模式。 图6-1是MCS-51系列单片机定时器/计数器的内部结构图。,6.1.1 计数,计数就是对来自单片机外部的事件进行计数,为了与请求中断的外部事件区分开,称此种外部事件为外部计数事件。外部计数事件由脉冲引入,单片机的P3.4(T0)和P3.5(T1)即为外部计数脉冲的输入端。所谓计数,就是对有效计数脉冲的计数。 注意:51系列单片机的两个定时器/计数器采用加法计数结构。

3、 单片机在每个机器周期对P3.4(T0)和P3.5(T1)进行采样,若在一个机器周期采样到高电平,在下一个机器周期采样到低电平,即得到一个有效的计数脉冲。计数寄存器在下一个机器周期自动加1。,6.1.2 定时,MCS-51系列单片机中的计数器除了可以作为计数之用外,还可以用作时钟完成定时功能。定时就是对来自单片机内部的计数脉冲进行计数。 注意:在定时模式下,51系列单片机的计数源是晶振的12分频产生的脉冲。 思考:定时模式下,晶振频率为12MHz时,计数脉冲的时间间隔为多少?,6.2.1定时方式寄存器TMOD,定时方式寄存器TMOD是单片机专门用来控制两个定时器/计数器的工作方式的寄存器。这个

4、寄存器的各位定义如下:,6.2.1定时方式寄存器TMOD,下面介绍与定时器/计数器T0相关的TMOD的低4位。 GATE门控位。由图6-2可以看出, GATE=0时,由TR0来启动定时/计数; GATE=1时,由TR0和(P3.2)共同启动定时/计数,只有当二者同时为1时才进行计数操作。定时/计数模式选择位。=0时,处于定时模式,内部计数脉冲是对晶振进行12分频产生的;=1时,处于计数模式,外部计数脉冲由T0(P3.4)引入。,6.2.1定时方式寄存器TMOD,M1、M0工作方式选择位。 M1、M0与定时器/计数器T0的四种工作方式有下面的对应关系:00工作方式001工作方式110工作方式21

5、1工作方式3,6.2.1定时方式寄存器TMOD,TMOD对定时器/计数器T1的控制与对T0的控制类似,此时,门控位GATE所控制的定时/计数启动由TR1和(P3.3)共同参与完成。 TMOD对定时器/计数器的控制由软件进行设定,大大提高了控制的灵活性。,6.2.2定时控制寄存器TCON,定时控制寄存器TCON既参与中断控制又参与定时控制。此处只对与定时控制功能有关的控制位进行回顾。,6.2.2定时控制寄存器TCON,TCON的高四位进行定时/计数控制 TF0(TCON.5)定时器/计数器T0的溢出中断标志位,当T0定时(或计数)结束时,由硬件自动置1。 TF1(TCON.7)定时器/计数器T1

6、的溢出中断标志位,当T1定时(或计数)结束时,由硬件自动置1。 TR0(TCON.4)定时器/计数器T0的启动停止控制位,由软件设定。TR0=0,停止T0定时(或计数);TR0=1,启动T0定时(或计数)。 TR1(TCON.6)定时器/计数器T1的启动停止控制位,由软件进行设定。TR1=0,停止T1定时(或计数);TR1=1,启动T1定时(或计数)。,6.2.3定时器/计数器工作原理,定时器/计数器工作原理如图6-2所示。,6.2.3定时器/计数器工作原理,当 =0时,为定时工作模式,计数脉冲是晶振的12分频。当 =1时,为计数工作模式,外部计数脉冲由Ti(P3.(i+4)引入。,6.2.3

7、定时器/计数器工作原理,当GATE=0时,或门输出为高电平,与引脚(P3.(2+i)无关。此时与门的输出仅由TRi决定。TRi=1,与门输出高电平,接通模拟控制开关,引入计数脉冲,进行定时/计数操作。TRi=0,与门输出低电平,断开模拟控制开关,定时/计数停止。,6.2.3定时器/计数器工作原理,当GATE=1时,或门的输出由引脚 (P3.(2+i)决定,因此与门的输出由TRi和引脚(P3.(2+i)共同决定。若TRi=1,而 (P3.(2+i)为高电平,则与门输出高电平,接通模拟控制开关,进行定时/计数;若TRi=1,而(P3.(2+i)为低电平,则定时/计数停止。,6.2.3定时器/计数器

8、工作原理,当模拟控制开关接通时,计数寄存器在计数脉冲的作用下进行增1计数,当计数溢出时向计数溢出标志位TFi进位。,6.3.1中断方式,定时器/计数器在中断方式下的编程步骤如下: (1)开中断 (2)设置中断优先级 (3)TMOD初始化 (4)设置定时/计数初值 (5)启动定时/计数 (6)编写定时/计数中断处理程序,6.3.2查询方式,定时器/计数器在查询方式下的编程步骤如下: (1)关中断 (2)TMOD初始化 (3)设置定时/计数初值 (4)启动定时/计数 (5)查询TFi及相关处理,6.4.1工作方式0,定时器/计数器T0和T1在方式0下的工作情况完全相同。此时的计数寄存器为13位,构

9、成如下:方式0下的计数溢出值为8192(213)。则: 计数次数=8192-计数初值 (公式6-1) 定时时间=(8192-计数初值)机器周期 (公式6-2),6.4 定时器/计数器的工作方式,6.4.1工作方式0,方式0没有充分利用16位计数寄存器的计数范围,这是为了与MCS-48系列单片机兼容。13位的计数寄存器的初始化有些烦琐,步骤如下: (1)由公式6-1和6-2计算出十进制的计数初值。 (2)若计数初值小于32(25),将其送入TLi,将0送入THi,完成计数寄存器初始化。 (3)若计数初值不小于32,先将其转化为二进制形式。补足13位后,将低5位送入TLi,将高8位送入THi,完成

10、计数寄存器初始化。,6.4.1工作方式0,【例6-1】 设fOSC=6MHz,定时器/计数器T0以工作方式0定时2ms,编写初始化程序。 说明:fOSC即为晶振频率。 首先计算计数初值。 根据公式6-2有: 定时时间=(8192-计数初值)12fOSC 计数初值=8192-定时时间fOSC/12=8192-20006MHz/12=7192=0E018H=11100000 11000B,6.4.1工作方式0,设置TMOD。对T0的工作方式进行选择,因此设置TMOD的低4位。 定时, 为0; 方式0,M1M0的组合为00; 与外部脉冲无关,GATE为0。初始化程序如下:MOV TMOD,#00H

11、;设置TMODMOV TH0,#0E0H ;设置计数初值MOV TL0,#18HSETB TR0 ;启动定时,6.4.1工作方式0,【例6-2】设fosc=6MHz,定时器/计数器1以工作方式0实现在P2口8个引脚产生频率为250Hz的等宽方波。 光盘提供Proteus仿真文件,运行仿真文件夹第6章LT6_2LT6_2.DSN ,观察运行结果,并进一步分析源程序。 图6-3 P2.X引脚输出的方波(仿真截图),6.4.1工作方式0,(1)首先计算定时时间。 方波频率为250Hz,则周期为4ms。即P2口8个引脚每2ms取反一次,定时时间为2ms。 (2)计算计数初值。 如例6-1所述,计数初值

12、为=0E018H=11100000 11000B (3)设置TMOD。对T1的工作方式进行选择,因此设置TMOD的高4位。,6.4.1工作方式0,定时, 为0; 方式0,M1M0的组合为00; 与外部脉冲无关,GATE为0。 (4)编制程序(中断方式)如下:ORG 0000HLJMP MAINORG 001BHAJMP SFT1ORG 0050H MAIN: MOV A,#00H,6.4.1工作方式0,SETB EA ;开中断SETB ET1MOV IP,#0 ;设置中断优先级MOV TMOD,#00H ;设置TMOD,T1工作;方式0,计时MOV TH1,#0E0H ;设置计数初值MOV T

13、L1,#18HSETB TR1 ;启动定时,6.4.1工作方式0,SJMP $ORG 0100H SFT1: MOV TH1,#0E0H ;重新设置计数初值MOV TL1,#18HCPL AMOV P2,ARETIEND 注意:由于一次计数溢出时计数寄存器的内容为0,在下次计数前需要重新为计数寄存器赋初值。,6.4.2.工作方式1,定时器/计数器T0和T1在方式0下的工作情况完全相同。此时的计数寄存器为16位,构成如下:方式1下的计数溢出值为65536(216)。则: 计数次数=65536-计数初值 (公式6-3) 定时时间=(65536-计数初值)机器周期(公式6-4),6.4.2.工作方式

14、1,方式1利用了全部16位计数寄存器的计数范围,计数寄存器的初始化步骤如下: (1)由公式6-3和6-4计算出十进制的计数初值。 (2)若计数初值小于256(28),将其送入TLi,将0送入THi,完成计数寄存器初始化。 (3)若计数初值不小于256,将其转化为十六进制形式,再将高低字节分别送入THi和TLi,完成计数寄存器初始化。,6.4.2.工作方式1,【例6-3】设fosc=12MHz,定时器/计数器0以工作方式1实现在P2口8个引脚产生频率为250Hz的等宽方波。 光盘提供Proteus仿真文件,运行仿真文件夹第6章LT6_3LT6_3.DSN ,观察运行结果,并进一步分析源程序。 图

15、6-4 P2.X引脚输出的方波(仿真截图),6.4.2.工作方式1,(1)首先计算定时时间。 方波频率为250Hz,则周期为4ms。 即P2口8个引脚每2ms取反一次,定时时间为2ms。 计算计数初值。根据公式6-4有: 定时时间=(65536-计数初值)12fOSC 计数初值=65536-定时时间fOSC/12=65536-200012MHz/12=63536=0F8 30H,6.4.2.工作方式1,(2)设置TMOD。对T0的工作方式进行选择,因此设置TMOD的低4位。 定时, 为0; 方式1,M1M0的组合为01; 与外部脉冲无关,GATE为0。 (3)编制程序(查询方式)如下: ORG 0000H AJMP MAIN,6.4.2.工作方式1,ORG 0050H MAIN: MOV A,#00HCLR EA ;关中断MOV TMOD,#01H ;设置TMOD,T0工作方;式1,计时MOV TH0,#0F8H ;设置计数初值MOV TL0,#30HSETB TR0 ;启动定时,6.4.2.工作方式1,WAIT: JNB TF0,WAIT CLR TF0 ;注意:将TF0软件清0MOV TH0,#0F8HMOV TL0,#30HCPL AMOV P2,ASJMP WAITEND,6.4.2.工作方式1,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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