首页 理论教育 单片机嵌入式系统习题解答及实验指导

单片机嵌入式系统习题解答及实验指导

时间:2023-10-18 理论教育 版权反馈
【摘要】:在同一优先级中,各个中断源的优先顺序是由自然优先级来确定的。5)处理中断服务程序时,对多个同时发生的中断要进行裁决,而调用子程序时一定没有这种操作。6)中断服务程序的返回指令是RETI,而子程序的返回指令是RET。中断2从t-200μs开始等待响应,这时中断3将在50μs后发生。

单片机嵌入式系统习题解答及实验指导

1.8051单片机能提供几个中断源、几个中断优先级?各个中断源的优先级怎样确定?在同一优先级中,各个中断源的优先顺序怎样确定?

答:8051单片机能提供5个中断源,2个中断优先级。各个中断源的优先级是由特殊功能寄存器IP来确定,IP中的各个中断源对应位为1时,此中断源为高优先级,否则为低优先级。在同一优先级中,各个中断源的优先顺序是由自然优先级来确定的。

2.简述8051单片机的中断响应过程。

答:8051单片机的中断响应过程是按照以下顺序执行的:开中断→→中→→中→→中→→中断返回。

3.8051单片机的外部中断有哪两种触发方式?如何设置?对外部中断源的中断请求信号有何要求?

答:8051单片机的外部中断有电平触发和边沿触发两种方式,是由定时器控制寄存器TCON中IT0、IT1的状态确定的,如:当IT0为1时外部中断0为边沿触发方式,当INT0外部引脚出现下降沿时向CPU提出中断请求,否则为电平触发方式,当INT0外部引脚出现低电平时向CPU提出中断请求。

4.8051单片机如果扩展6个中断源,可采取哪些方法?如何确定它们的优先级?

答:(1)可采取中断加查询方式,软件先查询到的为高优先级,最后查询到的为低优先级。这种方法是把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。

(2)用定时器/计数器作外部中断:单片机的定时器/计数器是一个加1计数器,每当计数输入端有一个“1—0”的负跳变时,计数器加1,当加1计数器溢出时,就向CPU发出中断。利用这个特性来扩展中断的方法是:首先把定时器/计数器设置成计数方式,并预置满值,把外部中断源输入到P3口第4引脚或第5引脚(计数器输入端),这样就可以利用定时器/计数器作为单片机外部中断了。注意这种方法的中断服务的入口地址应在000BH或001BH。

5.试用中断技术设计一个发光二极管LED闪烁电路,闪烁周期为2s,要求亮1s再暗1s。

答:设P1.0接发光二极管,低电平点亮;利用定时器T0,工作于定时器方式2,设系统频率为fOSC=12MHz,则一个定时脉冲为1μs,每次中断定时250μs,则需要4000个中断实现1s的定时;利用R6、R7做软件计数器,初值分别为40,100;定时初值28-250=06H。

6.比较中断服务程序和子程序调用的相同点和不同点。

答:相同点:

1)都是中断当前正在执行的程序,都要通过执行返回指令,返回到原来的程序。(www.xing528.com)

2)都是由硬件自动地把断点地址压入堆栈;当执行到返回指令时,自动弹出断点地址以便返回原来的程序。

3)都要通过软件完成现场保护和现场恢复。

4)都可以实现嵌套

不同点:

1)中断服务程序和正在执行的程序之间是相互独立的;子程序调用装入的子程序与CPU正在执行的子程序之间是同一程序的两个部分。

2)除了软中断,通常中断都是随机产生的(如定时器、串口、AD等触发),不能被调用,也没有返回值;子程序调用是通过子程序调用指令引起的,可以有返回值。

3)中断服务程序的入口地址由中断向量地址指出;子程序调用的入口地址由程序调用指出。

4)调用中断服务程序和子程序都需要保护断点;前者由中断隐指令完成,后者由指令本身完成。

5)处理中断服务程序时,对多个同时发生的中断要进行裁决,而调用子程序时一定没有这种操作。

6)中断服务程序的返回指令是RETI,而子程序的返回指令是RET。

*7.设8051有3个中断——1、2、3,以优先级顺序排列,最高的优先级被分给中断1,最低的优先级被分配给中断3,假设每一个中断都有相同的执行时间为1ms。假设所有中断都未屏蔽,中断1正在被响应,还要执行100μs并在t时刻返回。中断2从t-200μs开始等待响应,这时中断3将在50μs后发生。在中断1的开始时,第一条指令设置中断3具有最高优先级,中断2和中断3的等待时间间隔将是多少?

答:在中断1响应之前,3个中断的优先级分别为1、2、3,此时中断1正在被响应,由于中断1的第一条指令设置中断3有最高优先级,所以此时中断优先级的顺序为3、1、2;而中断3在50μs后发生,由于优先级最高,所以可以嵌套,将中断1打断,此时时刻为t-100μs,所以中断3从t-50μs执行,执行时间为1ms,到t+950μs时刻返回继续执行中断1,中断1在执行50μs结束,即在t+1ms时刻中断返回,此时开始执行中断2,所以中断2的等待时间间隔为(t+1ms)-(t-200μs)=1.2ms

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈