单片机c51中断 — 开关状态监测

news/2025/3/23 12:05:19/

项目文件

文件

关于项目的内容知识点可以见专栏单片机原理及应用 的第五章,中断

 


图中 P2.0引脚处接有一个发光二极管 D1,P3.2引脚处接有一个按键。要求分别采用一般方式和中断方式编程实现按键压下一次,D1 的发光状态反转一次的功能。

在这里插入图片描述

查询法

先讲查询法:
就是先把那二个端口定义了,然后按键按下的话,D1的电平反转

判断按键:
while(1)
{
if(P3_2==0) 事件;
}

这里为啥是0?
因为电路图:
在这里插入图片描述
你看原来按键没按下,端口处还是高电压水平,但是按下后接地,低电压水平,所以应该是0判断按下

按下后D1灯端口处电压反转,
P1_0=!P1_0;
这样就亮了
然后再按下按键就会又反转了,大致这样循环着

代码如下:

#include <reg51.h>
sbit p2_0=P2^0;
sbit p3_2=P3^2;main(){p2_0=1; //刚开始为1 灭while(1){if(p3_2==0) {	 p2_0=!p2_0;}}
}  

程序运行时,主函数需要不断查询 P3.2引脚的电平状态。若 p3_2为0则将p2_0值取反显然这一过程要占用大量主函数机时。

中断法

先定义sbit p1_0=P1^0端口
这里就要写中断处理函数了,就是灯端口电平反转

int0_srv () interrupt 0{p2_0 = !p2_0; 
}  

interrupt 0通常指的是中断向量表中的第0个中断(等级高),也就是系统中断。当系统需要处理一些紧急的事件时,会触发中断,让CPU暂停当前的任务,转而去处理中断事件。中断向量表中的每个中断都对应着一个中断处理程序,当中断发生时,CPU会跳转到对应的中断处理程序中去执行。

再来主函数:

main(){IT0=1; //中断初始化 高优先级中断EX0=1; //外部中断0被使能,可以响应外部中断信号(按键传感器之类的)EA=1;  //中断使能位EA  所有中断都被使能while(1); //无限循环
} 

这一程序由主函数和中断函数组成,中断函数int0_srv()完成p2_0电平翻转作用,主函数中的 while(1)语句则模拟任意任务的语句。

代码整体:

#include <reg51.h>
sbit p2_0=P2^0;int0_srv () interrupt 0{p2_0 = !p2_0; 
}  main(){IT0=1; //中断初始化 高优先级中断EX0=1; //外部中断0被使能,可以响应外部中断信号(按键传感器之类的)EA=1;  //中断使能位EA  所有中断都被使能while(1); //无限循环
} 

可见,该程序也可以实现按键压下一次、D1的发光状态翻转一次的功能。该主函数中没有按键检测语句,故不会占用主函数机时。

运行结果

在这里插入图片描述

单片机c51-开关状态检测中断


http://www.ppmy.cn/news/62277.html

相关文章

【机器学习】西瓜书课后习题参考答案—第一章

记录西瓜书课后习题的思考与参考答案。 术语学习 机器学习 machine learning 模型 model 学习算法 learning algorithm 数据集 data set 示例 instance 样本 sample 属性 attribute 特征 feature 属性值 attribute value 属性空间 attribute space 样本空间 sample space 特征…

信创赛道全国二等奖!创邻科技国产化解决方案再获佳绩

4月27日&#xff0c;第六届数字中国建设峰会在福建省福州市开幕。本届峰会以“加快数字中国建设&#xff0c;推进中国式现代化”为主题&#xff0c;以宣传贯彻落实《数字中国建设整体布局规划》为主线&#xff0c;集中展示数字中国建设最新成果&#xff0c;分享发展经验&#x…

thinkphp+vue+html高校固定资产管理系统维修 租借4h80u

本高校资产管理系统采用的数据库是Mysql&#xff0c;使用thinkphp框架开发。在设计过程中&#xff0c;充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。运行环境:phpstudy/wamp/xammp等 开发语言&#xff1a;php 后端框…

十六、Java数据结构与算法 - 图

文章目录 一、图的基本介绍1.1 为什么要有图1.2 图的举例说明1.3 图的常用概念 二、图的表示方式2.1 邻接矩阵2.2 邻接表 三、图的快速入门案例四、图的遍历4.1 深度优先遍历DFS4.1.1 基本思想4.1.2 算法步骤4.1.3 图示 4.2 广度优先遍历BFS4.2.1 基本思想4.2.2 算法步骤4.2.3 …

在docker上安装运行Python文件

目录 一、在docker中安装python 1.1 输入镜像拉取命令 1.2 查看镜像 1.3 运行 1.4 查看是否成功 1.5 查看python版本 二、运行py文件 2.1准备运行所需文件 2.2 准备文件夹 2.3 大概是这幅模样 2.4 打包上传到服务器上 2.5 构建镜像示例 2.6 查看镜像 2.7 优化镜像的…

人物专辑丨技术服务展计讯风采,助力客户显计讯担当

正所谓&#xff1a;平凡铸就伟大。一切令人赞叹的不凡&#xff0c;都来自于平凡点滴的坚守&#xff1b;一切砥砺前行的坚持&#xff0c;都来自于责任的担当。 在计讯物联高质量发展的进程中&#xff0c;不乏敢于担当、踏实勤恳、爱岗敬业的计讯人。他们扎根岗位&#xff0c;坚…

美国访问学者访问J1签证和商务B1签证的区别

美国校方通常希望他国的访问学者申请访问类签证&#xff08;J1&#xff09;&#xff0c;当然也有很少一部分人以商务签证&#xff08;B1&#xff09;的身份入境&#xff0c;知识人网小编就这两种签证的区别做一下简单介绍。 交流访问学者签证&#xff08;J1&#xff09;旨在促进…

4年外包出来,5次面试全挂....

我的情况 大概介绍一下个人情况&#xff0c;男&#xff0c;毕业于普通二本院校非计算机专业&#xff0c;18年跨专业入行测试&#xff0c;第一份工作在湖南某软件公司&#xff0c;做了接近4年的外包测试工程师&#xff0c;今年年初&#xff0c;感觉自己不能够再这样下去了&…