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。
热门推荐
如何辨别自己的普通话发音是否标准?
如何通过六大核心胜任力提升团队整体绩效与员工发展潜力?
打造创新文化:企业的永续发展之道
“量化投资之父”詹姆斯·西蒙斯逝世,享年86岁
乐山大佛景区女厕排队难题如何破解?
清华教授武洲:科学设计破解女厕排队难题
深圳莲花山公园女厕排队,潮汐公厕能解困吗?
东方市江边乡娜姆河路:自然与生态的和谐乐章
打造理想助眠卧室:从布局到灯光的全方位指南
五种心理调节法助你告别失眠困扰
吃香蕉助眠,你get了吗?
世界睡眠日:揭秘失眠背后的心理学
【2024最新版】高考语文必背篇目清单!告别考前慌乱,轻松拿下高分!
脚踩指压板,挑战你的平衡极限!
《跑男》明星同款:脚踩指压板真的健康吗?
冬季瘦身新宠:指压板超慢跑
来内蒙古,什么特产值得带?当地人推荐这10种,都是地理标志产品
寻甸牛干巴:700年传承的云南特色美食
探究李白创作《行路难》的深层背景与历史渊源
行路难原文翻译及写作背景简介
猫咪的心门,怎么开?5个让猫咪信任你的必杀技
猫咪叫声的解读(听懂猫咪的语言,与它更好地相处)
亚里士多德的时间观:哲学家眼中的时间之谜
扫码支付比现金更快!揭秘越南年轻人的支付新时尚
指压板超慢跑:科学运动指南
指压板超慢跑:科学健身还是智商税?
指压板超慢跑:科学使用指南与风险提示
指压板超慢跑:科学放松脚丫的正确姿势
揭秘东北易帜:张学良为何选择归顺南京政府?
张学良与西安事变:一场改变中国命运的“兵谏”