中断系统

*觉得有用有帮助的评论下,谢谢~

中断系统

概念

  • CPU执行事件A时,事件B请求执行(中断请求),这时CPU转去执行事件B(中断响应),待得事件B执行完成后,在返回执行事件A(中断返回)。

中断系统结构

  • 51单片机中断系统中有5个中断源2个优先级,可实现二级中断嵌套。

中断请求标志

  • ①TF0/TF1T0/T1溢出中断请求标志。从初值做加1计数,计满溢出后TF0/TF1置1,发出中断请求,响应中断后硬件自动清0,也可由软件查询清0。
  • ②IE0/IE1外部中断0/外部中断1中断请求标志位,置位后,外部中断0/外部中断1向CPU申请中断,中断响应后,该标志自动清0。
  • ③IT0/IT1外部中断0/外部中断1触发方式控制位 ,等于1或等于0的触发方式有所不同,看图。
  • ④TI :串行口1 发送中断请求标志 ,CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一行帧,硬件将是TI置位。但CPU响应中断时不会清除TI,必须由软件清除。
  • ⑤RI :串行口1 接受中断请求标志 ,在串行口1允许接受时,每接受完一个串行帧,硬件将使RI置位,与TI相同,中断响应后,必须由软件清零。

中断允许控制

  • ①EA :中断允许控制位(总控制)
  • ②EX0/EX1外部中断0/外部中断1 中断允许位
  • ③ET0/ET1 :定时/计数器T0/T1 中断允许位
  • ④ES串行口 中断允许位

同级中断顺序

中断号中断源中断源符号同级自然优先顺序
0外部中断0INT0最高
1定时器T0TO
2外部中断1INT1
3定时器T1T1
4串行口中断TI/RI
中断优先级原则
  • 先响应优先级高的中断请求
  • 中断过程中,不能被新的同级或低优先级的中断请求所中断,但可以被高优先级的打断
中断响应条件
  • 中断源发出中断请求
  • 该中断源的中断允许位打开(置1)
  • 中断总开关打开(EA=1)

外部中断0程序

#include "reg52.h"

typedef unsigned int u16;

bit k3=P3^2;  //定义按键K3
sbit led=P2^0;	 //定义P20口是led

void delay(u16 i)   //简单延时函数,给下面按键消抖用
{
	while(i--);	
}

void Int0Init()  //外部中断0初始化
{
	       //设置INT0
	IT0=1; //跳变沿出发方式(下降沿)
	EX0=1; //打开INT0的中断允许。	
	EA=1; //打开总中断	
}

void main()    //主程序
{	
	Int0Init();  //	设置外部中断0
	while(1);		
}

void Int0()	interrupt 0		//外部中断0的中断函数
{
	delay(1000);	 //延时消抖
	if(k3==0)
	{
		led=~led;
	}
}
  • interrupt后面的数字为中断号

先这样吧~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值