第5章 定时计数技术 单片机控制系统中常常用到的定时与计数问题。 5.1 定时计数概述 5.2 MCS-51单片机的定时计数器.

Slides:



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

5.1 中断的概述 5.2 MCS - 51中断系统 5.3 中断系统的应用
第5章 中断系统 5.1 中断的概述  5.2 AT89C51中断系统 5.3 中断系统的应用.
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
单片机应用技术 项目二 电子打铃装置 第4讲 单片机的定时器/ 计数器 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
邵阳学院 信息工程系电子实践教学中心 江世明
第四章 指令系统及汇编语言程序设计.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
单片机原理与应用.
第9章 数模转换器与模数转换器 本章学习目标 了解数模转换器的工作原理及性能指标 掌握模数转换器的应用 掌握数模转换器的应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
第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学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第七章 定时/计数器.
第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 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第五章 MCS-51中断与定时系统.
主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
数码管数字时钟电路的设计 1. 系统硬件电路的设计
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
第7章 定时/计数器 教学目的:了解80C51系列单片机内部定时器/计数器的结构与工作原理;能够采用查询方式对定时器/计数器的4种工作模式编程、应用。 教学重点:1. 定时/计数器的工作原理; 2. 定时器方式1、2的编程、应用。 教学难点:1.定时/计数器控制寄存器的设置 2.定时初值的设置.
第4章 定时器与计数器 本章内容 定时器/计数器工作原理 定时器/计数器的工作方式 定时器/计数器的应用.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机应用技术 (C语言版) 第7章 定时器/计数器
定时中断与LED MCU起航 QQ:
6.1 定时器/计数器的结构及工作原理 定时器/计数器的结构 定时器/计数器T0、T1的逻辑结构如图6-1所示。
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
上节复习(11.14) 1、方式2、方式0的特点? 2、定时/计数器的编程要点? 3、实验5方案优化问题.
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第1章 微型计算机基础.
Presentation transcript:

第5章 定时计数技术 单片机控制系统中常常用到的定时与计数问题。 5.1 定时计数概述 5.2 MCS-51单片机的定时计数器

5.1 定时/计数器概述 1、定时的定义: 定时是对周期固定、已知的脉冲计数。 2、计数的定义: 5.1 定时/计数器概述 1、定时的定义: 定时是对周期固定、已知的脉冲计数。 2、计数的定义: 计数是对外界产生的周期不固定的未知脉冲计数。计数器的计数方式可以是加1计数,也可以是减1计数。 3、定时/计数的实现方法: 定时/计数的实现方法有3种: ⑴ 硬件数字电路:用555构成的定时器和计数器等。 ⑵ 软件编程 ⑶ 可编程定时/计数器

软件编程 例:编制一个延时2mS的子程序。 D2MS: MOV R7,#2 D2MS0: MOV R6,#250 DJNZ R6,$ DJNZ R7,D2MS0 RET 例:统计开关按动次数,并存于30H单元。 MOV 30H,#0 UP: JB P1.0,$ JNB P1.0,$ INC 30H SJMP UP

可编程定时/计数器 有的控制系统是按时间间隔来进行控制的,如定时的温度检测等。虽然可以利用延迟程序来取得定时的效果,但这会降低CPU的工作效率。如果能用一个可编程的实时时钟,以实现定时或延时控制,则CPU不必通过等待来实现延时,就可以提高CPU的效率。 另外也有些控制是按计数的结果来进行的,因此在微机控制系统中常使用可编程的硬件定时/计数器。现在有很多专门用作定时/计数器的接口芯片。单片机内带有硬件定时/计数器可以 简化系统设计。 不论是独立的定时器芯片还是单片机内的定时器,都有以下特点: 1.定时/计数器可以有多种工作方式,可以是计数方式也可以是定时方式等等。 2.计数器模值是可变的,当然计数的最大值是有一定限制的,这取决于计数器的位数。计数的最大值也就限制了定时的最大值。 3.可以按照规定的定时或计数值,当定时的时间到或者计数终止时,发出中断申请,以便实现定时或计数控制。除了上述共同特点外,各种定时器还会有各自的特点,各自的工作方式和控制方式。

5.2 MCS51单片机内部的定时/计数器 5.2.1 定时/计数器结构 5.2.2 定时/计数器工作方式 5.2.3 定时/计数器应用

5.2.1 定时/计数器结构 + MCS51单片机内有2个独立的16位的可编程定时/计数器T0和T1。它们的结构相似。T0的结构如图所示: 5.2.1 定时/计数器结构 MCS51单片机内有2个独立的16位的可编程定时/计数器T0和T1。它们的结构相似。T0的结构如图所示: 振荡器 ÷12 C/T=0 加1计数器 TF0 T0 C/T=1 合/断 TR0 & GATE0 + INT0 TCON TMOD TH0 TL0 TH1 TL1

TMOD + 振荡器 ÷12 & TMOD:89H 只能按字节操作。 GATE1 C/T1 M11 M10 GATE1 C/T1 M11 C/T: 用来确定To(T1)是工作在计数方式还是工作在定时方式。C/T=0为定时方式,C/T=1为计数方式。即对外部引脚的外部输入脉冲计数。外部引脚上输入的每一个脉冲的负跳变使计数值加1,由于外输入脉冲的每个高、低电平持续时间各应大于一个机器周期,因此最小的计数周期为两个机器周期。例如,若单片机晶振频率为12MHZ,则外部计数脉冲的最高频率只能为500KHZ。 M1和M2: 两位用来确定To(T1)的具体工作模式。M1、M2的四种组合刚好与四种工作模式对应,分别是方式0、方式1、方式2、方式3。 GATE : 一般称为门控标志。它对定时/数器的启动起着控制作用。当GATE=1时,定时计数器的启动除了受TR控制外,还受INT引脚的控制。当TR=0且INT引脚上出现高电平时才能启动定时计数器。 振荡器 ÷12 C/T=0 加1计数器 TF0 T0 C/T=1 合/断 TR0 & GATE0 + INT0

TCON + TCON:88H 可以按字节操作,也可以按位操作。 振荡器 ÷12 & TF1 TR1 TF0 TR0 IE1 IT1 IE0 TF0: T0溢出中断标志位。当T0计数溢出时,TF0=1。在允许中断的情况下,CPU响应T0中断,转向T0中断服务程序,此时由硬件自动将TF0清0。该标志位可由软件查询,也可用软件清0或置1。 TR0:为T0启动控制位。当TR0=1时,启动T0;TR0=0时,关闭T0。该位由软件进行设置。 振荡器 ÷12 C/T=0 加1计数器 TF0 T0 C/T=1 合/断 TR0 & GATE0 + INT0

计数寄存器 + MCS-51单片机内部有两个16位的定时/计数器T0和T1。每个定时/计数器占用两个特殊功能寄存器: T0由TH0和TL0两个8位计数器组成,字节地址分别是8CH和8AH。 T1由TH1和TL1两个8位计数器组成,字节地址分别是8DH和8BH。 用于存放定时或计数的初值。当计数器工作时,其值随计数脉冲做加1变化。 振荡器 ÷12 C/T=0 加1计数器 TF0 T0 C/T=1 TH0 TL0 合/断 TR0 & GATE0 + INT0

5.2.2 定时/计数器的工作方式 由于T0由TL0(低8位)和TH0(高8位)组成;T1由TH和THl组成。所以T0、T1都是16位计数器。但是若将它们设置成不同的工作方式,其计数长度(最大值)和计数方式都可变化。内部定时/计数器一共有四种工作方式,由TMOD的相关位设置。 GATE1 C/T1 M11 M10 GATE1 C/T1 M11 M10 M1和M2: 两位用来确定To(T1)的具体工作模式。M1、M2的四种组合刚好与四种工作模式对应。定时/计数器工作模式如下: M1 M0 模式 说 明 0 0 方式0 13位定时/计数器(TH高8位加上TL中的低5位) 0 1 方式1 16位定时/计数器 1 0 方式2 自动重装初值的8位定时/计数器 1 1 方式3 模式3只针对T0,T0分成两个独立的8位定时/计数器;T1无模式3 方式0 方式1 方式2 方式3

方式0 在方式0下,T0构成一个13位的计数器,由TH0的8位和TL0的低5位组成,TL0的高3位未用,满计数值为213。 T0启动后立即加1计数,当TL0的低5位计数溢出时向TH0进位,TH0计数溢出则对相应的溢出标志位TF0置位,以此作为定时器溢出中断标志。当单片机进入中断服务程序时,由内部硬件自动清除该标志。 振荡器 ÷12 TL0 C/T=0 TF0 TH0 × × × D5 D4 D3 D2 D1 D0 T0 C/T=1 合/断 计数器 TR0 & GATE0 + INT0 当选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器输入端,只有当控制开关合上时,计数脉冲才能到达计数器输入端,开始加1计数。控制开关闭合的条件如下:① GATE=0时,开关的打开、合上取决于TR0,只要TR0是1,开关就合上,计数脉冲得以畅通无阻,而如果TR0等于0则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于TR0。②GATE=1时,控制开关不仅要由TR0来控制,而且还要受到引脚的控制,只有TR0为1,且INT0引脚也是高电平,开关才合上,计数脉冲才得以通过。

方式1 在方式1下,定时/计数器T0和T1的方式1都是相同的。以下仅以T0为例。 T0构成一个16位的计数器,由TH0的8位和TL0的8位组成,满计数值为216。 T0启动后立即加1计数,当TL0计数溢出时向TH0进位,TH0计数溢出则对相应的溢出标志位TF0置位,以此作为定时器溢出中断标志。当单片机进入中断服务程序时,由内部硬件自动清除该标志。 振荡器 ÷12 计数器 C/T=0 TF0 TH0 TL0 T0 C/T=1 合/断 TR0 & GATE0 + INT0

方式2 在方式2下,定时/计数器T0和T1的方式1都是相同的。以下仅以T0为例。 TH0和TL0被当作两个8位计数器,计数过程中,TH0寄存8位初值并保持不变,由TL0进行8位计数。当低8位计数溢出时,除了可产生中断申请外,还将TH0中保存的内容向TL0重新装人,以便于重新计数,而TH0中的初值仍然保留,以便下次再行对TL0进行重装。 方式2对于连续计数比较有利。这时不需要在溢出后用软件重新装入计数初值,而是可以自动装入,但此时计数的长度将受到很大的限制,只有28=256次。 振荡器 ÷12 计数器 C/T=0 TL0 TF0 T0 C/T=1 合/断 TH0 TR0 & GATE0 + INT0

方式3 + 方式3只适用于定时/计数器T0。这种工作方式下,定时/计数器T0被拆成2个独立的定时/计数器来用。 振荡器 ÷12 计数器 & ⑴若把T1置于方式3,则Tl停止计数,定时器T1保持其内容不变。所以,一般不会把T1置于方式3。 ⑵若把T0置于方式3,则16位计数器拆开为两个独立工作的8位计数器TL0和 TH0。但这两个8位计数器的工作是有差别的。 首先是工作方式的不同:①对TL0来说它既可以按计数方式工作,也可以按定时方式工作,②而TH0则只能按定时方式工作。 另外是控制方式的不同。 振荡器 ÷12 计数器 C/T=0 TL0 TF0 T0 C/T=1 合/断 TR0 & GATE0 + INT0 计数器 振荡器 ÷12 TH0 TF1 合/断 TR1 一般情况下,当定时/计数器T0处于工作方式3时,定时/计数器T1可工作为方式0、1、2,但由于此时其已没有控制通断和溢出中断的功能,T1只能作为串行口的波特率发生器使用,或不需要中断的场合。

5.2.3 定时/计数器的应用 MCS-51的定时/计数器是可编程的,因此,在进行定时或计数之前也要用对其进行初始化。初始化一般应包括以下几个步骤: 1、对TMOD寄存器赋值,以确定定时器的工作方式。 2.置定时/计数器初值,直接将初值写入寄存器的TH0,TL0或TH1,TLl。 3.根据需要,对寄存器IE置初值,开放定时器中断。 4.对TCON寄存器中的TRl或TR0置位,启动定时/计数器。启动以后,计数 器即按规定的工作方式和初值进行计数或开始定时。 例 1 例 2 例 3

定时/计数器初值 在初始化过程中,要置入定时值或计数值的初值,这时要作一些计算。方法如下: 设计数器的最大值为M(在不同的工作方式中,M可以为213,216或28),则置入的初值X可这样来计算: 计数方式时: X=M—计数模值 定时方式时: (M—X)·T=定时值,所以X=M—定时值/T。 其中T为计 数周期,它是单片机时钟周期的12倍。 当时钟周期为1/12MHZ时,计数周期为 1us。在这种情况下,若定时器工作在方式0,则最大定时值为 213·X ·1/12MHZs=8.192ms ;若工作在方式1,则最大定时值为216·X ·1/12MHZs=65.536ms 例 若单片机的频率为12MHz,请计算2ms所需要的定时器初值。 解:计数脉冲个数为2/0.001=2000 若方式0,则计数初值为:213-2000=6192=1830H TH0=18H,TL0=30H 若方式1,则计数初值为:216-2000=63536=F830H TH0=F8H,TL0=30H

例1 使P1.0输出一个周期为2mS的方波。 方法1:用延时程序实现1mS的延时。 方法3:用T0定时2mS,中断。 UP:SETB P1.0 LCALL D2MS CLR P1.0 SJMP UP 方法2:用T0定时2mS,查询TF0 ① 确定工作方式 方式0 ② 计算初值 E018H ③ 编程 MOV TMOD,#00H SETB TR0 LOOP: MOV TH0,#0E0H MOV TL0,#18H JNB TF0,$ CPL P1.0 CLR TF0 SJMP LOOP 方法3:用T0定时2mS,中断。 ORG 0000H LJMP MAIN ORG 000BH LJMP AT0 MAIN: MOV TMOD,#00H MOV TH0,#0E0H MOV TL0,#18H SETB EA SETB ET0 SETB TR0 SJMP $ AT0: MOV TMOD,#00H CPL P1.0 RETI

例2 使P1.1输出一个周期为2S的方波。 欲产生周期为2秒的方波,定时器T0必须能定时1秒,这个值已经超过了定时器的最大定时时间。为此,我们只有采用定时器定时和软件计数相结合的方法才能解决问题。 例如:我们可以在主程序中设定一个初值为20的软件计数器和使T0定时50ms。这样,每当T0定时到50ms时CPU就响应它的溢出中断请求,从而进入它的中断服务程序。在中断服务程序中,CPU先使软件计数器减1,然后判断它是否为零。若为零,则说明1S时间到,完成所需操作后返回主程序;若不为零,则说明1S时间未到,不进行任何操作,直接返回主程序。 ORG 0000H LJMP MAIN ORG 000BH LJMP AT0 MAIN: MOV TMOD,#01H MOV TH0,#0B1H MOV TL0,#0E0H MOV IE,#82H SETB TR0 MOV R7,#50 SJMP $ AT0: MOV TMOD,#00H MOV TH0,#0E0H DJNZ R7,AT1 CPL P1.0 MOV R7,#50 AT1: RETI

例3 分秒表 DISP1: CJNE R0,#01H,DISP2 MOV A,R3 MOVC A,@A+DPTR MOV P2,A 例3 分秒表 DISP1: CJNE R0,#01H,DISP2 MOV A,R3 MOVC A,@A+DPTR MOV P2,A CLR P3.0 AJMP DISPF DISP2: CJNE R0,#02H,DISP3 MOV A,R4 CLR P3.1 DISP3: CJNE R0,#03H,DISP4 MOV A,R5 CLR P3.6 DISP4: CJNE R0,#03H,DISPF MOV A,R6 CLR P3.7 DISPF:RETI tabt:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H,80H,98H ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 001BH AJMP DISP MAIN: MOV IE,#8AH MOV TMOD,#11H MOV SP,#70H MOV R3,#0 MOV R4,#0 MOV R5,#0 MOV R6,#0 MOV TL1,#30H MOV TH1,#0F8H MOV TL0,#0B0H MOV TH0,#3CH MOV R7,#20 SETB TR1 SETB TR0 MOV R0,#0 SJMP $ TIME: MOV TL0,#0B0H MOV TH0,#3CH DJNZ R7,TIMEF MOV R7,#20 INC R3 CJNE R3,#0AH,TIMEF MOV R3,#0 INC R4 CJNE R4,#06H,TIMEF MOV R4,#0 INC R5 CJNE R5,#0AH,TIMEF MOV R5,#0 INC R6 CJNE R6,#06H,TIMEF MOV R6,#0 TIMEF: RETI DISP: MOV TL1,#30H MOV TH1,#0F8H MOV DPTR,#TABT INC R0 MOV P3,#0FFH