希望回答完整一些,如图

如题所述

请你参考:

一、简述外部中断的电平触发于边沿触发方式的工作原理并说明两者的区别。

答:两个外部中断的触发方式由TCON寄存器的 IT1位 和 IT0位 分别设置,方法相同。

    IT0(IT1)=1,脉冲方式,后沿负跳有效;IT0(IT1)=1,电平方式,低电平有效;

    TCON寄存器的 IE0 位和 IE1 位,是外中断请求标志位。

    外部中断请求采样,CPU在每个机器周期对中断请求引脚(INT0 和 INT1)进行采样:

    a.对于电平方式,若采样为高电平,表明没有中断请求,IE0(IE1)继续为0,若采样为低电平,则中断请求有效,把 IE0(IE1)置1 。

    b.对于脉冲方式,若再两个相邻的机器周期采样到的是先高后低,则中断请求有效,把IE0(IE1)置1,否则继续为0。在这种方式下高低电平持续时间应在1个机器周期以上。

    中断响应以后,硬件自动清除标识位 IE0(IE1),即中断请求的撤除是自动的。

    但是对于电平方式,情况有所不同,因为中断请求虽然清除了,但是请求的低电平仍然存在,下一个机器周期又会采样到,又会置位 IE0(IE1),因此这种方式应在中断信号上采取硬件措施(这个话题不再继续,有点扯远了)。

二、简述对于既有片内程序存储器又有外部程序存储器的MCS-51系统,如何才能分别使用其片内程序存储器和外部程序存储器?

答:

    把单片机的EA引脚拉高,程序就从片内4k空间(0000H~0FFFH)读取,超出部分(1000H以后)自动去外部读取,片外(0000H~0FFFH)的4K就浪费掉了。

    把EA引脚拉低,只从篇外读取程序,片内的4K就浪费掉了。

三、如何将中断程序设置在程序存储区的任意区域,在程序中该作何种设置?请举例加以说明。

答:

    先说明一下片内程序存储空间开始的几个字节:

    a.0000H~0002H三个特殊单元:51片内总共4k空间(0000H~0FFFH),系统复位后(PC)=0000H,单片机从0000H单元开始取指令执行程序,如果程序不从0000H单元开始,应在0000H~0002H三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。

    b.还有一组特殊单元(0003H~002AH),共40个字节,分为五段,作为五个中断元的中断地址区。

    这五段,其中:

    0003H~000AH    外部中断0中断地址区

    000BH~0012H    定时器/计数器0中断地址区

    0013H~001AH    外部中断1中断地址区

    001BH~0022H    定时器/计数器1中断地址区

    0023H~002AH    串行中断地址区

    中断响应以后,按照中断种类,自动转到个中断的首地址去执行程序。因此在中断地址区中应存放中断服务程序,但是8个单元难以存下一个完整的中断服务程序,因此通常是在中断首地址开始放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址去。

这次回答的问题比较啰嗦,仔细体会,不要着急,弄懂弄通。

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-26
1、低电平触发就是当检测到P3.2、P3.3为低电平时系统申请中断,边沿触发是当系统检测到P3.2,P3.3产生下降沿时申请中断。51单片机的外部中断,在单片机内部,分别由控制位 IT0 和 IT1 来控制。复位时,IT0/1 都为 0,即默认为低电平触发。
一般来说,外设第一次向单片机申请外部中断时,单片机使用那种触发方式,并无什么差别。但是,返回主程序后,如果外部申请信号仍然是低电平,就有区别了。在采用低电平触发时,单片机执行了一条主程序的指令后,就会又重新进入中断程序。而采用下降沿触发时,即使 INT0/1 引脚仍然是低电平,单片机也不会重新进入中断程序。如果外设想要申请第二次中断,必须是先恢复高电平,重新再送来一次下降沿才行。
2、 51单片机既有片内存储器又有片外存储器时,片外存储器的低位存储器地址与片内是重叠的,当EA=0时,片内片外存储器都可以使用,先从片内存储器开始。当EA=1时就不能使用片内存储器了。
3、中断服务程序可以设置在64K范围内的任意地方,比如:
ORG 0003H
LJMP EXT0
......
ORG xxxx ;如果要设置地址,可以加这一条,如果不设地址,那么可以不要
EXT0:
......
RETI
相似回答