单片机中断 – 技术总结

单片机中断 – 技术总结中断 即 CPU 在正常执行程序的过程中 遇到外部 内部的紧急事件需要处理 暂时中断 中止 当前程序的执行 而转去为事件服务 待服务完毕 再返回到暂停处 断点 继续执行原来的程序

大家好,欢迎来到IT知识分享网。

博主福利:100G+电子设计资料合集https://dwz.date/fyQa

一、简述

    中断,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中断(中止)当前程序的执行,而转去为事件服务,待服务完毕,再返回到暂停处(断点)继续执行原来的程序。

单片机中断 - 技术总结

二、中断请求标志控制寄存器TCON

单片机中断 - 技术总结

三、中断请求标志控制寄存器SCON

单片机中断 - 技术总结

四、中断允许寄存器IE

单片机中断 - 技术总结

五、中断函数

    关键字using 后的m 是所选择的寄存器组,取值范围是0~3。

using m这部分通常可以省略,由编译器自动选择一个寄存组。

举例:

六、完整例子

1、效果:当按键按下时,蜂鸣器就会响,不松开就一直响,松开关闭。

    (主程序死循环,通过CPU中断可以暂时中断,先执行其他任务,然后再回来继续执行被中断的任务。例子中开启外部中断0,中断方式为下降沿触发,比如控制端口原来是高电平的,按下按钮使控制端口变为低电平,高电平到低电平有个下降过程,下降沿触发中断0,调用中断服务处理函数,蜂鸣器响。中断服务处理函数有个循环检测直到按钮释放才关闭蜂鸣器,退出中断服务处理函数,控制端口恢复为高电平。)

2、Keil文件结构

单片机中断 - 技术总结

3、仿真电路

单片机中断 - 技术总结

4、alarm.c文件

#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit P3_2=P3^2;//将P3^2定义为中断0控制口 sbit beep=P3^3;//将P3^3定义为蜂鸣器控制口 void main() {     EA=1;//开许总中断       EX0=1;//开外部中断0      IT0=0;//中断触发方式为低电平触发     while(1)  //主程序一直在死循环,外部中断可以暂时执行中断处理函数     {} } // //函数名:int0rupt() interrupt 0 //功能:外部中断0中断响应程序  //调用函数: //输入参数: //输出参数: //说明:当P3^2口为低电平时进入响应程序  // void int0rupt() interrupt 0//当P3^2键口为低电平时 {     beep=0;//开蜂鸣器     while(P3_2!=1);//当P3^2口置高检测,就是按钮不释放蜂鸣器就一直响     beep=1;//关蜂鸣器 } 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/140761.html

(0)
上一篇 2025-05-24 17:10
下一篇 2025-05-24 17:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信