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
{
>...<;
}
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;
}
}
上一篇: Symfony2使用Doctrine进行数据库查询方法实例总结_php实例
下一篇: 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)_PHP教程
推荐阅读
-
linux驱动开发之输入子系统编程(一)使用工作队列实现中断下半部
-
linux 驱动开发之平台设备驱动设备树 input子系统的使用:按键中断驱动
-
220【毕设课设】基于51单片机的智能红绿灯系统设计-LED-红外避障
-
【毕设课设】基于51单片机智能大棚传感器检测控制系统设计
-
基于51单片机的水塔水箱液水位监测控制系统无线WIFI报警
-
074【电路方案】基于51单片机设计的计步器仿真系统设计
-
075【电路方案】基于51单片机室内环境检测仪控制系统
-
466【毕设课设】基于51单片机智能大棚浇花花盆浇水灌溉补光风扇散热系统
-
463【毕设课设】基于51单片机智能医院红外点滴检测输液器报警系统
-
《单片机实践项目》之《电子DIY》之基于51单片机+震动开关的模拟地雷设计