
2022年单片机原理及接口技术第三版课后习题答案.pdf
4页第五章1 、什么是中断和中断系统?其主要功能是什么?答:当 CPU 正在处理某件事情的时候,外部发生的某一件事件请求CPU 迅速去处理,于是, CPU 暂时中止当前的工作,转去处理所发生的事件歹中断服务处理完该事件以后,再回到原来被终止的地方,继续原来的工作这种过程称为中断,实现这种功能的部件称为中断系统功能:( 1 )使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理( 2 )完全消除了CPU 在查询方式中的等待现象,大大提高了CPU 的工作效率( 3 )实现实时控制2 、试编写一段对中断系统初始化的程序,使之允许INTO , INTI , TO ,串行口中断,且使TO 中断为高优先级中断解: MOVIE , # 097H 丫MOV IP , # 02H 3 、在单片机中,中断能实现哪些功能?答:有三种功能:分时操作、实时处理,故障处理4 、 89C51 共有哪些中断源?对其中端请求如何进行控制?答: ( 1 ) 89C 班有如下中断源 :外部中断0 请求,低电平有效一汐卜部中断1 请求,低电平有效 TO :定时器、计数器溢出中断请求 T1 :定时器、计数器1 溢出中断请求 Tx 瓜 x :串行接口中断请求住)通过对特殊功能寄存器TCON 、SCON 、IE 、IP 的各位进行置位或复位等操作,可实现各种中断控制功能5 、什么是中断优先级?中断优先处理的原则是什么?答:中断优先级是CPU 相应中断的先后顺序。
原则:( 1 )先响应优先级高的中断请求,再响应优先级低的( 2 )如果一个中断请求已经被响应,同级的其它中断请求将被禁止( 3 )如果同级的多个请求同时出现,则 CPU 通过内部硬件查询电路,按查询顺序确定应该响应哪个中断请求查询顺序:外部中断0 定时器 0 中断一外部中断1 一定时器1 中断一串行接口中断 6 、说明外部中断请求的查询和响应过程答:当 CPU 执行主程序第K 条指令, 外设向 CPU 发出中断请求, CPU 接到中断请求信号并在本条指令执行完后,中断主程序的执行并保存断点地址,然后转去响应中断CPU 在每个 SSPZ 期间顺序采样每个中断源,CPU 在下一个机器周期S6 期间按优先级顺序查询中断标志,如果查询到某个中断标志为1 ,将在接下来的机器周期 S1 期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC ,以便进入相应的中断服务程序中断服务完毕后,CPu 返回到主程序第 K + 1 条指令继续执行7 、 89c51 在什么条件下可响应中断?答:( 1 )有中断源发出中断请求( 2 )中断中允许位EA = 1 即 CPU 开中断( 3 )申请中断的中断源的中断允许位为1 ,即中断没有被屏蔽( 4 )无同级或更高级中断正在服务( 5 )当前指令周期己经结束( 6 )若现行指令为RETI 或访问 IE 或 IP 指令时,该指令以及紧接着的另一条指令已执行完毕8 、简述 89 c51 单片机的中断响应过程。
答: C PU 在每个机器周期SSPZ 期间顺序采样每个中断源,CPU 在下一个机器周期 56 期间按优先级顺序查询中断标志,如查询到某个中断标志为1 ,将在接下名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 来的机器周期S1 期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入护七,以便进入相应的中断服务程序一旦响应中断,89C51 首先置位相应的中断“优先级生效”触发器,然后由硬件执行一条长调用指令,把当前的 PC 值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC ,于是 CPU 接着从中断服务程序的入口处开始执行对于有些中断源,CPU 在响应中断后会自动清除中断标志今、在 89C51 内存中,应如何安排程序区?答:主程序一般从0030H 开始,主程序后一般是子程序及中断服务程序在这个大家还要清除各个中断的中断矢量地址10 、试述中断的作用及中断的全过程答:作用:对外部异步发生的事件作出及时的处理过程:中断请求,中断响应,中断处理,中断返回11 、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?答:( 1 )符合以下6 个条件可响应新的中断请求:a )有中断源发出中断请求b )中断允许位EA = 1 ,即 CPu 开中断c )申请中断的中断源的中断允许位为1 ,即中断没有被屏蔽d )无同级或更高级中断正在被服务e )当前的指令周期已结束O 若现行指令为邢Tl 或访问 IE 或 IP 指令时,该指令以及紧接着的另一条指令已被执行完12 、89 c51 单片机外部中断源有几种触发中断请求的方法?如何实现中断请求?答:有两种方式:电平触发和边沿触发电平触发方式:C Pu 在每个机器周期的SSPZ 期间采样外部中断引脚的输入电平。
若为低电平,使IEI ( l EO )置“ 1 ,申请中断;若为高电平戴则IEI ( l EO )清零边沿触发方式: CPU 在每个机器周期SSPZ 期间采样外部中断请求引脚的输入电平如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断请求为高电平,接着下一个机器周期采样到外部中断请求为低电平,则使IEI ( l EO ) 置“ 1 ”申请中断;否则,IEI ( l EO )置13 、89 c51 单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制石试问以下几种中断优先顺序的安排(级别由高到低) 是否可能: 若可能,则应如何设置中断源的中断级别:否则,请简述不可能的理由 l )定时器定时器1 ,外中断外中断1 ,串行口中断可以, MQyIP , # 0 AH ( 2 )串行口中断、外中断外中断1 ,定时器1 可以、 MQV 万 P , # 10H ( 3 外中断定时器1 ,外中断 1 ,定时器串行口中断不可以,只能设置一级高级优先级,如果将INTO , TI 设置为高级,而TO 级别高于咖TL ( 4 )外中断外中断1 ,串行口中断,定时器定时器1 。
可以, MOV IP , # 15H ( 5 )串行口中断,定时器0 ,外中断0 ,外中断 1 ,定时器 1 不可以( 6 )外中断 0 ,外中断1 ,定时器 0 ,串行口中断,定时器1 不可以( 7 )外中断 0 ,定时器1 ,定时器 0 ,外中断1 , 可以, MOV IP , # 09H 14 、89C51 各中断源的中断标志是如何产生的?串行口中断又是如何清0 的? CPU 响应中断中断入口地址各是多少?:各中断标志的产生和清“0 ”如下:( 1 )外部中断类外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断和外部中断1 输入名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 信号外部中断0 请求信号,由P3 . 2 脚输入通过ITO 来决定中断请求信号是低电平有效还是下跳变有效一旦输入信号有效,则向CPU 申请中断;并且使IEO 一 1 硬件复位外部中断1 请求信号,功能与用法类似外部中断 2 )定时中断类定时中断是为满足定时或计数溢出处理需要而设置的歼当定时器计数器中的计数结构发生计数溢出的, 即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位。
这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引入端,但在计数方式时,中断源可以由外部引入、TFO :定时器 TO 溢出中断请求当定时器TO 产生溢出时,定时器TO 请求标志 TFO = 1 ,请求中断处理使用中断时由硬件复位,在查询方式下可由软件复位TFI :定时器 Tl 溢出中断请求功能与用法类似定时器TO ( 3 )串行口中断类串行口中断是为串行数据的传送需要而设置的串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从班端引入芯片,才可能引发中断m 或 Tl :串行口中断请求当接收或发送一串帧数据时,使内部串行口中断请求标志租或Tl = 1 ,并请求中断响应后必须软件复位CPU 响应中断时,中断入口地址如下:中断源入口地址外部中断0 ooo3H 定时器 To 中断 oooBH 外部中断1 ooi3H 定时器 Ti 中断 ooiBH 时答串行口中断0023H 15 、中断响应时间是否为确定不变的?为什么?答:中断响应时间不是确定不变的由于CPU 不是在任何情况下对中断请求都予以响应的;此外, 不同的情况对中断响应的时间也是不同的下面以外部中断为例,说明中断响应的时间。
在每个机器周期的s5PZ 期间,端的电平被所存到TcoN 的 IEO 位,cPu 在下一个机器周期才会查询这些值这时满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令“LCALL ,使程序转入中断矢量入口调用本身要用2 个机器周期,这样,从外部中断请求有效到开始执行中断服务程序的第二条指令,至少需要3 个机器周期,这是最短的响应时间如果遇到中断受阻的情况,这中断响应时间会更长一些例如, 当一个同级或更高级的中断服务程序正在进行,则附加的等待时间取决于正在进行的中断服务程序:如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为1 弓个机器周期;如果正在执行的是 RETI 指令或者访问I 宽或 IP 的指令,则附加的等待时间在5 个机器周期内若系统中只有一个中断源,则响应时间为3 一 8 个机器周期16 、中断响应过程中,为什么通常要保护现场?如何保护?答:因为一般主程序和中断服务程序都可能会用到累加器,PSw 寄存器及其他一些寄存器CPU 在进入中断服务程序后,用到上述寄存器时,就会破坏它原来存在寄存器中的内容;一旦中断返回,将会造成主程序的混乱因而在进入中断服务程序后,一般要先保护现场,然后再执行中断处理程序,在返回主程序以前再恢复现场。
保护方法一般是把累加器未卫SW 寄存器及其他一些与主程序有关的寄存器压入堆栈在保护现场和恢复现场时,为了不使现场受到破坏或者造成混乱,一般规定此时CPU 不响应新的中断请求 这就要求在编写中断服务程序时,注意在保护现场之前要关中断,在恢复现场之后开中断如果在中断处理时允许有更高级的中断打断它,则在保护现场之后再开中断,恢复现场之前关中断1 入清叙述中断响应的CPU 操作过程, 为什么说中断操作是一个CPU 的微查询过程?答宫在中断响应中,CPu 要完成以下自主操作过程:幻置位相应的优先级状态触发器,以标明所响应中断的优先级别b ) 中断源标志清零 (Tl 、租除外)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - c )中断断点地址装入堆栈保护(不保护PSW ) d )中断入口地址装入PC ,以便使程序转到中断入口地址处在计算机内部,中断表现为CPu 的微查询操作89C51 单片机中, CPu 在每个机器周期的S6 状态,查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器周期的S1 状态中,响应最高级中断请求。
但是以下情况除外:a ) cPu 正在处理相同或更高优先级中断b )多机器周期指令中,还未执行到最后一个机器周期c )正在执行中断系统的sFR 操作,如邢Tl 指令及访问IE 、 IP 等操作时,要。






![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)





