基于单片机压力传感器MPX4115检测-报警系统proteus仿真+源程序

一、系统方案
1、本设计采用这51单片机作为主控器。
2、MPX4115采集压力值、DS18B20采集温度值送到液晶1602显示。
3、按键设置报警值。
4、蜂鸣器报警。
在这里插入图片描述

二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
/*******************************************************************
液晶初始化
*****************************************************************/
void chushihua()
{
delayxms(20); //给液晶一段时间
en=0;
xiemingling(0x38);//设置16
2显示,5
7点阵,8位数据接口
delayxms(20);
xiemingling(0x38);//
delayxms(20);
xiemingling(0x0c);//设置开显示,不显示光标
delayxms(20);
xiemingling(0x06);//写一个字符后地址指针加1
delayxms(20);
xiemingling(0x01);//显示清零,数据指针清零
delayxms(20);
xiemingling(0x80);//指定字符显示的实际地址,,,显示位置的确定方法规定为"80H+地址码x"
delayxms(20);
}
2、液晶显示程序
//毫秒

void delayxms(uint ms) //延时 x ms
{
uint a,j;
for(a=0;a<ms;a++)
for(j=0;j<110;j++);
}

/*******************************************************************
写命令
/
void xiemingling(unsigned char mingling)
{
en=0;
rs=0;
rw=0;
P0=mingling;
delayxms(5);
en=1;
delayxms(10);
en=0;
}
/

写数据
/
void xieshuju(unsigned char shuju)
{
en=0;
rs=1;
rw=0;
P0=shuju;
delayxms(5);
en=1;
delayxms(10);
en=0;
}
3、按键程序
/
/
// 按键扫描
/
*************************************/
void key()
{

if(key5==0)
{
	delay(10);
	if(key5==0)
	{
		while(!key5);
		c1=c;
		temp1=temp;
    
}
}	
	if(key6==0)
{
	delay(10);
	if(key6==0)
	{
		while(!key6);
    mode=!mode;
		chushihua(); //LCD1602初始化
}
}	


if(key1==0)
{
	delay(10);
	if(key1==0)
	{
		while(!key1);
      h++;
		  if(h>1000) h=1000;
}
}	

if(key2==0)
{
	delay(10);
	if(key2==0)
	{
		while(!key2);
		if(h>=1) h--;
	
}
}	
if(key3==0)
{
	delay(10);
	if(key3==0)
	{
		while(!key3);
      l++;
		  if(l>1000) l=1000;
}
}	

if(key4==0)
{
	delay(10);
	if(key4==0)
	{
		while(!key4);
		if(l>=1) l--;
	
}
}	

}

4、核心算法程序
void main(void)
{

chushihua(); //LCD1602初始化

while(1)
{
key();
getdata=Adc0832(0);
check_wendu();
if(0<getdata<243)
{
int vary=getdata;
press=((10.0/23.0)vary)+9.3;
temp=(int)(press
10);

		dispbuf[3]=temp/1000;			     	//取压力值百位
		dispbuf[2]=(temp%1000)/100;		    	//取压力值十位
		dispbuf[1]=((temp%1000)%100)/10;	    	//取压力值个位
		dispbuf[0]=((temp%1000)%100)%10;			//取压力值十分位
		if(temp/10<l){ led1=0;led2=1;beep=0;}
		 else  if(temp/10>h){led1=1;led2=0;beep=0;}
   else  {led1=1;led2=1;beep=1;}
   }
	if(mode==0)
	{
	xiemingling(0x80+0);
	xieshuju('Q');
	
	xieshuju(':');
	xieshuju(dispbuf[3]+0x30);	
	xieshuju(dispbuf[2]+0x30);	
	xieshuju(dispbuf[1]+0x30);
	xieshuju('.');		
	xieshuju(dispbuf[0]+0x30);	
	xieshuju(' ');

	 
	 xieshuju('T');
	xieshuju(':');
	xieshuju(c/1000+0x30);	
	xieshuju(c%1000/100+0x30);	
	xieshuju(c%1000%100/10+0x30);
	xieshuju('.');		
	xieshuju(c%10+0x30);	

	 
	 
	xiemingling(0x80+0x40); 
		xieshuju('H');
	xieshuju(':');
	xieshuju(h/100+0x30);	
	xieshuju(h%100/10+0x30);	
	xieshuju(h%10+0x30);


 xieshuju(' ');
xieshuju('L');
	xieshuju(':');
	xieshuju(l/100+0x30);	
	xieshuju(l%100/10+0x30);	
	xieshuju(l%10+0x30);	
}
else

	{
		xiemingling(0x80+0);
	xieshuju('R');
	
		
		
			xiemingling(0xC0+0);
	xieshuju('Q');
	
	xieshuju(':');
	xieshuju(temp1/1000+0x30);	
	xieshuju(temp1%1000/100+0x30);	
	xieshuju(temp1%1000%100/10+0x30);
	xieshuju('.');		
	xieshuju(temp1%10+0x30);	
	xieshuju(' ');
		
		xiemingling(0xC0+0);
	xieshuju('Q');
	
	xieshuju(':');
	xieshuju(temp1/1000+0x30);	
	xieshuju(temp1%1000/100+0x30);	
	xieshuju(temp1%1000%100/10+0x30);
	xieshuju('.');		
	xieshuju(temp1%10+0x30);	
	xieshuju(' ');

	 
	 xieshuju('T');
	xieshuju(':');
	xieshuju(c1/1000+0x30);	
	xieshuju(c1%1000/100+0x30);	
	xieshuju(c1%1000%100/10+0x30);
	xieshuju('.');		
	xieshuju(c1%10+0x30);	

	 
	 
	
}

}
}
四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/188356.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【小沐学写作】原型设计工具汇总(Axure RP)

文章目录 1、简介2、Axure RP2.1 工具简介2.2 工具特点2.2.1 互动事件2.2.2 条件逻辑2.2.4 工作表格2.2.5 多状态容器2.2.6 数据驱动接口2.2.7 自适应视图2.2.8 流程图 2.3 工具安装2.3.1 安装2.3.2 运行 2.4 使用费用2.5 工具体验2.5.1 登陆框制作 3、其他3.1 Figma3.2 Adobe …

原生JS实现计算器(内含源码)

前言 本文讲解了JavaScript如何在一小时内实现一个简易计算器&#xff0c;这里最大的亮点就在于&#xff0c;我在JS中只用了一个事件&#xff0c;就实现了计算器的效果和功能&#xff0c;那么好文本正式开始。 布局和样式流程 首先是HTMLCSS结构&#xff1a;这里主要用到的…

c语言-字符函数和字符串函数详解

文章目录 1. 字符分类函数2. 字符转换函数3. strlen的使用和模拟实现4. strcpy的使用和模拟实现5. strncpy函数的使用6. strcat的使用和模拟实现7. strncat函数的使用8. strcmp的使用和模拟实现9. strncmp函数的使用10. strstr的使用和模拟实现11. strtok函数的使用12. strerro…

CTA-GAN:基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 CT到增强CT的合成技术

Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影背景贡献实验方法损失函数Thinking 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 https://github.com/ying-f…

4-20mA高精度采集方案

下载链接&#xff01;https://mp.weixin.qq.com/s?__bizMzU2OTc4ODA4OA&mid2247557466&idx1&snb5a323285c2629a41d2a896764db27eb&chksmfcfaf28dcb8d7b9bb6211030d9bda53db63ab51f765b4165d9fa630e54301f0406efdabff0fb&token976581939&langzh_CN#rd …

kafka精准一次、事务、幂等性

Kafka事务 消息中间件的消息保障的3个级别 At most once 至多一次。数据丢失。At last once 至少一次。数据冗余Exactly one 精准一次。好&#xff01;&#xff01;&#xff01; 如何区分只要盯准提交位移、消费消息这两个动作的时机就可以了。 当&#xff1a;先消费消息、…

计算机中由于找不到vcruntime140.dll无法继续执行代码无法打开软件怎么解决分享

关于如何解决vcruntime140.dll无法继续执行代码的6个教程。在这个科技日新月异的时代&#xff0c;电脑已经是我们日常和工作中必不可少的电子产品&#xff0c;然后我们在使用过程中经常会遇到不一样的问题&#xff0c;比如vcruntime140.dll文件丢失&#xff0c;那么vcruntime14…

selenium的基础语法

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️山水速疾来去易&#xff0c;襄樊镇固永难开 ☁️定位页面的元素 参数:抽象类By里…

实验题【网关设置+VRRP+OSPF】(H3C模拟器)

嘿&#xff0c;这里是目录&#xff01; ⭐ H3C模拟器资源链接1. 实验示意图2. 要求和考核目标3. 当前配置3.1 PC1、PC2、PC3、PC4和PC5配置3.2 SW配置3.2.1 SW2配置3.2.2 SW3配置3.2.3 SW4配置3.2.4 SW1配置 3.2. R配置3.2.1 R1配置3.2.2 R2配置 ⭐ H3C模拟器资源链接 H3C网络…

Cesium-terrain-builder编译入坑详解

本以为编译cesium-terrian-tools编译应该没那么难&#xff0c;不想问题重重&#xff0c;不想后人重蹈覆辙&#xff0c;也记录下点点滴滴。 目前网上存在的cesium代码版本主要有两个分支&#xff1a; 原始网站【不能生成layer文件&#xff0c;且经久不更新&#xff0c;使用gdal…

计算机应用基础_错题集_PPT演示文稿_操作题_计算机多媒体技术操作题_文字处理操作题---网络教育统考工作笔记007

PPT演示文稿操作题 提示:PPT部分操作题 将第2~第4张幻灯片背景效果设为渐变预置的“雨后初晴”效果(2)设置幻灯片放映方式

【小沐学写作】免费在线AI辅助写作汇总

文章目录 1、简介2、文涌Effidit&#xff08;腾讯&#xff09;2.1 工具简介2.2 工具功能2.3 工具体验 3、PPT小助手&#xff08;officeplus&#xff09;3.1 工具简介3.2 使用费用3.3 工具体验 4、DeepL Write&#xff08;仅英文&#xff09;4.1 工具简介4.2 工具体验 5、天工AI…

【负载均衡】这些内容你需要知道下

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…

Golang并发模型:Goroutine 与 Channel 初探

文章目录 goroutinegoexit() channel缓冲closerangeselect goroutine goroutine 是 Go 语言中的一种轻量级线程&#xff08;lightweight thread&#xff09;&#xff0c;由 Go 运行时环境管理。与传统的线程相比&#xff0c;goroutine 的创建和销毁的开销很小&#xff0c;可以…

Python基于jieba+wordcloud实现文本分词、词频统计、条形图绘制及不同主题的词云图绘制

目录 序言&#xff1a;第三方库及所需材料函数模块介绍分词词频统计条形图绘制词云绘制主函数 效果预览全部代码 序言&#xff1a;第三方库及所需材料 编程语言&#xff1a;Python3.9。 编程环境&#xff1a;Anaconda3&#xff0c;Spyder5。 使用到的主要第三方库&#xff1a;…

【Leetcode】【实现循环队列】【数据结构】

代码实现&#xff1a; typedef struct {int front;int back;int k;int* a;} MyCircularQueue;bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->frontobj->back; }bool myCircularQueueIsFull(MyCircularQueue* obj) {return (obj->back1)%(obj->…

位图和布隆过滤器

目录 一. 位图 1.题目&#xff1a; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中&#xff1f; 2.解析题目&#xff1a; 3.位图 4.代码以及测试 5.其他题目 二.布隆过滤器 1.介绍 2.实现 …

Vue服务端渲染——同构渲染

Vue.js 可以用于构建客户端应用程序&#xff0c;组件的代码在浏览器中运行&#xff0c;并输出 DOM 元素。同时&#xff0c;Vue.js 还可以在 Node.js 环境中运行&#xff0c;它可以将同样的组件渲染为字符串并发送给浏览器。这实际上描述了 Vue.js 的两种渲染方式&#xff0c;即…

【云原生】什么是 Kubernetes ?

什么是 Kubernetes &#xff1f; Kubernetes 是一个开源容器编排平台&#xff0c;管理着一系列的 主机 或者 服务器&#xff0c;它们被称作是 节点&#xff08;Node&#xff09;。 每一个节点运行了若干个相互独立的 Pod。 Pod 是 Kubernetes 中可以部署的 最小执行单元&#x…

电脑技巧:U盘运用小技巧,提升U盘运用寿命

目录 1、注意清洁&#xff0c;防止污染 2、别随意插拔 3、文件多时分段写入 4、U盘传输数据中切记拔掉U盘 5、建议不要长期将U盘插在电脑上 6、杜绝别频繁将U盘格式化 7、U盘中毒怎么办 U盘是大家日常办公经常用得到的便携式文件储存工具&#xff0c;因为其小巧便携、方…