V1.2第6章80C51的中断系统及定时计数器-宋121025讲解.ppt

V1.2第6章80C51的中断系统及定时计数器-宋121025讲解.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
V1.2第6章80C51的中断系统及定时计数器-宋121025讲解

第6章 80C51的中断系统及定时/计数器 CPU执行指令是按照用户编写的程序自动进行的。但是,一些意外情况的发生是用户程序无法预知的,如突然掉电和硬件故障的发生。这些意外事件发生时,CPU必须要作出相应的处理。由此,中断就被提出用来解决此类问题。 当然,随着应用的发展,中断的应用不仅局限于解决突发事件,也用于输入/输出、系统调用等方面,使得中断成为微机系统中非常重要的部分。 原来正常执行的程序称为主程序; 用来处理突发事件或故障的程序称为中断处理子程序或中断服务子程序; 导致中断产生的原因称为中断源; 主程序被中断源打断,转去执行中断服务子程序的位置称为断点 。 由于中断是突发事件或故障导致的,所以其发生的时间点是随机的。而这些事件的处理通常是紧急的,需要快速地响应,即有实时和快速处理的要求。 用户仅通过软件设计往往无法满足这样的要求,因此需要在:CPU设计之初就把中断考虑进去,并通过硬件的方式来实现对中断的处理,最终达到中断管理的目的。 2. 中断的作用 (1)中断可用于实现突发事件和故障处理 突发事件和故障处理是中断设计的原本出发点。 这些事件具有随机性、突发性和紧急性的特点, 利用中断服务子程序优先执行的特点能够很好地处理这些事件。 如突然掉电、外部数据通道故障、计算中出现除数为零、计算结果出现溢出等。 (2)中断可用于实现同步操作 在CPU与外围设备交换数据时,两者之间出现速度匹配问题,经常会出现CPU等待外围设备的情况。如CPU从键盘读键值时,按键输入时间是不确定的,CPU若一直等待键盘按键,就会导致CPU的时间浪费和利用率降低。如果把按键的输入当作突发事件,使用中断来处理,则CPU无须等待键盘按键,而是处理其他程序,在键盘按下后,向CPU申请中断,然后通过中断机制去读取键值。如此就可以消除等待,提高CPU利用率,实现CPU与外设的同步操作。 (3)中断可用于实现实时处理 在工业控制等嵌入式处理器应用领域,大量的现场环境参数是实时变化的,这些参数都需要输入CPU进行处理,然后控制相应的装置。这些参数变化是缓慢的,而处理却又要求快速,如核反应堆的温度控制、光纤生产的拉丝转动速度控制等。这些情况的处理都可以也需要通过中断来实现。 (4)中断可用于操作系统对硬件的管理 还有一类特殊的中断应用就是软件中断。 软件中断是一种通过软件指令产生中断的方法,主要应用于通用微机系统中,一些系统功能的调用就是通过软件中断实现的,比如DOS系统功能调用和BIOS系统功能调用。 3. 中断源的分类 从中断执行过程的角度来看,可以分成两类: (1)处理器预先考虑的中断 (2)处理器没有预先考虑而需要扩展的中断 (1)处理器预先考虑的中断 这些中断发生的时间是不可预知的,但是对这些中断的处理是处理器在设计之初就进行了考虑的。如:除数为零中断、溢出中断、掉电中断、集成的接口电路中断。此类中断发生后,硬件可以快速地找到相应的中断服务子程序去执行。不同的处理器对这类中断的选择是不一样的。 如:8086系统中,除数为零、溢出和外部非屏蔽中断是这一类的; 在80C51系统中,集成的接口电路中断是这一类的。 (2)处理器没有预先考虑而需要扩展的中断 这类中断通常与具体的应用系统有关,同样的处理器在不同的系统中,需要扩展不同的中断。 如:某系统同时需要定时器中断和键盘中断,这些中断由外围器件向处理器发出,需要通过扩展电路来实现。 对80C51系列单片机而言,集成的各种外围接口电路的中断属于第一类. 80C51:预先考虑的中断类型数量较少,处理器没有为这些中断编号,而是把相应的中断程序的入口地址固定在程序存储器中,当中断发生后,80C51处理器会自动地转到相应的中断程序入口地址去执行中断服务子程序,从而省略了根据中断号查找中断入口地址的时间,提高了中断响应的速度。 对于第二类中断,需要更多的步骤。 80X86:这类中断都是通过外部中断引脚输入的,需要外接中断管理器(如8259). 80C51:没有专门考虑这类中断的执行,其提供的两个外部中断输入口的地址是固定的,只能区分两种外部中断,当需要更多中断时,则需要通过设计专门的电路来扩展,并且需要通过软件查询来区分各个中断源,其响应的速度是很慢的。 (2)保护断点 程序计数器或指令指针入栈,由硬件自动完成。 在处理器找到中断程序的入口地址后,就会暂停主程序的执行,转去执行中断服务子程序,为了在执行完中断服务子程序后,能够返回原程序,就需要记忆断点的位置。 程序的执行方向都是通过程序计数器或者指令指针等相关寄存器来控制的。因此在主程序暂停时,程序计数器或指令指针的值(需要注意的是,该值为下一条将要执行的指令的地址)就是主程序的断点。记忆主程序的位置就需要记忆这些寄存器的值,这称为保

文档评论(0)

33ggoup + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档