MCS-51单片机的中断系统_第1页
MCS-51单片机的中断系统_第2页
MCS-51单片机的中断系统_第3页
MCS-51单片机的中断系统_第4页
MCS-51单片机的中断系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理及应用,第4章MCS-51单片机的中断系统,4.1中断的概念中断是指在CPU正在处理某项事务的时候,如果外界或内部发生了紧急事件,要求CPU暂停正在运行的工作转而去处理这个紧急事件,待处理完后再回到原来被中断的地方,继续原来被打断了的工作的过程。中断是计算机中一个很重要的概念,中断技术的引入使计算机的发展和应用都大大地推进了一步。可以说:没有中断技术,就没有目前计算机的广泛应用。,4.28051中断系统结构及中断控制MCS-51系列单片机有5个中断源和其相应的控制寄存器。1.中断源产生中断的请求源叫中断源。MCS-51系列单片机的5个中断源,包括2个外部中断源和3个内部中断源。MCS-51系列单片机能提供两个中断优先级,实现两级中断嵌套。,振荡器和时序OSC,程序存储器4KBROM,数据存储器4KBRAM,64KB总线扩展控制器,可编程I/O,可编程全双工串行口,8051CPU,216位定时器/计数器,外时钟源,内中断,外中断,控制,并行口,串行通信,外部事件计数,1MCS-51单片机总体构框图,2个外部中断源是外部中断0和外部中断1,相应的中断请求信号输入端是INT0和INT1。3个内部中断源是定时器/计数器0溢出中断,定时器/计数器1溢出中断,串行口的发送和接收中断(TI和RI)。,外部中断请求有两种触发方式:电平触发和边沿触发。,电平触发,边沿触发,高,低,2.TCON寄存器TCON是定时器/计数器0和1(T0、T1)的控制寄存器,同时也用来锁存T0、T1的溢出中断申请标志和外部中断请求标志。,定时器/计数器1定时器/计数器0溢出中断请求标志,由硬件置位。,INT1、INT0请求标志,由硬件置位。,INT1、INT0触发方式控制位,由软件置位或复位。IT1=0时,INT1为电平触发,IT1=1为边沿触发;IT0同理(对应INT0)。,3.SCON寄存器SCON为串行口控制寄存器,其中的低2位用作串行口中断请求标志。,4.在MCS-51单片机中断系统中,中断的允许或禁止是由片内的中断允许寄存器IE控制的。,CPU中断允许标志位。EA=0时,关中断;EA=1时,开中断。,串口中断允许标志位。EA=0时,关串口中断;EA=1时,开串口中断。,T1、T0溢出中断允许标志位。ET1=0时,关T1中断;ET1=1时,开T1中断。ET0同理(对应T0)。,外部中断允许标志位。EX1=0时,关INT1中断;EX1=1时,开INT1中断。EX0同理(对应INT0)。,例:假设允许片内定时器/计数器中断,禁止其他中断,设置相应的IE值。,MOVIE,#8AH或SETBET0SETBET1SETBEA,5.MCS-51系列单片机的中断优先级控制是由中断优先级寄存器IP控制的。,优先级可以用软件进行设置,单片机复位后,IP中的各位均被清0。,例:设8031的片外中断为高优先级,片内中断为低优先级,设置IP相应的值。,MOVIP,#05H或SETBPX0SETBPX1CLRPSCLRPT0CLRPT1,MCS-51单片机中断系统应遵循的原则:,1、低优先级中断可被高优先级中断请求所中断,反之则不能。2、同级的中断请求不能打断已经执行的同级中断。,中断响应条件:,必须要有中断请求中断源的中断允许位为1(即IE中的总允许位EA1,且IE相应的中断允许位为1)无同级或高级中断正在服务现行指令执行完最后一个机器周期。,4.3中断响应过程CPU在每个机器周期的S5P2时刻采样各中断源的中断请求信号,并将它锁存在TCON或SCON中的相应位。在下一个机器周期对采样到的中断请求标志进行查询。如果查询到中断请求标志,则按优先级高低进行中断处理,中断系统将通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。,4.4中断响应时间在不同的情况下CPU响应中断的时间是不同的。以外部中断为例,INT0和INT1引脚的电平在每个机器周期的S5P2时刻经反相锁存到TCON的IE0和IE1标志位,CPU在下一个机器周期才会查询到新置入的IE0和IE1,如果满足响应条件,CPU响应中断时要用两个机器周期执行一条硬件长调用指令“LCALL”,由硬件完成将中断矢量地址装入程序指针PC中,使程序转入中断矢量入口。因此,从产生外部中断到开始执行中断程序至少需要三个完整的机器周期。,4.5中断响应后中断请求的撤除中断源提出中断申请,在CPU响应此中断请求后,该中断源之中断请求在中断返回之前应当撤除,以免引起重复中断,被再次响应。对于边沿触发的外部中断,CPU在响应中断后由硬件自动清除相应的中断请求标志IE0和IE1。对于电平触发的外部中断,必须外加硬件来撤销中断请求。对于定时器溢出中断,CPU在响应中断后就由硬件消除了相应的中断请求标志TF0、TF1。对于串行口中断,CPU在响应中断后并不自动清除中断请求标志RI或TI,因此必须在中断服务程序中用软件来清除。,中断系统应用举例:,外部中断源的扩展,ORG0003HLJMPINT0INT0:PUSHPSWPUSHACCJBP1.7,DV1JBP1.6,DV2JBP1.5,DV3JBP1.4,DV4GB:POPACCPOPPSWRETIDV1:AJMPGBDV2:AJMPGBDV3:AJMPGBDV4:AJMPGB,设计一个程序,能够实时显示INT0引脚上出现的负跳变信号的累计数。主程序:ORG0000HAJMPMAINORG0003HAJMPIP0ORG0030HMAIN:MOVSP,#60HSETBIT0SETBEASETBEX0MOVR7,#00HLP:ACALLDISPAJMPLP中断服务子程序:IP0:INCR7RETI,中断程序举例:,例:,X1、X2、X3为3个故障输入,当系统无故障时,它们全为低电平,3个灯不亮;当某部分出现故障时,其对应的输入端由低电平变为高电平,从而引起单片机中断,并点亮对应的发光二极管。,主程序:ORG0000HAJMPMAINORG0003HAJMPSERVEMAIN:ORLP1,#0FFH;P1口设初值,灯全灭SETBIT0;选择边沿触发方式SETBEX0;允许INT0中断SETBEA;开CPU中断SJMP$;等待中断中断服务子程序:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论