首页 51单片机中断系统编程

51单片机中断系统编程

举报
开通vip

51单片机中断系统编程51单片机中断系统编程 51单片机中断系统编程 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆中断是指如下过程(如下图所示):CPU 与外设同时工作,CPU执行主程序,外设做准备工作。当外设准备好时向CPU发中断请求信 号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序。在中断服务程序中 CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。 5.3.1 中断系统 MCS-51单片机提供了5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储...

51单片机中断系统编程
51单片机中断系统编程 51单片机中断系统编程 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆中断是指如下过程(如下图所示):CPU 与外设同时工作,CPU执行主程序,外设做准备工作。当外设准备好时向CPU发中断请求信 号,若条件满足,则CPU终止主程序的执行,转去执行中断服务程序。在中断服务程序中 CPU与外设交换信息,待中断服务程序执行完后,CPU再返回刚才终止的主程序继续执行。 5.3.1 中断系统 MCS-51单片机提供了5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储 器中各有固定的中断入口地址,由此进入中断服务程序。5个中断源的符号、名称及产生 的条件如下。 Ø INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 Ø INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 Ø T0:定时器/计数器0中断,由T0计数溢出引起。 Ø T1:定时器/计数器l中断,由T1计数溢出引起。 Ø TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。 中断源有两级中断优先级,可形成中断嵌套。两个特殊功能寄存器用于中断控制和条件设 置。整个中断系统的结构框图如图所示。 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆 中断系统结构框图 2 中断系统的控制寄存器 中断系统有两个控制寄存器(IE和IP),它们分别用来设定各个中断源的打开/关闭和中 断优先级。此外,在TCON中另有4位用于选择引起外部中断的条件并作为标志位。 (1)中断允许寄存器IE IE在特殊功能寄存器中,字节地址为A8H,位地址(由低位到高位)分别是A8H-AFH。IE用 来打开或关断各中断源的中断请求,基本格式如下: 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆 Ø EA:全局中断允许位。EA,0,禁止一切中断;EA,1,打开全局中断控制,此时,由各 个中断控制位确定相应中断的打开或关闭。 Ø ×:无效位。 Ø ES:串行I/O中断允许位。ES,1,允许串行I/O中断;ES,0,禁止串行I/O中断。 Ø ETl;定时器/计数器T1中断允许位。ETl,1,允许T1中断;ETl,0,禁止T1中断。 Ø EXl:外部中断l中断允许位。EXl,1,允许外部中断1中断;EXl,0,禁止外部中断1中 断。 Ø ET0:定时器/计数器T0中断允许位。ET0,1,允许T0中断;ET0,0,禁止TO中断。 Ø EX0:外部中断0中断允许位。EX0,1,允许外部中断0中断;EX0=0,禁止外部中断0中 断。 (2)中断优先级寄存器IP IP在特殊功能寄存器中,字节地址为B8H,位地址(由低位到高位)分别是B8H一BFH。 MCS-51单片机的中断分为两个优先级,IP用来设定各个中断源属于两级中断中的哪一级, 其基本格式如下: 上传的图片 抱歉,您所在的组无权下载附件,请注册或登陆 Ø ×:无效位。 Ø PT2:对具有定时器2的单片机,该位为定时器2的优先级控制位。PT2=1,设定为高优先 级;PT2=0,设定为低优先级。 Ø PS:串行I/O中断优先级控制位。PS=1,设定为高优先级;PS=0,设定为低优先级。 Ø PTl:定时器/计数器1中断优先级控制位。PT1=1,设定为高优先级;PT1=0,设定为低 优先级。 Ø PXl:外部中断1中断优先级控制位。PX1=1,设定为高优先级;PX2=0,设定为低优先级 。 Ø PT0:定时器/计数器0中断优先级控制位。PT0=1,设定为高优先级;PT0=0,设定为低 优先级。 Ø PX0:外部中断0中断优先级控制位。PX0=1,设定为高优先级;PX0=0,设定为低优先级 。 在MCS-51单片机系列中,高级中断能够打断低级中断以形成中断嵌套,但同级中断之间, 或低级对高级中断则不能形成中断嵌套。若几个同级中断同时向CPU请求中断响应,则CPU 按如下顺序确定响应的先后顺序: INT0?T0?INT1?T1?RI/T1 3 中断的响应过程 8051单片机的CPU在每一个机器周期顺序检查每一个中断源,并按优先级处理所有被激活 了的中断请求。如果没有被下列条件所阻止,将响应激活了的最高级中断请求。 ? CPU当前正在响应同级或更高级中断。 ? 当前正在执行的那条指令尚未执行完。 ? 正在操作IE、IP中断控制寄存器或执行RETI指令。 在正常的情况下,从中断请求信号有效开始,到中断得到响应,通常需要3个机器周期到8 个机器周期。中断得到响应后,自动清除中断请求标志(对串行I/O端口的中断标志,要 用软件清除),将断点即程序计数器PC之值压入堆栈以备恢复时用,然后把相应的中断入 口地址装入PC,使程序转入到相应的中断服务程序中去执行。 Keil C51对中断的处理是靠中断服务函数来完成的。有关中断函数构成和更多内容,请参 考3.4.3节的有关内容。 由于8051单片机有5种中断源,各中断源的中断请求标志分别IE0、TF0、IEl、TFl以及 RI/TI。在中断源满足中断请求的条件下,各标志自动置1,以向CPU请求中断。如果某一 中断源提出中断请求后,CPU不能立即响应,只要该中断请求标志不被软件人为清除,中 断请求的状态就将一直保持,直到CPU响应了中断为止。但是对串行口中断,即使CPU响应 了中断,其中断标志RI/TI也不会自动清零,而必须在中断服务程序中设置清除RI/TI的指 令后,才会再一次地提出中断请求。 4 中断实例 使用AT89C2051单片机,设单片机晶振频率为4MHz,编制一段用定时器0定时的程序,使 P1.0端口线上输出周期为2秒的方波脉冲,驱动接在该引脚上的发光二极管重复地亮一秒 钟,停一秒钟。 #include unsigned char data counter; //计数5毫秒的个数 main() , TMOD=0x00; //定时器0为方式0 IP=0x02; //定时器中断0为高优先级 TH0=0xCB;TL0=0x1D; //定时器0的时间常数(5ms,4MHZ) counter=0; //计数5毫秒的个数 TR0=1; //启动定时器0 IE=0x82; //允许定时器0中断 while(1); , void time0_int(void) interrupt 1 //中断服务函数,每五毫秒中断一次 , TH0=0xCB;TL0=0x1D; //重装定时器0的时间常数(5ms,4MHZ) counter++; if (counter==200) //一秒时间到 , counter=0; //重新计数5毫秒的个数 P1_0=~P1_0; //P1.1引脚输出电平反相,使灯光闪烁 , , 在上面的程序中,定时器0工作在方式0,定时时间为5ms。再借助无符号变量counter计 数 中断的次数,当计数到counter=200时,表示时间已经1s,此时将计数变量counter清零, 同时使P1.0引脚反相。
本文档为【51单片机中断系统编程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_105949
暂无简介~
格式:doc
大小:19KB
软件:Word
页数:0
分类:
上传时间:2017-10-17
浏览量:26