基于51单片机水位监测控制报警仿真设计( proteus仿真+程序+设计报告+讲解视频)

news2024/12/25 17:25:35

这里写目录标题

  • 💥1. 主要功能:
  • 💥2. 讲解视频:
  • 💥3. 仿真
  • 💥4. 程序代码
  • 💥5. 设计报告
  • 💥6. 设计资料内容清单&&下载链接
    • 💥[资料下载链接:](https://docs.qq.com/doc/DS2RGaVBRcHhId3Bk)

51单片机水位监测控制报警仿真设计 ( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0064

💥1. 主要功能:

基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)

基于51单片机水位监测控制报警仿真设计

1、监测并通过数码管显示当前水位;

2、利用电机模拟水泵,具有蜂鸣器,显示灯等装置;

3、带有水位上下限设置功能,低于水位下限加水,高于上限停止加水;

4、当前水位高于水位上限蜂鸣器报警,并抽水,水泵抽水时显示灯亮,抽到水位上限时则停止抽水;

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

💥2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

💥3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后,数码管显示水位,如果水位偏高,偏高指示灯亮红色

img

当前水位高于水位上限蜂鸣器报警,并抽水,水泵抽水时显示灯亮,抽到水位上限时则停止抽水;

img

💥4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img
main.c


#include "reg51.h"
#include <PCF8591.h>
#define uchar unsigned char
#define uint unsigned int
sbit out=P3^3;//抽水机
sbit led1=P3^6;//指示灯
sbit led2=P3^7;
sbit smg1=P2^0;//数码管
sbit smg2=P2^1;	 
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit beep=P1^7;//蜂鸣器
uchar time=0,mode=0;//系统变量	 
uchar water=0;//水位
uchar lim1=40,lim2=60;//阀值
uchar key=0;
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
//延时
部分函数,工程文件压缩包解压后即可获取
void delay(uint i)
{
	while(i--);
}
 //按键检测
uchar key_scan()
{
	uchar i=0;
	if(!k1 &&(key!=1))
	{
		key=1;
		i=1;
	}
	if(!k2 &&(key!=2))
	{
		key=2;
		i=2;
	}
	if(!k3 &&(key!=3))
	{
		key=3;
		i=3;
	}
	if(!k4 &&(key!=4))
	{
		key=4;
		i=4;
	}
	if(!k5 &&(key!=5))
	{
		key=5;
		i=5;
	}
	if(k1 && k2 && k3 && k4 && k5 )
		key=0;
	return i;
}
//主函数
void main()
{
	uchar i=0,k=0;

	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		i=key_scan();//按键检测
		//设置按钮
		if(i==2)
		{
			mode=1;
		}
		if(i==1)
		{
			mode=2;
		}
		if(mode==1)//设置下限
		{
		if(i==4)
		{
			if(lim1<lim2)
				lim1++;
		}
		if(i==5)
		{
			if(lim1>0)
				lim1--;
		}
		}
		if(mode==2)//设置上限
		{
		if(i==4)
		{
			if(lim2<100)
				lim2++;
		}
		if(i==5)
		{
			if(lim2>lim1)
				lim2--;
		}
		}
		if(i==3)//OK
		{
			mode=0;
		}
		//点亮LED
		if(water<lim1)//水位低
		{
			led1=0;led2=1;
		}
		else if(water>lim2)//水位高
		{
			led1=1;led2=0;
		}
		else
		{
			led1=1;led2=1;
		}
		//显示水位
		if(mode==0)
		{
			P0=smgduan[water/100];		smg2=0;delay(100);smg2=1;
			P0=smgduan[water%100/10];	smg3=0;delay(100);smg3=1;
			P0=smgduan[water%10];		smg4=0;delay(100);smg4=1;
		}
		//显示下限
		if(mode==1)
		{
			P0=0x38;		smg1=0;delay(100);smg1=1;
			P0=smgduan[lim1/100];		smg2=0;delay(100);smg2=1;
			P0=smgduan[lim1%100/10];	smg3=0;delay(100);smg3=1;
			P0=smgduan[lim1%10];		smg4=0;delay(100);smg4=1;
		}
		//显示上限
		if(mode==2)
		{
			P0=0x76;		smg1=0;delay(100);smg1=1;
			P0=smgduan[lim2/100];		smg2=0;delay(100);smg2=1;
			P0=smgduan[lim2%100/10];	smg3=0;delay(100);smg3=1;
			P0=smgduan[lim2%10];		smg4=0;delay(100);smg4=1;
		}
	}
}
//定时器中断
void Timer0() interrupt 1
{
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		water=PCF8591_read(0);//测量水位
//		water=water*5.0/255; 
	
		//抽水控制
		if(mode==0)//自动模式
		{
			if(water<lim1)//抽水
			{
				out=0;
				beep=0;
			}
			else
				beep=1;
			if(water>lim2)//停止抽水
				out=1;
		}
	}
	TH0=0X3C;
	TL0=0XB0;
}

💥5. 设计报告

4909字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

💥6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码

3、功能要求

4、开题报告

5、软硬件流程框图

6、讲解视频

7、设计报告

Altium Designer 安装破解

filename.bat

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

💥资料下载链接:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果签名应用掉签频繁原因排查,以及如何避免

作为一个对iOS生态有着深厚理解的实用技术博主&#xff0c;我明白苹果签名应用掉签对我们的开发和使用带来的困扰。签名在苹果设备中扮演着至关重要的角色&#xff0c;它不仅确保了应用来源的合法性&#xff0c;也影响着应用的顺畅运行。 今天&#xff0c;我将和您一同探讨苹果…

贝锐蒲公英云AP,企业WiFi功能如何使用?

1. 功能介绍 基于WPA2-EAP安全认证技术&#xff0c;为企业提供了一套易用安全的企业无线网络,实现企业员工通过蒲公英客户端一键连接企业无线WiFi。自动分配一人一帐一密&#xff0c;无需配置证书或手动输入密码&#xff0c;减少沟通成本&#xff0c;方便快捷&#xff0c;提高…

02.接口隔离原则(Interface Segregation Principle)

一言 客户端不应该依赖它不需要的接口&#xff0c;即一个类对另一个类的依赖应该建立在最小的接口上。 为什么要有接口隔离原则 反例设计 反例代码 public class Segregation1 { }interface Interface1 {void operation1();void operation2();void operation3();void opera…

SpringBoot-AOP-基础到进阶

SpringBoot-AOP AOP基础 学习完spring的事务管理之后&#xff0c;接下来我们进入到AOP的学习。 AOP也是spring框架的第二大核心&#xff0c;我们先来学习AOP的基础。 在AOP基础这个阶段&#xff0c;我们首先介绍一下什么是AOP&#xff0c;再通过一个快速入门程序&#xff0c…

算法之冒泡排序

算法之冒泡排序 冒泡排序Bubble Sort 交换排序相邻元素两两比较大小&#xff0c;有必要则交换。元素越小或越大&#xff0c;就会在数列中慢慢的交换并“浮”向顶端&#xff0c;如同水泡咕嘟咕嘟往上冒。 核心算法 排序算法&#xff0c;一般都实现为就地排序&#xff0c;输出…

YARN,ZOOKEERPER--学习笔记

1&#xff0c;YARN组件 1.1YARN简介 YARN表示分布式资源调度&#xff0c;简单地说&#xff0c;就是&#xff1a;以分布式技术完成资源的合理分配&#xff0c;让MapReduce能高效完成计算任务。 YARN是Hadoop核心组件之一&#xff0c;用于提供分布式资源调度服务。 而在Hadoop …

LeetCode【13】罗马数字转整数

题目&#xff1a; 思路&#xff1a; 第十二题的逆运算&#xff0c;方法同理。需要注意的是IV、IX、XL、XC、CD、CM这六种特殊的情况。正常情况下每个字符找到对应的数值累加&#xff0c;这六种特殊字符都是左边的数值比右边的数值小。 这里以IV举例&#xff0c;IV对应数字是1和…

新材料工厂生产管理mes系统

万界星空科技新材料云MES系统从需求分析、产品选型、系统集成、可扩展性和灵活性以及安全性和稳定性等多个角度进行考虑。 如果您的企业也属于新材料生产制造行业&#xff0c;同时也计划通过MES系统来进行整个生产过程的数字化管控。 欢迎搜索万界星空科技线上咨询或者直接拨…

【深度学习实验】注意力机制(二):掩码Softmax 操作

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 理论介绍a. 认知神经学中的注意力b. 注意力机制&#xff1a; 1. 注意力权重矩阵可视化&#xff08;矩阵热图&#xff09;2. 掩码Softmax 操作a. 导入必要的库b. masked_softmaxc. 实验结果 ​ …

单线程的JS中Vue导致的“线程安全”问题

目录 现象分析原因 浏览器中Js是单线程的&#xff0c;当然不可能出现线程安全问题。只是遇到的问题的现象与多线程的情况十分相似&#xff0c;导致对不了解Vue实现的我怀疑起了人生… 现象 项目中用到了element-plus中的加载组件&#xff0c;简单封装了一下&#xff0c;用来保…

一、MySQL-Replication(主从复制)

1.1、MySQL Replication 主从复制&#xff08;也称 AB 复制&#xff09;允许将来自一个MySQL数据库服务器&#xff08;主服务器&#xff09;的数据复制到一个或多个MySQL数据库服务器&#xff08;从服务器&#xff09;。 根据配置&#xff0c;您可以复制数据库中的所有数据库&a…

男子遗失30万天价VERTU唐卡手机,警察2小时“光速”寻回

今天&#xff0c;一则“男子丢失30万元手机女子捡到一位老年机”的新闻迅速冲上热搜第一&#xff0c;引发全网热议。据宿城公安消息&#xff1a;近日&#xff0c;江苏省宿迁市市民王先生在购物时不慎失落了一部价值30万元的全球知名奢侈品VERTU手机&#xff0c;被民警2个多小时…

Linux驱动开发——块设备驱动

目录 一、 学习目标 二、 磁盘结构 三、块设备内核组件 四、块设备驱动核心数据结构和函数 五、块设备驱动实例 六、 习题 一、 学习目标 块设备驱动是 Linux 的第二大类驱动&#xff0c;和前面的字符设备驱动有较大的差异。要想充分理解块设备驱动&#xff0c;需要对系统…

两栏布局:左侧固定,右侧自适应

左侧宽度固定&#xff0c;右侧宽度自适应剩余空间 方法一&#xff1a;float margin 方法二&#xff1a;flex布局 相关HTML代码 <div class"container"><div class"left"></div><div class"main"></div> </d…

C++--哈希表--散列--冲突--哈希闭散列模拟实现

文章目录 哈希概念一、哈希表闭散列的模拟实现二、开散列(哈希桶)的模拟实现数据类型定义析构函数插入查找删除 哈希概念 unordered系列的关联式容器之所以效率比较高&#xff0c;是因为其底层使用了哈希结构。 顺序结构以及平衡树中&#xff0c;元素关键码与其存储位置之间没…

【Linux进阶之路】动静态库

文章目录 回顾一. 静态库1.代码传递的方式2.简易制作3.原理 二. 动态库1.简易制作2.基本原理 尾序 回顾 前面在gcc与g的使用中&#xff0c;我们简单的介绍了动态库与静态库的各自的优点与区别&#xff1a; 动态链接库&#xff0c;也就是所有的程序公用一份代码,虽然方便省空间&…

ACWSpring1.3

首先,前端写ajax写上我们的访问路径(就在我们前端的源代码里面),我们建了两个包pkController用于前端页面url映射过来一层一层找到我们的RestController返回bot1里面有键值,返回的这就是一个session对象bot1这个map.前端拿到我们bot1里的两个值给到我们前端显示出来 1准备页面:…

《Fine-Grained Image Analysis with Deep Learning: A Survey》阅读笔记

论文标题 《Fine-Grained Image Analysis with Deep Learning: A Survey》 作者 魏秀参&#xff0c;南京理工大学 初读 摘要 与上篇综述相同&#xff1a; 细粒度图像分析&#xff08;FGIA&#xff09;的任务是分析从属类别的视觉对象。 细粒度性质引起的类间小变化和类内…

2023年【广东省安全员C证第四批(专职安全生产管理人员)】考试题库及广东省安全员C证第四批(专职安全生产管理人员)考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;考试题库根据新广东省安全员C证第四批&#xff08;专职安全生产管理人员&#xff09;考试大纲要求&#xff0c;安全生产模拟考试一点通将广东省安…

网络协议入门 笔记一

一、服务器和客户端及java的概念 JVM (Java Virtual Machine) : Java虚拟机&#xff0c;Java的跨平台:一次编译&#xff0c;到处运行&#xff0c;编译生成跟平台无关的字节码文件 (class文件)&#xff0c;由对应平台的JVM解析字节码为机器指令 (010101)。 如下图所示&#xff0…