Proteus仿真实验------外部中断函数0

        中断:电脑暂停正在进行的任务转而去执行更紧急任务,完成紧急任务后,再回到原来暂停的地方,这个过程叫做中断。

 

        外部中断0 的使用有两步

        一、配置外部中断(外部中断0的初始化函数),主要设置以下几个参数:

        IT0:中断0的触发方式,1下降沿触发,0低电平触发。

        EX0:中断0的允许位,1中断0开启,0中断0关。

        EA:总中断控制位,1总中断开,0总中断关。

        二、中断处理函数编写,注意函数头有规定格式(注意标红字)

        /INT0:void Int0() interrupt 0

                        {

                        }

        /INT1:void Int1() interrupt 2

                        {

                        }

电路图:

 程序:

#include "reg52.h"

typedef unsigned int u16;
typedef unsigned char u8;

sbit key = P3^2;     //定义端口
sbit led = P2^0;
sbit led1 = P2^1;

void delay(u16 i)  //延时函数
{
	while(i--);
}

void Int0Init()   //中断0初始化函数
{
	IT0 = 1;       //下降沿触发
	EX0 = 1;       //开外部中断0中断允许
	EA = 1;       //开总中断
}

void main()
{
	Int0Init();     //初始化Int0
	
	led = 0;         //上电后两个led亮一下。
	delay(50000);
	led1 = 0;
	
	while(1)
	{
		
		led = 1;
		delay(50000);
		led = 0;
		delay(50000);
	}
}


void Int0()interrupt 0   //外部中断0的中断函数
{
	delay(1000);    //延时消抖
	if(key==0)
	{
		led1=~led1;
	}
}


  仿真实图:

      

补充内容:

        在C51单片机中有五个中断源;外部中断0(/INT0),定时器中断0(T0),外部中断1(/INT1),定时器中断1(T1),串口(UART)中断;它们的中断优先级按上由高(/INT0)到低(UART)。

 中断结构(主要看外部中断0(/INT0)和外部中断1(/INT1)):       

        

在使用中断前,我们需要先设定中断的一些参数:

一、中断初始化

        1、中断触发方式(主要看外部中断0(/INT0)和外部中断1(/INT1)):

       2、开启相应的中断号和总中断:

二、中断处理内容

        3、中断处理函数的命名要求:

        

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值