46
6 6 第 第第第第第第第第第第第 第第第第第第第第第第6.1 MCS-51 6.1 MCS-51 第第第第第第第第第第第第6.2 MCS-51 6.2 MCS-51 第第第第第第 第第第第第第 / / 第第第 第第第 6.3 MCS-51 6.3 MCS-51 第第第第第第第第第第第 第第第第第第第第第第第 6.4 6.4 第第第 第第第 / / 第第第第第第第第第第第第 第第第第第第第第第第第第

第 6 章 单片机的中断与定时系统

  • Upload
    ince

  • View
    105

  • Download
    5

Embed Size (px)

DESCRIPTION

第 6 章 单片机的中断与定时系统. 6.1 MCS-51 单片机中断系统. 6.2 MCS-51 单片机的定时 / 计数器. 6.3 MCS-51 单片机外部中断源的扩展. 6.4 定时器 / 计数器与中断综合应用举例. 本章要求. 1 了解掌握 MCS-51 单片机中断系统. 2 了解掌握 MCS-51 单片机的定时 / 计数器. 3 掌握 定时器 / 计数器与中断综合应用. 6.1 MCS-51 单片机中断系统. 一 . 单片机中断技术概述. ● 中断是一相重要的计算机技术. ● 中断技术是一种资源 (CPU) 共享技术. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 6 章 单片机的中断与定时系统

第第 66 章 单片机的中断与定时系统章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统

6.2 MCS-516.2 MCS-51 单片机的定时单片机的定时 // 计数计数器器6.3 MCS-516.3 MCS-51 单片机外部中断源的扩展单片机外部中断源的扩展

6.4 6.4 定时器定时器 // 计数器与中断综合应用举例计数器与中断综合应用举例

Page 2: 第 6 章 单片机的中断与定时系统

本章要求本章要求

1 1 了解掌握了解掌握 MCS-51MCS-51 单片机中断系统单片机中断系统

2 2 了解掌握了解掌握 MCS-51MCS-51 单片机的定时单片机的定时 // 计计数器数器3 3 掌握掌握定时器定时器 // 计数器与中断综合应计数器与中断综合应用用

Page 3: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统

一一 . . 单片机中断技术概述单片机中断技术概述 ●● 中断是一相重要的计算机技术中断是一相重要的计算机技术

●● 中断技术是一种资源中断技术是一种资源 (CPU)(CPU) 共享技术共享技术●● 中断技术能提高中断技术能提高 CPUCPU 的利用率的利用率及输入及输入 // 输出数据的效输出数据的效率率●● 中断技术对计算机运行中遇到的突发故障及时处理中断技术对计算机运行中遇到的突发故障及时处理

●● 中断技术主要用于实时控制中断技术主要用于实时控制

—— 及时处理被控对象提出的分析、计算、控制等及时处理被控对象提出的分析、计算、控制等请求,使对象保持最佳工作状态。请求,使对象保持最佳工作状态。

Page 4: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统二二 . . 中断源中断源

22 个外部中断;个外部中断; 22 个定时器中断;个定时器中断; 11 个串行口中断。个串行口中断。1. 1. 外中断外中断

●●MCS-51MCS-51 共有共有 55 个中断源。个中断源。

●● 外中断是由外部信号引起的中断请求。外中断是由外部信号引起的中断请求。●● 外部中断“外部中断“ 0”---INT0(P3.20”---INT0(P3.2 引入—引入— 1212 脚脚 )) ,, 外部中断“外部中断“ 1”---INT1(P3.31”---INT1(P3.3 引入—引入— 1313 脚脚 )) 。。●● 低电平和脉冲下降沿触发,通过设置控制位定义。低电平和脉冲下降沿触发,通过设置控制位定义。

2. 2. 定时中断定时中断●● 定时器定时器 // 计数器中断是由内部计数器计数溢出引起计数器中断是由内部计数器计数溢出引起 的中断请求。的中断请求。

Page 5: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统二二 . . 中断源中断源

3. 3. 串行中断串行中断

●● 内部计数器计内部时钟脉冲或外部事件脉冲。内部计数器计内部时钟脉冲或外部事件脉冲。

●● 定时器定时器 // 计数器计数器 T0---T0--- 计外部脉冲 计外部脉冲 (P3.4(P3.4 引入—引入— 1414脚脚 ) ) 。。 定时器定时器 // 计数器计数器 T1---T1--- 计外部脉冲 计外部脉冲 (P3.5(P3.5 引入—引入— 1515脚脚 ) ) 。。

●● 计内部时钟脉冲计内部时钟脉冲 ---- 定时器定时器;计外部脉冲;计外部脉冲 ---- 计数器计数器。。

●● 串行口中断是由串行口接收和发送完一组数据引起串行口中断是由串行口接收和发送完一组数据引起 的中断请求。 的中断请求。●● 串行口接收端串行口接收端 RXDRXD - - (P3.0(P3.0 引入—引入— 1010

脚脚 )) 。。●● 串行口发送端串行口发送端 TXDTXD -- (P3.1(P3.1 引入—引入— 1111 脚脚 )) 。

Page 6: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统三三 . . 中断控制中断控制

1.1. 定时器控制寄存器(定时器控制寄存器( TCONTCON ))

●●IE0IE0 、、 IE1IE1 -外中断请求标志位-外中断请求标志位

TCON88H

位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

当当 INT0(INT1)INT0(INT1) 出现有效中断请求时,出现有效中断请求时, IE0(IE1)IE0(IE1) 位由硬件位由硬件置“1”,中断响应后再由硬件自动清“置“1”,中断响应后再由硬件自动清“ 0”0”

●●IT0IT0 、、 IT1IT1 -外中断请求触发方式控制位-外中断请求触发方式控制位IT0(IT1)=1 IT0(IT1)=1 脉冲触发方式脉冲触发方式 ,, 后沿负跳有效,后沿负跳有效,IT0(IT1)=0 IT0(IT1)=0 电平触发方式电平触发方式 ,, 低电平有效。低电平有效。由软件置“1”或清“由软件置“1”或清“ 0”0”

●●TF0TF0 、、 TF1TF1 -计数器溢出标志-计数器溢出标志位位 由硬件置“1”,中断方式时,硬件清“由硬件置“1”,中断方式时,硬件清“ 0”0” ;;

查询方式时,软件清“查询方式时,软件清“ 0”0” 。。

Page 7: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统三三 . . 中断控中断控

制制 2.2. 串行口控制寄存器(串行口控制寄存器( SCOSCONN ))SCON

98H

位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H

位符号 SM0 SM1 SM2 REN TB8 RB8 TI RI

无论是发送标志还是接收标标志,都产生串行中断请求。

当接收完一帧串行数据后,由硬件置“ 1” ;在转向中断服务程序后,用软件清“ 0” 。

●● TI—— 串行口发送中断请求标志位当发送完一帧串行数据后,由硬件置“ 1” ;在转向中断服务程序后,用软件清“ 0” 。●● RI—— 串行口接收中断请求标志位

●● 串行中断请求由 TI 和 RI 的逻辑或得到。

Page 8: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统三三 . . 中断控制中断控制

3.3. 中断允许控制寄存器(中断允许控制寄存器( IEIE ))

●●EA—EA— 中断允许总控制位中断允许总控制位

IE0A8H

位地址 AFH AEH ADH ACH ABH AAH A9H A8H

位符号 EA / / ES ET1 EX1 ET0 EX0

EA=0 EA=0 禁止所有中断禁止所有中断EA=1 EA=1 总中断允许,总中断允许,具体到各中断由该中断允许控制位设置。具体到各中断由该中断允许控制位设置。

●● EX0 和 EX1—— 外部中断允许控制位EX0(EX1)=0 禁止外中断EX0(EX1)=1 允许外中断

Page 9: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统三三 . . 中断控制中断控制

3.3. 中断允许控制寄存器(中断允许控制寄存器( IEIE ))IE

0A8H

位地址 AFH AEH ADH ACH ABH AAH A9H A8H

位符号 EA / / ES ET1 EX1 ET0 EX0

●● ES—— 串行中断允许控制位

●● ET0 和 ET1—— 定时/计数中断允许控制位

ET0(ET1)=0 禁止定时 ( 或计数 ) 中断ET0(ET1)=1 允许定时 ( 或计数 ) 中断

ES=0 禁止串行中断ES=1 允许串行中断

Page 10: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统三三 . . 中断控制中断控制

4.4. 中断优先级控制寄存器(中断优先级控制寄存器( IIPP ))IP

0B8H

位地址 BFH BEH BDH BCH BBH BAH B9H B8H

位符号 / / / PS PT1 PX1 PT0 PX0

●● PX0—— 外部中断 INT0 优先级设定位;●● PT0—— 定时中断 T0 优先级设定位;

●● PT1—— 定时中断 T1 优先级设定位;●● PS —— 串行中断优先级设定位。

●● 位设置设置为“ 0” 的优先级低;设置为“ 1” 的优先级高。

●● PX1—— 外部中断 INT1 优先级设定位;

Page 11: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统

三三 . . 中断控制中断控制 5.5. 中断优先级控制原则和控制逻辑

●● 低优先级中断请求不能打断高优先级的中断服务; 但高优先级中断请求可以打断低优先级的中断服务  -- 中断嵌套。

中断优先级是为中断嵌套服务的, MCS 一 5l 具有两级优先级,具两级中断服务嵌套的功能。其中断优先级的控制原则是:

外部中断 0- 定时中断 0- 外部中断 1- 定时中断 1- 串行口中断。

●● 同级的中断不能嵌套

●● 如果同级的多个中断请求同时出现,则按 CPU 查询 次序确定那个中断请求被响应。

Page 12: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统6.6. 中断初始化与中断控制寄存器状态设置中断初始化与中断控制寄存器状态设置

用位操作指令则为: SETB EA SETB EXo

●● 优先级控制●● 中断总允许●● 中断允许●● 中断方式设定(定时中断没有中断方式控制)

中断的使用是在程序初始化时设置的

以中断允许控制寄存器为例,假设开放外中断 O。

控制寄存器都是既可字节寻址又可进行位寻址。

用字节操作指令为: MOV IE , #81HIE

0A8H

位地址 AFH AEH ADH ACH ABH AAH A9H A8H

位符号 EA / / ES ET1 EX1 ET0 EX0

Page 13: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统四四 . . 中断响应过程中断响应过程

1.1. 中断采样中断采样下面叙述 MCS 一 51 单片机中断响应的全过程。

从中断请求发生到被响应,从中断响应到转向执行中断服务程序,完成中断所要求的任务,是一个很复杂的过程。整个过程都是在 CPU的控制下有序进行的。

对引脚— INT0(P3.2) 和 INT1(P3.3) 在每个机器周期的 S5P2 进行采样,根据采样结果来设置 TCON 寄存器中响应标志位的状态,也就是把外中断请求锁定在这个寄存器中。

Page 14: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统四四 . . 中断响应过程中断响应过程 ●●若采样为高电平,表明没有中断请求, TCON 寄存 器的外中断请求标志位 IE0 或 IE1继续为‘‘ 0” ;●●若为低电平,表明有中断请求,把 IE0 或 IE1 置“ 1” 。

●●而定时中断和串行中断的中断请求直接去置 TCON 和 SCON中各自的中断请求标志位,不存在采样。

●● 外中断是使用采样的方法把中断请求锁定在 TCON 寄存器的相应标志位中,

Page 15: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统四四 . . 中断响应过程中断响应过程 2.2. 中断查询中断查询

●● MCS 一 51 单片机是在每一个机器周期的最后一个 状态 (S6) 、按优先级顺序对中断请求标志位查询, 如果查询到有标志位为“ 1” ,则表明有中断请求发 生,在下一个机器周期的 S1 状态开始中断响应。

●● 所谓查询,就是由 CPU测试 TCON 和 SCON 中各 标志位的状态,以确定有没有中断请求发生以及 是那一个中断请求。

●● 中断查询在执行指令的每个机器周期中不停地重 复进行。

Page 16: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统四四 . . 中断响应过程中断响应过程 3.3. 中断响应中断响应

addrl6是程序存储器中断区中相应中断的入口地址。

●● 中断响应是由硬件自动生成一条长调用指令 LCALL。 其格式为 LCALL addrl6,

外部中断 O 的是 0003H ,中断响应为: LCALL 0003H外部中断 1 的是 0013H ,中断响应为: LCALL 0013H定时中断 O 的是 000BH ,中断响应为: LCALL 000BH定时中断 1 的是 001BH ,中断响应为: LCALL 001BH串口中断的是 0023H , 中断响应为: LCALL 0023H

Page 17: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统四四 . . 中断响应过程中断响应过程 3.3. 中断响应中断响应●● 中断响应条件,当存在下列情况之一时,中断响应被封锁:

●● 中断查询的结果不作记忆,当有新的查询结果出 现时,因为以上原因而被拖延的查询结果将不复 存在,其中断请求也就不能再被响应了。

●● 查询中断请求的机器周期不是当前指令的最后一 个机器周期。

●● CPU正处在为一个同级或高级的中断服务中。

●● 当前指令是返回指令 (RET , RETI)或访问 IE、 IP 的指令。

Page 18: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统四四 . . 中断响应过程中断响应过程 4.4. 中断响应时中断响应时间间●●从外部中断请求有效 (标志位置‘‘ 1’’)到转向中断区

入口地址所需的机器周期为中断响应时间。●● 中断响应最短响应时间为 3个机器周期。 其中中断请求标志位查询占 1 器周期, 执行 LCALL指令需 2个机器周期。 ●● 中断响应最长时间为 8 个机器周期。 该情况发生在中断标志查询时,刚好是开始执行 RET 、 RETI 或访问 IE 、 IP的指令 { 需 2个机器周期 } ,则需把当 前指令执行完再继续执行一条指令 {( 乘 MUL)或 ( 除 DIV) 指令,则又需 4个机器周期 }后,才能进行中断响应。

Page 19: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统五五 . . 中断请求的撤消中断请求的撤消

1.1. 定时中断请求的撤消定时中断请求的撤消

2.2. 脉冲方式外部中断请求的撤消脉冲方式外部中断请求的撤消

中断响应后, TCON或 SCON中的中断请求标志应及时清除。否则就意味着中断请求仍然存在,造成中断的重复查询和响应。

●● 定时中断撤销只是标志位的置“ 0”问题。 ●● 定时中断响应后,硬件自动把标志位 (TF0或 TFl) 清“ O” ,因此定时中断是自动撤销。不需干预。

标志位 (IE0 或 IEl) 在中断响应后由硬件自动清“ O” 。

●● 中断标志位的置“ O”

Page 20: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统五五 . . 中断请求的撤消中断请求的撤消 2.2. 脉冲方式外部中断请求的撤消脉冲方式外部中断请求的撤消

3.3. 电平方式外部中断请求的撤消电平方式外部中断请求的撤消

●● 外中断请求信号的撤销。由于脉冲信号过后就消失了,也可以说中断请求信号是自动撤消的。

●● 中 断 标 志 位 自 动 清“ O” ●● 外中断请求信号的撤销是通过软件实现。

4.4. 串行中断软件撤消串行中断软件撤消串行中断的标志位是 TI 和 RI ,但不能自动清“ O” 。因为在中断响应后,还需测试这两个标志位的状态,来判定是接收操作还是发送操作,然后才能清除。所以串行中断请求的撤销也应使用软件方法,在中断服务程序中进行。

Page 21: 第 6 章 单片机的中断与定时系统

6.1 MCS-516.1 MCS-51 单片机中断系统单片机中断系统六六 . . 中断服务流程中断服务流程 1.1. 现场保护和现场恢复现场保护和现场恢复

3.3. 中断处理中断处理

4.4. 中断返回中断返回

2.2. 关中断和开中断关中断和开中断

中断服务程序的最后一条指令必须是中断返回指令 RETI 。

执行主程序

返回断点

取下一条指令

有中断请求吗

执行一条指令

关中断

保护现场和断点

开中断

中断服务

关中断

恢复现场

开中断

YN

Page 22: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器一一 . . 定时方法概述定时方法概述

●● 可编程定时器定时 是通过对系统时钟脉冲的计数来实现的。计数值通过程序设 定,改变计数值,也就改变了定时时间,使用起来既方便 又灵活。此外,由于采用计数方式定时,因此可编程定时 器都兼有计数功能,可以对外来脉冲进行计数。

●● 硬件定时 由硬件电路完成。其特点是全部由硬件电路完成, 不占用 CPU,定时时间较长,使用上不够灵活方便。

●● 软件定时 软件定时是靠执行一个循环程序以进行时间延迟。 特点是时间精确,不需外加硬件电路。但占用 CPU。

定时方法有:

Page 23: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器二二 . . 定时器定时器 // 计数器的定时和计数功能计数器的定时和计数功能

1.1. 计数功能计数功能

MCS 一 51 单片机共有两个可编程的定时器/计数器。定时器/计数器 T0和定时器/计数器 T1 。16位加法计数结构,由 THX 和 TLX 两个 8 位计数器组成。

●● MCS 一 51 有 T0(P3.4)和 T1(P3.5)两个外部事件输 入端。外部输入的脉冲在负跳变时有效,进行计 数器加 1( 加法计数 )。

●● 计数是指对外部事件进行计数。外部事件的发生 以输入脉冲表示,因此计数功能的实质就是对外 来脉冲进行计数。

Page 24: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器二二 . . 定时器定时器 // 计数器的定时和计数功能计数器的定时和计数功能2.2. 定时功能定时功能

●● 定时功能也是通过计数器的计数来实现的。

●●此时的计数脉冲来自单片机的内部,即每个机器 周期产生一个计数脉冲。也就是每个机器周期 计数器加 1 。

Page 25: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器三三 . . 定时器定时器 // 计数器的控制寄存器计数器的控制寄存器 1.1. 定时器控制寄存器(定时器控制寄存器( TCOTCO

NN ))TCON

88H

位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H

位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

●●TF0TF0 、、 TF1TF1 -计数器溢出标志-计数器溢出标志位位 由硬件置“1”,中断方式时,硬件清“由硬件置“1”,中断方式时,硬件清“ 0”0” ;;

查询方式时,软件清“查询方式时,软件清“ 0”0” 。。●●TR0TR0 、、 TR1TR1 -定时器运行控制位-定时器运行控制位

TR0TR0 (( TR1 TR1 )) = 0 = 0 停止定时器/计数器停止定时器/计数器工作工作TR0TR0 (( TR1 TR1 )) == 1 1 启动定时器/计数器启动定时器/计数器工作工作该位根据需要以软件方法使其置该位根据需要以软件方法使其置““ 11”” 或清或清““ 00”” 。。

Page 26: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器三三 . . 定时器定时器 // 计数器的控制寄存器计数器的控制寄存器 2.2. 工作方式控制寄存器(工作方式控制寄存器( TMOTMO

DD ))TMOD

89H

位序 B7 B6 B5 B4 B3 B2 B1 B0

位符号 GATE C/T M1 M0 GATE C/T M1 M0

●●C/TC/T———定时方式或计数方式选择位 C/T=0 C/T=0 定时工作方式 C/T=1 C/T=1 计数工作方式

定时/计数器 1 定时/计数器 O●● TMOD不能位寻址,一定义就是 4位。●●GATE——门控位 GATE=O 以运行控制位 TR启动定时器 GATE=1 以外中断请求信号 (INT1 或 INT0) 启动定时器

Page 27: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器三三 . . 定时器定时器 // 计数器的控制寄存器计数器的控制寄存器

3.3. 中断允许控制寄存器(中断允许控制寄存器( IIEE ))

M1M0=00 工作方式0M1M0=01 工作方式1M1M0=10 工作方式2M1M0=11 工作方式3

●●M1M0——— 工 作 方 式选择位

●●EA—EA— 中断允许总控制位中断允许总控制位

IE0A8H

位地址 AFH AEH ADH ACH ABH AAH

A9H A8H

位符号 EA / / ES ET1 EX1 ET0 EX0

●● ET0 和 ET1—— 定时 / 计数中断允许控制位ET0(ET1)=0 禁止定时 / 计数中断ET0(ET1)=1 允许定时 / 计数中断

Page 28: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器

四四 . . 定时工作方式定时工作方式00

1.1. 电路逻电路逻 辑结构辑结构

●● 定时器/计数器 1 与定时器/计数器 0完全相同。

●● 方式 0是 13位计数结构,其计数器由 THi(8 位)和 TLi的低 5 位构成,高 3位弃之不用。

定时器/计数器共有 4种工作方式。

Page 29: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器四四 . . 定时工作方式定时工作方式

00 2.2. 定时和计数应用定时和计数应用

如晶振频率为 6 MHz,则最小定时时间 Tmin 为:Tmin= [213-(213-1)]×1 / 6×10-6×12=2×10-6=2(us)

●● 在方式 0下 ,当为计数工作方式时 ,计数范围是: l~ 8192(213)

或 (213- 计数初值 )×机器周期

Tmax= [213-0]×1 / 6×10-6×12=2×10-6=16384(us)

●● 当为定时工作方式时,定时时间的计算公式为: (213- 计数初值 )×晶振周期×12

其时间单位与晶振周期或机器周期相同 (us)。

Page 30: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器2.2. 定时和计数应用定时和计数应用

[213-X]×1 / 6×10-

6×12=250×10-6

高 8 位为 低 5 位为 0FCH , 03H 。

例 :设单片机晶振频率为 6 MHz,使用定时器 1 以方 式 0产生周期为 500us的等宽方波连续脉冲,并 由 P1.0输出。以查询方式完成。●● 计算计算计数初值:欲产生 500us的等宽正方波脉冲,只需以 250us为周期交替输出高低电平即可设待求的计数初值为 X ,则:

解得: X=8067。二进制数表示为 1111,1100,00011B 即 : THl=0FCH

TL1=03H 。

Page 31: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器2.2. 定时和计数应用定时和计数应用●●TMODTMOD 初始化:

TR1=l启动, TR1=0 停止。

为实现定时功能,应使 C / T=0

●● 控制寄存器 TCON中的 TRi位控制定时的启动和停止

定时器/计数器 O 不用,有设定为 O。因此 TMOD寄存器应初始化为 OOH 。

定时器/计数器 1 设定为方式 0,则 M1M0=00;实现定时器/计数器 1 的运行控制,则 GATE=0。

Page 32: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器2.2. 定时和计数应用定时和计数应用●● 程序设计程序设计 MOV TMOD, #OOH ;设置 T1 为工作方式

0 MOV THl , #OFCH ;设置计数初值 MOV TLl , #03H MOV IE , #00H ;禁止中断LOOP: SETB TRl ; 启动定时 JBC TFl. LOOPl ;查询计数溢出 AJMP LOOPLOOP1 : MOV THl , #OFCH ;重新设置计数初值 MOV TLl , #03H CLR TFl ;计数溢出标志位清“ 0” CPL P1.0 ;输出取反 AIMP L00P ;重复循环

Page 33: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器五五 .. 定时工作方式定时工作方式

11

●● 逻辑电路和工作情况与逻辑电路和工作情况与方式 0完全相同。

●● 方式 1 是 16位计数结构,其计数器由 THi(8 位)和 Tli(8 位 ) 构成。

如晶振频率为 6 MHz:Tmin= [216-(216-1)]×1 / 6×10-6×12=2×10-6=2(us)

●● 在方式 1 下 , 计数范围是: l~ 65536(216)

Tmax= [216-0]×1 / 6×10-6×12=2×10-6=131072(us)

●● 当为定时工作方式时,定时时间的计算公式为: (216- 计数初值 )×晶振周期×12

Page 34: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器五五 .. 定时工作方式定时工作方式

11

1.计算计数初值 THl=0FFH TLl=83H2. TMOD寄存器初始化 TMOD=10H3.程序设计

[例 ] 题目同前,但以中断方式完成。即单片机晶振频率为 6 MHz,使用定时器 1 以工作方式 1 产生周期为 500us的等宽方波连续脉冲,并由 P1.0输出。

Page 35: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器

中断服务程序

FBMC: MOV THl , #OFFH ;重新设置计数初值 MOV TLl , #83H CPL P1.0 ;输出取反 RETI ;中断返回

主程序:

ORG 0000H LJMP MAIN ORG 0013H LJMP FBMCMAIN: MOV TMOD, #10H ;定时器 1 工作方式 1 MOV THl , #OFFH ;设置计数初值 MOV TLl , #83H SETB EA ;开中断 SETB ETl ;定时器 1 允许中断 SETB TRl ;定时开始HERE : SJMP $ ;等待中断

Page 36: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器六六 .. 定时工作方式定时工作方式

22

1.1. 电路逻辑结电路逻辑结构构

●● 当计数溢出后, 由预置寄存器 TH 以硬件方法自动 给计数器 TL重新 加载。

●● 方式 2是自动重新加载工作方式。●● 计数器分为两部分,即 TL作计数器, TH 作预置寄存器。 初始化时初值分别装入 TL和 TH 中。

图 6. 5 定时器/计数器 O 的工作方式 2逻辑结构

Page 37: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器六六 .. 定时工作方式定时工作方式

222.2. 循环定时和循环计数应用循环定时和循环计数应用

把0CEH 分别装入 TH0和 TL0中

例:用定时器 0以工作方式 2产生 100us定时 ,在 P1.0输 出周期为 200us方波。已知晶振频率 fosc=6MHz。

[28-X]×1 / 6×10-

6×12=100×10-6

●● 计算计算计数初值:解得: X=206D=1100,1110B=0CEH

●●TMODTMOD 初始化:

为实现定时功能,应使 C / T=0 ; GATE=0因此 TMOD寄存器应初始化为 O2H 。

定时器/计数器 0设定为方式 2, 则 M1M0=10;

Page 38: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器2.2. 循环定时和循环计数应用循环定时和循环计数应用●● 程 序 设 计程 序 设 计 ( 查 询 方式 ) MOV IE , #00H ;禁止中断 MOV TMOD, #02H ;设置定时器 O 为工作方式2 MOV TH0, #OCEH ;保存计数初值 MOV TL0, #OCEH ;设置计数初值 SETB TR0 ; 启动定时L00P: JBC TF0, L00P1 ;查询计数溢出 AJMP L00PL00P1 : CPL P1.0 ;输出方波 AJMP L00P ;重复循环 由于方式 2具有自动重装载功能,因此计数初值只需设置一次,以后不再需要软件重置。

Page 39: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器

MOV IE , #00H ;禁止中断 MOV TMOD, #60H ;设置定时器 1 为工作方式 2 MOV TH1 , #9CH ;保存计数初值 MOV TL1 , #9CH ;设置计数初值 SETB TR1 ; 启动定时L0PP: JBC TF1 , L00P ;查询计数溢出 AJMP L0PPL00P: INC A ; 累加器加 1 AJMP L00P ;重复循环

2. TMOD寄存器初始化 M1M0=10, C / T=1, GATE=0

[例 ] 用定时器 1 以工作方式 2实现计数,每计 100次进行累 加器加 1 操作1.计算计数初值 28-X=100 X=156D=9CH

TMOD=0110XXXXB=0110,0000B=60H

Page 40: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器七七 .. 定时工作方式定时工作方式

331.1. 工作方式工作方式 33 下的定时器下的定时器 // 计数器计数器00

●●TL0可以计数使用,也可以定时使用。 T0的各控制位 (TR0,TF0)和引脚信号归它使用。 其功能和操作与方式 0或方式 1 完全相同。

●● 方式 3下的定时器/计数器 0被拆成两个独立的 8 位计数器 TL0和 TH0。

Page 41: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器七七 .. 定时工作方式定时工作方式

331.1. 工作方式工作方式 33 下的定时器下的定时器 // 计数器计数器00●●TH0只能作定时器使用。

控制位借用定时器/计数器 1 的控制位。 即计数溢出去置位 TF1 ; 定时的启动和停止则受 TR1 控制。

Page 42: 第 6 章 单片机的中断与定时系统

6.2 MCS-516.2 MCS-51 单片机的定时器单片机的定时器 // 计数器计数器七七 .. 定时工作方式定时工作方式

332.2. 工作方式工作方式 33 下的定时器下的定时器 // 计数器计数器11

●● 当作为波特率发生器使用时,只需设置好工作方 式,便可自动运行。

●● 如果 T0工作在方式 3, T1 的控制位 TR1 、 TF1 被借 用, T1 通常是作为串行口的波特率发生器使用, 确定串行通信的速率。

Tl 方式 l(或 O) T1 方式 2

Page 43: 第 6 章 单片机的中断与定时系统

6.3 MCS-516.3 MCS-51 单片机外部中断源的扩展单片机外部中断源的扩展一一 . . 通过通过 OCOC门线或实现门线或实现

INTE : ;现场保护 JB P1.0, LOPl ;转向服务程序 1 JB P1.1,LOP2 ;转向服务程序 2 : JB P1.n, LOPn ;转向服务程序 nIEND: ;现场恢复 RETILOP1 : ;中断服务程序 1 AJMP IEND :LOPn: ;中断服务程序 n AJMP IEND

1中断源 1

1中断源 2

1中断源 n

OC门反相器

+5V

INT0

89C51

P1.0P1.1

P1.n

Page 44: 第 6 章 单片机的中断与定时系统

6.3 MCS-516.3 MCS-51 单片机外部中断源的扩展单片机外部中断源的扩展二二 . . 通过自身的定时器通过自身的定时器 // 计数器实现计数器实现

MOV TMOD, #06H ;设置计数器 0为工作方式 2MOV TH0, #0FFH ;保存计数初值MOV TL0, #0FFH ;设置计数初值SETB EA ;开中断SETB ET0 ;允许计数器 0中断SETB TR0 ; 启动计数器●● 外中断信号从外中断信号从 T0T0 输入端输入输入端输入

Page 45: 第 6 章 单片机的中断与定时系统

6. 46. 4 定时器定时器 // 计数器与中断综合应用举例计数器与中断综合应用举例1.1. 实现时钟计时显示的基本方法实现时钟计时显示的基本方法

2.2. 程序流程程序流程

Page 46: 第 6 章 单片机的中断与定时系统

作业练习题作业练习题

P162: P162: 一 一 . 1. 1 、、 44 、、 6~306~30

二 二 . 1. 1 、、 22 、、 44 、、 66 、、 9~149~14