基于51单片机智能鱼缸仿真LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机智能鱼缸仿真LCD显示

  • 1. 主要功能:
  • 2. 讲解视频:
  • 3. 仿真
  • 4. 程序代码
  • 5. 设计报告
  • 6. 设计资料内容清单&&下载链接
    • 资料下载链接:

基于51单片机智能鱼缸仿真LCD显示( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0080

1. 主要功能:

基于51单片机的智能鱼缸检测控制系统proteus仿真

1.系统通过DS18B20检测鱼缸温度,通过DAC0832采集PH传感器和水位传感器数据;

2.温度低于阈值系统启动加热功能;默认正常范围是大于25摄氏度;

3.水位过低系统自动启动加水阀,水位过高系统自动启动排水阀;默认正常范围90-100cm;

4.PH值过高或者过低,系统亮报警灯;默认正常范围6-8;

5.可以通过按键调整鱼缸温度,PH酸碱度和水位阈值;

6.通过LCD1602显示温度,PH酸碱度和水位测量值和相关的阈值;

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

img

资料下载链接:

【腾讯文档】S0080 网盘链接

https://docs.qq.com/doc/DS0J3RGp0aWFTakhG

以下为本设计资料展示图:

2. 讲解视频:

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

基于51单片机的智能鱼缸LCD1602显示proteus仿真+程序+设计报告

3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。显示温度,PH酸碱度和水位测量值和相关的阈值;

img

通过调整PH值滑动变阻器模拟传感器数值动态变化,当PH大于默认阈值,警告灯亮。

img

水位低于阈值,进水阀开始工作,指示灯点亮。水位大于阈值,出水阀开始工作,指示灯点亮。默认水位正常范围90-100cm;

imgimg

调整温度低于阈值,加热器启动开始工作。

img

4. 程序代码

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

// 引入51单片机头文件
完整代码见文章后面下载链接压缩包
#include "reg51.h"
// 引入LCD1602液晶显示模块驱动头文件
#include "lcd1602.h" 
// 引入DS18B20温度传感器驱动头文件
#include "Ds18b20.h"
// 引入ADC0832模数转换器驱动头文件
#include "ADC0832.h"
// 引入PID和PWM控制相关头文件
#include"pid_pwm.h"
// 定义uchar类型(无符号字符型)
#define uchar unsigned char
// 定义uint类型(无符号整型)
#define uint unsigned int
// 定义按钮引脚
sbit k1=P3^2; // 按钮k1
sbit k2=P3^3; // 按钮k2
sbit k3=P3^4; // 按钮k3
sbit k4=P3^5; // 按钮k4
sbit k5=P3^6; // 按钮k5
sbit k6=P3^7; // 按钮k6
// 定义输出控制引脚
sbit out1=P2^4; // 输出控制out1
sbit out2=P2^5; // 输出控制out2
sbit out3=P2^6; // 输出控制out3
sbit out4=P2^7; // 输出控制out4
// 定义PH值高低电平检测引脚
sbit ph_h=P3^0;
sbit ph_l=P3^1;
// 定义系统变量
uchar time=0, mode=0; // 计时变量time,模式变量mode
uchar wendu=0, ph=0, water=0; // 温度变量wendu,pH值变量ph,水位变量water
uchar lim1=25, lim2=7, lim3=100; // 温度阈值lim1,pH阈值lim2,水位阈值lim3
uchar disp1[]="T:000 P:00 H:000"; // 显示缓冲区1
uchar disp2[]="  000   00   000"; // 显示缓冲区2
uchar pwm=0; // PWM占空比变量
//主函数
void main()
{
	uchar i=0;
	init_1602(); // 初始化LCD1602液晶显示器
	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
	while(1)
	{
		//PWM输出
		if(i<99)
		 	i++;
		else
			i=0;
		if(i<pwm)
			out4=0;
		else
			out4=1;
		//按键检测
		if(!k1)		  // 温度阈值递增
		{
			if(lim1<120)
				lim1++;
			while(!k1);	 // 等待按键释放
		}
		if(!k2)
		{
			if(lim1>0)
				lim1--;
			while(!k2);	 // 温度阈值递减
		}
		if(!k3)
		{
			if(lim2<14)
				lim2++;	  // PH阈值递增
			while(!k3);
		}
		if(!k4)
		{
			if(lim2>0)
				lim2--;	   // PH阈值递减
			while(!k4);
		}
		if(!k5)
		{
			if(lim3<127)
				lim3++;		  // 水位阈值递增
			while(!k5);
		}
		if(!k6)
		{
			if(lim3>0)
				lim3--;	   // 水位阈值递减
			while(!k6);
		}
	}
}
//定时器中断
void Timer0() interrupt 1
{
	uint i=0;
	if(time<10)//0.5s
		time++;
	else
	{
		time=0;
		Ds18b20ReadTemp();//测温
		wendu=ds18b20_temp;
		ph=ADC(1);//PH
		i=ph;
		ph=i*14/127; // 将模拟值转换为pH范围
		water=ADC(2);//水位
 		// 更新显示缓冲区内容
        // ...更新温度、pH值、水位显示字符串...
		disp1[2]=wendu/100+0x30;
		disp1[3]=wendu%100/10+0x30;
		disp1[4]=wendu%10+0x30;
		disp1[8]=ph/10+0x30;
		disp1[9]=ph%10+0x30;
		disp1[13]=water/100+0x30;
		disp1[14]=water%100/10+0x30;
		disp1[15]=water%10+0x30;
		write_string(1,0,disp1);
		disp2[2]=lim1/100+0x30;
		disp2[3]=lim1%100/10+0x30;
		disp2[4]=lim1%10+0x30;
		disp2[8]=lim2/10+0x30;
		disp2[9]=lim2%10+0x30;
		disp2[13]=lim3/100+0x30;
		disp2[14]=lim3%100/10+0x30;
		disp2[15]=lim3%10+0x30;
		write_string(2,0,disp2);
		// 根据设定阈值计算PWM占空比
		pwm=PID(lim1,wendu);
        // 根据pH值进行高低电平控制
        if(ph>lim2+1)
            ph_h=0; // pH过高关闭高电平
        else
            ph_h=1; // pH正常恢复高电平
        if(ph<lim2-1)
            ph_l=0; // pH过低关闭低电平
        else
            ph_l=1; // pH正常恢复低电平
        
        // 根据水位进行排水阀控制
        if(water>lim3)
            out2=0; // 水位过高开启排水阀
        else
            out2=1; // 水位正常关闭排水阀
  					// 根据水位进行排水阀控制
        if(water<lim3-10)
            out1=0; // 水位过低开启进水阀
        else
            out1=1;  // 水位正常关闭进水阀
	}
	 // 重置定时器初值
	TH0=0X3C;
	TL0=0XB0;
}

5. 设计报告

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

img

设计中的智能鱼缸检测控制系统具备了根据预设阈值自动调节相关设备的能力。例如,当检测到鱼缸内水温低于设定的适宜温度时,系统会立即启动加热装置,确保水温恒定在最适宜鱼类生活的范围内;同时,针对水位过低或过高情况,系统也能自动开启加水阀或排水阀,维持水位在安全合理区间;另外,针对至关重要的水质指标——PH值,系统亦能及时捕捉其波动,并在PH值过高或过低时触发报警提示,甚至联动酸碱度调节设备进行调整。

为了验证并优化设计的智能鱼缸检测控制系统,我们还将借助功能强大的Proteus仿真平台进行详细的系统建模与调试。Proteus的强大仿真能力使得我们在实际硬件搭建前就能完成系统功能的设计与验证,大大缩短开发周期,降低研发成本,从而高效地将设计方案转化为实用性强、可靠性高的智能鱼缸检测控制系统,最终为用户提供一个高度自动化、精准调控、操作便捷的最优养殖环境解决方案。

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

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

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

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、讲解视频

Altium Designer 安装破解

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

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

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

img

资料下载链接:

https://docs.qq.com/doc/DS0J3RGp0aWFTakhG

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

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

相关文章

基于springboot+vue+Mysql的汽车租赁系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

04-15 周一 GitHub仓库CI服务器actions-runner和workflow yaml配置文档解析

04-15 周一 GitHub仓库CI服务器配置过程文档 时间版本修改人描述2024年4月15日10:35:52V0.1宋全恒新建文档2024年4月17日10:33:20v1.0宋全恒完成github actions CI的配置和工作流配置文件解读文档的撰写 简介 一些基础概念 前提知识 仓库介绍 地址镜像介绍https://github.…

选择生产制造项目管理系统?全面解析功能与实际应用!

生产效率和项目规划是制造企业亟需解决的难题&#xff0c;想要从容的应对这些挑战&#xff0c;离不开好用的生产制造项目管理系统。下面我们全面解析什么才能称得上是好用的生产制造项目管理系统。 一、好用的生产制造项目管理系统 什么样的项目管理系统才能算是好用呢&#x…

【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用(图文并茂超详细介绍)

往期回顾 【QT入门】Qt自定义控件与样式设计之自定义QLineEdit实现搜索编辑框-CSDN博客 【QT入门】Qt自定义控件与样式设计之自定义QTabWidget实现tab在左&#xff0c;文本水平的效果-CSDN博客【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍-CSDN博客 【QT进阶】Qt Web混合编…

微服务相关

1. 微服务主要七个模块 中央管理平台&#xff1a;生产者、消费者注册&#xff0c;服务发现&#xff0c;服务治理&#xff0c;调用关系生产者消费者权限管理流量管理自定义传输协议序列化反序列化 2. 中央管理平台 生产者A在中央管理平台注册后&#xff0c;中央管理平台会给他…

2024运营级租房源码管理PHP后台+uniapp前端(app+小程序+H5)

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 一、详细介绍 房产系统 一款基于ThinkPHPUniapp开发的房产管理系统&#xff0c;支持小程序、H5、APP&#xff1b;包含房客、房东、经纪人三种身份。核心功能有&#xff1a;新盘销售、房屋租赁、地图找房、房源代理、…

基于SSM+Jsp+Mysql的准速达物流管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

保护视力,从 CareUEyes 开始 —— 你的电脑护眼小助手

在数字化时代&#xff0c;我们的眼睛比以往任何时候都更频繁地面对屏幕。长时间盯着电脑工作&#xff0c;不仅影响视力&#xff0c;还可能导致眼疲劳和不适。今天&#xff0c;我要向大家推荐一款专为电脑用户设计的护眼软件——CareUEyes。 CareUEyes&#xff1a;你的视力守护者…

数据大爆炸:WordCount程序的多元化执行方式

文章目录 主要内容1.左方工作区右键New,选择Map文件2.再创建mymap,myreducer,mywordcount类&#xff1a;3.打包在linux中运行&#xff0c;注意处理的文件式完全分布式文件3.1打jar包步骤&#xff1a; 4.完成内容 主要内容 尝试使用不同的方式运行wordcount程序。 1&#xff09…

【洛谷 P3366】【模板】最小生成树 题解(无向图+边集数组+Kruskal算法+最小生成树+并查集+路径压缩)

【模板】最小生成树 题目描述 如题&#xff0c;给出一个无向图&#xff0c;求出最小生成树&#xff0c;如果该图不连通&#xff0c;则输出 orz。 输入格式 第一行包含两个整数 N , M N,M N,M&#xff0c;表示该图共有 N N N 个结点和 M M M 条无向边。 接下来 M M M 行…

「Qt Widget中文示例指南」如何实现行编辑功能

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 Line Edits&#xf…

PHP 使用 PHPMailer 发送电子邮件

1. PHPMailer 介绍 phpMailer 是一个非常强大的 php 发送邮件扩展包&#xff0c;可以设定发送邮件地址、回复地址、邮件主题、html邮件内容和上传附件等&#xff0c;使用起来非常方便。它目前有着有近 4 千万的下载量&#xff0c;是 PHP 开发者实现邮件发送功能的首选扩展包 它…

Oracle11.2.0.1,(CVE-2012-1675)漏洞解决方案

1.进入容器停止监听 docker exec -it -u 0 oracle11g bash su - oracle lsnrctl stop listener2.找到监听配置文件位置&#xff0c;修改监听文件 echo $ORACLE_HOMEvi network/admin/listener.ora #在文件底部添加 SECURE_REGISTER_LISTENER (IPC) #启动监听 lsnrctl start …

vue3:tree结构的全选和取消

实现的功能&#xff0c;上面有个选择框&#xff0c;当选中全部时&#xff0c;下方树被全选 代码&#xff1a; <template><div><el-select v-model"selectAll" style"margin-bottom: 10px;" change"handleSelectAllChange">&…

HarmonyOS开发实例:【分布式数据服务】

介绍 分布式数据服务(Distributed Data Service&#xff0c;DDS)为应用程序提供不同设备间数据分布式的能力。通过调用分布式数据接口&#xff0c;应用程序将数据保存到分布式数据库中。通过结合帐号、应用和分布式数据服务对属于不同的应用的数据进行隔离&#xff0c;保证不同…

用海豚调度器定时调度从Kafka到HDFS的kettle任务脚本

在实际项目中&#xff0c;从Kafka到HDFS的数据是每天自动生成一个文件&#xff0c;按日期区分。而且Kafka在不断生产数据&#xff0c;因此看看kettle是不是需要时刻运行&#xff1f;能不能按照每日自动生成数据文件&#xff1f; 为了测试实际项目中的海豚定时调度从Kafka到HDF…

四川易点慧电子商务抖音小店打造便捷生活新体验

随着互联网的迅猛发展&#xff0c;电子商务已经深入到人们生活的方方面面。在这个大背景下&#xff0c;四川易点慧电子商务抖音小店应运而生&#xff0c;凭借其独特的魅力和创新模式&#xff0c;迅速在电商领域崭露头角&#xff0c;成为了众多消费者追逐的焦点。 抖音小店作为新…

HTML5+CSS3小实例:菜单按钮的三种切换动画

实例:菜单按钮的三种切换动画 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initia…

Verilog仿真跨模块调用内部信号的方法

在Verilog仿真时如果需要调用某子模块中的信号在本模块中使用可以使用层次化引用的方法&#xff0c;而不需要在rtl部分用端口引出来。 引用方式&#xff1a;当前例化模块名.子例化模块名.子子例化模块名.参数 将需要的信号引出。 注意是用例化模块名而不是用子模块名&#xff…

Element——组件

element官网 https://element.eleme.cn/#/zh-CN/component/layout vscode格式化快捷键&#xff1a;shiftaltf table表格 <template><el-table:data"tableData"style"width: 100%"><el-table-columnprop"date"label"日期…