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

39
武 6 武 武武武武武武武武武武 6.1 MCS-51 单单单单单单 6 .2 MCS-51 单单单单单单单 / 单单单 6.3 MCS-51 单单单单单单单单单单单 6.4 单单 / 单单单单单单单单单单单单

Upload: bin

Post on 14-Mar-2016

135 views

Category:

Documents


5 download

DESCRIPTION

第 6 章 单片机的中断与定时系统. 6.1 MCS-51 单片机中断系统 6 .2 MCS-51 单片机的定时器 / 计数器 6.3 MCS-51 单片机外部中断源的扩展 6.4 定时 / 计数器与中断综合应用举例. 6.1 MCS-51 单片机中断系统. 6.1.1 中断请求 6.1.2 中断源 6.1.3 中断控制 6.1.4 中断响应过程 6.1.5 中断请求的撤销 6.1.6 中断服务流程. 6.1.1 中断请求. 图 6-1 中断流程图. - PowerPoint PPT Presentation

TRANSCRIPT

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

武汉科技大学计算机学

院 第 6 章 单片机的中断与定时系统 6.1 MCS-51 单片机中断系统 6.2 MCS-51 单片机的定时器 / 计数器 6.3 MCS-51 单片机外部中断源的扩展 6.4 定时 / 计数器与中断综合应用举例

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

武汉科技大学计算机学

院 6.1 MCS-51 单片机中断系统• 6.1.1 中断请求• 6.1.2 中断源• 6.1.3 中断控制• 6.1.4 中断响应过程• 6.1.5 中断请求的撤销• 6.1.6 中断服务流程

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

武汉科技大学计算机学

院6.1.1 中断请求

图 6-1 中断流程图

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

武汉科技大学计算机学

院 1. 外部中断源( 2 个)由 INT0 ( P 3.2 )引入,低电平或下降沿引起。由 INT1 ( P 3.3 )引入,低电平或下降沿引起。 2. 外部中断请求有两种信号方式:电平方式和脉冲方式。电平方式的中断请求是低电平有效。脉冲方式的中断请求是脉冲的后沿负跳有效。

6.1.2 中断源

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

武汉科技大学计算机学

院 3 .定时中断源( 2 个) T0 :定时 / 计数器 0 中断,由 T0 溢出引起。 T1 :定时 / 计数器 1 中断,由 T1 溢出引起。4. 串行中断( 1 个) TI/RI :串行 I/O 中断,完成一帧字符发送 /接收引起。

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

武汉科技大学计算机学

图 6-2 中断系统的结构框图

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

武汉科技大学计算机学

院6.1.3 中断控制

1. 定时器控制寄存器( TCON )该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器地址 88H ,位地址 8FH~88H 。

TCON位地址

0DD1D2D3D4D5D6D7

IT0IE0IT11IETR0TF0TR1TF1

88898A8B8C8D8E8F

{0 :电平触发方式,低电平有效1 :脉冲触发方式,后沿负跳有效

00 :无 T 中断(硬件复位){1 :有 T 溢出中断0

0 :无 T 中断(硬件复位)1 :有 T 溢出中断{ 1

1

{0 :转向中断服务时,由硬件清 01 :出现外部中断,由硬件置 1

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

武汉科技大学计算机学

院 2. 串行口控制寄存器( SCON )串行中断请求由 TI 和 RI 的逻辑或得到,寄存器地址98H ,位地址 9FH~98H 。

SCON位地址

0DD1D2D3D4D5D6D7

RITIRB88TBRENSM2SM1SM0

98999A9B9C9D9E9F

{0 :转向中断服务时,用软件清 01 :接收完一帧串行数据后,硬件置 1{0 :转向中断服务时,用软件清 01 :发送完一帧串行数据后,由硬件置 1

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

武汉科技大学计算机学

3. 中断允许寄存器 IE( 0A8H)IE 在特殊功能寄存器中,字节地址 0A8H ,位地址分别是0A8H ~ 0AFH 。 IE 控制 CPU 对中断源总的开放或禁止以及每个中断源是否允许中断。

0 :关 INT 中断01 :开 INT 中断00 :关 T 中断1 :开 T 中断00

1 :开 T 中断0 :关 T 中断0 :关 INT 中断1 :开 INT 中断

11

11

1 :开所有中断0 :关所有中断

1 :开串行口中断0 :关串行口中断

位地址IE EA

AF ACES

ABET

AAEX

A9ET

A8EX0011

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

武汉科技大学计算机学

4. 中断优先寄存器 IP( 0B8H)IP 在特殊功能寄存器中,字节地址为 0B8H ,位地址分别是 0B8H ~ 0BFH , IP 用来锁存各中断源优先级的控制位,系统定义高、低 2 个优先级。

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

武汉科技大学计算机学

院5. 中断优先级控制原则和控制逻辑 1 )低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。 2 )如果一个中断请求已被响应,则同级的其他中断服务将被禁止,即同级不能嵌套。 3 )如果同级的多个中断请求同时出现,按 CPU 查询次序确定那个中断请求被响应。查询次序为:外部中断 0—> 定时中断 0 —> 外部中断 1 —> 定时中断 1 —> 串行中断。

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

武汉科技大学计算机学

院6.1.4 中断响应过程

1. 中断采样 采样是对芯片引脚 INT0 ( P3.2 )和 INT1 ( P3.3 )在每个机器周期的 S5P2 进行的,根据采样结果来设置 TC

ON 寄存器中响应标志位的状态,即把外中断请求锁定在这个寄存器中。 2. 中断查询 CPU 在下一个机器周期 S6 期间按优先级顺序查询中断标志,如查询到某个中断标志为 1 ,将在再下一个机器周期 S1 期间按优先级进行中断处理。

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

武汉科技大学计算机学

院 3. 中断响应 中断响应主要是由硬件自动生成一条长调用指令 LCALL 。其格式:

LCALL addr16 。中断得到响应后自动清除中断标志,由硬 件将程序计数器 PC 内容压入堆栈保护,然后将对应的中断矢量 装入程序计数器 PC ,使程序转向中断矢量地址单元中去执行相应的中断服务程序。通常在各中断入口地址处放置一条无条件跳转指令,使程序执行转向在其他地址存放的中断服务程序。 例如: ORG 8000H // 主程序入口地址 START: AJMP MAIN ORG 800BH // 定时 / 计数器 0 中断服务程序入口地址 AJMP PITO

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

武汉科技大学计算机学

院下列任何一种情况存在中断申请将被封锁:( 1 ) CPU 正在执行一个同级或高一级的中断服务程序。( 2 )当前正在执行的那条指令还未执行完。( 3 )当前正在执行的指令是 RETI 或对 IE , IP 寄存器进行读 / 写指令,执行这些指令后至少再执行一条指令才会响应中断。

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

武汉科技大学计算机学

院6.1.5 中断请求的撤销

1 )定时中断请求的撤销 定时中断响应后,硬件自动把标志位( TF0 或 TF1 )清 0 。 2 )脉冲方式外部中断请求的撤销 外部中断响应后,硬件自动将标志位( IE0 或 IE1 )清 0 ,脉冲信号自动消失。 3 )电平方式外部中断请求的撤销 外部中断响应后,硬件自动将标志位( IE0 或 IE1 )清 0 ,在中断服务程序中用软件将中断请求信号引脚从低电平强制改变为高电平。 4 )串行中断软件撤销 串行中断响应后,由用户在中断服务程序中用软件将标志位( TI 或 RI )清 0 。

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

武汉科技大学计算机学

6.1.6 中断服务流程执行主程序

执行下一条指令 取下一条指令

关中断保护现场和断点

恢复现场

中断服务

开中断

关中断

开中断

有中断请求?

返回断点 (RETI)

N

Y

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

武汉科技大学计算机学

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

6.2.1 定时方法概述6.2.2 定时 / 计数器的定时和计数功能6.2.3 定时 / 计数器的控制寄存器6.2.4 定时工作方式

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

武汉科技大学计算机学

院 6.2.1 定时方法概述 软件定时 硬件定时 可编程定时

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

武汉科技大学计算机学

院6.2.2 定时器 / 计数器的定时和计数功能

定时 / 计数器简称定时器, MCS-51 单片机有 2 个 16 位的定时 / 计数器:定时器 0 ( T0 )和定时器 1 ( T1 )。它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。 T0 由 2 个特殊功能寄存器 TH0 和 TL0 构成, T1 则由

TH1 和 TL1 构成。 计数是对外部脉冲进行计数。作计数器时,通过引脚 T0( P3.4 )和 T1 ( P3.5 )对外部脉冲信号计数,当输入脉冲信号从 1 到 0 的负跳变时,计数器就自动加 1 。计数的最高频率一般为振荡频率的 1/24 。 定时功能通过计数器的计数来实现,计数脉冲来自单片机内部,即每个机器周期产生一个计数脉冲,则每个机器周期计数器加 1 。计数频率是振荡频率的 1/12 。

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

武汉科技大学计算机学

院 定时器共有 2 个控制寄存器 TMOD 和 TCON ,由软件写入 TMOD 和 TCON 两个 8 位寄存器,设置各个定时器的操作模式和控制功能。

6.2.3 定时器 / 计数器的控制寄存器

TCON位地址

0DD1D2D3D4D5D6D7IT0IE0IT11IETR0TF0TR1TF188898A8B8C8D8E8F

见 6.1.3 节 { 00 :停 T 计数01 :启 T 计数00 :无 T 中断(硬件复位){1 :有 T 溢出中断0

0 :无 T 中断(硬件复位)10 :停 T 计数{

1 :有 T 溢出中断1 :启 T 计数{ 1

11

定时器工作模式寄存器 TCON

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

武汉科技大学计算机学

院 GATE C/T M1 0M GATE C/ T 1M 0M

T控 制 1 T控 制 0

89H

T 和 类同01M 0M00011011

方 式0方式1方式2方式3方式

01

定时器模式计数器模式

01

I NT 与 无关0

0I NT 与 有关

定时器工作模式寄存器 TMOD

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

武汉科技大学计算机学

院6.2.4 定时 / 计数器工作方式每个定时 / 计数器还有 4 种工作模式,也就是每个定时器可构成 4 种电路结构模式。在模式 0 、 1 和 2 , T0 和 T1 的工作模式相同,在模式 3 ,两个定时器的模式不同。

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

武汉科技大学计算机学

院1 )定时器工作方式 0 方式 0 是 13 位计数结构的工作方式,计数器由 TH

0 ( TH1 )全部 8 位和 TL0 ( TL1 )低 5 位构成,TL0 ( TL1 )高 3 位不用。

定时 / 计数器 T1 ( T0 )工作模式 0

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

武汉科技大学计算机学

院 当为计数工作方式时,计数范围是 1 ~ 8192 ( 21

3 ) 当为定时工作方式时,定时时间计算公式是: ( 213-计数初值) × 晶振周期 ×12 或 ( 213-计数初值) × 机器周期例如:晶振频率为 6MHz ,则最小定时时间为: [213-( 213- 1 ) ]×1/6×10-6×12 = 2us最大定时时间为: ( 213- 0 ) ×1/6×10-6×12 = 16384us

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

武汉科技大学计算机学

院 例 6.1 :设单片机晶振频率为 6MHz ,使用定时器 1 以方式 0 产生周期为 500us 的等宽正方波连续脉冲,并由 P1.0 输出。以查询方式完成。1 )计算计数初值 ( 213-X ) ×1/6×12 = 250 X=0FC03H , TH1=0FCH , TL1=03H2 ) TMOD 寄存器初始化 定时器 1 设定为方式 0 ,则 M1M0=00 ; 定时工作方式,则 C/T = 0 ; 以运行控制位 TR 启动定时器 1 ,则 GATE=0 ; 定时器 0 不用,所以 TMOD 低 4 位为 0 ; TMOD 初始化为 00H 。3 )由定时器控制寄存器 TCON 中的 TR1 位控制定时的启动和停止 TR1=1 启动; TR1 = 0 停止。

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

武汉科技大学计算机学

院4 )程序设计

MOV TMOD,#00H ; 初始化 TMODMOV TH1,#0FCH ; 设置计数初值MOV TL1,#03HMOV IE, #00H ; 禁止中断SETB TR1 ; 启动定时JBC TF1,LOOP1 ; 查询计数是否溢出AJMP LOOPMOV TH1,#0FCH ; 重新设置计数初值 MOV TL1,#03H CLR TF1 ; 计数溢出标志位清 0CPL P1.0 ; 输出取反AJMP LOOP

LOOP:

LOOP1:

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

武汉科技大学计算机学

院2 )定时器工作方式 1 方式 1 是 16 位计数结构的工作方式,计数器由 TH

0 ( TH1 )全部 8 位和 TL0 ( TL1 )全部 8 位构成,其逻辑电路和工作情况与方式 0 完全相同。

定时 / 计数器 T1 ( T0 )工作模式 1

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

武汉科技大学计算机学

院 当为计数工作方式时,计数范围是 1 ~ 65536 ( 21

6 ) 当为定时工作方式时,定时时间计算公式是: ( 216-计数初值) × 晶振周期 ×12 或 ( 216-计数初值) × 机器周期例如:晶振频率为 6MHz ,则最小定时时间为: [216-( 216- 1 ) ]×1/6×10-6×12 = 2us最大定时时间为: ( 216- 0 ) ×1/6×10-6×12 = 131072us

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

武汉科技大学计算机学

院 例 6.2 :设单片机晶振频率为 6MHz ,使用定时器 1 以方式 1 产生周期为 500us 的等宽正方波连续脉冲,并由 P1.0 输出。以中断方式完成。1 )计算计数初值 ( 216-X ) ×1/6×12 = 250 X=0FF83H , TH1=0FFH , TL1=83H2 ) TMOD 寄存器初始化 定时器 1 设定为方式 0 ,则 M1M0=01 ; 定时工作方式,则 C/T = 0 ; 以运行控制位 TR 启动定时器 1 ,则 GATE=0 ; 定时器 0 不用,所以 TMOD 低 4 位为 0 ; TMOD 初始化为 10H 。3 )由定时器控制寄存器 TCON 中的 TR1 位控制定时的启动和停止 TR1=1 启动; TR1 = 0 停止。

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

武汉科技大学计算机学

4 )程序设计 主程序:MOV TMOD,#10H ; 初始化 TMODMOV TH1,#0FFH ; 设置计数初值MOV TL1,#83HSETB EA ; 开中断SETB ET1 ; 定时器 1 允许中断SETB TR1 ; 启动定时SJMP $ ; 等待中断MOV TH1,#0FFH ; 重新设置计数初值 MOV TL1,#83H CPL P1.0 ; 输出取反RETI ; 中断返回

LOOP:HERE:

中断服务程序:

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

武汉科技大学计算机学

3 )定时器工作方式 2 方式 2 是自动加载计数初值工作方式,由 TL 作计数器,以 TH 作预置寄存器,初始化时将计数初值分别装入 TL 和 TH 中,当计数溢出后,由预置寄存器 TH 以硬件方法自动给计数器 TL 重新加载。 当为计数工作方式时,计数范围是 1 ~ 256 ( 28 ) 当为定时工作方式时,定时时间计算公式是: ( 28-计数初值) × 晶振周期 ×12 或 ( 28-计数初值) × 机器周期

定时 / 计数器 T1 ( T0 )工作模式 2

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

武汉科技大学计算机学

院 例 6.3 :使用定时器 0 以工作方式 2 产生 100us 定时,在 P1.0 输出周期为 200us 的连续正方波脉冲,已知晶振频率为 6MHz 。1 )计算计数初值 ( 28-X ) ×1/6×12 = 100 X=0CEH , TH0=0CEH , TL0=0CEH2 ) TMOD 寄存器初始化 定时器 0 设定为方式 2 ,则 M1M0=10 ; 定时工作方式,则 C/T = 0 ; 以运行控制位 TR 启动定时器 1 ,则 GATE=0 ; 定时器 1 不用,所以 TMOD 高 4 位为 0 ; TMOD 初始化为 02H 。3 )由定时器控制寄存器 TCON 中的 TR1 位控制定时的启动和停止 TR1=1 启动; TR1 = 0 停止。

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

武汉科技大学计算机学

MOV IE,#00H ; 禁止中断MOV TMOD,#02H ; 初始化 TMODMOV TH0,#0CEH ; 保存计数初值MOV TL0,#0CEH ; 设置计数初值SETB TR0 ; 启动定时JBC TF0,LOOP1 ; 查询计数是否溢出AJMP LOOPCPL P1.0 ; 输出取反AJMP LOOP ; 重复循环

LOOP:

LOOP1:

1 )查询方式:

MOV TMOD,#02H ; 初始化 TMODMOV TH0,#0CEH ; 设置计数初值MOV TL0,#0CEHSETB EA ; 开中断SETB ET0 ; 定时器 1 允许中断SETB TR0 ; 启动定时SJMP $ ; 等待中断CPL P1.0 ; 输出取反RETI ; 中断返回

LOOP:

HERE:

中断服务程序:

主程序:2 )中断方式:

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

武汉科技大学计算机学

院4 )定时器工作方式 3 1. 工作方式 3 下的定时 / 计数器 0 定时器 / 计数器 0 被拆成两个独立的 8 位计数器 TL0和 TH0 。 TL0 既作计数使用,又可以定时使用,功能和操作方式与方式 0 或方式 1 完全相同。 TH0 只能作为定时器使用,控制位借用定时器 1 的控制位 TR1 和 TF1 。 2. 工作方式 3 下的定时 / 计数器 1 如果定时器 / 计数器 0 工作在方式 3 ,定时器 / 计数器 1 只能作为串行口的波特率发生器使用,以确定串行通信的速率。

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

武汉科技大学计算机学

定时 / 计数器 T1 ( T0 )工作模式 3

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

武汉科技大学计算机学

例 6.4 用 MCS-51 单片机来实现时钟计时。秒计时用硬件定时和软件定时相结合的方法来实现。把定时器的定时时间定为 125ms ,计数溢出 8 次得到 1s 。假定使用定时 / 计数器 0 采用工作方式 1 ,假定单片机晶振频率为 6MHz1 )计算计数初值: ( 216- X ) ×2 = 125000 X = 0CDCH2 )定时器定时采用中断方式,在中断服务程序中进行溢出次数累计,计满 8 次得到秒计时。3 )在中断服务中,进行分和时的计时。4 )设置时钟显示及显示缓冲区。

5 ) LED 显示程序由 SMXS 子程序提供。

LED5 LED4 LED3 LED2 LED1 LED07EH 7FH 7CH 7BH 7AH 79H

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

武汉科技大学计算机学

院MAIN

定义堆栈区显示缓冲单元清 0

定时器 0 工作方式 1

装载计数初值定时开始

开中断设置循环次数

调用显示子程序 SMXS

1. 主程序 MAIN

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

武汉科技大学计算机学

院2. 中断服务程序 PITO 程序开始先判断计数溢出是否满 8 次,不满 8 次则表明还未到达最小计时单位秒,中断返回;如满 8 次则表明已达最小单位秒,程序继续向下执行。 秒值加 1 ,判断是否到达 60 秒,若没达到,则中断返回;如到达 60 秒,则秒显示缓冲单元清 0 。 分值加 1 ,判断是否到达 60 分,若没达到,则中断返回;如到达 60 分,则分显示缓冲单元清 0 。 时值加 1 ,判断是否到达 24 时,若没达到,则中断返回;如到达 24 时,则时显示缓冲单元清 0 。3. 加 1 子程序 DAAD1 合数 十进制调整 分数

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

武汉科技大学计算机学

本章到此结束