蓝桥杯单片机备战(九)外部中断与外部中断应用

1.原理实现

什么是中断呢,设想下面一个情形:

你在家里看电视剧,忽然,你的电话铃声响了,为了不耽误你看电视剧,你把电视剧暂停了,接着你去接听了电话,然后你的门又被敲响了,你把电话放下去开门,你开门发现是快递,把快递拿进来后又拿起电话,挂断后又继续看电视,在这个情形中其实就是单片机的中断。

看电视是你的主程序,电话是你的中断源,电话铃声响了代表中断被触发(中断请求),你暂停电视剧就是现场保护,你去接通电话就是中断响应,此时你的门被敲响又是一个中断请求,区别是开门是更紧急的事情,事情的紧急程度就是中断优先级,这里门的中断优先级比电话高,于是你放下电话去开门,拿完东西后你再回到接电话这件事(中断返回),接完电话继续看电视(现场恢复),这里面两个中断可以理解为中断嵌套

看到这里,你应该基本了解什么是中断了吧,那么有几个中断源我们查找技术手册就能得知了(不同单片机中断资源不尽相同。

一般来说,51单片机有5个中断源:外部中断0、1,定时器中断0、1,串口中断

(忽略定时/计数器2),分2个优先级,这个5个中断源按照自然优先级从高到低依次为:

外部中断0:INT0

定时/计数器0:TF0

外部中断1:INT1

定时/计数器1:TF1

串口中断:RI/TI

本节只考虑外部中断

查找技术手册得知:

那么怎么配置外部中断呢?

配置外部中断的步骤:

1.开启中断总开关

也就是图中的EA,当EA被置1时总开关开启。

2.开启外部中断开关

也就是这里的EX0

当EA和EX0都开启是代表外部中断0已经开启

3.配置中断触发条件

也就是IT0,当IT0置1时为下降沿触发,置0为低电平触发

补充:

下降沿触发:当电平从1变为0时触发

低电平触发:当电平为0时触发

4.编写中断回调函数

前面写到接收到中断信号时会有中断响应,中断响应在C51里被封装成一个函数,每一个中断响应都有其对应的函数地址,查找数据手册得:

这里外部中断0的入口地址为0003H,那我们难道要把这些地址都背下来吗?当然不用,我们可以用C编写一个函数在函数后面加上“interrupt 0”,例如:

这时这个ServiceINT0就是中断回调函数了。

其他中断的函数入口规定也可以在手册中找到


2.代码实现

这里我们实现一个小小的功能,使用外部中断1,通过外部中断1控制所有LED的亮灭。

观察电路图我们知道外部中断0是连接到P32口的

而P32又是连接到独立键盘模块的S5

所以硬件上我们需要把跳帽插到独立键盘模块。

下面是代码部分:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值