51单片机两个中断及中断嵌套 您所在的位置:网站首页 51系列单片机内部有几个中断源 51单片机两个中断及中断嵌套

51单片机两个中断及中断嵌套

2024-07-10 08:24| 来源: 网络整理| 查看: 265

文章目录 前言一、中断嵌套是什么?二、两个同级别中断2.1 中断运行关系2.2 测试程序 三、两个不同级别中断实现中断嵌套3.1 中断运行关系3.2 测试程序 总结

前言

提示:这里可以添加本文要记录的大概内容:

课程需要:

提示:以下是本篇文章正文内容,下面案例可供参考

一、中断嵌套是什么?

在这里插入图片描述

二、两个同级别中断 2.1 中断运行关系

主函数->中断0->主函数 主函数->中断1->主函数 主函数->中断0->中断1->主函数 主函数->中断1->中断0->主函数 在这里插入图片描述

2.2 测试程序

关键:

   PX0=0; //外部中断0为低优先级    PX1=0; //外部中断1为低优先级

代码如下(示例):

#include #define uchar unsigned char void Delay(unsigned int i) //延时函数Delay( ) {   unsigned int j;   for(;i > 0;i--)   for(j=0;j    uchar display[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //流水灯显示数据组 uchar a; for(;;) {    EA=1; //总中断允许    EX0=1; //允许外部中断0中断    EX1=1; //允许外部中断1中断    IT0=1; //选择外部中断0为跳沿触发方式    IT1=1; //选择外部中断1为跳沿触发方式    PX0=0; //外部中断0为低优先级    PX1=0; //外部中断1为高优先级 for(a=0;a   for(;;)   {    P1=0x0f; //低4位LED灭,高4位LED亮    Delay(400); //延时    P1=0xf0; //高4位LED灭,低4位LED亮   Delay(400); //延时   } } void int1_isr (void) interrupt 2 using 1 //外中断1中断函数 {   uchar m;   for(m=0;m   unsigned int j;   for(;i > 0;i--)   for(j=0;j    uchar display[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //流水灯显示数据组 uchar a; for(;;) {    EA=1; //总中断允许    EX0=1; //允许外部中断0中断    EX1=1; //允许外部中断1中断    IT0=1; //选择外部中断0为跳沿触发方式    IT1=1; //选择外部中断1为跳沿触发方式    PX0=0; //外部中断0为低优先级    PX1=1; //外部中断1为高优先级 for(a=0;a   for(;;)   {    P1=0x0f; //低4位LED灭,高4位LED亮    Delay(400); //延时    P1=0xf0; //高4位LED灭,低4位LED亮   Delay(400); //延时   } } void int1_isr (void) interrupt 2 using 1 //外中断1中断函数 {   uchar m;   for(m=0;m


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有