单片机中断系统的研究.doc_第1页
单片机中断系统的研究.doc_第2页
单片机中断系统的研究.doc_第3页
单片机中断系统的研究.doc_第4页
单片机中断系统的研究.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

此文档收集于网络,如有侵权,请联系网站删除本科学生毕业论文(设计)题目 单片机中断系统的研究 系别 电子系 专业 电子信息工程专业 学生姓名 学号 指导教师 职称 论文字数 12000字左右 完成日期 2011 年 12 月 25 日 单片机中断系统的研究 摘 要: 中断是一项重要的计算机技术,采用中断技术可以使多项任务共享一个资源,所以中断技术实质上就是一种资源共享技术。近年来随着计算机在社会领域的渗透,单片机的应用正在不断走向深入。众所周知,CPU的工作速度愈来愈快,CPU启动外部设备输入/输出一个字节数据只需要微秒甚至更短的时间,而低速的外设工作速度一般在毫秒级。若CPU和外部设备是串行工作的,则CPU就浪费了很多时间去等待外设,其效率大大降低。若没有中断技术,CPU难于为多个设备服务,对故障的处理能力也很差。为了解决这些问题,在计算机中引入了中断技术,目前所有的计算机都有中断处理的能力。此次论文主要研究了MCS-51系列单片机中断源、中断的功能、中断系统的组成与功能、中断优先权管理、中断响应条件、中断响应过程、中断嵌套等基本概念及其广泛应用。在单片微机中,依靠中断技术不仅能实现实时控制,还可实现故障的及时发现与处理及其实现人机联系。关键词: 单片机;中断技术;CPU;实时控制 The Research Of SCM Interrupt System Abstract: Interrupt is an important computer technology,the technology can make various tasks interrupt sharing a resource,so interrupt technology is a kind of resource sharing in technology.In recent years,along with the computer in the social sector penetration,the application of SCM are constantly to the deepening.As is known to all,the speed of CPU is faster and faster,CPU start external equitment input/output byte data just microseconds even more short period of time,and low speed peripheral speed of work in general millisecond time scale.If the CPU and external equipment is the serial work,the CPU had wasted a lot of time waiting for peripherals,the efficiency is greatly reduced.If without interruption technology,CPU for equipment to service,the processing power of the fault is very poor.To solve these problems,the introduction of the interrupt in computer technology,all the computers have a interrupt processing power currently.This paper studied the MCS-51 series microcontroller interrupt source,the interrupt functions,the interruption of the system composition and function,interrupt priority management,interrupt response conditions,interrupt response process,interrupt nested of basic concepts and widely used.In the SCM,rely on interrupt technology not only can realize real-time control,still can realize the timely discovery and processing fault and its realization man-machine contact. Key Words: SCM;interrupt technology ;CPU ;real-time control 目 录摘 要 .1引 言 .41、中断概述 .51.1 中断的概念 .51.2 输入/输出的控制方式 .5 1.3 单片机的中断系统需要解决的问题 .5 1.4 中断的主要功能 .62、 中断系统的结构与控制 62.1 中断系统的结构 .62.2 中断系统控制 .73、中断响应过程与响应时间 123.1 中断的响应过程 123.2 中断响应时间 134、外部中断源的扩展 144.1 采用“OC门”经“线或”后实现 144.2 通过片内定时器/计数器来实现 .15 5、MCS-51的单步操作 176、中断的应用举例 18参考文献 25 总 结 26 致 谢 27 引 言 单片机具有高可靠性、高性价比的优点,单片机的出现更是促进了嵌入式的发展。 在单片机家族众多成员中,51系列单片机以其优越的性能、成熟的技术,成为了国内单片机的主流。由于其加密性和抗干扰性强等特点而备受用户喜欢。为了实现实时控制和解决突发事件等问题,STC单片机提供了定时器和中断器。因此,它在工业测控系统、数据采集系统、智能仪器仪表以及国防工业等方面具有广泛的应用。这里我们详细介绍了STC单片机的定时器和中断器的相关知识以及如何控制按键部分实现系统亮度的人工调节,具有智能化和人性化特点。1、中断概述1.1 中断的概念 什么是中断?我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你在书中做好记号后放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”现象。“某人看书”就好比执行主程序;“电话铃响”就好比中断请求,产生中断信号;“暂停看书”好比中断响应,要求暂停执行主程序;“书中作记号”好比保护断点,要求当前PC入栈;“电话谈话”好比中断处理,要求执行中断服务程序;“回来继续看书”好比中断返回,要求返回主程序。这个例子实际上包含了单片机处理中断的4个步骤:中断请求、中断响应、中断处理和中断返回,如图1所示。 主 程 序 中断 响应中断技术 服务 程序 中断请求断点 RETI 继续执行 返回程序 主程序图1 中断响应过程1.2 输入/输出的控制方式 CPU与外设之间传送数据的方式可以有以下几种:1. 无条件传送方式2. 查询方式3. 中断传送方式4. DMA方式1.3 单片机的中断系统需要解决的问题单片机的中断系统需要解决的问题主要有三点,即: 当单片微机内部或外部有中断申请时,CPU能及时响应中断,停下正在执行的任务,转去处理中断服务子程序,中断服务处理后能回到原断点处继续处理原先的任务; 当有多个中断源同时申请中断时,应能先响应优先级高的中断源,实现中断优先级的控制; 当低优先级中断源正在享用中断服务时,若这时优先级比它高的中断源也申请中断,要求能停下低优先级中断源的服务程序转去执行更高优先级中断源的服务程序,实现中断嵌套,并能逐级正确返回原断点处。1.4 中断的主要功能1) 实现CPU与外部设备的速度配合由于应用系统的许多外部设备速度较慢,可以通过中断的方法来协调快速CPU与慢速外部设备之间的工作。2)实现实时控制在单片微机中,依靠中断技术能实现实时控制。实时控制要求计算机能及时完成被控对象随机提出的分析和计算任务。在自动控制系统中,要求各控制参量随机地在任何时刻可向计算机发出请求,CPU必须作出快速响应、及时处理。3)实现故障的及时发现及处理单片微机应用中由于外界的干扰、硬件或软件设计中存在问题等因素,在实际运行中会出现硬件故障、运算错误、程序运行故障等,有了中断技术,计算机就能及时发现故障并自动处理。4)实现人机联系比如通过键盘向单片微机发出中断请求,可以实时干预计算机的工作。2、 中断系统的结构与控制2.1 中断系统的结构图2所示是MCS-51单片机的中断系统结构,它由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成。图2 MCS-51单片机的中断系统结构2.2 中断系统控制1)中断源 MCS-51单片机提供5个中断源,其中两个为外部中断源INT0 (P3.2)、INT1 (P3.3),两个为片内定时器/计数器T0和T1的溢出中断源TF0(TCON.5)、F1(TCON.7),一个串行口发送与接收中断源TI(SCON.1)或RI(SCON.0)。这些中断源分别由TCON与SCON的相应位锁存。定时器/计数器控制寄存器TCON是定时器/计数器0和定时器/计数器1(T0、T1)的控制寄存器,它同时也用来锁存T0、T1的溢出中断源和外部中断源。如图3所示:D7 D6 D5 D4 D3 D2 D1 D0TF1TR1 TF0TR0 IE1IT1 IE0 IT0 用于外部中断图3 TCON寄存器IT0:外部中断0触发方式控制位。IT0=0,INT0 (P3.2)为低电平触发方式;IT0=1,INT0 (P3.2)为负跳变触发方式。IE0:外部中断0标志位。IE0=1,外部中断0向CPU请求中断。IT1:外部中断1触发方式控制位。IE1:外部中断1标志位。TF0:T0中断溢出标志位。T0溢出硬件置1,响应中断后硬件清0(在查询方式下软件清0)。TF1:T1中断溢出标志位,功能同TF0。TR0:T0的启停控制位。TR1:T1的启停控制位。2)中断源的优先级与中断服务程序入口地址 MCS-51单片机有5个独立的中断源,它们可以利用专用寄存器IP设置不同的优先级。系统复位后IP寄存器中各位均为0,即此时全部设定为低中断优先级。中断优先级控制,除了中断优先级控制寄存器之外,还有二个不可寻址的优先级状态触发器,其中一个用于指示某一高优先级中断正在进行服务,而屏蔽其它高优先级中断;另一个用于指示某一低优先级中断正在进行服务,从而屏蔽其它低优先级中断,但不能屏蔽高优先级中断。 在中断执行过程中,高中断优先级可以中断低中断优先级的中断过程。但是若在中断服务程序中,关掉所有中断(CLR EA)或关掉部分中断时除外。当CPU同时接收到二个不同优先级的中断请求时,先响应高优先级的中断,如果CPU同时接收到的是几个同一优先级的中断请求时,则由内部的硬件查询序列确定它们的优先服务次序,即在同一优先级内有一个由内部查询序列确定的笫二个优先级结构。其排列如表1所示:表1 中断自然优先级排序中断源同级内部优先级排列外部中断0最高级 最低级定时器T0中断外部中断1定时器T1中断串行口中断 MCS-51是一个二级中断系统,但是通过软件可以模仿第三优先级。利用MCS-51芯片内硬件可以为一些需要多于二个优先级的应用提供服务。只要编写一段比较简单的程序产生模拟的笫三优先级。首先,把高于优先级1的中断在IP寄存器中指定为优先级1,假定优先级1的中断是可被优先级2的中断所中断,则优先级1的中断服务子程序如下:PUSHIEMOV IE,MASKACALL LABEL(执行服务子程序)POP IERETLABEL:RETI只要任何一个优先级中断1被响应,中断允许寄存器IE就被重新定义以至禁止所有除优先级2之外的中断。那么,对LABEL的调用执行了中断返回指令RETI,它对正在进行中的优先级1的中断触发器清零。这时,任何已被允许的优先级1的中断可以被服务,但没有被允许的中断优先级1的中断就不能再被允许,而只能允许中断优先级2的中断。把IE退栈,恢复原来的允许字节,然后用子程序返回指令RET完成服务子程序(不能采用RETI指令)。单片机的中断为固定入口式中断,即一响应中断就转入固定入口地址执行中断服务程序。具体入口如下:中断源 入口地址INT0 0003T0 000BHINT1 0013HT1 001BHRI/TI 0023H在这些单元中往往是一些跳转指令,跳到真正的中断服务程序,这是因为给每个中断源安排的空间只有8个单元。 3)中断控制的寄存器 与中断控制有关的控制寄存器有四个: TCON-定时控制寄存器, IE-中断允许控制寄存器,IP-中断优先级控制寄存器,SCON-及串行口控制寄存器。 (1)定时控制寄存器TCON 如表2示:表2 寄存器TCOND7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0(2)串行口控制寄存器SCON 如表3示:表3 寄存器SCOND7D6D5D4D3D2D1D0TIRI(3)中断允许控制寄存器IE 如表4示:表4 寄存器IED7D6D5D4D3D2D1D0EAESET1EX1ET0EX0(4)中断优先级控制寄存器(IP)如表5示: 表5 寄存器IPD7D6D5D4D3D2D1D0PSPT1PX1PT0PX04)外部中断触发方式INT0,INT1的中断触发方式有两种:电平触发方式,低电平有效;跳变触发方式,电平发生由高到低的跳变时触发。这两种触发方式可由设置TCON寄存器中的IT1(TCON.1)、IT0(TCON.0)中断申请触发方式控制位来选择:设置IT1、IT0=0,选择电平触发方式;设置IT1、IT0=1,选择跳变触发方式,即当INT0,INT1引脚检测到前一个机器周期为高电平、后一个机器周期为低电平时,则置位IE0、IE1且向CPU申请中断。 由于CPU每个机器周期采样INT0,INT1引脚信号一次,为确保中断请求被采样到,外部中断源送INT0,INT1引脚的中断请求信号应至少保持一个机器周期。如果是跳变触发方式,外部中断源送INT0,INT1引脚的中断请求信号高、低电平应至少各维持一个机器周期,才能确保CPU采集到电平的跳变。如果是电平触发方式,则外部中断源送INT0,INT1引脚请求中断的低电平有效信号,应一直保持到CPU响应中断为止。5) 中断请求的撤除CPU响应中断请求,转向中断服务程序执行,在其执行中断返回指令(RETI)之前,中断请求信号必须撤除,否则将会再一次引起中断而出错。中断请求撤除的方式有三种,即:(1)由单片微机内部硬件自动复位。对于定时器计数器T0、T1 的溢出中断和采用跳变触发方式的外部中断请求,在CPU响应中断后,由内部硬件自动清除中断标志TF0和TF1、IE0和IE1,而自动撤除中断请求。(硬件置位,硬件清除) (2)应用软件清除相应标志。对于串行接收发送中断请求和MCS-51中的定时器计数器T2的溢出和捕获中断请求,在CPU响应中断后,必须在中断服务程序中应用软件清除RI、TI、TF2和 EXF2这些中断标志,才能撤除中断。(硬件置位,软件清除) 。(3)采用外加 硬件结合软件清除中断请求。对于采用电平触发方式的外部中断请求,中断标志的撤消是自动的,但中断请求信号的低电平可能继续存在,在以后机器周期采样时又会把已清“0”的IE0、IE1标志重新置“1”,再次申请中断。为保证在CPU响应中断后、执行返回指令前,撤除中断请求,必须考虑另外的措施,保证在中断响应后把中断请求信号从低电平强制改变为高电平。可在系统中加入如图4所示电路。D触发器80C51/INT0 P1.0Q D SDCP外部中断请求信号图4 电平方式外部中断请求的撤消电路 从图4 中可看到,用D触发器锁存外部中断请求低电平,并通过触发器输出端Q送或,所以D触发器对外部中断请求没有影响。但在中断响应后,为了撤消低电平引起的中断请求,可利用D触发器的直接置位端SD来实现。采用MCS-51的一根I/O口线来控制SD端。只要在SD端输入一个负脉冲即可使D触发器置“1”,从而撤消了低电平的中断请求信号。(硬件置位,硬、软件结合清除) 。所需负脉冲可以通过在中断服务程序中增加以下二条指令得到:ANL P1,#0FEH ;Q置1(SD为直接置位端,低电平有效)ORL P1,#01H ;SD无效 使P1.0输出一个负脉冲,其持续时间为二个机器周期,足以使D触发器置位,撤除低电平中断请求。第二条指令是必要的,否则D触发器的Q端始终输出“1”,无法再接受外部中断请求。3、中断响应过程与响应时间3.1 中断的响应过程从中断请求发生直到被响应去执行中断服务程序,这是一个很复杂的过程。而整个过程均在CPU的控制下有规律的进行。中断响应过程的时序如图5所示。 机器周期 机器周期 S1S2S3S4S5S6S1S2S3S4S5S6P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2P1P2 采样置标志 查询标志转入处理图5 中断响应过程的时序 中断采样中断采样是针对外部中断请求信号进行的,而内部中断请求都发生在芯片内部,可以直接置位TCON或SCON中的中断请求标志。在每个机器周期的S5P2(笫五状态的第二节拍)期间,各中断标志采样相应的中断源,并置入相应标志。 中断查询若查询到某中断标志为1,则按优先级的高低进行处理,即响应中断。MCS-51的中断请求都汇集在TCON和SCON二个特殊功能寄存器中。而CPU则在下一机器周期的S6期间按优先级的顺序查询各中断标志。先查询高级中断,再查询低级中断。同级中断按内部中断优先级序列查询。如果查询到有中断标志位为“1” ,则表明有中断请求发生,接着从相邻的下一个机器周期的S1状态开始进行中断响应。由于中断请求是随机发生的,CPU无法预先得知,因此中断查询要在指令执行的每个机器周期中不停地重复执行。 中断响应响应中断后,由硬件自动生成长调用指令“LCALL”, 其格式为LCALL addr16,而addr16就是各中断源的中断矢量地址。先将程序计数器PC的内容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针SP加2。将对应中断源的中断矢量地址装入程序计数器PC,去执行中断服务程序。由于各中断矢量区仅8个字节,通常是在中断矢量区中安排一条无条件转移指令,使程序执行转向在其它地址中存放的中断服务程序。中断服务程序由中断矢量地址开始执行,直至遇到RETI指令为止。 执行中断返回指令RETI,一是撤销中断申请,弹出断点地址进入PC,先弹出高位地址,后弹出低位地址,同时堆栈指针SP减2,恢复原程序的断点地址执行;二是恢复中断触发器原先状态。中断响应是有条件的,在接受中断申请时,如遇下列情况之一时,硬件生成的长调用指令“LCALL”将被封锁: CPU正在执行同级或高一级的中断服务程序中。因为当一个中断被响应时,其对应的中断优先级触发器被置“1”,封锁了同级和低级中断;查询中断请求的机器周期不是执行当前指令的最后一个周期。目的在于使当前指令执行完毕后,才能进行中断响应,以确保当前指令的完整执行;当前正在执行RETI指令或执行对IE、IP的读写操作指令。MCS-51中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。可以看出,中断的执行过程与调用子程序有许多相似点,比如: 都是中断当前正在执行的程序,转去执行子程序或中断服务程序。 都是由硬件自动地把断点地址压入堆栈,然后通过软件完成现场保护。 执行完子程序或中断服务程序后,都要通过软件完成现场恢复,并通过执行返回指令,重新返回到断点处,继续往下执行程序。 二者都可以实现嵌套,如中断嵌套和子程序嵌套。但是中断的执行与调用子程序也有一些大的差别,比如: 中断请求信号可以由外部设备发出,是随机的,比如故障产生的中断请求,比如按键中断等;子程序调用却是由软件编排好的。 中断响应后由固定的矢量地址转入中断服务程序,而子程序地址由软件设定。 中断响应是受控的,其响应时间会受一些因素影响;子程序响应时间是固定的。3.2 中断响应时间当单片微机应用于实时控制系统时,往往非常在意中断的响应时间,比如出现故障后,CPU在多长时间里能够响应和处理。一般来说,在单级中断系统中,中断的响应时间最短为3个机器周期,最长为8个机器周期。当中断请求标志位查询占1个机器周期,而这个机器周期又恰好是指令的最后一个机器周期,在这个机器周期结束后,CPU即响应中断,产生硬件长调用LCALL指令,执行这条长调用指令需要2个机器周期,这样,中断响应时间为3个机器周期。中断响应时间最长为8个机器周期。如果CPU正在执行的是RETI指令或访问IP、IE指令,则等待时间不会多于2个机器周期,而中断系统规定把这几条指令执行完必须再继续执行一条指令后才能响应中断,如这条指令恰好是4个机器周期长的指令(比如乘法指令MUL或除法指令DIV) ,再加上执行长调用指令LCALL所需2个机器周期,总共需要8个机器周期。如果中断请求被前面所列三个条件之一所阻止,不能产生硬件长调用LCALL指令,那么所需的响应时间就更长些。如果正在处理同级或优先级更高的中断,那么中断响应的时间还需取决于处理中的中断服务程序的执行时间。4、外部中断源的扩展在MCS-51系列单片微机中,一般只有两个外部中断请求输入端INT0,INT1 。当某个系统需要多个外部中断源时,可以通过增加“OC门” 结合软件来扩展;当定时器/计数器在系统中有空余时,也可以通过对计数器计数长度的巧妙设置,使定时器/计数器的外部输入脚(T0或T1) 成为外部中断请求输入端。4.1 采用“OC门”经“线或”后实现引入芯片本身的外部中断请求输入端(INT0、INT1)就可以很方便地扩展多个外部中断源。图6就是占用一个MCS-51的INT0(或INT1)扩展4个外部中断源的电路。4个扩展外部中断源中有一个或几个出现高电平,反相器输出为0,引起INT0低电平触发中断,所以这些中断源都是电平触发方式。当满足外部中断请求条件时,则CPU响应中断,转入0003H单元开始执行中断服务程序。图6 外部中断源的扩展电路在中断服务程序中,由软件设定的顺序查询外中断哪一位是高电平,然后进入该中断处理程序。查询的顺序就是外部扩展中断源的中断优先级顺序。外部中断源查询的流程图示于图7。INT0的中断服务程序如下:PINTO:PUSH PSW ;保护现场PUSH ACC JB P1.0, LOOP1 ;转向中断服务程序1 JB P1.l,LOOP2 ;转向中断服务程序2 JB P1.2,LOOP3 ;转向中断服务程序3 JB P1.3,LOOP4 ;转向中断服务程序4INTEND:POP ACC ;恢复现场 POP PSW RETILOOP1:;中断服务程序1 AJMP INTENDLOOP2:;中断服务程序2 AJMP INTENDLOOP3:;中断服务程序3 AJMP INTENDLOOP4:;中断服务程序4 AJMP INTEND从程序中可以看出,这里定义的扩展外中断源1的优先级最高,扩展外中断源4的优先级最低,所以查询的顺序从P1.0开始。图7 外部中断源查询流程图4.2 通过片内定时器/计数器来实现利用T0或T1的外部事件输入引脚T0、T1作为边沿触发的外部中断源。这时应设置定时器/计数器为计数器方式,而计数常数为满刻度值。外部输入的脉冲在负跳变时有效,计数器加1后即溢出,向CPU申请中断。如果以T0、T1的计数脉冲输入作为外部中断请求输入,T0、T1的中断矢量用做第三、笫四个扩展的外部中断矢量,T0、T1的中断服务程序入口地址作为扩展的外部中断服务入口地址,即实现了外部中断的扩展。当T2用做波特率发生器时,若EXEN2置1,则T2EX端的信号产生负跳变时,EXF2将置1,但不会发生重装载或捕获操作。这时,T2EX可以作为一个附加的外部中断源。例 把外部中断请求信号2连到T1引脚上,T1设为方式2,即8位自动重装载方式,时间常数设为满刻度值FFH外部中断的服务程序入口地址存放在T1的中断矢量区中。其初始化程序段如下:ORG0000HAJMPMAINORG001BH;T1中断矢量用作外部中断2的中断矢量LJMPINT2ORG0030HMAIN:MOVTMOD,#60H;设T1计数器方式2MOVTL1,#0FFH;置T1计数常数MOVTH1,#0FFHSETBEA;开中断SETBET1;允许计数器1中断SETBTR1;启动计数-INT2:-;外部中断2服务程序5、MCS-51的单步操作 MCS-51的中断系统中,允许用户单步运行程序,这样用户可以很方便的进行程序调试。一般是设置一个单步键(STEP) ,用以产生脉冲,按一次STEP键就执行一条指令,通过检查结果来检查每条指令执行的正确与否。MCS-51中断结构有一个重要特性,即执行中断返回指令RETI后,必须至少执行一条其它指令后,才能响应新的中断。典型方法是使用外部中断,并将其设为电平触发方式。硬件上,把按键产生的脉冲连到 INT0(P3.2)引脚,作为外部中断0的中断请求信号,并把电路设计为不按键时为低电平,按一次键产生一个正脉冲。软件上,需编制外部中断0的中断服务程序,在中断服务程序的末尾为JNB P3.2,$;INT0 =0 ,则等待JB P3.2,$;INT0=1 ,则等待RETI;中断返回在没有按键时,INT0=0 ,中断请求有效,响应中断后执行中断服务程序,在执行到JNB P3.2,$指令时等待。当按下单步键后产生一个正脉冲,执行中断返回,再执行一条指令后, 由于已为低电平,所以单片微机再次响应中断,并进入中断服务程序等待。从而实现了按一次键执行一条指令的功能。6、中断的应用举例MCS-51系列单片微机中,共有5个中断源,由4个特殊功能寄存器TCON、SCON、IE和IP进行管理和控制。对于80C5280C32单片微机,增加了一个16位的定时器计数器T2中断请求。在80C51单片微机中,需要用软件对以下5个内容进行设置: 中断服务程序入口地址的设定。 某一中断源中断请求的允许与禁止。 对于外部中断请求,还需进行触发方式的设定。 各中断源优先级别的设定。 CPU开中断与关中断。中断程序一般包含中断控制程序和中断服务程序两部分。 中断控制程序即中断初始化程序,一般不独立编写,而是包含在主程序中,根据上述的5点通过编写几条指令来实现。例1 试编写设置外部中断INT0和串行接口中断为高优先级,外部中断INT1为低优先级。屏蔽T0 和T1中断请求的初始化程序段。根据题目要求,只要能将中断请求优先级寄存器IP的第0、4位置“l”。其余位置“0”,将中断请求允许寄存器的第0、2、4、7位置“l”,其余位置“0”就可以了。编程如下:ORG0000HSJMPMAINORG0003HLJMPINT0INT;设外部中断中断矢量 ORG0013H LJMPINT1INT;设外部中断中断矢量 ORG0023H LJMPSIOINT ;设串行口中断矢量 ORG0030HMAIN:MOV IP,#00010001B ;设外部中断INT0和串行口中断为高优先级MOV IE#10010101B;允许INT0、INT1、串行口中断,开CPU中断中断服务程序是一种为中断源的特定事态要求服务的独立程序段,以中断返回指令RETI结束。在程序存储器中设置有六个固定的单元作为中断矢量,即是0003H、000BH、0013H、00lBH、0023H及002BH单元。 一般将中断服务程序存放在程序存储器的其它部位,而在中断矢量中安排一条无条件转移指令。这样,当CPU响应中断请求后,转入中断矢量执行无条件转移指令,再转向实际的中断服务子程序的入口。中断响应很突出的一点是它的随机性。下面针对中断服务程序在编写中的几个问题进行说明。 保护断点和现场、恢复断点和现场中断服务程序和子程序一样,在调用和返回时,也有一个保护断点和现场、恢复断点和现场的问题。在中断响应过程中,断点的保护主要由硬件电路自动实现。它将断点压入堆栈,再将中断服务程序的入口地址送入程序计数器PC,使程序转向中断服务程序,即为中断源的请求服务。 所谓现场是指中断发生时单片微机中存储单元、寄存器、特殊功能寄存器中的数据或标志位等。在80C51中,现场一般包括累加器 A、工作寄存器 R0R7以及程序状态字PSW等。保护的方法可以有以下几种: 通过堆栈操作指令PUSH direct; 通过工作寄存器区的切换; 通过单片微机内部存储器单元暂存。现场保护一定要位于中断服务程序的前面。在结束中断服务程序返回断点处之前要恢复现场,与保护现场的方法相对应。而恢复断点也是由硬件电路自动实现的,中断服务程序的最后一条指令必须是RETI指令。 对中断的控制 80C51单片微机具有多级中断功能(即多重中断嵌套),为了不至于在保护现场或恢复现场时,由于CPU响应其它中断请求,而使现场破坏。一般规定,在保护和恢复现场时,CPU不响应外界的中断请求,即关中断。因此,在编写程序时,应在保护现场和恢复现场之前,关闭CPU中断;在保护现场和恢复现场之后,再根据需要使CPU开中断。对于重要中断,不允许被其它中断所嵌套。除了设置中断优先级外,还可以采用关中断的方法,彻底屏蔽其它中断请求,待中断处理完之后再打开中断系统。例2. 模拟交通信号灯控制:一般情况下正常显示,有急救车到达时,两个方向四个路口交通灯全红,以便让急救车通过路口时间为10s,急救车通过后,交通恢复正常。本题要求用单次脉冲申请中断,表示有急救车通过。程序流程如图8、9示:外部中断入口保护现场东西、南北都亮灯延时10秒恢复现场中断返回图8 子程序框图开外中断初始状态东西南北都是红灯状态1南北绿灯,东西红灯状态2南北绿灯闪转黄灯,东西红灯开始状态3南北红灯,东西绿灯状态4南北红灯,东西绿灯闪转黄灯图9 主程序框图编程如下示:ORG 0000HLJMP MAINORG 0003HLJMP INTR0 ORG 0100HMAIN:MOV IP,#01HM0V IE,#81HSETB IT0MOV DPTR,#0003HMOV A,#80HMOVx DPTR,AMOV DPTR,#0000HMOV A,#66HMOVX DPTR,AINC DPTRMOVX DPTR,ALCALL DELAY1L0:MOV DPTR,#0000HMOV A,#11101011BMOVX DPTR,AMOV R0,AMOV DPTR,#0001HMOVX DPTR,ALCALL DELAY1MOV R1,#3L1:MOV DPTR,#0000HMOV A,#10111101BMOVX DPTR,AMOV DPTR,#0001HMOVX DPTR,ALCALL DELAYMOV DPTR,#0000HMOV A,#10111111BMOVX DPTR,AMOV DPTR,#0001HMOVX DPTR,ALCALL DELAYDJNZ R1,L1MOV DPTR,#0000HMOV A,R0SWAP AMOVX DPTR,AMOV DPTR,#0001HMOVX DPTR,ALCALL DELAY1MOV R1,#3L2:MOV DPTR,#0000HMOV A,#11011110BMOVX DPTR,AMOV DPTR,#0001HMOVX DPTR,ALCALL DELAYMOV DPTR,#0000HMOV A,#11111110BMOVX DPTR,AMOV DPTR,#0001HMOVX DPTR,ALCALL DELAYDJNZ R1,L2LJMP L0DELAY:MOV R2,#20DEL1:MOV R3,#200NOPDEL2:MOV R4,#123DEL3:DJNZ R4,DEL3DJNZ R3,DEL2DJNZ R2,DEL1RETDELAY1:MOV R5,#3L3: LCALL DELAYDJNZ R5,L3RETINTR0:PUSH PSWPUSH ACCMOV DPTR,#0000HMOV A,#66HMOVX DPTR,AINC DPTRMOVX DPTR,AMOV R6,#2L4: LCALL DELAY1DJNZ R6,L4POP ACCPOP PSWRETIEND仿真截图如下示: 图10 初始状态 东西南北红灯全亮图11 南北绿灯,东西红灯图12 南北绿闪转黄灯,东西绿灯图13 南北红灯,东西绿灯图14 南北红灯,东西绿闪转黄灯参考文献:1 张齐等. 单片机应用系统设计技术. 北京:电子工业出版社,2009.1:20-302 李叶紫. MCS-51单片机应用教程. 北京: 清华大学出版社,2002 :21-403 楼然苗. 51系列单片机设计实例. 北京: 北京航空航天大学出版社,1999 :504 黄菊生. 单片机原理与接口技术. 北京:国防工业出版社 , 2007.09:51-835 杨西明. 单片机编程与应用入门. 北京:机械工业出版社,2004.06:65-906 曹巧媛. 单片机原理及应用. 北京:电子工业出版社,1997:30-837 张友德等. 单片机原理应用及实验. 上海:复旦大学出版社,1992:548 余发山. 单片机原理及应用技术. 中国矿业大学出版社,2003.12:32-979 朱宇光. 单片机应用新技术教程. 北京:电子工业出版社,2000:2810 沙占友等. 单片机外围电路设计(第2版). 北京:电子工业出版社,2006:

温馨提示

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

评论

0/150

提交评论