第05讲:MCS-51单片机的中断系统课件.ppt
-
资源ID:83281366
资源大小:1.22MB
全文页数:23页
- 资源格式: PPT
下载积分:9金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第05讲:MCS-51单片机的中断系统课件.ppt
单片机与控制技术单片机与控制技术第第02章:章:MCS-51单片机结构原理单片机结构原理RE:l硬件编程结构及引脚已介绍lCPU主要部件与特殊功能寄存器(SFR)已介绍l片内外存储器的组织结构和编址已介绍l并行I/O口已介绍l中断及中断系统【本次课内容!】l定时/计数器、串行口(外设)5、MCS51单片机的单片机的中断系统中断系统l(1)中断概念:中断就是指主程序执行到中间某处时,被打断转去执行另一称为“中断服务子程序”的程序,处理完毕之后再返回到原来被打断的地方继续执行主程序的过程。从程序转移的角度来看就是把中断处的PC值暂时保存起来,而代之以中断服务子程序的入口地址,当处理完毕后,再把原来保存的PC值送回PC(恢复PC),主程序便继续顺序执行。MCS51单片机的中断结构:外部中断(INT0和 INT1),分别根据TCON寄存器中IT0和IT1的置位情况,可以有电平触发和跳变触发两种。当跳变触发时INT0和INT1上的负跳变分别置位触发标志IE0和IE1,并引起中断,当CPU响应并通过矢量地址转入中断服务程序时,硬件自动清零触发标志,也就是可自动撤除中断请求信号。由于每个机器周期外部中断被采样一次,所以中断引脚上的高/低电平变化必须至少保持有一个周期为高,下一个周期为低,才能使CPU检测到有跳变发生,从而置位中断请求标志IE0和IE1。当电平触发时,INT0和INT1上的低电平分别置位触发标志IE0和IE1,并引起中断。定时器中断是由在寄存器溢出时使溢出触发标志TF置位所引起的,CPU响应后能自动清零溢出标志TF。串行口中断由RI和TI通过或门进行触发,当CPU响应并通过中断矢量地址转入中断服务程序时,首先需要判断RI和TI之中哪个是中断源,由于RI和TI不能由硬件自动复位,因此只能由软件清除。综上所述,各种中断实际上是由IE、TF或RI/TI各触发标志位置位所引起的,它们的置位可以分别由实际的外部中断请求信号,定时器溢出或发送/接收一帧信号所引起,但我们也可以通过软件对它们置位,其效果和硬件置位一样,这种人为地用软件产生中断,是51机的一大特点。2)中断中断矢量矢量(什么是中断矢量?)(什么是中断矢量?)矢量中断:当CPU响应中断后,CPU转到中断服务程序的入口地址,中断矢量是固定的。每个入口地址之间相距8个存储单元,即每一个入口可以拥有8个单元,若中断服务程序短,可直接放在这8个存储单元内,若放不下,可在个断矢量指向的地直入口处放一无条件转移指令LJMP START,以转到对应的实际中断服务程序入口地址(以START作为标号的一段程序)。地址中断源0000HRESET(非中断)0003HINT0中断000BHT0中断0013HINT1中断001BHT1中断0023H串行口中断002BHT2CPU不在处理同级的或更高优先级的中断;现行的机器周期是所执行指令的最后一个机器周期;CPU正在执行的指令不是RETI或任何访问IE/IP的指令 同时满足上述三个条件的情况下,MCS-51单片机才可响应中断源的请求。在同一个中断优先级别内部,中断级别从高到低(即内部硬件查询次序)在同一个中断优先级别内部,中断级别从高到低(即内部硬件查询次序)依次为:依次为:INT0T0INT1T1串口中断串口中断(5)中断控制寄存器IE、IP1)中断允许控制寄存器(IE)51没有专门的开、关中断指令。中断的允许/禁止由SFR中的IE实现两级中断控制。所谓两级控制是指有一个总的中断控制位EA:当EA=0时,关闭所有的中断请求当EA=1时,对每个中断源的中断申请是否开放,还要看各个中断源的中断允许控制位的状态。用户可以用位操作指令或字节操作指令进行设定。例如:要求 INT0、T0中断开放,其它三个中断源禁止,可用以下指令实现:MOV IE,#10000011B;IE 83H 等效于:SETB EA;开放总中断允许 SETB EX0;开放外部中断0(INT0)SETB ET0;开放定时器中断0(T0)2)定时器控制寄存器()定时器控制寄存器(TCON)软件控制(人为)SETB TR0;启动定时器0什么是边沿触发?什么是电平触发?3)串口控制寄存器()串口控制寄存器(SCON)CPU响应串行口中断后,内部硬件不能对TI、RI清除,必须通过软件清“0”。RI、TI的中断入口都是0023H,所以CPU响应后转入0023H开始执行服务程序,首先必须判断是RI中断还是TI中断,然后进行相应服务。4)中断优先级控制寄存器()中断优先级控制寄存器(IP)由IP设定5个中断源实现两级中断优先权排队。在操作时可归纳为三条基本原则:低优先级中断处理可被高优先级中断源申请所打断,反之则不能。任何一种中断源,不管它是高级还是低级的,一旦被CPU响应中断,就不会被它的同级中断源所中断。若两个以上同一中断优先级的中断源同时申请中断,则CPU按照内部硬件查询次序响应中断。同一级中断中,中断的优先次序:INT0 T0 INT1T1串行口中断RI/TI IP各位可改变优先等级:若某控制位置1,则该位控制的中断源设定为高中断优先级,反之,则设定为低优先级。(用户可用指令更新IP改变各中断优先权的级别。单片机复位后:IP=00H,5个中断源均为低优先级)。1.根据允许中断源的个数对IE的对应位置1,由于单片机上电复位时,IE=00H,因此用户禁止中断的位不必清0。2.对IP设定允许中断开放的中断优先级别,上电复位时IP=00H,因此用户只要用SETB指令将需要设定为高优先级的中断源控制位置1即可。3.若用外中断源INT0或 INT1,应规定是低电平还是负跳变触发中断。为此,应对TCON的两个控制位的IT0和IT1设定。单片机复位TCON=00H,IT0、IT1自动选择低电平触发中断。4.上电复位SP=07H。中断处理需要保护断点和现场,用户应在片内RAM区选择一个合适的栈区容量和位置,原则是栈区不要和其它RAM数据区发生重叠和冲突,以免发生信息混乱、丢失。因此需要对SP重新设定。5.采用中断方式工作时,软件部分有初始化主程序和各中断服务程序两部分。这就需要对内存单元容量、地址空间合理分配,需要解决中断源、中断矢量和对应中断程序实际入口地址的确定和软件连接。本讲小结:本讲小结:lMCS51单片机的中断源及中断矢量lMCS51响应中断的条件(考研题)及响应过程l与中断相关的寄存器(要牢记各位含义):IE(中断使能)TCON(定时器中断、外部中断相关)SCON(串行中断相关)IP(中断优先级)l编程时如何初始化中断?l2-7 什么是中断矢量,中断矢量如何设定,它与中断源和中断服务子程序入口地址有什么关系?l2-8 中断处理和CPU调用子程序处理有什么相同点,最关键的一点区别是什么,试具体说明。l2-9 保护断点和保护现场各解决什么问题?l2-10MCS51的个中断源、中断矢量的名称和地址是什么?若每个中断源的服务程序字节数超过了个单元以上,用户将如何处理这个问题?l2-11若要求中断源T0、T1、INT0和INT1允许中断,禁止串行口中断,将T0、T1设定为高优先级,INT0,INT1设定为低优先级,试填写IE、IP的各控制位,并进行初始化程序设定。l2-12 要求用8031的T0控制P1.0输出周期为2ms的连续方波。以知时钟为6MHZ;主程序入口地址为0500H;T0实际中断入口地址为0800H。试编写T0 编写初始化主程序及对应的中断服务程序。l2-13 T1设定为计数器方式,从引脚输入1000个脉冲后在T1中断程序中将 A左移一位。试编制T1 初始化主程序及中断服务程序。