【大学课件】单片机中断系统.ppt

上传人:本田雅阁 文档编号:3034772 上传时间:2019-06-28 格式:PPT 页数:34 大小:1.37MB
返回 下载 相关 举报
【大学课件】单片机中断系统.ppt_第1页
第1页 / 共34页
【大学课件】单片机中断系统.ppt_第2页
第2页 / 共34页
【大学课件】单片机中断系统.ppt_第3页
第3页 / 共34页
【大学课件】单片机中断系统.ppt_第4页
第4页 / 共34页
【大学课件】单片机中断系统.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《【大学课件】单片机中断系统.ppt》由会员分享,可在线阅读,更多相关《【大学课件】单片机中断系统.ppt(34页珍藏版)》请在三一文库上搜索。

1、,第四章 单片机 中断系统,http:/ 举例:某同学正在教室写作业,忽然闹钟响了,完成设定任务,回来继续写作业。这就是生活中中断的例子。,http:/ 根据现场随时变化的各种参数、信息,做出实时监控。 CPU与外部设备并行工作,以中断方式相联系,提高工作效率。 解决快速CPU与慢速外设之间的矛盾。 在多项外部设备同时提出中断请求情况下,CPU能根据轻重缓急响应外设的中断请求。,中断的作用:,概述,http:/ 外部中断 定时/计数器溢出中断 串行发送结束请求中断 串行接收有效请求中断,http:/ 入口地址 外部中断0(/INT0) 0003H T0溢出中断 000BH 外部中断1(/INT

2、1) 0013H T1溢出中断 001BH 串口中断 0023H T2溢出中断 002BH,中断请求源(“五源中断”),http:/ 定时控制寄存器TCON 串行控制寄存器SCON 中断屏蔽寄存器IE 中断优先级寄存器IP,http:/ 。,IE0/IE1:外中断/请求标志位。当CPU采样到()端出现有效中断请求时,IE0(IE1)位由硬件置“1”。当中断响应,转向中断服务程序后,由硬件把IE0(或IE1)清零。,1.定时控制寄存器TCON,TF0/TF1:定时/计数溢出标志位。用于定时/计数器控制。,http:/ TI: 串行口发送中断请求标志位。当发送完一帧串行数据后,由硬件置“1”;在中

3、断响应,转向中断服务程序后,接口硬件不能自动将TI或RI清零,需用户用软件清零,来撤消中断。中断撤消必须在下一个中断到来之前完成。 RI:串行口接收中断请求标志位。当接收完一帧串行数据后,由硬件置“1”;在中断响应,转向中断服务程序后,需用软件清“0”。串行中断请求由TI和RI的逻辑或得到。,TCON,http:/ 例如 EA1; 若为“0”,开关断开,不允许 例如 IE.70;,http:/ !,为此将6个中断源分成0,1两个个级别,0低、1为高优先级,PT2 定时 / 计数器T2的中断优先级别 PS 串口的中断优先级别 PT1 定时 / 计数器T1的中断优先级别 PX1 外部中断1 的中断

4、优先级别 PT0 定时 / 计数器T0的中断优先级别 PX0 外部中断0 的中断优先级别,“1”,1优先级 “0”,0优先级,最低,优先级控制可以通过修改中断优先级控制寄存器IP的内容实现。IP的字节地址为0B8H,http:/ 1、低级不打断高级 2、高级不睬低级 3、同级不能打断 4、同级、同时中断,事先约定。,http:/ SETB IT0 SETB EX0 SETB EA SETB PT0,中断C程序初始化 EX0=1; IT0=1; EA=1; PX0=1;,http:/ (2)正在执行指令,还未到最后一个机器周期; (3)正在执行的指令是RETI或访问IP、IPH、IE指令,则执

5、行完上述指令后,再执行一条指令后,才会响应新中断。,http:/ 中断请求就是中断源向CPU申请中断的过程,即建立中断请求标志位IE0、IE1、TF0、TF1、TI/RI的过程 外部中断请求:经由引脚P3.2、P3.3向CPU申请中断的过程。 外部中断请求有两种方式:低电平触发和下降沿触发。通过设置触发方式控制位IT0、IT1进行选择。 IT0=0,表示为低电平触发方式;IT0=1,表示为下降沿触发方式。IT1的情况类似。 内部中断请求: 当T0计数产生溢出时,由硬件置位TF0。当CPU响应中断后,再由硬件将TF0清0。 T1的情况类似。 当串行口发送结束时,使TI=1;当串行口接收结束时,使

6、RI=1。 CPU响应中断后,由软件将TI/RI位清0。,http:/ 1)CPU响应中断的基本条件 有中断源提出中断请求; 中断总允许位EA1,即CPU中断开放; 申请中断的中断源的中断允许位为1,即中断源开放; CPU没有响应同级或更高优先级的中断; 当前指令执行结束; 如果正在执行的指令是RETI或是访问IE、IP指令。,http:/ 单片机在每个机器周期的S5P2期间,顺序采样每个中断源,建立中断请求标志。在下一个机器周期按优先级查询中断标志,如查询到有中断标志为1,则按优先级进行中断响应。 硬件将程序计数器PC的当前内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向

7、相应的中断入口。这相当于执行一条长调用指令。,http:/ 入口地址 外中断 0003H 定时/计数器T0溢出中断 000BH 外中断 0013H 定时/计数器T1溢出中断 001BH 串行口中断 0023H 定时/计数器T2溢出中断 002BH,http:/ 在中断服务程序的最后,遇到C语言中断服务程序的“”: 将相应的优先级状态触发器清零; 恢复断点地址,即从堆栈中弹出栈顶的两个字节到PC,从而返回到断点处;,http:/ 在中断返回(执行RETI)前,必须撤除中断请求,即将中断标志位清除,否则当CPU返回到主程序后会错误地再一次引起中断响应。 (1)T0/T1和边沿触发的INT0/INT

8、1:自动撤销 (2)电平触发的INT0/INT1:CPU无法直接控制,需要在引脚处加硬件撤销中断请求。 (3)串行口中断:CPU响应中断后不能用硬件清除中断标志位,必须由用户在中断服务程序中用指令来清除相应的中断标志。 3)中断响应时间 MCS-51单片机响应中断的最短时间为3个机器周期,最长为8个机器周期。,http:/ 0000H LJMP START ORG 0003H LJMP INT0_FUNC ORG 0050H START: SETB IT0 MOV A, IPH ORL A, #01H MOV IPH, A,ORG 0200H INT0_FUNC: PUSH PSW PUSH

9、Acc SETB RS0 CLR RS1 . POP Acc POP PSW RETI END,SETB PX0 SETB EX0 SETB EA LCALL MYFUNC . SJMP $ ORG 0100H MYFUNC: . RET,http:/ EX_INT0() interrupt 0 using 1 LED=LED; /控制LED亮灭 ,void main() LED=1; EA=1; EX0=1; IT0=1; while(1); ,#include #define uchar unsigned char #define uint unsigned int sbit LED=P0

10、0;,void main() LED=1; EA=1; EX0=1; IT0=1; while(1); ,void main() LED=1; EA=1; EX0=1; IT0=1; while(1); ,http:/ 利用单片机中的定时器/计数器T0、T1来扩展; 外接硬件电路并配合查询程序扩展; 外接中断控制芯片(如8259)进行扩展。,http:/ void delayMs(unsigned int i)/定义延时程序 unsigned int j; /定义延时变量 while(i-) /延时外循环 for(j = 0; j 125; j+);/延时外循环 main() /主程序 P2=0;/关闭LED IT0=1;/设置中断0边沿触发 EX0=1;/打开中断0允许 EA=1;/打开CPU中断允许 while(1)/设置主循环 P2=P1;/读取按键状态送LED显示 delayMs(20);/延时 exint0() interrupt 0/外中断0服务程序 do/中断循环 EA=0;/关中断 P2=0;/关闭LED delayMs(20); /延时 P2=P1;/读取按键状态送LED显示 delayMs(20);/延时 while(P32=1);/循环闪烁 EA=1;/开中断,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1