为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

51单片机

2013-11-12 29页 ppt 485KB 72阅读

用户头像

is_096390

暂无简介

举报
51单片机nullnull 围绕中断响应条件及过程展开中断系统涉及到的SFR中断的软硬件设计的四个要素一、复习中断的概念二、中断优先级三、图5-2 中断系统的结构四、外中断触发方式及中断请求的撤销五、中断服务程序的设计六、多中断源的系统设计二、89C51的中断优先级二、89C51的中断优先级89C51有两个中断优先级。每个中断请求源均可编程为高优先级中断或低优先级中断。MCS-51的中断系统有两个不可寻址的“优先级激活触发器”: 一个用来指示某高优先级的中断正在执行,所有后来的中断均被阻止。 另一个用来指示某低优先级的中断正在执行,所有...
51单片机
nullnull 围绕中断响应条件及过程展开中断系统涉及到的SFR中断的软硬件设计的四个要素一、复习中断的概念二、中断优先级三、图5-2 中断系统的结构四、外中断触发方式及中断请求的撤销五、中断服务程序的设计六、多中断源的系统设计二、89C51的中断优先级二、89C51的中断优先级89C51有两个中断优先级。每个中断请求源均可编程为高优先级中断或低优先级中断。MCS-51的中断系统有两个不可寻址的“优先级激活触发器”: 一个用来指示某高优先级的中断正在执行,所有后来的中断均被阻止。 另一个用来指示某低优先级的中断正在执行,所有同级中断都被阻止,但不阻断高优先级的中断请求。 可归纳为下面两条基本规则: (1)低优先级可被高优先级中断,反之则不能。 (2)同级中断不会被它的同级中断源所中断。两个中断优先级,可实现两级中断嵌套。如图5-6示。用中断优先级寄存器IP设置每个中断源的级别图5-6 二级中断嵌套图5-6 二级中断嵌套CPU在执行主程序低级中 断请求响应低级中断请求CPU执行低级 中断服务程序高级中 断请求响应高级中断请求CPU执行高级 中断服务程序返回低级中断程序返回主程序特殊情况下中断优先级排列顺序特殊情况下中断优先级排列顺序当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬件查询顺序。 其优先级顺序排列如下所示。P107中断源 中断级别 外部中断0 最高 T0溢出中断 外部中断1 T1溢出中断 串行口中断 最低null三、图5-2 中断系统的结构null四、外中断触发方式及中断请求的撤销1. 外部中断的触发方式选择(IT0/IT1) 两种触发方式:电平触发方式和跳沿触发方式。适于外中断以低电平输入且中断服务程序能清除外部中断请求的情况。 1.1 电平触发方式 CPU在每个机器周期采样到的外部中断输入线的电平。在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。null1.2 跳沿触发方式 连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断请求标志(IE0/IE1),直到CPU响应此中断时,该标志才清0。但输入的负脉冲宽度至少保持1个机器周期。2. 外部中断请求的撤消(1)跳沿方式外部中断请求的撤消是自动撤消的。 (2)电平方式外部中断请求的撤消: 除了标志位清“0”之外,还需在中断响应后把中断请求信号引脚从低电平强制改变为高电平,如图5-8所示。null只要P1.0端输出一个负脉冲就可以使D触发器置“1”,从而撤消了低电平的中断请求信号。所需的负脉冲可增加如下两条指令得到: ORL P1,#01H ;P1.0为“1” ANL P1,#0FEH ;P1.0为“0” 电平方式的外部中断请求信号的完全撤消,是通过软硬件相结合的方法来实现的。五、中断服务程序的设计五、中断服务程序的设计 1. 中断服务程序设计的任务 (1)设置中断允许控制寄存器IE。 (2)设置中断优先级寄存器IP。 (3)对外中断源,是采用电平触发还是跳沿触发,要设置IT0/IT1。 (4)编写中断服务程序,处理中断请求。 前3条一般放在主程序的初始化程序段中。null 例5-3 假设允许外部中断0中断,并设定它为高级中断,其它中断源为低级中断,采用跳沿触发方式。 在主程序中编写如下程序段: SETB EA ;CPU开中断 SETB EX0 ;允许外中断0产生中断 SETB PX0 ;外中断0为高级中断 SETB IT0 ;外中断0为跳沿触发方式 null 2. 采用中断时的主程序结构 常用的主程序结构如下: ORG 0000H LJMP MAIN ORG 中断入口地址 LJMP INT ORG XXXXH MAIN: 主 程 序 ⋮ SJMP $ INT:中断服务程序 ⋮ RETI ENDnull 3. 中断服务程序的流程 几点说明: (1)现场保护仅涉及到PSW和A的内容,如还有其它需保护的内容,只需要在相应的位置再加几条PUSH和POP指令即可。 (2) “中断处理程序段”,应根据任务的具体要求,来编写。 (3)如果本中断服务程序不允许被其它的中断所中断,可将“中断处理程序段”前后的“开中断”和“关中断”两条去掉。 (4)中断服务程序的最后一条指令必须是返回指令RETI。见例5-4P113null例5-4 典型的中断服务程序如下: INT: CLR EA ;CPU关中断 PUSH PSW ;现场保护 PUSH ACC ; SETB EA ;CPU开中断 中断处理程序段 CLR EA ;CPU关中断 POP ACC ;现场恢复 POP PSW SETB EA ;CPU开中断 RETI ;中断返回,恢复断点 应用举例----关于保护现场应用举例----关于保护现场任务2描述:单片机上电,单灯按1Hz频率循环,一旦按下P3.2所接的按键,发光二极管全亮,2秒钟后,单灯继续原来的循环。1、流水灯的源程序2、流水灯的源程序+中断初始化程序3、中断服务程序及延时子程序4、 用查询程序实现上述任务5、从INT0输入,并采用了去抖动电路。null任务2描述:单片机上电,单灯按1Hz频率循环,一旦按下P3.2所接的按键,发光二极管全亮,2秒钟后,单灯继续原来的循环。1、流水灯的源程序2、流水灯的源程序+中断初始化程序3、中断服务程序及延时子程序4、 用查询程序实现上述任务5、从INT0输入,并采用了去抖动电路。举例:举例:null2、流水灯的源程序+中断初始化程序 ORG 0000H SJMP MAIN;上电,转向主程序 ORG 0003H;外部中断0入口地址 SJMP INSER;转向中断服务程序 ORG 0030H ;主程序 MAIN: SETB EX0 ;允许外部中断0中断 SETB IT0 ;选择边沿触发方式 SETB EA ;CPU开中断 MAIN1: mov a, #0feh mov r5, #4 Output: mov p1,a rl a call Delay djnz r5, Output Ljmp MAIN1 null3、中断服务程序及延时子程序 ORG 0200H INSER :PUSH P1 MOV P1, #00H ACALL DEL2S POP P1 RETI DEL2S: MOV R4, #20 LLL: ACALL DEL100MS DJNZ R4, LLL RET DEL100MS: ;250×200×2=100000 mov r6, #250 Delay: mov r7, #200 Dela: djnz r7, Dela djnz r6, Delay ret ENDINSER :PUSH P1 MOV B, R7 MOV P1, #00H ACALL DEL2S MOV R7, B POP P1 RETInull ORG 0000H SJMP MAIN ORG 0030H MAIN: mov a, #0feh Output: mov p1,a rl a call Delay jb p1.0, output mov p1, #00h acall delay2s sjmp output Delay: mov r6, #0 mov r7, #0 Dela: djnz r7, Dela djnz r6, Dela ret Delay2s: ret end8位的流水灯+键查询流程图4、 用查询程序实现上述任务nullnull六、多中断源的系统设计1. 多外部中断源系统设计两个外部中断请求源往往不够用。定时器/计数器可作为外部中断源的使用。用中断和查询结合的方法可以扩展中断源。例: 有五个外设IR0~IR4要求单片机以中断的方式响应。最高级别中断请求源IR0接INT0*输入端,其余的外部中断请求源IR1~IR4用“线或”的办法连到MCS-51的另一个外中断源输入端INT0* ,同时还连到P1口。 5个外部中断源的排队顺序依此为:IR0~IR4。null低电平有效的请求高电平有效的请求null ORG 0013H ; INT1的中断入口 LJMP INT1 ; ┇ INT1: PUSH PSW ;保护现场 PUSH ACC JB P1.0,IR1 ;P1.0高,IR1有请求 JB P1.1,IR2 ;P1.1高,IR2有请求 JB P1.2,IR3 ;P1.2高,IR3有请求 JB P1.3,IR4 ;P1.3高,IR4有请求 INTIR: POP ACC ;恢复现场 POP PSW RETI ;中断返回 null IR1: IR1的中断处理程序 AJMP INTIR ; IR2: IR2的中断处理程序 AJMP INTIR ; IR3: IR3的中断处理程序 AJMP INTIR ;  IR4: IR4的中断处理程序 AJMP INTIR ;null2. 多中断源不同优先级的系统设计举例 任务描述:有两个键K1/K2分别接在INT0/INT1,流水灯的接法如任务2,开始四个灯全亮。当K1按下,进行十圈的间隔为100毫秒的流水灯作业,若此时K2按下,则四个灯全灭2秒,然后继续流水灯。反之,K2先按下,则四个灯全灭2秒;若此时K1按下,则系统不会立即响应。分析:主程序四个灯全亮,中断初始化,INT1的优先级为高级。会有两段中断服务子程序,分别是流水灯十圈和四个灯全灭2秒钟,注意保护现场。null ORG 0000 LJMP START ORG 0003H LJMP INT00 ORG 0013H LJMP INT11 ORG 0030H START: SETB PX1 SETB EX0 SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB EA MOV P1, #00H SJMP $null ORG 0100H INT00: PUSH P1 MOV R3, #10 LL2 : MOV R4, #4 LL1: MOV A, #0FEH MOV P1, A RL A ACALL DEL100MS DJNZ R4, LL1 DJNZ R3, LL2 POP P1 RETI ORG 0200H INT11: PUSH P1 MOV 20H, R3 MOV 21H, R4 MOV P1,#0FH ACALL DEL2S MOV R3, 20H MOV R4, 21H POP P1 RETIDEL100MS: RET DELS: RET END作业 2009-10-22作业 2009-10-22P117 2,5,8,11,12 简述89C51单片机的中断响应过程。
/
本文档为【51单片机】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索