MCS-51单片机外部中断的触发方式如何设定和选择

如题所述

1、打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。

2、导入51单片机的头文件,否则后续使用的端口都会出现未定义的情况,然后在主函数中,使得EA=1,即总中断允许,打开中断的总开关。

3、分别打开外部中断0和外部中断1的分开关,即EX0=1和EX1=1,同时设置中断的触发方式为跳沿触发,可以避免增加额外的电路。

4、如果不添加别的代码的话,此时这两个中断的优先级是外部中断0>外部中断1,如果一个中断正在执行来了另外一个中断是不会打断前一个中断的执行过程的,这里需要为中断设置优先级。

5、编写完主函数后,我们要为两个中断分别编写对应的中断服务函数,才能在中断发生后产生相应的响应,注意外部中断0和外部中断1的中断号分别是0和2。

6、然后到Project菜单中的output项目中勾选Create Hex  File,OK后点击编译按钮,如果没有错误,即可生成可以烧录或者仿真的.hex文件。

7、最后把生成出的.hex烧入进51单片机进行运行或者装载入Proteus仿真系统进行仿真。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-18

1、首先在Proteus软件中添加元器件,如下图所示。

2、添加完元器件之后,添加电源和接地,并连线。

3、连完线之后,右击元器件AT89C51,点击edit properties。

4、然后在打开的页面中,找到并添加已生成的hex文件,如下图所示。

5、这时点击页面中的运行按钮,便可以看到电路图上的时钟开始倒计时,如下图所示。

本回答被网友采纳
第2个回答  2019-06-20

1、打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。

2、导入51单片机的头文件,否则后续使用的端口都会出现未定义的情况,然后在主函数中,使得EA=1,即总中断允许,打开中断的总开关。

3、分别打开外部中断0和外部中断1的分开关,即EX0=1和EX1=1,同时设置中断的触发方式为跳沿触发,可以避免增加额外的电路。

4、如果不添加别的代码的话,此时这两个中断的优先级是外部中断0>外部中断1,如果一个中断正在执行来了另外一个中断是不会打断前一个中断的执行过程的,这里需要为中断设置优先级。

5、编写完主函数后,我们要为两个中断分别编写对应的中断服务函数,才能在中断发生后产生相应的响应,注意外部中断0和外部中断1的中断号分别是0和2。

6、然后到Project菜单中的output项目中勾选Create Hex  File,OK后点击编译按钮,如果没有错误,即可生成可以烧录或者仿真的.hex文件。

7、最后把生成出的.hex烧入进51单片机进行运行或者装载入Proteus仿真系统进行仿真。

本回答被网友采纳
第3个回答  推荐于2017-11-28
通过外部中断寄存器的IT位来设置,对于中断0则是IT0,对于中断1则是IT1,
ITx = 0; // 低电平触发
ITx = 1; // 下降沿触发本回答被网友采纳
第4个回答  2012-04-20
MCS51单片机有2个外部中断请求引脚INT0*和INT1*,它们的触发方式分别由TCON寄存器中的IT0和IT1控制位来设定,若IT0或IT1控制位=0,则对应的外部中断设定为电平触发方式,低电平有效;若IT0或IT1控制位=1,则对应的外部中断设定为边沿触发方式,下降沿有效。