- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断请求信号的高、 中断请求信号的高、低电平都应至少维持一个机器周 确保电平变化能被采样; TR1、TR0与中断无关,仅与定时/计数器 和T0有关 、期,确保电平变化能被采样; 与中断无关,仅与定时 计数器T1和 有关 与中断无关 计数器 适合以负脉冲形式输入的外部中断请求。 适合以负脉冲形式输入的外部中断请求。
中断源 外部中断0 外部中断0 定时器中断0 定时器中断0 外部中断1 外部中断1 定时器中断1 定时器中断1 串行口发送/接受中断 串行口发送/ 入口地址 0003H 最高级 000BH 0013H 001BH 002BH 优先级
中断号 0 1 2 3
最低级
4
• 6. 中断的控制与实现
– 中断的控制与实现是通过 个与中断相关的特 中断的控制与实现是通过4个与中断相关的特 殊功能寄存器配置来完成的,它们分别是: 殊功能寄存器配置来完成的,它们分别是: • 定时 计数器控制寄存器 定时/计数器控制寄存器 计数器控制寄存器TCON • 串行口控制寄存器 串行口控制寄存器SCON • 中断允许控制寄存器 中断允许控制寄存器IE • 中断优先级控制寄存器 中断优先级控制寄存器IP
– 1).中断的初始化 .
1)将中断允许控制寄存器IE的相应位置 ,允许相应的中断 )将中断允许控制寄存器 的相应位置 的相应位置1, 源中断; 源中断; 设置中断优先级控制寄 2)当有多个中断源共存时,根据要求设置中断优先级控制寄 )当有多个中断源共存时,根据要求设置中断优先级 存器的相应位,确定并分配所使用的中断源的优先级。 存器的相应位,确定并分配所使用的中断源的优先级。 3)对外部中断源,要设置中断请求的触发方式 )对外部中断源, 设置中断请求的触发方式IT1和IT0,以 和 , 确定采用的是电平触发方式还是边沿触发方式。 确定采用的是电平触发方式还是边沿触发方式。
第七讲
中断、定时系统及其应用 中断、
中断系统
• 1.中断的概念 . • 2.中断系统 .
1) 2) 3) 中断
主 程 序 中 断 服 务 断点 主 程 序 程 序
的
中断
中断
中断 中断
• 3.中断 . • 4.中断的 点 .
• • •
• 5.中断源 .
51单片机共有 个中断源:外部中断 、外部中断 、定 单片机共有5个中断源 外部中断0、外部中断1、 单片机共有 个中断源: 计数器中断0、定时/计数器中断 计数器中断1、 时/计数器中断 、定时 计数器中断 、串行口中断 计数器中断 5个中断源的中断服务有各自的入口地址: 个中断源的中断服务有各自的入口地址: 个中断源的中断服务有各自的入口地址 入口地址 5个中断源有系统默认的优先级顺序 5个中断源有系统默认的优先级顺序: 个中断源有系统默认的优先级顺序: 优先级
• 8.中断的处理过程 中断的处理过程
– 1).中断响应的条件 中断响应的条件
• CPU中断响应的条件是: 中断响应的条件是: 中断响应的条件是
中断源有中断请求 该中断被允许响应——该中断的中断允许位为 该中断的中断允许位为1 该中断被允许响应 该中断的中断允许位为 CPU开总中断 开总中断
同时满足这3个条件时,CPU才有可能响应中断。 同时满足这 个条件时, 才有可能响应中断。 个条件时 才有可能响应中断
– 2).外部中断响应时间 外部中断响应时间
• 外部中断 外部中断/INT0和/INT1电平在每一个机器周期的 和 电平在每一个机器周期的S5P2被采 电平在每一个机器周期的 被采 样并锁存到IE0、IE1中,这个新置入的 样并锁存到 、 中 这个新置入的IE0、IE1的状态等 、 的状态等 到下一个机器周期才被查询电路查询到,如果中断被激活, 到下一个机器周期才被查询电路查询到,如果中断被激活,并 且满足响应条件,CPU接着执行一条由硬件生成的子程序调用 且满足响应条件, 接着执行一条由硬件生成的子程序调用 指令以转到相应的中断服务子程序入口, 指令以转到相应的中断服务子程序入口,该硬件调用指令本身 需要两个机器周期,这样, 需要两个机器周期,这样,从产生外部中断请求到开始执行中 断服务子程序的第一条指令之间至少需要 个完整的机器周期。 至少需要3个完整的机器周期 断服务子程序的第一条指令之间至少需要 个完整的机器周期。
• 7.中断优先级的 条百度文库则: 中断优先级的3条原则 中断优先级的 条原则:
– CPU同时接受到几个中断时,首先响应优先级 同时接受到几个中断时, 同时接受到几个中断时 别最高的中断请求; 别最高的中断请求; – 正在进行的中断过程不能被新的同级或低优先 级的中断请求所中断; 级的中断请求所中断; – 正在进行的低优先级中断服务,能被高优先级 正在进行的低优先级中断服务, 中断请求所中断。 中断请求所中断。
– 2).编写中断服务程序,处理中断请求 .编写中断服务程序,
多 个 中 断 源
1)关中断 ) 2)现场保护 ) 3)开中断 ) 4)中断处理 ) 5)关中断 ) 6)现场恢复 ) 7)开中断 ) 8)中断返回 )
1)关中断 )
一 个 中 断 源
2)现场保护 ) 3)中断处理 )
4)现场恢复 )
5)开中断 )
ET1 EX1 ET0 EX0
A8H
AFH AEH ADH ACH ABH AAH A9H A8H
1)ET1/0:定时器 : 定时器 3) EA:中断允许总控制位 定时器1/0中断允许控制位。 中断允许控制位。 ) 中断允许控制位
EA=0,CPU关总中断,屏蔽所有中断请求。 关总中断,屏蔽所有中断请求 关总中断 ET1/0=0,禁止定时 计数器 或T0中断; 。 禁止定时/计数器 中断; 禁止定时 计数器T1或 中断 EA=1,CPU开总中断,这时只要各中断源中断允 开总中断, 开总中断 ET1/0=1,允许定时 计数器 或T0中断。 允许定时/计数器 中断。 允许定时 计数器T1或 中断 许未被屏蔽,当中断到来时,就有可能得到响应。 4)EX1/0:外部中断 外部中断1/0的中断允许控制位。 的中断允许控制位。 ) 许未被屏蔽,当中断到来时,就有可能得到响应。 外部中断 的中断允许控制位 ES=0,禁止串行口中断; )外部中断。 禁止串行口中断; 禁止串行口中断 EX1/0=1,允许 允许/INT0(INT1)外部中断。 允许 ( ES=1,允许串行口中断。 允许串行口中断。 允许串行口中断
IP 位地址 BH BEH BDH PS PT1 PX1 PT0 PX0
B8H
BCH BBH BAH B9H B8H
1)PS:串行口中断优先级控制位。 ) :串行口中断优先级控制位。 PS=0,设置串行口中断为低优先级; 设置串行口中断为低优先级; 设置串行口中断为低优先级 PS=1,设置串行口中断为高优先级。 设置串行口中断为高优先级。 设置串行口中断为高优先级 2)PT1(PT0):定时 计数器 ):定时 计数器T1(T0)中断优先级控制位。 中断优先级控制位。 ) ( ):定时/计数器 中断优先级控制位 PT1(PT0)=0,设置定时 计数器 计数器T1(T0)为低优先级; 为低优先级; ( ) ,设置定时/计数器 为低优先级 PT1(PT0)=1,设置定时 计数器 计数器T1(T0)为高优先级。 为高优先级。 ( ) ,设置定时/计数器 为高优先级 3)PX1(PX0):/INT0(/INT1)中断优先级控制位。 ) ( )中断优先级控制位。 PX1(PX0)=0,设置外部中断 (外部中断 )为低优先级; ,设置外部中断1(外部中断0)为低优先级; PX1(PX0)=1,设置外部中断 (外部中断 )为高优先级。 ,设置外部中断1(外部中断0)为高优先级。
6)中断返回 )
• 10.外部中断的应用举例 外部中断的应用举例
– 外部中断源扩展设计
• 中断和查询结合的方法
INT0
INT1
– 外部中断的一般应用
• 如图所示,按键K接至外部中断 如图所示,按键 接至外部中断 接至外部中断INT1,试编写程序使得 , 按一次键LED点亮,再按一次,LED熄灭,循环往复。 点亮, 熄灭, 按一次键 点亮 再按一次, 熄灭 循环往复。
2)ES:串行口中断允许控制位。 ) EX1/0=0,禁止 :串行口中断允许控制位。 禁止/INT0(/INT1)外部中断; 禁止 ( )外部中断;
• 中断优先级控制寄存器IP(B8H) 中断优先级控制寄存器 ( )
– 8051单片机有两个中断优先级 对于每一个中断请 单片机有两个中断优先级.对于每一个中断请 单片机有两个中断优先级 求源可设置为高优先级或低优先级中断。 求源可设置为高优先级或低优先级中断。中断优先 级控制寄存器IP就是用来设置中断源中断优先级 级控制寄存器 就是用来设置中断源中断优先级 的。 位 D7 D6 D5 D4 D3 D2 D1 D0 字节地址
• 中断允许控制寄存器IE(A8H) 中断允许控制寄存器 ( )
– 在51系列单片机中,开中断与关中断是由中断 系列单片机中, 系列单片机中 开中断与关中断是由中断 允许控制寄存器IE控制的 控制的。 允许控制寄存器 控制的。
位 IE 位地址 D7 EA D6 D5 D4 ES D3 D2 D1 D0 字节地址
– 3).中断响应过程 .
• 将相应的优先级状态触发器置 (以阻断后来的 将相应的优先级状态触发器置1( 同级或低级的中断请求); 同级或低级的中断请求); • 执行一条硬件 执行一条硬件LCALL指令,即把程序计数器 指令, 程序计数器PC 指令 即把程序计数器 的内容压入堆栈保存, 的内容压入堆栈保存,再将相应的中断服务程 序的入口地址送入PC; 序的入口地址送入 ; • 执行中断服务程序。 执行中断服务程序。
– 4).中断返回 4).
中断服务程序的最后一条指令必须是中断返回指 令RETI,用来恢复断点地址。 ,用来恢复断点地址。
– 5).外部中断的触发方式 .
外部中断请求有2种触发方式: 外部中断请求有 种触发方式:电平触发和边沿 种触发方式 脉冲触发。 脉冲触发。
• 9.中断服务程序的设计步骤 中断服务程序的设计步骤
#include<reg51.h> #define uchar unsigned char sbit LED=P0^0; bit flag; /*中断服务程序 中断服务程序*/ 中断服务程序 void int1_int () interrupt 2 { flag=!flag; LED=flag; } /*主程序 主程序*/ 主程序 void main() { flag=1; LED=flag; EA=1; EX1=1; IT1=1; while(1); }
• 定时 计数器控制寄存器TCON(88H) 定时/计数器控制寄存器 计数器控制寄存器 ( )
– 它锁存 个定时/计数器的溢出中断标志及外部 它锁存2个定时 计数器的溢出中断标志 计数器的溢出中断标志及 中断/INT0和/INT1的中断标志 中断 和 的中断标志
3)– 当单片机复位后,TCON被清 触发方式控制位。 )TF0/1:定时 计数器 计数器T0/1溢出中断请求标志位。 溢出中断请求标志位。 溢出中断请求标志位 1)IT0/IT1:外部中断 ) :定时/计数器 :外部中断0/1触发方式控制位 , 当单片机复位后, 被清0,则CPU关中断 关中断, 被清 触发方式控制位。 , 关中断 启动T0/1后,定时 计数器 计数器T0/1从初值开始加 计数, 从初值开始加1计数 启动 IT0/1=0,为电平触发方式,(低电平有效) 当 后 定时/计数器 从初值开始加 计数, 所有中断请求被禁止。 所有中断请求被禁止。 ,(低电平有效 ,为电平触发方式,(低电平有效) 最高位产生溢出时,由硬件将TF0/1置1,向CPU申请中断, 最高位产生溢出时,由硬件将 申请中断, 申请中断 要求电平至少保持一个机器周期; 要求电平至少保持一个机器周期置 , ; CPU响应 中断服务结束前必须撤销低电平。 响应TF0/1中断时, 中断请求标志位。 中断时, 中断请求标志位。 由硬件清0, 响应 中断服务结束前必须撤销低电平。 中断时 由硬件清 2)IE0/1:外部中断 TF0/1由硬件清 ,也可由软件清 外部中断0/1中断请求标志位 ) 外部中断 为边沿触发方式(下降沿有效) ,为边沿触发方式(下降沿有效) 0。 IT0/1=1,时,表示 。 当IE0/1=1时 表示/INT0/1向CPU请求中断。 请求中断。 向 请求中断