单片机原理与应用-基于汇编、C51及混合编程第7章中断控制定时计数器及PCAPWM的应用
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15
7.3中断寄存器
上电复位后,中断优先级控制 寄存器IP、IP2、IPH和IP2H中 的各位均为0 2.中断优先级控制寄存器IP、IP2和IPH、IP2H
D7 PPCA PPCA
D6 PLVD PLVD
D5 PADC PADC
D4 PS PS
D3 PT1 PT1
D2 PX1 PX1
D1 PT0 PT0
就是中断号
中断查询序号 0 1 2 3 4 5 6 7
中断源 INT0 T0 INT1 T1 URAT1 ADC LVD PCA
中断服务程序的入口地址 0003H 000BH 0013H 001BH 0023H 002BH 0033H 003BH
8 9
UART2 SPI
0043H 004BH
17
中断处理的流程图
D7 D6
检测电压门槛值1.33V时,LVDF D5 位自动置 D4 1请求中断, D3 D2
D1 PD
D0 IDL
SMOD SMOD0 LVDF
POF
GF1
GF0
若烧写程序时没有将P4.6引脚 设置为第二复位引脚RST2, P4.6为低压检测中断引脚 EX_LVD
注意:上电复位后 ,电源控制寄存器PCON中的外部低压检测标 当外部供电电压产生波动时,无法保证单片机正常工作,可 志位 LVDF为1,要由软件清零(注意该位不可位寻址),建议清 以在单片机的外部低压检测中断服务程序中保存相关数据,避 零后,再读一次该位,若仍然为 1,说明电源还未达到正常值, 22 免掉电后数据丢失。 应再次将该位清零,直至检测到该位为0时再转入正常运行
保护现场
SETB EA …… ;执行中断任务 CLR EA …… POP DPL POP DPH 恢复现场 POP ACC POP PSW SETB EA RETI
20
7.4低压检测中断
---LVD_P4.6
P4SW功能切换寄存器
LVD_P4.6 =0时P4.6为低压 检测中断引脚EX_LVD LVD_P4.6 =1时P4.6为I/O 引脚
164urat10023h5adc002bh6lvd0033h7pca003bh8uart20043h9spi004bh中断处理的流程图置位中断优先级触发器保存断点转入中断服务子程序硬件完成保护现场17执行中断服务程序恢复现场用户编程完成清除中断优先级触发器中断返回reti指令完成中断服务程序的流程图关中断保护现场开中断执行中断任务在低优先级中断服务程序中保护现场18关中断恢复现场开中断中断返回在低优先级中断服务程序中保护和恢复现场之后的开中断是为了允许更高级的中断嵌套
25
7.6定时/计数器T0、T1的工作方式
定时/计数器T0和T1工作方式寄存器TMOD的地址为89H D7 D6
D7
PPCAH
D6
PLVDH
D5
PADCH
D4
PSH
D3
PT1H
D2
PX1H
D1
PT0H
D0
PX0H
PPCAH、PPCA为PCA中断 PX0H 、PX0 为外部中断0中 PLVDH 、PLVD 为低压检测中断优 PADCH 、 PADC 为 A/D 转换中 PT0H 、 PT0 为定时 /计数器 PT1H 、 PT1 为定时 / 计数器 1 PSH 、 PS 为串行口 1 中断优 PX1H 、 PX1 为外部中断 1 中断 优先级的高、低位 断优先级高、低位 先级的高、低位 断优先级的高、低位 T0中断优先级的高、低位 中断优先级的高、低位 先级的高、低位 优先级的高、低位
2.中断优先权控制 当有中断请求 3. 中断允许与中断屏蔽 CPU同一时间只能响应一个中断 时,如果CPU 正在执行某一 请求。若同时来了两个或两个以 4. 中断响应与中断返回 在中断系统中,有一 条指令,需要 上 中断 请求,就必须有先有 个总中断使能位控制 执行完当前指 后。 !!! 所有中断是否允许, 令后再响应中 断,如果正在 另外每个中断源还有 执行RETI,或 各自的中断使能位控 者是访问IE、 制该中断是否允许, IP寄存器指令 时,需要执行 只有在总的中断允许 完当前指令后, 及相应中断也允许时, 再执行一条指 CPU才能响应中断。另 令才响应中断。 外,当有高优先级中 断正在响应时,也会 屏蔽同级中断和低优 先级中断。
13
7.3中断寄存器
D7 D6
IP2寄存器的地址 为B5H,不能进行 2.中断优先级控制寄存器IP、IP2和IPH、IP2H 位寻址
D5
D4
D3
D2
D1
D0
D7 -
D6 -
D5 -
D4 -
D3 -
D2 -
IP2H寄存器的地 址为PSPI B6H,不能进 PS2 行位寻址
D1
D0
PSPIH PS2H
D0 PX0 PX0
-
-
-
-
-
-
PSPI
PSPI
PS2
PS2
IP寄存器的内容可通过位操作指令或字节操作指令来改 变,而IP2、IPH和IP2H寄存器的内容只能通过字节操作指 令来改变。 16
当几个中断源都在同一个优先级,其中 7.3中断寄存器 使用C语言编程, 的几个中断源同时产生中断请求,响应 中断查询次序号 各中断源中断优先查询次序 中断的次序取决于内部的查询次序。
第7章 中断控制、定时/计数器及 PCA/PWM的应用
2
主要内容
• • • • • • • • • 7.1 中断的概念 7.2中断系统的结构 7.3中断寄存器 7.4低压检测中断 7.5外部中断 7.6定时/计数器T0、T1的工作方式 7.7定时/计数器T0、T1的应用举例 7.8定时/计数器T2的工作方式及应用 7.9 PCA/PWM模块的结构及应用
8
7.3中断寄存器
1.中断允许寄存器IE2 IE2的地址为AFH,不能进行位寻址
D7
-
D6
-
D5
-
D4
-
D3
-
D2
-
D12中断允许控制位。 SPI串行通信中断允许位。 当ES2= 0时,禁止串行口 2 ESPI=0时,禁止 SPI 中断; 中断;当 ES2 =1时,允许 当ESPI=1 ,允许SPI 中断 串行口2中断
6
中断允许寄 7.2中断系统的结构 存器IE和IE2
中断源、 中断请 求
7
7.3中断寄存器
1.中断允许寄存器IE IE寄存器的地址为A8H,可进行位寻址
D7
EA
D6
ELVD
D5
EADC
D4
ES
D3
ET1
D2
EX1
D1
ET0
D0
EX0
CPU的中断允许控制位,当EA=0时,所 外部中断 0中断允许控制位。 低压检测中断允许位。当 A/D转换中断允许位。当 ELVD = EADC 0 定时/计数器 T0溢出中断允 串行口 1 中断允许控制位。 外部中断 1 中断允许控制位。 有的中断源请求均被屏蔽;当 EA=1 时,允 定时 /计数器 T1溢出中断允许 当EX0 =0 时,禁止外部中 时,禁止低压检测中断;当 =0时,禁止 A/D 转换中断;当 ELVD 许控制位。当 ET0 = 0时, 当 ES = 0 时,禁止串行口 1 当EX1 许CPU检测中断源的标志位。 EA的作用使 控制位。当 ET1= =0 0时,禁止外部中断 时,禁止 断0中断;当 EX0 =1时,允 =1,允许低压检测中断。 EADC= 1时,允许 A/D 转换结 禁止 T0 中断;当 ET0= 1时, 中断;当 ES = 1 时,允许串 1 中断;当 EX1 = 1 时,允许 T1中断;当ET1=1时,允许 中断允许形成两级控制,即各中断源首先 许外部中断 0中断 束时中断。 允许T0 中断 行口 1 中断。 外部中断 1 中断 受EA控制,其次还受各中断源自己的中断 T1中断 允许控制位控制。
PS2H 为串行口2中断 PSPIH, PSPI、 为PS2 SPI串行口 优先级的高、低位 中断优先级的高、低位
14
IPH.X、 IP.X、 或IP2H.X 、IP2.X 为 IPH.X IP.X 或 IP2H.X 、 7.2中断系统的结构 IPH.X IP.X 或IP2H.X 、 为 IPH.X 、、 IP.X 或IP2H.X 、IP2.X 11时为最高优先级中断 IP2.X 为10为 时为 2 级中断 IP2.X 01 时为 1级中断 00时为最低优先级中断
4
7.1 中断的概念
1.中断源及中断请求
中断的作用:
• • • • 对突发事故,做出紧急处理。 根据现场随时变化的各种参数、信息,做出实时监控。
CPU与外部设备并行工作,以中断方式相联系,提高工作效率。 在多项外部设备同时提出中断请求情况下,CPU能根据轻重 缓急响应外设的中断请求。
5
7.1 中断的概念
24
7.5外部中断
IT0
IT1
IE0 IE1
注意:如果外部中断设置为下降沿触发方式时,必须在该外 部中断输入引脚至少保持1个系统时钟周期的高电平及1个时钟 周期的低电平,才能保证CPU检测到该下降沿。同样,如果外 部中断为低电平触发,则须在该引脚至少保持2个系统时钟周期 的低电平,这样才能保证CPU能够检测到该低电平信号。
3
7.1 中断的概念
1.中断源及中断请求 主 • 产生中断请求的事件,称为中断源。 中 程 对于一个中断 断 0、定 • STC12C5A60S2 单片机有10 个中断源:外部中断 序 源,中断请求 服 时/计数器 T0 、外部中断 1 、定时 / 计数器 T1 、串行口 信号产生一次, PC断点 务 中断请求 CPU中断一次, 1(UART1) 、A/D转换、串行口2(UART2)、低压检测 子 继 而不能出现中 (LVD)中断、PCA中断和SPI中断。 程 续 断请求一次, 序 执 CPU响应多次 行 的情况,所以 RETI 要求中断信号 主 及时撤除。 程 序
9
7.2中断系统的结构
10
7.2中断系统的结构
• STC系列单片机复位后,IE和IE2寄存器的各位均 被清0,即所有中断源均处于禁止状态,由用户程 序对寄存器IE和IE2相应的位置1或清0,实现允许 或禁止各中断源的中断请求。 • 要改变IE寄存器各控制位的状态既可以用字节操 作指令MOV IE,#DATA来实现,也可用位操作指 令SETB或CLR实现。 • 改变IE2寄存器的各控制位,只能用字节操作指令 来实现,如:MOV IE2,#DATA。
7.5外部中断
外部中断0输入引脚
外部中断1输入引脚
23
7.5外部中断
TCON寄存器的地址为88H,可进行位寻址 D7 D6 D5 D4 D3 D2 D1 D0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IT1:外部中断1触发方式选择位。若 外部中断1请求中断标志。若外部中断 1输入引 外部中断 0请求中断标志。若外部中断 0输入引脚 IT1=0 , 引脚输入低电平信号触发中 外部中断 0 触发方式选择位。若 IT0=0, 脚产生外部触发信号时,硬件将 IE1, 位置 1,外 产生外部触发信号时,硬件将 IE0位置1,外部中 断;若 IT1=1 引脚为下降沿触发方 引脚输入低电平信号触发外部中断;若 部中断1设置为下降沿触发方式时, CPU响应 断0设置为下降沿触发方式时,当 CPU响应该中 式 IT0=1 , 引脚为下降沿触发方式 该中断时由硬件自动将 IE1位清0,如果设置为 断时由硬件自动将 IE0清0 ,如果设置为低电平触 低电平触发方式,必须在程序中通过指令清 0 发方式,必须在程序中通过指令清 0
11
中断优先级控制寄 7.2中断系统的结构 存器IP、IP2和 IPH、IP2H
12
7.3中断寄存器
D7 PPCA D6 PLVD
IP寄存器的地址为 B8H,可进行位寻 址 2.中断优先级控制寄存器IP、IP2和IPH、IP2H
D5 PADC
D4 PS
D3 PT1
D2 PX1
D1
D0
IPH寄存器的地址 为B7H PT0,不能进行 PX0 位寻址
ALE_P4.5
NA_P4.4 - - - -
烧写程序时可以将P4.6引脚 若烧写程序时没有将 P4.6 引脚 设置为第二复位引脚 RST2 , 设置为第二复位引脚RST2, P4.6为低压检测中断引脚 EX_LVD
21
7.4低压检测中断 EX_LVD引脚输入的电压低于低压 电源控制寄存器PCON
置位中断优先级触发器
硬件完成
保存断点 转入中断服务子程序 保护现场
用户编程 完成
执行中断服务程序 恢复现场 清除中断优先级触发器 中断返回
RETI 指令 完成
18
中断服务程序的流程图
关中断 保护现场 开中断
在低优先级中断服 务程序中,保护现场 和恢复现场的过程, 不允许高优先级的中 断源中断,以免现场 遭到破坏。
执行中断任务 关中断
恢复现场
在低优先级中断服务 程序中, 保护和恢复现 场之后的开中断, 是为 了允许更高级的中断 嵌套。
开中断 中断返回
19
以外部中断1为例,其中断服务处理程序
INT1: ORG 0013H LJMP INT1 …… CLR EA PUSH PUSH PUSH PUSH …… PSW ACC DPH DPL ;外部中断1的入口地址 ;在中断入口处放一条长转移指令