51单片机之中断系统

2018/3/24

51单片机

说在前面

1.今天初步使用了一下怎么去焊接,什么锡丝,松香,铁架台,焊枪,洞洞板,还是得自己买一套琢磨

2.心疼我的电源模块一秒

1.51单片机的中断系统

1.在cpu在处理事件A的时候,发生了另外一件事B要求cpu紧急处理(中断发生),cpu转去实现b(中断响应和服务),处理完B之后返回处理A(中断返回)

2.让cpu实现中断的叫做中断源,cpu处理完中断源,返回原断点处,实现这一功能的叫中断系统

2.中断系统的优点

1.分时操作

2.实时响应

3.可靠性高

3.相关实现过程(重点:敲黑板啦)

中断响应条件

1.中断源有着中断请求

2.中断源的中断允许位为1

3.CPU开中断(EA=1)

顺序可变化

4.思路

想使用的中断是什么,选择中断号

需要什么样的触发条件(低点平or下降沿)

中断之后干嘛?编写中断服务函数实现功能

void int0()interrupt  0

{

>...<;

}


51单片机有5个中断源分别是:

  1、INT0——外部中断0,由P3.2端口引入,低电平或下降沿引起。默认优先级最高,中断号0

  2、INT1——外部中断1,由P3.3端口引入,低电平或下降沿引起。默认优先级第二,中断号1

  3、T0——定时器/计数器0中断,由T0计数器计满回零引起。默认优先级第三,中断号2

  4、T1——定时器/计数器1中断,由T1计数器计满回零引起。默认优先级第四

,中断号3

  5、TI/RI——串行口中断,串行端口完成一帧字符发送/接收后引起。默认中断优先级最低,中断号4

5.中断函数的特点

1.首先响应优先级别最高的

2.正在进行的中断函数不能被同级或低级所打断,但是可以被高级打断(但是51只有双层嵌套哇)

6.中断函数的简单使用

	//使用延时函数来实现外部中断
	#include<reg52.h>
	typedef unsigned int u16;
	typedef unsigned char u8;
	sbit led=P2^0;
	sbit k3=P3^2;
	//延时函数
	void delay(u16 i)
	{
		   while(i--);
	}
	//使用延时命令响应中断
	void INT0Init()
	{
		EA=1;//打开总中断开关
		EX0=1;//打开外部中断0
		IT0=1;//采用下降源触发模式(当电平由1变为0启动下降源)
	}
		void main()
		{
			INT0Init();
			while(1);
		}
		//编写中断函数(进入中断函数)
		void int0()interrupt 0
		{
			 delay(10000);//消抖
			 if(k3==0)
			 {
			 	led=~led;
			 }
		}





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值