(单片机应用实例开发)实例四定时器计数器

上传人:au****y 文档编号:118789948 上传时间:2019-12-25 格式:PPT 页数:99 大小:1.74MB
返回 下载 相关 举报
(单片机应用实例开发)实例四定时器计数器_第1页
第1页 / 共99页
(单片机应用实例开发)实例四定时器计数器_第2页
第2页 / 共99页
(单片机应用实例开发)实例四定时器计数器_第3页
第3页 / 共99页
(单片机应用实例开发)实例四定时器计数器_第4页
第4页 / 共99页
(单片机应用实例开发)实例四定时器计数器_第5页
第5页 / 共99页
点击查看更多>>
资源描述

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

1、实例四 定时器/计数器 4.1 简易秒表的设计 4.2 简易计数器的设计 4.3 简易交通灯控制系统的设计 4.4 习题 实例四 定时器/计数器 实例四 定时器/计数器 学习目标 理解简易交通灯控制系统的电路构成、工作原理和电路 中各元器件的作用。 理解51单片机的计数器和定时中断,并正确使用。 正确使用MedWin软件和Proteus仿真软件。 正确理解RETI、RET,掌握中断服务程序设计的基本 方法。 工作任务 设计与制作简易秒表。 设计与制作简易计数器。 设计与制作简易交通灯控制系统。 实例四 定时器/计数器 4.1 简易秒表的设计 学习目标 理解定时器的工作原理和内部结构中各元件的作

2、用 。 正确计算定时时间、定时初始值、计数次数等参数 。 正确使用MedWin软件和Proteus仿真软件。 工作任务 设计与制作简易秒表。 实例四 定时器/计数器 经过前面知识的学习,我们掌握了单片机的一些基本应用。设计中 所需的延时都是用软件延时的方法实现的,占用了CPU大量的时间,使 CPU的效率低下,如果将来设计要求需要单片机系统能“同时”完成很多 任务,这时还让CPU花费大量时间来做一些无谓的延时就不现实了,所 以我们希望有一种机构能代替CPU来实现延时的控制。MCS-51单片机内 设置了两个16位的可编程定时器/计数器,它可以在CPU给出具体要求后 独立完成延时工作,而且它还具有计

3、数的功能,可以用作计数器,这样 就可以很方便地解决很多问题,大大提高CPU的工作效率。生活中我们 经常会遇到需定时或计数的场合。例如,午休时间不太长,为了防止睡 过头我们会设置好闹钟再睡;啤酒厂打包生产线上要求每10瓶啤酒装箱 ,这就要数出来,靠人工来操作既耗劳力又费工时。这样的例子生活中 还有很多,这些问题都可以通过MCS-51单片机的定时器/计数器轻松解决 。现在,我们先来学习MCS-51单片机内的定时器/计数器是如何工作的。 实例四 定时器/计数器 1定时器/计数器的认识 1) 计数概念的引入 很早以前,我们的祖先就开始用计绳结的方法来计数。生 活中我们经常要计量一些物件,用什么方法计数

4、更方便呢?用 什么工具更省力呢?人们根据不断的试验总结出很多实用的计 数方法,例如一般对选票的统计我们会通过画“正”字来计数, 仓库点货通常会使用贴标签的方法。计数用的工具也不断发展 ,从最初用绳结、贝壳、石块进行简单的计数到使用可快速运 算的算盘,再到运算能力很强的计算器,再到处理能力极强的 计算机,计数工具的飞速发展给人们带来了不可估量的价值。 MCS-51单片机内的计数器是一种能自动记录数目的仪器,也 是一种计数工具,而且这个计数工具是可编程的。也就是说, 我们可以通过不同的指令控制它实现各种计数功能。 实例四 定时器/计数器 2) 计数器的容量 任何计数器都有一定的容量限制。例如我们用

5、容量为250 mL的杯子来盛水,那么这个杯子就只能盛250 mL的水。MCS- 51单片机中的计数器也有容量,其容量有多大呢?MCS-51单 片机中的计数器是16位的,因此最大计数容量为216(65 536)。 3) 溢出 我们用杯子接水时,最后总会有一滴水使杯中的水装满到 极限,这时如果再有一滴水落下,水就会满出来,用术语来讲 就是“溢出”。MCS-51单片机中的计数器也会产生溢出现象。 MCS-51单片机中的计数器是加1计数器,当其累加到最大计数 容量时,再加1一次就会溢出,同时产生溢出标志(TF0或TF1变 为“1”)。 实例四 定时器/计数器 4) 定时概念的引入 MCS-51单片机中

6、的计数器除了可以用于计数外,还可以 用于定时,为什么呢?下面我们来仔细看看日常用的时钟(指 针式)的工作原理。时钟的秒针每走动一次的时间定为1秒,走 动60次则为1分钟,走动3600次则为1小时。反过来,我们预先 规定秒针走动的次数,例如3600次,当秒针走完了规定的次数 我们就知道时间过了1小时,这就是时钟的定时原理。MCS-51 单片机的计数器的最大计数容量为65 536,如果每1微秒(1秒 =106微秒)计数一次,则当计数器从“0”计数到“65 535”时,总 共计数了65 536次,需要65 536微秒,所以可以用于实现65 536 微秒的定时。 实例四 定时器/计数器 所以,MCS-

7、51单片机将定时器和计数器合二为一,计数 器记录的是外界发生的事情,而定时器则由单片机提供一个非 常稳定的时钟源。 要点:书看到这里,读者可能会问,前面不是已经介绍了 用软件延时的方法吗?现在又用定时器来定时,它们有什么区 别呢?它们最大的区别就在于:首先,采用软件延时占用CPU 的时间,而采用定时器定时可以不占用CPU的时间;其次采用 定时器定时比采用软件延时精度高,修改更方便。 实例四 定时器/计数器 2定时器/计数器的结构 我们刚刚认识了MCS-51单片机中的定时器/计数器的用途 ,那么怎样才能让它们为我们工作呢?为了解决这个问题,下 面先来看看MCS-51单片机定时器/计数器的结构。M

8、CS-51单片 机定时器/计数器的结构框图如图4-1所示。 实例四 定时器/计数器 图4-1 定时器/计数器的结构框图 实例四 定时器/计数器 MCS-51单片机内部设置了两个16位可编程的定时器/计数 器T0和T1,它们具有定时和计数两种工作模式以及03四种工 作方式,用户可通过软件对相应的控制寄存器TCON和TMOD 编程来选择合适的工作模式和工作方式。定时器/计数器T0由 TL0、TH0构成,定时器/计数器T1由TL1、TH1构成。TCON和 TMOD都是特殊功能寄存器,系统复位时,寄存器的所有位都 被清零。 实例四 定时器/计数器 1) 计数功能 所谓计数功能,就是单片机对外部事件进行

9、计数的功能。 外部事件的产生是以脉冲的形式输入单片机的,因此计数功能 的实质就是对外部脉冲进行计数。对MCS-51单片机来说,有 T0(P3.4)和T1(P3.5)两个信号引脚,分别是两个计数器的输入端 ,外部每输入1个脉冲(负跳变时有效),内部的计数器加1计数 一次。 实例四 定时器/计数器 2) 定时功能 定时功能也是通过计数器的计数来实现的,只不过这次的 计数脉冲不是外部的脉冲,而是来自单片机内部,每个机器周 期计数器加1计数一次。因为一个机器周期等于12个振荡周期 ,即计数频率为振荡频率的1/12,所以如果单片机采用12 MHz 的晶振,则机器周期为1 s,计数频率为1 MHz,也就是

10、每微 秒计数器加1计数一次。这样就可以很方便地根据计数次数计 算出定时时间,也可以倒过来根据定时时间要求计算出计数器 的初始值。 注意:单片机系统选用的晶振不同,工作的机器周期就不 同。 实例四 定时器/计数器 3) 工作方式寄存器TMOD 在单片机中有两个特殊功能寄存器与定时/计数有关,即 TMOD和TCON。TMOD和TCON是寄存器的名称,我们在编 程时既可以直接用这个名称来指定它们,也可以直接用它们的 地址89H和88H来指定它们。下面我们先来认识一下TMOD。 TMOD用于控制T0和T1的工作模式和工作方式,其格式如图 4-2所示,它的高4位用于控制T1,低4位用于控制T0。 实例四

11、 定时器/计数器 图4-2 TMOD寄存器的格式 实例四 定时器/计数器 图4-3所示为定时器/计数器在工作方式0的逻辑结构框图, 图中X为0或1。TMOD各位的功能说明如下: (1) GATE选通控制位(门控位)。当设置GATE=0时, 只要用软件对TR0(或TR1)置“1”就可以启动定时器;当设置 GATE=1时,只有 (或 )引脚为“1”,且用软件对 TR0(或TR1)置“1”才可启动定时器工作。 (2) 定时工作方式/计数工作方式选择位。 当设置 时,设置为定时工作方式;当设置 时,设置为计数工作方式。 实例四 定时器/计数器 图4-3 定时器/计数器在工作方式0的逻辑结构框图 实例四

12、 定时器/计数器 (3) M1、M0工作方式控制位。M1、M0用于设置定时 器的工作方式,具体设置如表4-1所示。 实例四 定时器/计数器 要点:TMOD不能进行位寻址,只能用字节方式设置工作 方式。当只需改变某一个定时器/计数器时,应采用适当的方 式防止对另一个定时器/计数器工作方式的改变。比如,我们 只需改变T0的工作方式为用方式1计数时,可以先采用逻辑与 屏蔽要改变的定时器/计数器,再采用逻辑或设置新的工作方 式。具体指令为“ANL TMOD,#0F0H”和“ORL TMOD,#05H”。 实例四 定时器/计数器 4) 控制寄存器TCON TCON用于控制定时器的启动、停止,以及指示定时

13、器的 溢出和中断情况。其格式如图4-4所示。 图4-4 TCON寄存器的格式 实例四 定时器/计数器 从图4-4中我们可以看出,TCON也被分成两部分,高4位 用作定时器/计数器,低4位则用于中断。各位的定义如下: (1) TF1定时器/计数器T1的溢出标志位。当T1被启动 计数后,T1从初始值开始加“1”计数,最高位产生溢出时,置 TF1为“1”,并向CPU提出中断请求。当CPU响应时,由硬件清 零。TF1也可以由程序查询或清零。 实例四 定时器/计数器 (2) TR1定时器/计数器T1的运行控制位。该位由软件 置位和复位。当设置GATE =0 (TMOD的D3位) 时,TR1为“1” 表示

14、启动计数,TR1为“0”表示停止计数;当设置GATE=1时, 只有当TR1为“1”且 (P3.3引脚)为高电平时才可启动计 数,若TR1为“0”或 为低电平,则停止计数。 (3) TF0定时器/计数器T0的溢出标志位。TF0的意义 和使用方法同TF1类似。 (4) TR0定时器/计数器T0的运行控制位。该位由软件 置位和复位。TR0的意义和使用方法同TR1类似。 实例四 定时器/计数器 要点:TCON可以进行位寻址,其各位对应的位地址为 88H8FH (D0D7),所以对于定时器/计数器的运行控制位, 我们可以用指令SETB来置位以启动计数器/定时器计数,用指 令CLR来停止定时器/计数器的计

15、数,一切尽在自己的掌握中。 实例四 定时器/计数器 3定时器/计数器的初始值 从前面“定时器/计数器的认识”部分已经看到这样一种现象 ,我们有时需要定时器/计数器从某一个初始值开始计数,以 实现最终的定时时间或计数的需求。那么,怎样才能设置好定 时器/计数器的初始值呢?一般采用的方法如下: (1) 定时模式:初始值 = 最大值定时时间/Tcy (Tcy为机器 周期)。 (2) 计数模式:初始值 = 最大值计数值。 然后将初始值装入相应的定时器/计数器的寄存器中。 实例四 定时器/计数器 例如,设定时器/计数器T0为8位加1计数器,要求每隔100 s时间,发一次中断请求(设机器周期为2 s),选定时功能, 计数初值为28-100/2 = 206。 又如,设定时器/计数器T0为8位加1计数器,要求检测到 150个脉冲时,发一次中断请求 (设机器周期为1 s),选计数功 能,计数初值为28-150=106。 实例四 定时器/计数器 4定时器/计数器的四种工作方式 如上所述,定时器/计数器的工作方式是由TMOD的M1、 M0两位来控制的,而定时器/计数器的每种工作方式都各有特 点。下面就对定时器/计数器四种工作方式的具体工作情况进 行详

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

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

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