单片机交流
登录
直播中
杨言
12年用户
555经验值
私信
关注
[问答]
51单片机的外部中断是如何使用的?
开启该帖子的消息推送
51单片机
51
单片机
的外部中断是如何使用的?
回帖
(1)
王珍珠
2021-10-27 09:49:30
今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法。
1 51单片机的中断源
51单片机共有5个中断源,分别为:
外部中断0
定时器0中断
外部中断1
定时器1中断
串口中断
每一个中断都对应一个中断向量,中断向量表如下所示:
2 什么是中断事件
当中断发生时单片机将正在执行的程序暂时放下而去处理中断事件,当中断事件处理完毕后再接着去处理之前的事情,这样可以大大降低单片机的资源,提高执行效率。举个例子说明一下什么是中断:
我很喜欢打CS,每天晚上我都会抽时间打CS,但同时厨房里正在烧水,为了不使水烧干,我每隔5分钟就去厨房看一下水有没开,但这就错过了游戏老被别人爆头干掉,我很苦恼,怎么办。于是我在网上买了一个水烧开就会叫的水壶,这样我就不用每隔5分钟去厨房了从而可以专心的打游戏,只有听到水壶吱吱叫的时候,我去把水倒出来就可以了。
在这个例子里,打游戏就是主任务,水烧开就是中断,吱吱叫就是中断向量,听到吱吱响我就明白水烧开了,这时我要把打游戏这个主任务暂时放下,转而去处理水烧开了这个中断事件,水倒完后我就又回到了游戏这个主任务中。这样是不是提高了打游戏的效率呢?
3 中断的硬件实现
51单片机的外部中断0引脚接一只按键,该按键通过上拉电阻接到电源,即没有按键发生时单片机检测到的是高电平,当按键按下时单片机检测到的是低电平。单片机的P0.0引脚以灌电流的方式接了一只LED,当按键按下时LED灯点亮,没按键时LED灯熄灭。
4 中断的软件实现
单片机中断函数的写法比较固定,51单片机中断函数的写法如下:
void Initd() interrupt 0
其中:
void:为中断函数的返回类型,中断函数多为空类型;
Initd():是中断函数的名称,这个函数名符合C语言函数命名规范就可以,随便起;
interrupt:为51单片机中断的关键字,必须这么写(51单片机必须这么写);
0:为中断向量,该值详看第一个表格,如果是外部中断1就写2,如果是定时器1中断就写3;
中断函数不用在主函数中调用,只要中断事件发生,单片机自己主动会调到中断函数中。
该例子的函数如下所示:
5仿真实现
当按键发生时,LED灯点亮,如下图所示。
注意对比两种图中按键的状态。
今天就以51单片机的外部中断0为例,来简单讲解一下单片机中断的用法。
1 51单片机的中断源
51单片机共有5个中断源,分别为:
外部中断0
定时器0中断
外部中断1
定时器1中断
串口中断
每一个中断都对应一个中断向量,中断向量表如下所示:
2 什么是中断事件
当中断发生时单片机将正在执行的程序暂时放下而去处理中断事件,当中断事件处理完毕后再接着去处理之前的事情,这样可以大大降低单片机的资源,提高执行效率。举个例子说明一下什么是中断:
我很喜欢打CS,每天晚上我都会抽时间打CS,但同时厨房里正在烧水,为了不使水烧干,我每隔5分钟就去厨房看一下水有没开,但这就错过了游戏老被别人爆头干掉,我很苦恼,怎么办。于是我在网上买了一个水烧开就会叫的水壶,这样我就不用每隔5分钟去厨房了从而可以专心的打游戏,只有听到水壶吱吱叫的时候,我去把水倒出来就可以了。
在这个例子里,打游戏就是主任务,水烧开就是中断,吱吱叫就是中断向量,听到吱吱响我就明白水烧开了,这时我要把打游戏这个主任务暂时放下,转而去处理水烧开了这个中断事件,水倒完后我就又回到了游戏这个主任务中。这样是不是提高了打游戏的效率呢?
3 中断的硬件实现
51单片机的外部中断0引脚接一只按键,该按键通过上拉电阻接到电源,即没有按键发生时单片机检测到的是高电平,当按键按下时单片机检测到的是低电平。单片机的P0.0引脚以灌电流的方式接了一只LED,当按键按下时LED灯点亮,没按键时LED灯熄灭。
4 中断的软件实现
单片机中断函数的写法比较固定,51单片机中断函数的写法如下:
void Initd() interrupt 0
其中:
void:为中断函数的返回类型,中断函数多为空类型;
Initd():是中断函数的名称,这个函数名符合C语言函数命名规范就可以,随便起;
interrupt:为51单片机中断的关键字,必须这么写(51单片机必须这么写);
0:为中断向量,该值详看第一个表格,如果是外部中断1就写2,如果是定时器1中断就写3;
中断函数不用在主函数中调用,只要中断事件发生,单片机自己主动会调到中断函数中。
该例子的函数如下所示:
5仿真实现
当按键发生时,LED灯点亮,如下图所示。
注意对比两种图中按键的状态。
举报
更多回帖
rotate(-90deg);
回复
相关问答
51单片机
51
单片机
有
外部
中断
外部
中断
能改成上升沿
中断
吗?
2023-11-08
206
51
单片机
外部
中断
的打开方式是什么?
2021-11-05
2290
51
单片机
如何通过
外部
中断
控制蜂鸣器?
2021-10-15
2505
萌新求助,请大佬分享一个基于Proteus仿真
51
单片机
外部
中断
实验程序
2021-10-13
1003
如何利用
51
单片机
外部
中断
点亮LED灯?
2021-10-27
864
单片机
外部
中断
程序如何设置?
2023-11-02
238
MCS—
51
系列
单片机
扩展
中断
有哪些方法?
2021-02-24
1772
51
单片机
外部
中断
0如果选择跳变沿触发方式会不会影响
中断
?
2023-05-10
591
单片机
中断
2017-02-19
2984
51
单片机
中断
系统的原理是什么?
2021-10-28
1544
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分