首页 51单片机中断系统详解

51单片机中断系统详解

举报
开通vip

51单片机中断系统详解 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 51 单片机中断系统详解 8031 单片机的中断系统简单实用,其基本特点是:有 5 个固定的可屏 蔽中断源,3 个在片内,2 个在片外,它们在程序存储器中各有固定的 中断入口地址,由此进入中断服务程序;5 个中断源有两级中断优先级, 可形成中断嵌套;2 个特殊功能寄存器用于中断控制和条件设置的 编 程。 中断系统的结构: 5 个中断源的符号、名称及产生的条件如下。 INT0:外部中断 0,由 ...

51单片机中断系统详解
深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 51 单片机中断系统详解 8031 单片机的中断系统简单实用,其基本特点是:有 5 个固定的可屏 蔽中断源,3 个在片内,2 个在片外,它们在程序存储器中各有固定的 中断入口地址,由此进入中断服务程序;5 个中断源有两级中断优先级, 可形成中断嵌套;2 个特殊功能寄存器用于中断控制和条件设置的 编 程。 中断系统的结构: 5 个中断源的符号、名称及产生的条件如下。 INT0:外部中断 0,由 P3.2 端口线引入,低电平或下跳沿引起。 INT1:外部中断 1,由 P3.3 端口线引入,低电平或下跳沿引起。 T0:定时器/计数器 0 中断,由 T0 计满回零引起。 T1:定时器/计数器 l 中断,由 T1 计满回零引起。 TI/RI:串行 I/O 中断,串行端口完成一帧字符发送/接收后引起。 整个中断系统的结构框图见下图一所示。 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 由图一可见,外部中断有下跳沿引起和低电平引起的选择;串行中断有 发送(TI)相接收(R1)的区别;各个中断源打开与否,受中断自身的允许 位和全局允许位的控制,并具有高优先级和低优先级的选择。 中断系统的控制寄存器: 中断系统有两个控制寄存器 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;定时器/计数器 1 中断允许位。ETl=1,打开 T1 中断;ETl=O, 关闭 T1 中断。 EXl:外部中断 l 中断允许位。EXl=1,打开 INT1;EXl=0,关闭 INT1。 ET0:定时器/计数器 0 中断允许位。ET0=1,打开 T0 中断;ET0=0, 关闭 TO 中断。 EXO:外部中断 0 中断允许位。Ex0=1,打开 INT0;EX0=0,关闭 INT0. 中断优先寄存器--IP: IP 在特殊功能寄存器中,字节地址为 B8H,位地址(由低位到高位)分别 是 B8H 一 BFH,IP 用来设定各个中断源属于两级中断中的哪一级,IP 的 基本格式如下图三所示: 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 ×:无效位。 PS:串行 I/O 中断优先级控制位。PS=1,高优先级;PS=0,低优先 级。 PTl:定时器/计数器 1 中断优先级控制位。PTl=1,高优先级;PTl =0,低优先级。 Pxl:外部中断 1 中断优先级控制位。Pxl=1,高优先级;PXl=O,低 优先级。 PT0:定时器/计数器 o 中断优先级控制位。PT0=1,高优先级;PTO =0,低优先级。 Px0:外部中断 0 中断优先级控制位。Px0=1,高优先级;Px0=0,伤 优先级。 在 MCS-51 单片机系列中,高级中断能够打断低级中断以形成中断嵌套; 同级中断之间,或低级对高级中断则不能形成中断嵌套。若几个同级中 断同时向 CPU 请求中断响应,则 CPU 按如下顺序确定响应的先后顺序: INT0 一 T0---INT1 一 T1 一 RI/T1. 中断的响应过程 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 若某个中断源通过编程设置,处于被打开的状态,并满足中断响应的条 件,而且①当前正在执行的那条指令已被执行完 1、当前末响应同级或高级中断 2、不是在操作 IE,IP 中断控制寄存器或执行 REH 指令则单片机响应此 中断。 在 正常的情况下,从中断请求信号有效开始,到中断得到响应,通常 需要 3 个机器周期到 8 个机器周期。中断得到响应后,自动清除中断请 求标志(对串行 I/O 端口 的中断标志,要用软件清除),将断点即程序 计数器之值(PC)压入堆栈(以备恢复用);然后把相应的中断入口地址装 入 PC,使程序转入到相应的中断服务程 序中去执行。 各个中断源在程序存储器中的中断入口地址如下: 中断源 入口地址 INT0(外部中断 0) 0003H TF0(TO 中断) 000BH INT1(外部中断 1) 0013H TFl(T1 中断) 001BH RI/TI(串行口中断) 0023H 由于各个中断入口地址相隔甚近,不便于存放各个较长的中断服务程 序,故通常在中断入口地址开始的二三个单元中,安排一条转移类指令, 以转入到安排在那儿的中断服务程序。以 T1 中断为例,其过程下如图 四所示。 由 于 5 个中断源各有其中断请求标志 0,TF0,IEl,TFl 以及 RI/TI, 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 在中断源满足中断请求的条件下,各标志自动置 1,以向 CPU 请求中断。 如果某 一中断源提出中断请求后,CPU 不能立即响应,只要该中断请 求标志不被软件人为清除,中断请求的状态就将一直保持,直到 CPU 响 应了中断为止,对串行口中 断而言,这一过程与其它 4 个中断的不同之 处在于;即使 CPU 响应了中断,其中断标志 RI/TI 也不会自动清零, 必须在中断服务程序中设置清除 RI/TI 的 指令后,才会再一次地提出 中断请求。 CPU 的现场保护和恢复必须由被响应的相应中断服务程序去完成,当执 行 RETI 中断返回指令后,断点值自动从栈顶 2 字节弹出,并装入 PC 寄 存器,使 CPU 继续执行被打断了的程序。 下面给出一个应用定时器中断的实例。 现要求编制一段程序,使 P1.0 端口线上输出周期为 2ms 的方波脉冲。 设单片机晶振频率 Fosc=6MHZ. 1、方法:利用定时器 T0 作 1ms 定时,达到定时值后引起中断,在中断 服务程序中,使 P1.0 的状态取一次反,并再次定时 1ms。 2、定时初值:机器周期 MC=12/fosc=2us。所以定时 lms 所需的机器 周期个数为 500D,亦即 0lF4H。设 T0 为工作方式 1(16 位方式),则定 时初值是(01F4H)求补=FEOCH 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 START: MOV TMOD,#01H ;T0 为定时器状态,工作方式 1 MOV TL0,#0CH ;T0 的低位定时初值 MOV TH0,#0FEH ;T0 的高位定时初值 MOV TCON,#10H ;打开 T0 SETB ET0 ;1ET0,即允许 T0 中断 SETB EA ;1EA,即充许全局中断 AJMP $ ;动态暂存 000BH: AJMP IST0 ;转入 T0 中断服务程序入口地址IST0 IST0: MOV TL0,#0CH ;重置定时器初值 MOV TH0,#0FEH ;重置定时器初值 CPL P1.0 ;P1.0 取反 RET1 ;中断返回 串行端口的控制寄存器: 串行端口共有 2 个控制寄存器 SCON 和 PCON,用以设置串行端口的工作 方式、接收/发送的运行状态、接收/发送数据的特征、波特率的大小, 以及作为运行的中断标志等。 ①串行口控制寄存器 SCON 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 SCON 的字节地址是98H,位地址(由低位到高位)分别是 98H一 9FH。SCON 的格式如图五所示。 SMo,SMl: 串行口工作方式控制位。 00--方式 0;01--方式 1; 10--方式 2;11--方式 3。 SM2: 仅用于方式 2 和方式 3 的多机通讯控制位 发送机 SM2=1(要求程控设置)。 当为方式 2 或方式 3 时: 接收机 SM2=1 时,若 RB8=1,可引起串行接收中断;若 RB8=0,不 引起串行接收中断。SM2=0 时,若 RB8=1,可引起串行接收中断;若 RB8=0,亦可引起串行接收中断。 REN: 串行接收允许位。 0--禁止接收;1--允许接收。 TB8: 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 在方式 2,3 中,TB8 是发送机要发送的第 9 位数据。 RB8: 在方式 2,3 中,RB8 是接收机接收到的第 9 位数据,该数据正好来自 发 送机的 TB8。 TI: 发送中断标志位。发送前必须用软件清零,发送过程中 TI 保持零电平, 发送完一帧数据后,由硬件自动置 1。如要再发送,必须用软件再清零。 RI: 接收中断标志位。接收前,必须用软件清零,接收过程中 RI 保持零电 平,接收完一帧数据后,由片内硬件自动置 1。如要再接收,必须用软 件 再清零。 电源控制寄存器 PCON PCON 的字节地址为 87H,无位地址,PCON 的格式如图六所示。需指出 的是,对 80C31 单片机而言,PCON 还有几位有效控制位。 SMOD:波特率加倍位。在计算串行方式 1,2,3 的波特率时;0---不加 倍;1---加倍。 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 串行中断的应用特点: 8031 单片机的串行 I/O 端口是一个中断源,有两个中断标志 RI 和 TI, RI 用于接收,TI 用于发送。 串行端口无论在何种工作方式下,发送/接收前都必须对 TI/RI 清零。 当一帧数据发送/接收完后,TI/RI 自动置 1,如要再发送/接收,必 须先用软件将其清除。 在串行中断被打开的条件下,对方式 0 和方式 1 来说,一帧数据发送/ 接收完后,除置位 TI/RI 外,还会引起串行中断请求,并执行串行中 侧目务程序。但对方式 2 和方式 3 的接收机而言,还要视 SM2 和 RB8 的 状态,才可确定 RI 是否被置位以及串行中断的开放: SM2 RB8 接收机中断标志与中断状态 0 1 激活 RI,引起中断 1 0 不激活 RI,不引起中断 1 1 激活 RI,引起中断 单片机正是利用方式 2,3 的这一特点,实现多机间的通信。串行端口 的常用应用方法见相关章节。 波特率的确定: 对方式 0 来说,波特率已固定成 fosc/12,随着外部晶振的频率不同, 波特率亦不相同。常用的 fosc 有 12MHz 和 6MHz,所以波特率相应为 1000×103 和 500×103 位/s。在此方式下,数据将自动地按固定的波 特率发送/接收,完全不用设置。 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 对方式 2 而言,波特率的计算式为 2SMOD·fosc/64。当 SMOD=0 时, 波特率为 fm/64;当 SMOD=1 时,波特率为 fosc/32。在此方式下, 程控设置 SMOD 位的状态后,波特率就确定了,不需要再作其它设置。 对方式 1 和方式 3 来说,波特率的计算式为 2SMOD/32×T1 溢出率,根 据 SMOD 状态位的不同,波特率有 Tl/32 溢出率和 T1/16 溢出率两种。 由于 T1 溢出率的设置是方便的,因而波特率的选择将十分灵活。 前已叙及,定时器 Tl 有 4 种工作方式,为了得到其溢出率,而又不必 进入中断服务程序,往往使 T1 设置在工作方式 2 的运行状态,也就是 8 位自动加入时间常数的方式。由于在这种方式下,T1 的溢出率(次/ 秒)计算式可表达成: 下面一段主程序和中断服务程序,是利用串行方式 l 从数据 00H 开始连 续不断增大地串行发送一片数据的程序例。设单片机晶振的频率为 6MHZ,波特率为 1200 位/秒。 ORG 2000H ;1200 位/秒的定时器初值 MOV TL1,#0F3H 深圳单片机开发网---专业提供单片机开发 培训 开发工具销售 MOV TH1,#0F3H ;使 SMOD=0 MOV PCON,#00H ;T1 方式 2 MOV TMOD,#20H SETB EA CLR ET1 ;关闭 T1 中断 SETB ES ;开串行中断 SETB TR1 ;开 T1 定时 MOV SCON,#40H ;串行方式 1 CLR A MOV SBUF,A ;串行发送 JNB T1,$ ;等待发送完 CLR T1, ;清标志 SJMP $ ORG 0023H ;串行中断入口地址 MOV SBUF,A ;连续发送 JNB T1,$ INC A CLR T1 RET1 ;中断返回
本文档为【51单片机中断系统详解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_783671
暂无简介~
格式:pdf
大小:344KB
软件:PDF阅读器
页数:12
分类:互联网
上传时间:2010-11-13
浏览量:30