51单片机的中断嵌套

用的是普中的开发板,设置int0<int1,默认这两个引脚接到key3与key4,通过按键接到p3^0,p3 ^1,返回到主函数,可以验证低级中断无法打断高级中断,以及中断返回。地址设置包含在函数里,无需单独设置。

#include<reg52.h>            //对单片机各端口、寄存器等等进行的预设置。
#define uchar unsigned char    //uchar”全部代表“unsigned char”
#define uint unsigned int      //unsigned int是无符号0——65535 int是有符号整型-32767——32767 ,uint代表unsigned int
sbit k1=P3^1;
sbit k2=P3^0;
/*sbit k3=P3^2;*/
/*sbit k4=P3^3;*/
void Int();                         //定义两个中断,以及中断优先级
void main()
{
	Int(); 
  while(1)
   {     
    P2 = 0x00;                     //8个灯全亮
   }
}
void Int()
{
    IT0 = 1;                  //TCON设置  中断0跳沿触发
    IT1 = 1;                  //            中断1跳沿触发
    PX1 = 1;                  //IP设置     中断1高于中断0
 	EX1=1;                  // IE设置    IE = 10000101 允许中断1中断 
	EX0 = 1;                   //允许中断0中断
	EA = 1;                 	 //开总中断
}

void Interrupt0() interrupt 0 using 1                    
{ while (1)		
    {if(k1==0)	
			return;
        P2 = 0xc3;                                 //4个灯亮
     }
 }
void Interrupt1() interrupt 2 using 1                  
{
    while (1)
    {if(k2==0)
			return;
         P2 = 0xef;                             //1个灯亮
    }}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值