主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用

Slides:



Advertisements
Similar presentations
单片机技术及应用 河南信息工程学校 电子工程系.
Advertisements

第5章 中断系统 5.1 中断的概述  5.2 AT89C51中断系统 5.3 中断系统的应用.
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
实验四 利用中规模芯片设计时序电路(二).
第4章 中断系统和定时/计数器 本章学习目标 : 理解中断概念,能正确描绘单片机中断响应过程
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
单片机应用技术 项目二 电子打铃装置 第4讲 单片机的定时器/ 计数器 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
单片机原理与应用.
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
第5章 定时计数技术 单片机控制系统中常常用到的定时与计数问题。 5.1 定时计数概述 5.2 MCS-51单片机的定时计数器.
6.1 中断系统和外中断 6.2 定时器/计数器 6.3 串行通信 本章小结.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第6章 定时器/计数器 (课时:8学时).
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
第2章 单片机的结构原理与 简单应用 (课时:10学时).
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第七章 定时/计数器.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
CPU结构和功能.
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第五章 MCS-51中断与定时系统.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
中 断 王 静 阜阳师范学院 计算机与信息工程学院.
数码管数字时钟电路的设计 1. 系统硬件电路的设计
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
微机系统的组成.
模块6 S7-200 PLC基本逻辑指令 项目 6.2 电动机Y-减压起动控制设计 项目 6.2 电动机Y-减压起动控制设计
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
5.2.3 中断请求的响应、撤除及返回 1.中断的响应 从前面介绍的中断允许控制寄存器IE中可看出,一个中断源发出请求后是否被CPU响应,首先必须得到IE寄存器的允许,即开中断。如果不置位IE寄存器中的相应允许控制位,则所有中断请求都不能得到CPU的响应。 在中断请求被允许的情况下,某中断请求被CPU响应还要受下列条件的影响。
微机原理与接口技术 西安邮电大学计算机学院 杨锐.
第三章 MCS 51的硬件结构.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月04日.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
长春理工大学 电工电子实验教学中心 数字电路实验 数字电路实验室.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
5. 1 中 断 概 述 单片机接通电源后将循环执行我们编制好的程序(一般称为主程序),当有外部设备或内部部件要求CPU为其服务时,计算机将被迫“中断”主程序的执行,并记录下暂停处程序地址(断点地址),然后转去为外部设备服务,即执行中断服务程序;在中断程序执行完毕后自动返回被迫中断主程序的地址,继续执行原主程序。
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
第7章 定时/计数器 教学目的:了解80C51系列单片机内部定时器/计数器的结构与工作原理;能够采用查询方式对定时器/计数器的4种工作模式编程、应用。 教学重点:1. 定时/计数器的工作原理; 2. 定时器方式1、2的编程、应用。 教学难点:1.定时/计数器控制寄存器的设置 2.定时初值的设置.
第4章 定时器与计数器 本章内容 定时器/计数器工作原理 定时器/计数器的工作方式 定时器/计数器的应用.
HSC高速输出例程 HORNER APG.
单片机应用技术 (C语言版) 第7章 定时器/计数器
定时中断与LED MCU起航 QQ:
6.1 定时器/计数器的结构及工作原理 定时器/计数器的结构 定时器/计数器T0、T1的逻辑结构如图6-1所示。
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
单片机应用技术 (C语言版) 第6章 中断系统.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
信号发生电路 -非正弦波发生电路.
上节复习(11.14) 1、方式2、方式0的特点? 2、定时/计数器的编程要点? 3、实验5方案优化问题.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第5章 80C51单片机的中断与定时 教学基本要求: (1)、了解单片机系统有关中断的概念; (2)、了解单片机定时器/计数器的功能;
第1章 微型计算机基础.
Presentation transcript:

主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用 第5章 MCS-51 单片机定时器/计数器 主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用

5.1 概述 (1) 定时器/计数器的概念 (2) MCS-51的定时器/计数器简介 2个16位的定时/计数器,有多种工作方式。 (1) 定时器/计数器的概念 定时器 计数器 定时/计数器 内部计数器 外部计数器 (2) MCS-51的定时器/计数器简介 2个16位的定时/计数器,有多种工作方式。 定时/计数器工作在定时模式时,计数脉冲信号来自单片机的内部,计数速率是晶振频率的1/12,当计数器启动后,每个机器周期计数器自动加1。 定时/计数器工作在计数模式时,计数器对外部脉冲进行计数,计数器计P3.4(T0脚)P3.5(T1脚)负跳变次数。每产生一次负跳变,计数器自动加1。

5.1 概述 MCS-51定时器/计数器的逻辑结构

5.2 定时器/计数器的工作方式选择及控制 (一) 定时/计数器的工作方式寄存器(TMOD, 89H ) GATE M0 C/T M1 D0 定时/计数器工作方式 定时器和计数器模式选择 门控位 定时/计数器T0 定时/计数器T1

5.2 定时器/计数器的工作方式选择及控制 5.2 定时器/计数器的工作方式选择及控制 (一) 定时/计数器的工作方式寄存器(TMOD, 89H ) (一) 定时/计数器的工作方式寄存器(TMOD, 89H ) TMOD各位的定义(以定时器/计数器T0为例) M1 M0 说 明 0 0 13位定时器/计数器,由TL0低五位和TH0高八位组成 工作方式 0 1 1 16位定时器/计数器,由TL0低八位和TH0高八位组成 1 0 2 8位定时器/计数器,由TL0低八位组成 1 1 3 TL0低八位和TH0高八位分别位8位定时器/计数器 定时器和计数器模式选择位 =0,定时器模式,每一个机器周期计数器自动加1。 =1,计数器模式,在单片机T0引脚上每发生一次负跳变,计数器自动加1。 GATE=0,定时/计数器工作不受外部控制。 GATE=1,定时/计数器T0的起停受INT0引脚的控制。

5.2 定时器/计数器的工作方式选择及控制 (二) 定时/计数器控制寄存器(TCON) 控制定时/计数器的起停,反映定时/计数器是否计满。 TF1 TF0 IE1 TR1 IT0 IT1 IE0 TR0 定时器/计数器1 的溢出标志 TCON D0 D1 D2 D3 D4 D5 D6 D7 定时器/计数器0 的起停控制位 TR0 =1 启动定时/计数器T0 TR0 =0 定时/计数器T0停止计数 TR1 =1 启动定时/计数器T1 TR1 =0 定时/计数器T1停止计数

5.2 定时器/计数器的工作方式选择及控制 (二) 定时/计数器控制寄存器(TCON) 单片机复位时,特殊功能寄存器TCON被清0。 TFx(x=0,1)和TRx(x=0,1)由软件方法置1或清0。既可按单元操作的方式,也可以按位操作方式。如启动定时/计数器T0和T1,清除溢出标志位TF0和TF1操作如下: SETB TR0 SETB TR1 CLR TF0 CLR TF1 或: MOV TCON, #01010000B

5.2 定时器/计数器的工作方式选择及控制 (二) 定时/计数器控制寄存器(TCON) 注意:使用定时器/计数器时应注意以下几个方面: (1)MCS-51的定时器/计数器为加1计数器。 (2)定时器/计数器T1的工作方式没有方式3,如果设置它为方式3(M1M0=11),定时器/计数器T1停止工作。 (3)一般情况下,定时器/计数器T1溢出后,TF1自动置1,可以以此为判断标志,检测定时或计数是否完成,但在定时器/计数器T0设置为方式3时, TF1为1时意味着8位计数器TH0溢出,TF0为1表示8位计数器TL0溢出。 (4)在计数器模式时,计数脉冲的频率不高于振荡器频率的1/24.

5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 定时器/计数器T0工作方式0的逻辑结构 计数器的高八位 计数器的低五位 5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 定时器/计数器T0工作方式0的逻辑结构 计数器的低五位 计数器的高八位 TH0 TL0

5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 当GATE=0时,只要TR0为1,TL0及TH0组成的13位计数器就开始计数; 当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,13位计数器开始计数。 计数器开始工作时,当13位计数器从初始值开始加1计数,当13位计数器各位全1以后,再计数1次,计数器就产生溢出,则TF0位由硬件自动置1,同时把计数器清0。 在方式0下,计数器计数范围是1~8192(213)。定时时间范围为1~8192个机器周期。

5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 在工程设计时,经常碰到的是这样的问题:要求在计数次或者定时(延时)秒后,再进行下一步的动作。如果采用定时/计数器实现,最直接的方法是让定时/计数器计数次或者定时秒后溢出,溢出标志TF0(或TF1)提供了测试判断条件。然而,计数器只有在计满后才会溢出,上述问题转换为在某个初始值的基础上再计N次或再定时t秒使定时/计数器溢出。因此,求初始值是解决上述问题的关键。

5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 (1)计数器工作模式 计数N次,要求计数器溢出,设初始值为 ,则: , 5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 (1)计数器工作模式 计数N次,要求计数器溢出,设初始值为 ,则: , 那么, 预先给计数器装入初始值 ,当计数器计数 次后,溢出标志TF0为1。

5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 (2)定时器模式 定时td,要求计数器溢出。 5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0 (2)定时器模式 定时td,要求计数器溢出。 首先计算定时td需要多少个机器周期, 即 : 设初始值为X, 则: , 预先给计数器装入初始值,当计数器计个机器周 期后,溢出标志TF0为1,定时时间到。

5.3 定时器/计数器的工作方式及工作原理 5.3.2 方式1 定时器/计数器T0工作方式1的逻辑结构

5.3 定时器/计数器的工作方式及工作原理 5.3.2 方式1 当GATE=0时,只要TR0为1,TL0及TH0组成的16位计数器就开始计数; 当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,16位计数器开始计数。 计数器开始工作时,当16位计数器从初始值开始加1计数,当16位计数器各位全1以后,再计1次,计数器就产生溢出,则硬件自动把TF0位置1,同时把计数器清0。

5.3 定时器/计数器的工作方式及工作原理 5.3.2 方式1 (1)计数器工作模式 计数N次,要求计数器溢出,设初始值为X,则: , 5.3 定时器/计数器的工作方式及工作原理 5.3.2 方式1 (1)计数器工作模式 计数N次,要求计数器溢出,设初始值为X,则: , 那么, 预先给计数器装入初始值 ,当计数器计数N次后,溢出标志TF0为1。

5.3 定时器/计数器的工作方式及工作原理 5.3.2 方式1 (2)定时器工作模式 5.3 定时器/计数器的工作方式及工作原理 5.3.2 方式1 (2)定时器工作模式 定时td秒,要求计数器溢出。首先计算定时td需要多少个机器周期才能实现,即: 设初始值为X,则: ,那么, 。 预先给计数器装入初始值 ,当计数器计N个机器周期后,溢出标志TF0为1,定时时间到。 方式1时,定时/计数器的最大计数次数为65536(初始值为0),最大定时时间为65536TM(初始值为0)。

5.3 定时器/计数器的工作方式及工作原理 5.3.3 方式2 定时器/计数器0在工作方式2的逻辑结构

5.3 定时器/计数器的工作方式及工作原理 5.3.3 方式2 当GATE=0时,只要TR0为1,计数器TL0开始计数; 5.3 定时器/计数器的工作方式及工作原理 5.3.3 方式2 当GATE=0时,只要TR0为1,计数器TL0开始计数; 当GATE=1时,仅当TR0为1,且引脚输入信号状态为1时,计数器TL0开始计数。 计数器开始工作时,当8位计数器TL0从初始值开始加1计数,当计数器各位全“1”以后,再计1次,计数器产生溢出,则TF0位由硬件自动置1,同时把TH0的内容装载到TL0。

5.3 定时器/计数器的工作方式及工作原理 5.3.3 方式2 (1)计数器工作模式 计数N次,要求计数器溢出,设初始值为X,则: , 5.3 定时器/计数器的工作方式及工作原理 5.3.3 方式2 (1)计数器工作模式 计数N次,要求计数器溢出,设初始值为X,则: , 那么, 预先给计数器装入初始值 ,当计数器计数N次后,溢出标志TF0为1。

5.3 定时器/计数器的工作方式及工作原理 5.3.3 方式2 (2)定时器工作模式 5.3 定时器/计数器的工作方式及工作原理 5.3.3 方式2 (2)定时器工作模式 定时td秒,要求计数器溢出。首先计算定时td需 要多少个机器周期才能实现,即: 。设初始值为X,则: ,那么, 。 预先给计数器装入初始值 ,当计数器计N 个机器周期后,溢出标志TF0为1,定时时间到。 方式2时,定时/计数器的最大计数次数为256(初始值为0),最大定时时间为256TM(初始值为0)。

5.3 定时器/计数器的工作方式及工作原理 5.3.4 方式3 当M1M0设置为11时,定时/计数器T0的工作方式为方式3。只有定时/计数器T0有方式3,定时/计数器T1没有工作方式3,如果把T1设置为方式3,计数器将停止工作。 在工作方式3下,定时器/计数器T0被拆分成2个独立的8位计数器TL0和TH0。

5.3 定时器/计数器的工作方式及工作原理 5.3.4 方式3 TL0定时/计数器逻辑结构 定时器/计数器T0工作方式3的逻辑结构

5.3 定时器/计数器的工作方式及工作原理 5.3.4 方式3 TH0定时/计数器逻辑结构 定时器/计数器T0工作方式3的逻辑结构

5.4 定时器/计数器的编程应用举例 5.4.1 定时器/计数器初始化 5.4 定时器/计数器的编程应用举例 5.4.1 定时器/计数器初始化 定时/计数器的初始化包括设置工作方式、计数器或定时器模式、计算计数初始值、启动定时/计数器、设置中断控制位等。 定时和计数可以采用查询方式和中断方式实现。

5.4 定时器/计数器的编程应用举例 5.4.1 定时器/计数器初始化 (一)采用查询方式实现定时和计数 5.4 定时器/计数器的编程应用举例 5.4.1 定时器/计数器初始化 (一)采用查询方式实现定时和计数 (1)确定工作方式、计数器或定时器模式及启动控制方式,构造方式控制码并写入特殊功能寄存器TMOD:MOV TMOD, #控制码。 (2)计算定时器或计数器的计数初始值,根据工作方式把初始值送人TH0、TL0或TH1、TL1。 (3)启动定时/计数器:SETB TRx,x=0,1。 定时/计数器开始工作,通过查询TFx是否为1来判断定时或计数是否达到要求。

5.4 定时器/计数器的编程应用举例 5.4.1 定时器/计数器初始化 (二)采用中断方式实现定时和计数 5.4 定时器/计数器的编程应用举例 5.4.1 定时器/计数器初始化 (二)采用中断方式实现定时和计数 (1)确定工作方式、计数器或定时器模式及启动控制方式,构造控制码并写入特殊功能寄存器TMOD。 (2)计算定时器或计数器的计数初始值,根据工作方式把初始值送人TH0、TL0或TH1、TL1。 (3)开放CPU中断,允许定时/计数器溢出中断CPU的工作:对IE寄存器编程。 (4)启动定时/计数器:SETB TRx,x=0,1。 当计数器溢出时,定时或计数达到要求,CPU响应中断,程序转移到相应的中断处理程序入口处。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 定时/计数器有多种工作方式,每一种工作方式都能提供定时和计数功能,我们在应用中如何选择合适的工作方式呢? (1)掌握每种工作方式下定时/计数器的工作原理和特点。 (2)了解每种工作方式下定时/计数器的最大计数次数和最大定时时间。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 13位定时/计数器(方式0)最大计数次数为8192,当晶振频率12MHz时,最大定时时间为8.192 ms。 16位定时/计数器(方式1)最大计数次数为65536,当晶振频率12MHz时,最大定时时间为65.536 ms。 8位定时/计数器(方式2和方式3)最大计数次数为256,当晶振频率12MHz时,最大定时时间为0.256 ms。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式用 控制系统原理

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式用 5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式用 例1:已知某生产线传送带上产品单向传送到包装机,传送带上的产品之间有间隔,使用光电开关检测的产品个数,每计数到12个产品时,由气缸驱动的顶推装置把这批产品推入包装机包装,顶推装置的顶推气缸动作响应时间为50ms。系统采用单片机控制,采用定时/计数器实现产品计数。

查询方式程序流程图(方式0、1、3)

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式应用(分别用方式0、1、3实现) 5.4 定时器/计数器的编程应用举例 (一)计数器方式应用(分别用方式0、1、3实现) 5.4.2 定时器/计数器应用 解:(1)计数采用定时/计数器T1的方式0,则方式控制字为: 即:(TMOD)= 01000000B。 (2)期望计数的次数为12次,方式0实现计数, 则计数初始值为: 则(TH1)=11111111B,(TL1)=00010100B。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (3)查询方式程序: (一) 计数器方式用(分别用方式0、1、3实现) 5.4 定时器/计数器的编程应用举例 (一) 计数器方式用(分别用方式0、1、3实现) 5.4.2 定时器/计数器应用 (3)查询方式程序: CLR P1.0 ;顶推气缸复位 MOV TMOD, #01000000B ;设置工作方式0和计数器模式 MOV TH1, #11111111B ;设置计数初始值高8位 MOV TL1, #00010100B ;设置计数初始值低5位 SETB TR1 ;计数器启动 CNTING: JBC TF1, OK ;检测是否溢出,若溢出,清溢出标志 SJMP CNTING ;等待,计数 OK: MOV TH1, #11111111B ;重新装入计数常数值,以便下一 ;个计数循环同样计数12次溢出 MOV TL1, #00010100B

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式应用(分别用方式0、1、3实现) (3)查询方式程序: 5.4 定时器/计数器的编程应用举例 (一)计数器方式应用(分别用方式0、1、3实现) 5.4.2 定时器/计数器应用 (3)查询方式程序: SETB P1.0 ;顶推气缸动作 ACALL DL50MS ;控制信号保持50ms,以便气缸动作到位 CLR P1.0 ;顶推气缸复位 SJMP CNTING ;延时50ms子程序,晶振频率为12M Hz DL50MS:MOV R7, #50 DL1MS: MOV R6, #200 DL: NOP NOP DJNZ R6, DL DJNZ R7, DL1MS RET

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式应用(分别用方式0、1、3实现) (4)中断方式编程 5.4 定时器/计数器的编程应用举例 (一)计数器方式应用(分别用方式0、1、3实现) 5.4.2 定时器/计数器应用 (4)中断方式编程 1)初始化: 定时器\计数器工作方式: TMOD 计数器初始值:THx、TLx 开放CPU中断:EA 允许定时器/计数器溢出中断 :ETx 启动:TRx

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式应用(分别用方式0、1、3实现) 5.4 定时器/计数器的编程应用举例 (一)计数器方式应用(分别用方式0、1、3实现) 5.4.2 定时器/计数器应用 2)中断处理程序(一个优先级) 保护现场 重装计数初值 中断处理 恢复现场 中断返回 (高低优先级时,高优先级中断处理程序) 关中断 保护现场 开中断 重装计数初值 中断处理 恢复现场 中断返回

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式应用(分别用方式0、1、3实现) 中断方式程序 5.4 定时器/计数器的编程应用举例 (一)计数器方式应用(分别用方式0、1、3实现) 5.4.2 定时器/计数器应用 中断方式程序 ORG 0000H LJMP MAIN ORG 001BH LJMP P_T1 ORG 0030H MAIN: MOV SP,#60H CLR P1.0 ;顶推气缸复位 MOV TMOD, #01000000B ;设置工作方式0和计数器模式 MOV TH1, #11111111B ;设置计数初始值高8位 MOV TL1, #00010100B ;设置计数初始值低5位 SETB TR1 SETB EA SETB ET1 HERE: NOP NOP LJMP HERE

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (一)计数器方式应用(分别用方式0、1、3实现) 5.4 定时器/计数器的编程应用举例 (一)计数器方式应用(分别用方式0、1、3实现) 5.4.2 定时器/计数器应用 中断处理程序: P_T1: PUSH PSW PUSH ACC MOV TH1, #11111111B ;重新装入计数常数值, MOV TL1, #00010100B SETB P1.0 ;顶推气缸动作 ACALL DL50MS ;控制信号保持50ms, CLR P1.0 ;顶推气缸复位 POP ACC POP PSW RET

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (二)定时器方式应用(方式0、1、3) 5.4 定时器/计数器的编程应用举例 (二)定时器方式应用(方式0、1、3) 5.4.2 定时器/计数器应用 例2:设单片机应用系统晶振频率为6MHz,使用定时 器T0以方式0产生频率为500Hz的等宽方波连续脉冲,并从P1.0输出。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (二)定时器方式应用(方式0、1、3) 5.4 定时器/计数器的编程应用举例 (二)定时器方式应用(方式0、1、3) 5.4.2 定时器/计数器应用 解:等宽方波的高低电平持续时间相同,占空比为1:1。500Hz的等宽方波脉冲信号的周期为2ms,只需在P1.0引脚输出持续时间为1ms的高低电平交替变化的信号即可,则定时时间应为td=1ms。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (二)定时器方式的应用(方式0、1、3) (1)计算计数初始值 5.4 定时器/计数器的编程应用举例 (二)定时器方式的应用(方式0、1、3) 5.4.2 定时器/计数器应用 (1)计算计数初始值 因为系统的晶振频率为 ,则机器周期 。设计数初始值为X: 则(TH0)=11110000B=0F0H,(TL0)=00001100B=0CH (2)设置工作方式 方式0:M1M0=00; 定时器模式: ; 定时/计数器启动不受外部控制: GATE=0; 因此,(TMOD)=00H。

查询方式程序流程图(方式0、1、3)

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (二)定时器方式的应用(方式0、1、3) 查询方式编程 中断方式编程 5.4 定时器/计数器的编程应用举例 (二)定时器方式的应用(方式0、1、3) 5.4.2 定时器/计数器应用 查询方式编程 中断方式编程 总结: 定时器和计数器本质是一样的,它们都是计数器,计数器是计外部信号,定时器是计机器周期,它们的编程流程是一样的

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (三)定时器/计数器方式2的应用 计数器编程 定时器编程 总结: 5.4 定时器/计数器的编程应用举例 (三)定时器/计数器方式2的应用 5.4.2 定时器/计数器应用 计数器编程 定时器编程 总结: 定时器/计数器方式2与其它方式不同的是,在计数器溢出后,THx的内容被自动装载到TLx中,因此,无需再装入计数初值。

查询方式程序流程图(方式2)

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 (例程1)单片机应用系统的晶振频率为6M Hz,使用定时/计数器定时方法在P1.0引脚输出周期为100ms占空比1 : 4的信号序列。 P1.0引脚输出的信号序列

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 解:以20ms为一个基本定时单位,高电平保持1个基本定时单位之后,P1.0变为低电平,保持4个基本定时单位,然后,P1.0再次改变为高电平,周而复始地重复上述过程,就可以实现题目要求的信号序列。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (1)计算计数初始值 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 (1)计算计数初始值 系统的晶振频率为fosc=6MHz,机器周期TM=2μs。选用定时/计数器T0的方式1实现,确定定时时间为td=20ms,设计数初始值为X: 则(TH0)=0D8H,(TL0)=0F0H。 (2)设置工作方式 方式1:M1M0=01;定时器模式: ; 定时/计数器启动不受外部控制:GATE=0; 因此,(TMOD)=01H。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 (例程2)利用定时/计数器T0测量INT0引脚(P3.2)上出现的正脉冲宽度,已知系统的晶振频率为12MHz,将所测得值高位存入片内71H,低位存入片内70H。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 解:当特殊功能寄存器TMOD中的GATE位为1时,MCS-51单片机的定时/计数器的启动和停止受外部信号的控制,T0受 INT0引脚(P3.2)电平的控制,T1受INT1引脚(P3.3)电平的控制。 测量引脚上出现的正脉冲宽度是一个定时/计数器T0受控制的定时方式,当 时,定时/计数器启动计数,当 时,停止计数。 脉冲宽度测量原理

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (1)设置工作方式 方式1:M1M0=01, 定时器模式: , 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 (1)设置工作方式 方式1:M1M0=01, 定时器模式: , 定时/计数器启动受外部控制:GATE=1, 因此,(TMOD)=09H (2)设置计数初始值 因为统计脉冲宽度,因此,计数器从0开始计数,(TH0)= 00H,(TL0)= 00H。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 (例程3):低频信号T0(P3.4)引脚输入,要求当T0(P3.4发生负跳变时,从P1.0引脚上输出1个500μs的同步脉冲。设系统的晶振频率为6M Hz。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 解:采用定时/计数器计数方式和定时方式结合的方法。 当P3.4引脚出现负跳变时,计数器溢出,此时,使P1.0引脚输出低电平,并且改变定时/计数器的工作方式为定时方式,使低电平保持500 μs (延时)。 当计数器再次溢出时,延时500 μs到,使P1.0引脚输出高电平,同时把定时/计数器的工作方式改变为计数方式,选用定时/计数器T0的方式2实现上述要求。

5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 同步脉冲输出原理

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 (1)外部事件计数的初始化 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 (1)外部事件计数的初始化 工作方式:M1M0=10,GATE=0,计数方式: ,则(TMOD)= 06H。 计数初始值:由于P3.4引脚上的信号,每发生一次负跳变,要求计数器溢出,所以,(TL0)= 0FFH,同时,令(TH0)= 0FFH,以便下一个负跳变出现时,计数器也可溢出。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 (2) 500 定时的初始化 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 (2) 500 定时的初始化 工作方式:M1M0=10,GATE=0,定时方式: ,则(TMOD)= 02H。 计数初始值计算: 系统晶振频率为6MHz,则机器周期为2,方式2时计数器为8位,则定时500 所需的机器周期个数为: 计数器初始值为: 因此,(TL0)= 06H,同时,令(TH0)= 06H

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 (例程4)设MCS-51单片机系统时钟频率为6MHZ,请利用定时/计数器产生1秒的定时。使指示灯以1秒为间隔闪烁。 解:MCS-51单片机的定时/计数器T0和T1作为定时/计数器使用时,所得到的定时时间比较短,当系统晶振频率为6MHz时,最长的延时时间约为131ms(方式1)。因此,直接由定时/计数器定时无法实现这么长时间的延时。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 方法一:采用2个定时/计数器联合使用的方案实现1秒 的定时。 首先采用定时/计数器T0以方式1产生100ms的定时,从P1.0引脚输出周期为200ms的连续方波信号。然后,把此信号作为定时/计数器T1的外部计数输入信号输入到引脚T1(P3.5),设置T1为计数模式,以方式2计数,T1计数5次即可实现1秒的定时。指示灯L由P1.2控制。

5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 产生1秒定时及指示灯驱动显示的原理

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 (1)工作方式: 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 (1)工作方式: 根据以上分析,设置T0定时器模式、方式1,T1为计数器模式、方式2,那么,TMOD特殊功能寄存器设置如下: 则:(TMOD)= 61H

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 (2)计数初始值计算 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 (2)计数初始值计算 单片机系统的晶振频率为6MHz,需要定时100ms,定时/计数器T0的计数初始值X1为: 转换为二进制数X1= 3CB0H。 对于定时/计数器T1来说,每计数5次需要计数器溢出,采用方式2时,计数初始值为: ,转换为二进制数。

5.4 定时器/计数器的编程应用举例 5.4.2 定时器/计数器应用 (四)定时器/计数器的综合应用 5.4 定时器/计数器的编程应用举例 (四)定时器/计数器的综合应用 5.4.2 定时器/计数器应用 方法二:采用定时/计数器T0以方式1定时100ms,定时/计数器T0溢出10次后,即可实现1秒的定时。 这种方法的优点在于节省了MCS-51单片机宝贵的定时/计数器资源,用存储单元作为计数器。当实现较长时间的延时时,延时时间为定时/计数器溢出次数乘以它的定时时间。

本章内容结束!