STC8951单片机的外部中断

以程序为例:

#include<reg52.h>

sbit led=P3^0;

void main()
{
	 IT0=1;	//设置外部中断0的触发方式为下降沿
	 EX0=1;	//开启外部中断0
													  //中断的设置,首先设置中断的触发方式,再设置开启终端,最后开启总中断。
	 IT1=1; //设置外部中断1的触发方式为下降沿			 //顺序保证:最后开启总中断
	 EX1=1;	//开启外部中断1

	 EA =1;	//总中断开关
	while(1)
	{
		P0=0xaa;
		P0=0xff;
	}
}

void EX0_ISR(void) interrupt 0
{
	led=~led;
}

void EX1_ISR(void) interrupt 2     //外部中断1的中断在此为2!!!! 
{
	led=~led;
}

对于中断的理解:单片机中断和Java、Android中的线程有些像。中断的使用:首先要声明、设置中断服务,在此以外部中断0和1作解。首先要设置中断的触发方式,再设置中断的开启,最后再设置中断的总开关。IT0=1和IT1=1分别设置外部中断0的触发方式低电平触发也就是下降沿触发,同理IT1的触发方式也是如此。EX0=1和EX1=1是设置外部中断0和外部中断1都开启。EA=1是设置开启中断的所有开关。

以上是对中断的声明与设置。完成以上步骤要写中断响应服务。即代码中:

void EX0_ISR(void) interrupt 0
{
	led=~led;
}

void EX1_ISR(void) interrupt 2     //外部中断1的中断在此为2!!!! 
{
	led=~led;
}

所谓的低电平触发是说的单片机上INT0与INT1变为低电平时侯。

也就是当开关按下的时候。

我在这一部分中容易犯得错误就是中断初始化那三行代码记的不熟悉。

IT0=1;
EX0=1;
EA=1;

 

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIOT魔法师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值