(完整版)第5章中断系统课后习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章中断系统
1)作业题
1.8051微控制器中,有几个中断源?几个中断优先级?中断优先级是如何控制的?在出
现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?
各个中断源的入口地址是多少?
答:8051微控制器中有五个中断源,两个中断优先级。通过IP进行优先级控制。IP为中断优先级寄存器,物理地址为B8H,其中的后五位PS PT1 PX1 PT0 PX0分别控制串行口、定时器/计数器1、外部中断1、定时器/计数器0、外部中断0的优先级。在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串行口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。
2.8051微控制器中,各中断标志是如何产生的,又如何清0的?
答:每个中断源请求中断时会在SFR的某些寄存器中产生响应的标志位,表示该中断源请求了中断。INT0、INT1、T0和T1的中断标志存放在TCON(定时器/计数器控制寄存器)中,占4位;串行口的中断标志存放在SCON(串行口控制寄存器)中,占2位。
TF0:T0溢出标志,溢出时由硬件置1,并且请求中断,CPU响应后,由硬件自动将TF0清0;不用中断方式时,要用软件清0。
TF1:T1溢出标志,溢出时由硬件置1,并且请求中断,CPU响应后,由硬件自动将TF1清0;不用中断方式时,要用软件清0。
IE0:INT0中断标志,发生INT0中断时,硬件置IE0为1,并向CPU请求中断。
IE1:INT1中断标志,发生INT1中断时,硬件置IE1为1,并向CPU请求中断。SCON:串行口控制寄存器。
TI:串行口发送中断标志,发送完一帧数据时由硬件置位,并请求中断。
RI:串行口接受中断标志,接收到一帧数据时,由硬件置位,并且请求中断。
TI、RI标志,必须用软件清0。
3.简述8051微控制器中中断响应的过程。
答:单片机响应中断的条件:中断源有请求(响应的中断标志位置1),CPU允许所有中断(CPU中断允许位EA=1),中断允许寄存器IE中,相应中断源允许位置1;没有同级或者高级中断正在服务,现行指令已经执行完毕,若执行指令为RETI或者读/写IE或者IP指令时则该指令的下一条指令也执行完毕。
中断响应的过程:
1)CPU在每个机器周期的S5P2检测中断源。在下一个机器周期的S6按照优先次序查询各个中断标志。若查询到有中断标志为1时,按照优先级别进行处理,即响应中断;2)置相应的“优先级状态”触发器为1,即指出CPU当前正在处理的中断优先级,以阻断同级或者低级中断请求;
3)自动保护断点,即将现行PC内容(即断点地址)压入堆栈,并且根据中断源把相应的
中断程序入口地址装入PC中;
4)执行中断服务程序,直到遇到RETI指令为止;
5)RETI指令清除“优先级状态”触发器;自动清除中断标志(TI/RI除外);从堆栈中弹出断点地址给PC,使CPU回到中断处,继续执行主程序。
4.简述中断服务程序的调用和子程序调用的异同。
答:相似点:1)都是中断当前正在执行的程序,转去执行子程序或者中断服务程序。2)都是由硬件自动将断点地址压入堆栈,然后通过软件完成现场保护。3)执行完子程序或者中断服务程序后,都要通过软件恢复现场,并通过执行返回指令,重新返回到断点处,继续调用程序的执行。4)都可以实现嵌套,比如中断嵌套和子程序嵌套。
差别:1)中断请求是随机的,在程序执行的任何时刻都可能请求;而子程序调用是由软件编排好的。2)响应中断后,转去执行存放在固定地址的中断服务程序,而子程序的地址由软件设定。3)中断响应是受控的,其响应时间受到一些因素影响,子程序响应时间是固定的。
2)思考题
1.什么是中断?中断能实现哪些功能?
答:中断是指CPU暂停当前的工作,转去处理紧急事件,处理完毕后,再回到原来被中断的地方,继续原来的工作。
中断的功能:1)实现CPU与外部设备的速度配合2)实现实时控制3)故障的及时发现与处理4)实现人机联系
2.在设计中断服务程序时,为什么要进行现场的保护和恢复?
答:中断服务程序在执行前,由于主程序在调用完中断程序后将继续执行,因此应该讲中断程序可能用到的资源,包括工作寄存器R0~R7、RAM单元、A、DPTR、PSW等都压入堆栈保存,即进行现场保护。执行完中断程序返回主程序之前,将被保护的内容回复到原始单元中的过程叫做现场恢复。现场保护和恢复是为了使CPU执行完中断服务程序之后可以准确回到原来的地方继续执行指令。
3.8051微控制器的外部中断中,有几种中断触发方式?如何选择触发方式?
答:外部中断有两种触发方式:低电平触发方式和下降沿触发方式。通过TCON中的IT0、IT1来选择。INT=0:低电平触发方式,CPU在每个机器周期的S5P2采样INT0(P3.2)的电平,采样到低电平,则认为有中断请求,随即置位IE0。采样到高电平时认为无中断请求或者中断请求已经撤销,随即对IE0清0。IT0=1:选择INT0为下降沿触发方式,CPU在每个机器周期的S5P2采样INT0的电平,若相继采样两次,一次采到高电平,下一次采到低电平(即检测到一个下降沿),则置IE0=1,表示外部中断0正在向CPU请求中断,直到该中断被CPU响应时IE0由硬件自动清0。
IT1功能与IT0相同。对于下降沿触发方式,中断请求信号的高低电平至少各保持一个机器
周期;对于低电平触发方式,INT0/INT1引脚上请求中断的低电平应该保持到CPU响应中断为止。
4.中断请求有效并开中断时,能否保证立即响应该中断?为什么?
答:不一定可以。51单片机响应中断的条件有:没有同级或者高级中断正在服务,现行指令已经执行完毕,若执行指令为RETI或是读/写IE或者IP指令时,则该指令的下一条指令也执行完毕。