单片机中断讲解.ppt
文本预览下载声明
四、C51中的中断函数 2.中断服务程序的格式 C51中的中断服务程序的格式如下: void 函数名( void) interrupt 中断号 [using 寄存器组号] 说明: 中断服务函数不能进行参数传递 中断服务函数不能有返回值 中断服务函数不能被调用 3.中断服务程序的执行 在程序执行过程中,当发生了中断的同时,如果该中断又是允许中断的,那么中断就发生了,正在执行的程序被暂时中断执行,转而去执行对应的中断服务程序。 当中断服务程序执行结束后,自动返回到被中断的程序,继续从中断点执行原来的程序。 从上面的叙述可以看出,中断服务程序的执行必须要有以下条件:中断源有中断申请,对应的中断是允许的,有对应的中断服务程序。对于定时/计数器中断,将在后面的任务中加以介绍和说明。 *例 多外部中断源的系统示例。 设有5个外部中断断优先级排队顺序为:XI0、XI1、XI2、XI3、XI4源(控制对象),中。试设计它们与80C51单片机的接口。 ORG 0000H LJMP START ORG 0003H LJMP INSE0 ;转外部中断0服务程序入口 ORG 0013H LJMP INSE1 ;转外部中断1服务程序入口 ORG 0100H START :… … RET INSE0: PUSH PSW ;XI0中断服务程序 PUSH ACC … … … … POP ACC POP PSW RETI INSE1:PUSH PSW ;INT1中断服务程序 PUSH ACC JB P1.0,DV1 ;P1.0为1,转XI1中断服务程序 JB P1.1,DV2 ;P1.1为1,转XI2中断服务程序 JB P1.2,DV3 ;P1.2为1,转XI3中断服务程序 JB P1.3,DV4 ;P1.3为1,转XI4中断服务程序 INRET:POP ACC POP PSW RETI DV1:… … ;XI1中断服务程序 AJMP INRET DV2:… … ;XI2中断服务程序 AJMP INRET DV3: … … ;XI3中断服务程序 AJMP INRET DV4:… … ;XI4中断服务程序 AJMP INRET END 课题分析 AT89S51 P1.0 P3.2 图1 按键控制一只发光二极管的原理电路 +Vcc GND 处理方法: 查询按键 通过中断识别按键 对比一下两种控制的实现方法 采用键盘查询的方式来实现键盘控制,程序设计了不断检测是否有键盘按下的检测程序段,若有键按下,程序去执行某一段程序,没有键按下,程序执行另一段程序。按键可设在单片机任意端口的引脚上,只是利用了已接在P3.2上的Key1键。 利用单片机外部中断功能来实现彩灯控制,按键只能是接在单片机外部中断输入端,对于AT89S51而言P3.2和P3.3是其外部中断输入端,在这两个端上外接按键,可产生作为外部中断控制的输入信号。当按键按下时,产生外部中断信号,单片机内部自动执行中断所设定的任务。 课题分析 程序设计分析 由于中断函数与主程序之间的运行,相当于两个程序并行运行,将一个任务分为两个部分处理的具体分解方法有多种,所以用中断函数去控制彩灯的显示,具体的实现的方法和实现的程序也是多种多样的,下面所示框图就是其中的一种处理方法。 主程序框图 外部中断子程序框图 程序设计分析 1
显示全部