51单片机外部中断详解与实例
创作时间:
作者:
@小白创作中心
51单片机外部中断详解与实例
引用
CSDN
1.
https://m.blog.csdn.net/BUG_MeDe/article/details/145807820
1,引入
CPU收到中断请求,将主函数中的事情停下来,转而执行中断处理函数中的事情。51单片机有5个中断源,包括2个外部中断(INT0/INT1)、2个定时器中断(T0/T1)和一个串口中断。
系统通过中断号来区分这些中断,并且中断有优先级,可以通过软件控制。高优先级的中断可以抢占低优先级的中断,当两个相同优先级的中断同时到来时,CPU会根据系统中的中断查询顺序来处理。
2,51单片机中断
51单片机的5个中断源如下:
- IE寄存器:中断控制寄存器,EA是总中断使能位,EX0、ET0、EX1、ET1、ES等是其他5个中断的使能位。
- IP寄存器:用于设置中断优先级。
对于外部中断INT0和INT1:
- INT0连接到P3.2管脚,INT1连接到P3.3管脚。
- IT0寄存器控制中断触发方式:IT0 = 1时为下降沿触发,IT0 = 0时为低电平触发。
- 当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)会被置1,向CPU申请中断。
3,中断相关的寄存器
要开启某个中断,需要将对应的寄存器设置为1,并开启总中断。例如,要使能外部中断INT0,需要设置EX0 = 1,EA = 1,并设置触发方式(IT0 = 1表示下降沿触发)。
4,外部中断INT0程序
下面是一个使用外部中断控制LED亮灭的程序示例:
#include <reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit KEY3 = P3^2;
sbit KEY4 = P3^3;
#define DC_RUNING_TIME 1000
void delay_10us(u16 time)
{
while(time--);
}
void delay_ms(ms)
{
u16 i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void init_exti0()
{
// 初始化外部中断0
IT0 = 1; // 下降沿触发
EX0 = 1;
EA = 1;
}
void init_exti1()
{
// 初始化外部中断0
IT1 = 1; // 下降沿触发使能
EX1 = 1; // 启用外部中断1
EA = 1; // 开启中断
}
//interrupt 是一个关键字,表示 51 单片机中断。后面的“0”是中断号
void exti0_run() interrupt 0
{
delay_10us(DC_RUNING_TIME);
if(KEY3 == 0)
{
LED1 = !LED1;
}
}
void exti1_run() interrupt 2
{
delay_10us(DC_RUNING_TIME);
if(KEY4 == 0)
{
LED2 = !LED2;
}
}
void main()
{
init_exti0();
init_exti1();
while(1);
}
5,总结
CPU要正常响应中断需要满足以下三个条件:
- 中断源有中断请求
- 此中断源的中断允许位为 1
- CPU打开了总中断(即 EA=1)
本文原文来自CSDN。
热门推荐
牛奶不是给人喝的?关于牛奶的9条流言,院士来解答
Medical SAM Adapter:一种基于SAM的医学图像分割新方法
MedCLIP-SAM:桥接文本和图像实现通用医学图像分割
孕期过敏,用对抗过敏药
北京故宫和横店故宫,你能看出真假吗?
动态分析:行业趋势与市场预测
衣柜门用什么颜色?看完这篇再选择,不用怕翻车!
《怪物猎人:荒野》制作人:PC平台玩家激增,跨平台功能成亮点
后背疼的原因 哪5个疾病会引起后背疼
颌骨囊肿:成因、症状与治疗全解析
副班长的职责是什么 有必要当吗
胶质瘤患者为什么手发凉
全球科学家携手重建被子植物“生命之树”
警惕流感:大S离世敲响的健康警钟
鼻炎对猫毛过敏怎么办?猫毛过敏的解决方法有哪些?
乐字取名男孩名字好听,乐字开头高分名字推荐
一些地方婚礼攀比浪费严重:婚宴客人都走了,热菜还没上完
古代科举制度的等级划分
老年人如何保养眼睛
酒桌上为何要先敬三杯,敬酒为何要先干为敬?这些酒桌规矩你要懂
超七成受访者不清楚二手房交易风险和流程
3种“小垃圾”,碾成粉埋土里,叶绿根肥,开花收不住!
为什么中国风的网页设计都那么醒目,有辨识度,背后原因揭晓
AR与VR的基本原理
故宫之美:2024年教学展示新体验
内蒙古赤峰福会寺:清代藏传佛教寺庙的建筑与文化瑰宝
吃芹菜真的可以降血压吗?对这种证型的高血压有效
俄罗斯能复活“乌里扬诺夫斯克号”核动力航母吗?
寸头有几种长度,寸头2mm是不是太长了不好看(寸头发型的长度选择)
如何选择适合家庭居住的房产社区环境?这些社区环境有哪些具体的优缺点和适用场景?