如何同时使用2个外部中断

2025-04-10 12:20:35

1、首先要知道中断源的入口地址,由于我们需要同时使用两个外部中断,即要用到外部中断0:0003H和外部中断1:0013H

如何同时使用2个外部中断

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

如何同时使用2个外部中断

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

如何同时使用2个外部中断

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

如何同时使用2个外部中断

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

如何同时使用2个外部中断

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

如何同时使用2个外部中断

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

如何同时使用2个外部中断

8、最后把生成出的.hex烧入进51单屡阽咆忌片机进行运行或者装载入Proteus仿真系统进行仿真,点击运行按钮后可以看到在点击第一个按键后led灯的状态由偈刺靶镫灭变亮,当点击第二个按钮后,无论led灯原先的状态怎么样都会变成常亮的状态

如何同时使用2个外部中断
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢