《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

25
单单单单单单单单单单单单单单 单单单单单单单单

Upload: miranda-harvey

Post on 30-Dec-2015

125 views

Category:

Documents


1 download

DESCRIPTION

《 单片机原理与接口技术 》 电子教案 重庆工商职业学院. 第五章 单片机的中断与定时系统. [内容提要] 本章主要讲述 MCS-51 的单片机的中断系统和定时系统,除硬件结构外还包括一些简单的应用举例。 [学习要求] 掌握单片机中断系统的中断源、中断控制寄存器、中断响应过程,掌握定时 / 计数器系统的电路结构、控制寄存器及功能和使用方法,理解单片机中断、定时和计数的应用。. 5.1 MCS-51 单片机中断系统. 一 . 单片机中断技术概述. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

《单片机原理与接口技术》

电子教案

重庆工商职业学院

Page 2: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

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

[内容提要] 本章主要讲述 MCS-51 的单片机的中断系统和定时系

统,除硬件结构外还包括一些简单的应用举例。

[学习要求] 掌握单片机中断系统的中断源、中断控制寄存器、中

断响应过程,掌握定时 / 计数器系统的电路结构、控制寄存器及功能和使用方法,理解单片机中断、定时和计数的应用。

Page 3: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.1 MCS-51 单片机中断系统

一 . 单片机中断技术概述

中断是指计算机在执行某一程序的过程中 , 由于计算机系统内、 外的某种原因 , 而必须中止原程序的执行 , 转去执行相应的处理程序 , 待处理结束之后 , 再回来继续执行被中止的原程序的过程。

采用了中断技术后的计算机 , 可以解决 CPU 与外设之间速度匹配的问题 , 使计算机可以及时处理系统中许多随机的参数和信息 , 同时 , 它也提高了计算机处理故障与应变的能力。

Page 4: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.1 MCS-51 单片机中断系统

二 . 中断源

向 CPU 发出中断请求的来源称之为中断源。 中断源 入口地址

外部中断 0 0003H

定时器 T0 中断 000BH

外部中断 1 0013H

定时器 T1 中断 001BH

串行口中断 0023H

Page 5: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.1 MCS-51 单片机中断系统三 . 中断控制1. 定时器控制寄存器( TCON )

寄存器地址为 88H ,位地址为 8FH—88H ,其格式如下:

位 D7 D6 D5 D4 D3 D2 D1 D0

位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

TF1—— T1 的溢出中断标志。 硬件置 1 ,硬件清 0 (也可软件清 0 )。TF0—— T0 的溢出中断标志。(同 TF1 ,只是针对 T0 的)IE1—— 外部中断 1 ( /INT1 )请求标志。 外部有中断请求时,硬件使 IE1置 1 ,硬件清 0 。IE0—— 外部中断 0 ( /INT0 )请求标志。IT1—— 外部中断 1 ( /INT1 )触发类型控制位。 IT1 = 0 ,低电平触发。 IT1 = 1 , 下降沿触发。IT0—— 外中断 0 ( /INT0 )触发类型控制位,用法同 IT1 。

Page 6: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

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

2. 串行口控制寄存器( SCON )寄存器地址为 98H ,位地址为 9FH—98H ,其格式如下:

位 D7 D6 D5 D4 D3 D2 D1 D0

位符号 SM0

SM1

SM2

REN

TB8 RB8 TI RI

TI —— 串口发送中断标志位。 发送完数据,硬件使 TI置 1 ,软件清 0 ( CLR TI )RI —— 串行口接收中断标志位。 硬件置 1 ,软件清 0 。

Page 7: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.1 MCS-51 单片机中断系统三 . 中断控制3. 中断允许控制寄存器( IE )寄存器地址为 A8H ,位地址为 AFH—A8H ,其格式如下:

◆ EA: 中断总控制位, EA=1, CPU 开放中断。 EA=0, CPU 禁止所有中断。◆ ES: 串行口中断控制位, ES=1 允许串行口中断, ES=0 ,屏蔽串行口中断。◆ ET1: 定时 / 计数器 T1 中断控制位。 ET1=1 ,允许 T1 中断, ET1=0 ,禁止 T1 中断。◆ EX1: 外中断 1 中断控制位, EX1=1 ,允许外中断 1 中断, EX1=0 ,禁止外中断 1 中断。◆ ET0: 定时 / 计数器 T0 中断控制位。 ET1=1 ,允许 T0 中断, ET1=0 ,禁止 T0 中断。◆ EX0: 外中断 0 中断控制位, EX1=1 ,允许外中断 0 中断, EX1=0 ,禁止外中断 0 中断。

位 D7 D6 D5 D4 D3 D2 D1 D0

位符号 EA - - ES ET1 EX1 ET0 EX0

Page 8: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.1 MCS-51 单片机中断系统三 . 中断控制4. 中断优先级控制寄存器( IP )寄存器地址为 B8H ,位地址为 BFH—B8H ,其格式如下:

位 D7 D6 D5 D4 D3 D2 D1 D0

位符号 - - - PS PT1 Px1 PT0 PX0

◆PS: 串行口中断口优先级控制位, PS=1 ,串行口中断声明为高优先级中断, PS=0 ,串行口定义为低优先级中断。◆ PT1: 定时器 1 优先级控制位。 PT1=1 ,声明定时器 1 为高优先级中断, PT1=0 定义定时器 1 为低优先级中断。◆ PX1: 外中断 1 优先级控制位。 PT1=1 ,声明外中断 1 为高优先级中断, PX1=0 定义外中断 1 为低优先级中断。◆ PT0: 定时器 0 优先级控制位。 PT1=1 ,声明定时器 0 为高优先级中断, PT1=0 定义定时器 0 为低优先级中断。◆ PX0: 外中断 0 优先级控制位。 PT1=1 ,声明外中断 0 为高优先级中断, PX1=0 定义外中断 0 为低优先级中断。

Page 9: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

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

5. 中断优先级控制原则◆低级不打断高级◆高级不睬低级◆同级不能打断◆同级、同时中断,事先约定。

同一级中的 5 个中断源的优先顺序是厂家出厂时已固化好的,其顺序由高到低依次如下:

/INT0 中断 T0 中断 /INT1 中断 T1 中断 串口中断

除了中断优先级控制寄存器外, MCS-51 的中断系统有两个不可寻址的优先级状态触发器,一个指出 CPU 是否在执行高优先级中断服务程序,另一个指出 CPU 是否正在执行低优先级的中断服务程序,这两个中断触发器的 1 状态分别屏蔽所有中断申请和同一级别的其他中断申请。

Page 10: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.1 MCS-51 单片机中断系统四 . 中断响应过程 MCS-51CPU 在每一个机器周期顺序检查每一个中断源,在机器周期的 S6 按优先级处理所有被激活的中断请求,此时,如果 CPU 没有正在处理更高或相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者 CPU 不是正在执行 RETI 指令或访问IE和 IP 的指令(因为按 MCS-51 中断系统的特性规定,在执行完这些指令之后,还要在继续执行一条指令,才会响应中断), CPU 在下一个机器周期响应激活了的最高级中断请求。

◆中断采样◆中断查询◆中断响应◆中断响应时间◆中断返回

Page 11: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.1 MCS-51 单片机中断系统五 . 中断服务流程

1. 在每条指令结束后 , 系统都自动检测中断请求信号 , 如果有中断请求,且 CPU 处于开中断状态下 , 则响应中断。 2. 保护现场 , 在保护现场前 , 一般要关中断 , 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。 3. 中断服务 , 即为相应的中断源服务。 4. 恢复现场 , 用堆栈指令将保护在堆栈中的数据弹出来 , 在恢复现场前要关中断 , 以防止现场被破坏。在恢复现场后应及时开中断。 5. 返回 , 此时 CPU将推入到堆栈的断点地址弹回到程序计数器 ,

从而使 CPU 继续执行刚才被中断的程序。

Page 12: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

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

可供选择的定时方法有:

◆软件定时

◆硬件定时

◆可编程定时器定时

定时电路集成在芯片中,称为定时器 / 计数器。 MCS-51 的单片机内有两个 16 位可编程的定时器 / 计数器,分别称为定时器 / 计数器 0 和定时器 / 计数器 1, 它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。

图 5-1 MCS-51 定时 / 计数器结构图

Page 13: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.2 MCS-51 单片机的定时器 / 计数器一、定时器 / 计数器的控制寄存器

1. 定时器控制寄存器( TCON )

位 D7 D6 D5 D4 D3 D2 D1 D0

位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

TR0 —— 定时 / 计数器 0 运行控制位。 软件置位,软件复位。与 GATE 有关,分两种情况: GATE = 0 时,若 TR0 = 1 ,开启 T0 计数工作;若 TR0 = 0 ,停止T0 计数。 GATE = 1 时,若 TR0 = 1 且 /INT0 = 1 时,开启 T0 计数; 若 TR0 = 1 但 /INT0 = 0 ,则不能开启 T0 计数。 若 TR0 = 0 , 停止 T0 计数。TR1 —— 定时 / 计数器 1 运行控制位。 用法与 TR0 类似。

Page 14: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.2 MCS-51 单片机的定时器 / 计数器一、定时器 / 计数器的控制寄存器2.工作方式控制寄存器( TMOD )

GATE —— 门控位。 GATE = 0 启动不受 /INT0 或 /INT1 的控制; GATE = 1 启动受 /INT0 或 /INT1 的控制。C/ —— 外部计数器 / 定时器方式选择位。 C/ = 0 定时方式; C/ = 1 计数方式。M1M0 —— 工作模式选择位。 M1 M0 模式 说明 0 0 0 13 位定时 / 计数器,高八位 TH( 7 ~ 0)+ 低五位 TL( 4 ~ 0 ) 0 1 1 16 位定时 / 计数器, TH( 7 ~ 0)+ TL( 7 ~ 0 ) 1 0 2 8 位计数初值自动重装, TL( 7 ~ 0 ) TH( 7 ~ 0 ) 1 1 3 T0运行,而 T1停止工作, 8 位定时 / 计数。

位 D7 D6 D5 D4 D3 D2 D1 D0

位符号 GATA M1 M0 GATA M1 M0

←T1方式字段→ ←T0方式字段→

TTT

Page 15: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.2 MCS-51 单片机的定时器 / 计数器二、定时器 / 计数器的四种工作模式

1. 定时工作方式 0 工作方式 0 是 13 位计数结构的工作方式,其计数器由 TH 的全部 8位和 TL 的低 5 位构成, TL 的高 3 位没有使用。当 C/T=0 时,多路开关接通振荡脉冲的 12 分频输出, 13 位计数器以次进行计数。这就是定时工作方式。当 C/T=1 时,多路开关接通计数引脚( To ),外部计数脉冲由银南脚 To输入。当计数脉冲发生负跳变时,计数器加 1 ,这就是我们常称的计数工作方式

图 5-2 定时计数器工作方式 0 逻辑结构

Page 16: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.2 MCS-51 单片机的定时器 / 计数器二、定时器 / 计数器的四种工作模式

1. 定时工作方式 0

在工作方式 0 下,计数器的计数值范围是: 1—65536( 216 ) 

当为定时工作方式 0 时,定时时间的计算公式为:

( 213— 计数初值)╳晶振周期╳ 12     或 ( 213— 计数初值)╳机器周期

如果单片机的晶振选为 6.000MHz ,则最小定时时间为:

 [213—( 213—1) ] 1/6 10╳ ╳ -6 12=2 10╳ ╳ -6(s)=2(us)

(213—0) 1/6 10╳ ╳ -6 12=16384 10╳ ╳ -6(s)=16384(us)

其时间单位与晶振周期或机器周期相同

Page 17: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.2 MCS-51 单片机的定时器 / 计数器二、定时器 / 计数器的四种工作模式

2. 定时工作方式 1

当M1,M0=01 时,定时 / 计数器处于工作方式 1 ,此时,定时 / 及数器的等效电路如图所示

可以看出,方式 0 和方式 1 的区别仅在于计数器的位数不同,方式 0 为 13 位,方式 1 则为 16 位,由 TH0作为高 8 位, TL0 为低 8 位,有关控制状态字与方式 0 相同。

图 5-3 定时 / 计数器工作方式 1 等效电路

Page 18: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

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

二、定时器 / 计数器的四种工作模式

2. 定时工作方式 1

在工作方式 1 下,计数器的计数值范围是: 1—8192( 213 )  

当为定时工作方式 1 时,定时时间的计算公式为:

( 216— 计数初值)╳晶振周期╳ 12     或 ( 216— 计数初值)╳机器周期

如果单片机的晶振选为 6.000MHz ,则最小定时时间为:

 [213—( 216—1) ] 1/6 10╳ ╳ -6 12=2 10╳ ╳ -6(s)=2(us)

(216—0) 1/6 10╳ ╳ -6 12=131072 10╳ ╳ -6(s)=131072(us)

其时间单位与晶振周期或机器周期相同

Page 19: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.2 MCS-51 单片机的定时器 / 计数器二、定时器 / 计数器的四种工作模式

3. 定时工作方式 2 当M1,M0=10 时,定时 / 计数器处于工作方式 2 ,此时,定时 /及数器的等效电路如图所示

具有自动重装载功能,即自动加载计数初值 ,在这种工作方式中, 16 位计数器分为两部分,以 TL0 为计数器,以 TH0作为预置寄存器 ,当计数溢出时 , TH 以硬件方法自动给计数器 TL0重新加载

图 5-4 定时 / 计数器工作方式 2 等效电路

Page 20: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

5.2 MCS-51 单片机的定时器 / 计数器二、定时器 / 计数器的四种工作模式

4. 定时工作方式 3 当M1,M0=11 时,定时 / 计数器处于工作方式 3 ,此时,定时 /及数器的等效电路如图所示

图 5-5 定时 / 计数器工作方式 3 等效电路

Page 21: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

例 5-1 :选择 T1 方式 0 用于定时,在 P1.1输出周期为 1ms 的方波,晶振 fosc=6MHZ 。 分析:根据题意,只要使 P1.1 每隔 500µs 取反一次即可得到 1ms

方波,因而 T1 的定时时间为 500µs。 将 T1 设为定时方式 0: GATE=0, C/T(—)=0,M1M0=00;T0 不用可为任意,只要不使其进入方式 3,一般取 0即可。故TMOD=00H 。系统复位后 TMOD 为 0 ,所以不必对 TMOD 置初值。下面计算 500µs定时 T1 的初值:机器周期 T=12/fosc=12/6×106=2µs设初值为 X 则: ( 213- X)×2×10- 6 s =500×10- 6 s X=7942D=1111100000110B=1F06H因为在作 13位计数器用时, TL1 高 3位未用,应写 0, X 的低 5 位装入 TL1 的低 5 位,所以 TL1=06H; X 的高 8位应装入 TH1 ,所以 TH1=F8H。源程序如下:

5.3 定时器 / 计数器与中断综合应用举例一、 方式 0 、方式 1 的应用

Page 22: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

MOV TL1,#06H ;给 TL1 置初值

MOV TH1,#F8H ;给 TH1 置初值

SETB TR1 ;启动 T1

LP1: JBC TF1, LP2 ;查询计数溢出否 AJMP LP1

LP2: MOV TL1, 06H ;重装初值

MOV TH1, F8H

CPL P1 。 1 ;输出取反 AJMP LP1 ;重复循环

5.3 定时器 / 计数器与中断综合应用举例一、 方式 0 、方式 1 的应用

Page 23: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

例 5-2 用定时器 1 方式 2计数,要求每计满 100 次,将 P1.0取反。分析:根据题意,外部计数信号由 T1( P3.5 )引脚输入,每跳变一

次计数器加 1 ,由程序查询 TF1 。方式 2有自动重装初值的功能,初始化后不必再置初值。初值 X=28- 100=156D=9CH TH1=TL1=9CH TMOD=60H源程序如下:

MOV

TMOD,#60H ;设置 T1 为方式 2

MOV

TL1,#9CH ;置初值

MOV

TH1,#9CH

SETB

TR1 ;启动 T1

DEL:

JBC TF1, REP ;查询计数溢出

AJMP

DEL

REP:

CPL P1 。 0 ;输出取反

AJMP

DEL

5.3 定时器 / 计数器与中断综合应用举例二、 方式 2 的应用

Page 24: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

图 5-6 外部正脉冲宽度测量

例 5-3 利用 T0 门控位测试 INT0 引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。 分析:根据要求可这样设计程序:将 T0 设定为方式 1, GATE 设为1 ,置 TR0 为 1 。一旦 INT0( P3.2 )引脚上出现高电平即开始计数,直至出现低电平,停止计数,然后读取 T0 的计数值并显示。 测试过程如下:

INT0

(P3.2)

09H→(TMOD)1→TR0

T0 0从 开始计数0→TR0

T停止 0计数T读出 0值

5.3 定时器 / 计数器与中断综合应用举例三、 门控位的应用

Page 25: 《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

BEGIN:

MOV

TMOD , # O9H

; T0 工作于方式 1 , GATE置 1 MO

VTL0,#00H

MOV

TH0;#00H WAIT1:

JB P3 。 2,WAIT1 ;等待 INT0 变低 SETB TR0 ;启动 T0

WAIT2:

JNB

P3 。 2,WAIT2 ;等待正脉冲到WAIT3:

JB P3 。 2,WAIT3 ;等待 INT0 变低CLR

TR0 ;停止 T0 计数MOV

R0,#DISBUF ;显示缓冲区首地址送 R0

MOV

A, TL0 ;机器周期的存放格式为低位占低地址,高位占高地址,连续 4个显示缓冲单元XCH

DA,@R0

INC

R0 SWAP

A XCHD

A,@R0 INC

R0

源程序如下:

5.3 定时器 / 计数器与中断综合应用举例三、 门控位的应用

INC R0

SWAP

A

XCHD

A,@R0

INC R0

MOV A, TH0

XCHD

A,@R0

INC R0

SWAP

A

XCHD

A,@R0

DIS: LCALL

DISUP ;长调用显示子程序AJMP DIS ;重复显示机器周期数