ImageVerifierCode 换一换
格式:PPT , 页数:37 ,大小:682.04KB ,
资源ID:13269275      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13269275.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(单片机中断系统.ppt)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

单片机中断系统.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本章介绍的主要内容,中断的基本概念,中断的系统结构,中断的响应过程,中断的的应用编程,第6章 MCS-51单片机的中断系统,在CPU和外设交换信息时,存在着快速CPU和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。,中断,CPU和外设并行工作,当外设数据准备好(或有某种突发事件发生)时向CPU提出请求,CPU暂停正在执行的程序转而为该外设服务(或处理紧急事件),处理完毕再回到原断点继续执行原程序。,中断源,引起中断的原因,中断申请的来源,称为中断源,可以是I/O设备、故障

2、时钟、调试中人为设置。,中断优先级,当有多个中断源同时 向CPU申请中断时,CPU优先响应最需紧急处理的中断请求,处理完毕再响应优先级别较低的,这种预先安排的响应次序。,中断的嵌套,在中断系统中,高优先级的中断请求能中断正在进行的较低级的中断源处理。,中断系统,能实现中断功能并能对中断进行管理的硬件和软件称为中断系统。,本章将讨论MCS51系列单片机的中断系统。,中断请求是在执行程序的过程中的随机发生的,中断系统要解决的问题是:,1)CPU在不断的执行指令中,是如何检测到随机发生的中断请求?,2)如何使中断的双方(CPU方和中断源方)均能人为控制,允许中断或禁止中断。,3)由于中断产生的随机

3、性,不可能在程序中安排调子程序指令或转移指令,那么如何实现正确的转移,以便为该中断源服务呢?,4)中断源有多个,而CPU只有一个,当有多个中断源同时有中断请求时,用户怎么控制 CPU 按照自己的需要安排响应次序?,5)中断服务完毕,如何正确地返回到原断点处?,8XX51有5个中断源,3个在片内,2个在片外,它们在程序存贮器中有固定的中断入口地址,当CPU响应中断时,硬件自动形成这些地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;,8XX51有5个中断源,其符号、名称、产生条件及中断服务程序的入口地址如表6.1,。,6.1 中断系统结构,EA:中断总控开关,是CPU是否响

4、应中断的前提。,EA=1,CPU开中断;,EA=0,CPU关中断。,ES:串行口中断允许位,,ES=1,允许串行口发送/接收中断;,ES=0,禁止串行口中断。,ET1:定时器T1中断允许位,,ET1=1,允许T1计数溢出中断;,ET1=0,禁止T1中断。,ET0:定时器T0中断允许位,ET0=1,允许T1计数溢出中断;,ET0=0,禁止T0中断。,EX1:外部中断INT1允许位,,EX1=1,允许INT1中断;,EX1=0,禁止INT1中断。,EX0:外部中断INT0允许位,,EX0=1,允许INT0中断;,EX0=0,禁止INT0中断。,INT0,方式,下沿/低电平,INT0,请求,有/无,

5、INT1,方式,下沿/,低电平,INT1,请求,有/无,T0,工作,启/停,T0,请求,有/无,T1,工作,启/停,T1,请求,有/无,IT0,IE0,IT1,IE1,TR0,TF0,TR1,TF1,(2)中断请求标志及外部中断方式选择寄存器TCON,说明:IT0和IT1为外中断INT0 和INT1中断触发方式选择,若选下降沿触发则相应位置1;若选低电平触发,IT相应位置0。,某中断源有中断请求,该中断标志置1,无中断请求,该中断标志置0。TR0 和 TR1 为定时器T0和T1 工作启动和停止控制。,-,-,PT2,PS,PT1,PX1,PT0,PX0,无,用,位,无,用,位,T2,高/低,串

6、行 口,高/低,T1,高/低,INT1,高/低,T0,高/低,INT0,高/低,当 某几个中断源在IP寄存器相应位同为1或同为零时,由内部查询确定优先级,查询的顺序是:,CPU优先响应先查询的中断请求,T0,T1,串行口,T2,INT0,INT1,五个中断源的优先级别由IP寄存器管理,相应位置1,则该中断源优先级别高,置0的优先级别低。,(3)中断优先级管理寄存器IP,MCS51系列单片机的中断结构可以用图6.1示。,6.2 中断响应过程,一、中断处理过程,中断处理过程分为四个阶段:中断请求,中断响应,中断处理、中断返回。MCS-51系列单片机的中断过程流程如图6.2所示。,N,N,Y,Y,Y

7、N,执 行 指 令,中断标志1?,(中断请求?),指令,最后一个T周期?,EA=1?,允 许 位=1?,CPU 判 别优 先权,响 应优 先权高 的中断,断点的PC进栈,中断服务入口地址送PC,撤 除 中 断 标 志,中 断 服 务,中 断 返 回,断 点 出 栈 送 PC,中断请求.,中断响应,中断服务,中断返回,1)中断请求、中断响应过程由硬件完成。,2)中断服务程序应根据需要进行编写。程序中要注意保护现场和恢复现场。,3)中断返回是通过执行一条RETI中断返回指令,使堆栈中被压入的断 点地址送PC,从而返回主程序的断点继续执行主程序。,另外RETI还有恢复优先级状态触发器 的作用,因此

8、不能以RET指令代替“RETI”指令。,若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条件,然而下面三种情况单片机不响应此中断:,当前正在执行的那条指令没执行完;,当前响应了同级或高级中断;,正在操作IE、IP中断控制寄存器或执行RETI指令。在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8个机器周期。,二、中断请求的撤除,CPU响应中断后,应撤除该中断请求标志,否则会再次中断。,1)对定时计数器T0、T1的溢出中断,CPU响应中断后,硬件自动清除中断请求标志TF0和TF1。,2)对边沿触发的外部中断INT1和INT0,CPU响应中断后硬件自动清除

9、中断请求标志IE0和IE1。,3)对电平触发的外部中断,CPU在响应中断时也不会自动清除中断标志,因此,在CPU响应中断后应立即撤除INT1或INT0的低电平信号。,4)对于串行口中断,CPU响应中断后,没有用硬件清除中断请求标志TI、RI,即这些中断标志不会自动清除,,必须用软件清除,,这是在编串行通信中断服务中应该注意的。,6.3 中断的汇编语言程序和C语言程序设计,用户对中断的控制和管理,实际是对4个与中断有关的寄存器IE、TCON、IP、SCON进行控制或管理。这几个寄存器在单片机复位时是清零的,因此必须根据需要对这几个寄存器的有关 位进行预置。,在中断程序的编制中应注意:,开中断总控

10、开关EA,置位中断源的中断允许位。,对外部中断INT0、INT1应选择中断触发方式,多个中断源中断,应设定中断优先级,预置IP。,编写中断服务程序,并注意用保护现场和恢复现场,以免中断返回时,丢失原寄存器、累加器中的信息。,若要在执行当前中断程序时禁止更高优先级中断,可以采用软件关CPU中断或禁止某中断源中断,在中断返回前再开放中断。,一、汇编语言中断程序的设计,汇编语言的中断服务程序按规定的中断矢量地址存入,由于五个中断矢量地址0003H、000BH、0013H、001BH、0023H之间相距很近,往往装不下一个中断服务程序,通常将中断服务程 序安排在程序存贮器的其他地址空间,而在矢量地址的

11、单元中安排一条转移指令。,例1.在图6.3中P1.4P1.7接有四个发光二极管,P1.0P1.3接有四个开关,消抖电路用于 产生中断请求信号,当消抖电路的开关来回拔动一次将产生一个下降沿信号,通过INT0向CPU申请中断,要求:初时发光二极管全黑,每中断一次,P1.0P1.3所接的开关状态反映到发光二极管上,且要求开关断开的对应发光二极管亮,电路和现象如下:,、,ORG 0000H ,AJMP MAIN ,ORG 0003H ;INT0中断入口,AJMP WBI ;转中断服务程序,ORG 0030H ;主程序,MAIN:MOV P1,#0FH ;高4位灯灭,低四位输入先写1,SETB IT0

12、边沿触发中断,SETB EX0 ;允许外中断0中断,SETB EA ;开中断开关,SJMP$;等待中断,WBI:MOV P1,#0FH ;P1先写入“1”且灯灭,MOV A,P1 ;输入开关状态换到高4位,SWAP A ;低4位开关状态电平,MOV P1,A ;输出到P1高4位,RETI,END,此例的执行现象是,每重置一次四个开关的开、合状态,四个发光二极管维持原来的亮、灭 状态,仅当来回拔动消抖电路开关后,产生了中断,发光二极管才反映新置的开关状态。,例2.89C51的P1口接一个共阴极的数码管,利用消抖开关产生中断请求信号,每来回拔动一 次开关,产生一次中断,用数码管显示中断的次数(最

13、多不超过15次)。,ORG 0000H ,AJMP MAIN,ORG 0013H ;INT1中断入口,AJMP INT1 ;转中断服务程序,ORG 0030H ;主程序,MAIN:SETB IT1 ;边沿触发中断,SETB EX1 ;允许INT1中断,SETB EA ;开中断开关,MOV R0,#0 ;计数初值为0,MOV A,#3FH ;“0”的字形码送A,AL1:MOV P1,A ;显示数码,AL2:CJNE R0,#0FH,AL1 ;没满15次循环显示,MOV R7,#0FFH ;满15次,显F,延时,DJNZ R7,,MOV P1,#0 ;关显示,CLR EA ;关中断,SJMP ;结

14、束,INT1:INC R0 ;中断次数加1,MOV A,R0,MOV DPTR,TAB ;DPTR指向字形码表首址,MOVC A,A+DPTR ;查表,POP DPH,POP DPL ;弹出断点,MOV DPTR,#AL1,PUSH DPL,PUSH DPH ;修改中断返回点,AL1压入堆栈,RETI ;从堆栈AL1地址PC,返主程序AL1处,TAB:DB 3FH,06H,5BH,4FH,66H,6DH,DB 7DH,07H,7FH,6FH,77H,7CH,DB 39H,5EH,79H,71H;段码表(字形码),END,上面程序每中断一次,执行一次中断服务程序,INT1。,在中断服务程序中,累

15、计中断次数并查字形表,返回到主程序,AL1,地址执行显示。,ORG 0000H,AJMP MAIN,ORG 0013H,AJMP INT1,ORG 0030H,MAIN:SETB TI1,SETB EX1,SETB EA,MOV R0,#0,MOV A,#3FH,AL1:MOV P1,A,AL2:CJNE R0,#0FH,AL1,MOV R7,#0FFH,DJNZ R7,,MOV P1,#0,CLR EA ,SJMP ,INT1:INC R0,MOV A,R0,MOV DPTR,TAB,MOVC A,A+DPTR,POP DPH,POP DPL,MOV DPTR,#AL1,PUSH DPL,P

16、USH DPH,RETI ;AL1地址PC,,返主程序AL1,TAB:DB 3FH,06H,5BH,,以上中断在,AL1,或,AL2,两指令处发生,究竟是哪一指令处中断是随机的,为保证返回到,AL1,显示,F,,这里采用修改中断返回点的办法,即先从栈中弹出中断响应时压入的 断点弹到,DPTR,中,修改,DPTR,为用户需要的返回点,并将其压 入堆栈,再通过执行,RETI,指令弹出栈中内容到,PC,、弹出的即为修改后的地址,从而返回到主 程序中用所希望的地址执行。,上例中中断次数在主程序判断,目的是使读者了解修改中断返回点的方法,如果改在中断服 务程序中判断,编程简洁些,下面仅介绍和上例中的不同

17、部分的程序。,ORG 0000H ,AJMP MAIN,ORG 0013H ;INT1中断入口,AJMP INT1 ;转中断服务程序,ORG 0030H ;主程序,MAIN:SETB IT1 ;边沿触发中断,SETB EX1 ;允许INT1中断,SETB EA ;开中断开关,MOV R0,#0 ;计数初值为0,MOV P1,#3FH ;显示0,MOV DPTR,#TAB ;指向字形码表,AGA:SJMP ;等待中断,INT1:INC R0 ;中断次数加1,MOV A,R0,MOVC A,A+DPTR ;查字形码表,MOV P1,A ;显示,CJNE R0,#0FH,RE ;15次中断未到转RE

18、CLR EA ;15次到关中断,RE:RETI ;返回主程序的AGA处,TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,C51使用户能编写高效的中断服务程序,编译器在规定的中断源的矢量地址中放入无条件转移指令,使CPU响应中断后自动地从矢量地址跳转到中断服务程序的实际地址,而无需用户去安排。中断服务程序定义为函数,函数的完整定义如下。,返回值 函数名(参数)模式再入interrupt nusing m,其中interrupt n 表示将函数声明为中断服务函数,n 为中断源编号,可以是031间的

19、整数,不允许是带运算符的表达式,n 通常取以下值:,0 外部中断0;,1 定时器/计数器0溢出中断;,2 外部中断1;,3 定时器/计数器1溢出中断;,4 串行口发送与接收中断;,Using m 定义函数使用的工作寄存器组,m的取值范围为03,可缺省,它 对目标代码的影响是:函数入口处将当前寄存器保存,使用m指定的寄存器组,函数退出时原寄存器组恢复。选不同的工作寄存器组,可方便实现寄存器组的现场保护。,再入:属性关键字reentrant,将函数定义为再入的,在C51中,普通函数(非再入的)不能递归调用,只有再入函数才可被递归调用。,中断服务函数不允许用于外部函数,它对目标代码影响如下:,当调用

20、函数时,SFR中的ACC、B、DPH、DPL和PSW(当需要时入栈)。,如果不使用寄存器组切换,中断函数所需的所有工作寄存器Rn都入栈。,函数退出前,所有工作寄存器出栈。,函数由“RETI”指令终止。,例如,对本节的例1用C语言编程,#include,void int0(void)interrupt 0 /*INT0中断函数*/,P1=0 x0f;/*输入端先置1,灯灭*/,P1=4;/*读入开关状态,并左移四位,,使开关反映在发光二极管上*/,main(),EA=1;/*开中断总开关*/,EX0=1;/*允许INT0中断*/,IT0=1;/*下降沿产生中断*/,while(1);/*等待中断

21、/,主函数执行while(1);语句进入死循环等待中断,当拨动INT0的开关后,进入中断函数,读入P1.0P1.3的开关状态并将状态数据右移四位到P1.4P1.7的位置上输出控制LED亮,执行完中断,返回到等待中断的while(1)语句,等待下一次的中断。,例2 对本节的例2记录并显示中断次数改用C语言编程,可有两种编程方法。,方法1:在主程序中控制中断次数,#include,char i;,code char tab16=0 x3f,0 x06,0 x5b,0 x4F,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0

22、 x79,0 x71;,void int(void)interrupt 2,i+;/*计中断次数*/,P1=tabi;/*查表,次数送显示*/,main(),EA=1;,EX1=1;,IT1=1;,ap5:P1=0 x3f;/*显示“0”*/,for(i=0;i16;);/*当I16等待中断*/,goto ap5;/*当i=16重复下,一轮16次中断*/,法二:在中断服务程序中控制中断次数,#include,char i;,code char tab16=0 x3f,0 x06,0 x5b,0 x4F0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c

23、0 x39,0 x5e,0 x79,0 x71;,void int(void)interrupt 2,i+;,if(i16)P1=tabi;,elsei=0;P1=0 x3f;,main(),EA=1;EX1=1;IT1=1;,P1=0 x3f;,while(1);/*等待中断*/,6.4 小 结,(1)中断技术是实时控制中的常用技术,51系列单片机有三个内部中断,二个外部中断。所谓 外部中断就是在外部引脚上有产生中断所需要的信号。,每个中断源有固定的中断服务程序的入口地址(称矢量地址或向量地址)。当CPU响应中断以 后单片机内部硬件保证它能自动的跳转到该地址。因此,此地址是应该熟记的,在汇编程序中,中断服务程序应存放在正确的向量地址内。,(或存放一条转移指令);而在C语言中是靠Interrupt n的关键字n自动设置的。,(2)单片机的中断是靠内部的寄存器管理的,这就是中断允许寄存器IE,中断优先权寄存器IP,必须在CPU开中断即开全局中断开关EA,开各中断源的中断开关,CPU才能响应该中断源的 中断请求,其中缺一不可。,(3)从程序表面看来,主程序和中断服务程序好象是没有关连的,只有掌握中断响应的过程,才能理解中断的发生和返回,看得懂中断程序,并能编写高质量中断程序。,(4)本章重点应掌握中断的基本概念,并能熟练编制中断程序。,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服