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

news/2024/9/24 20:21:13/

基于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++;elsei=0;if(i<pwm)out4=0;elseout4=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.5stime++;else{time=0;Ds18b20ReadTemp();//测温wendu=ds18b20_temp;ph=ADC(1);//PHi=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过高关闭高电平elseph_h=1; // pH正常恢复高电平if(ph<lim2-1)ph_l=0; // pH过低关闭低电平elseph_l=1; // pH正常恢复低电平// 根据水位进行排水阀控制if(water>lim3)out2=0; // 水位过高开启排水阀elseout2=1; // 水位正常关闭排水阀// 根据水位进行排水阀控制if(water<lim3-10)out1=0; // 水位过低开启进水阀elseout1=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


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

相关文章

基于双向长短期神经网络bilstm的径流量预测,基于gru神经网络的径流量预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 BILSTM神经网络 基于双向长短期神经网络bilstm的径流量预测,基于gru神经网络的径流量预测 完整代码:基于双向长短期神经网络bilstm的径流量预测,基于gru神经网络的径流量预测(代码完整,数据齐全)资源-CSDN文库 https://dow…

Spring Cache代理对象 redis篇

SpringCache 代理对象 1、EnableCaching 1、开启缓存注解功能&#xff0c;通常加在启动类上 2、CachePut 1、将方法的返回值放到缓存中 3、Cacheable 1、查看缓存中有没有数据&#xff0c;有就直接返回&#xff0c;没有就调用方法查数据&#xff0c;并将方法返回值放到缓存中 …

五分钟手撕“三大特性”<继承>(下)

目录 一、protected 关键字 二、继承方式 三、final 关键字 四、子类的构造方法 五、this和super &#xff08;一&#xff09;相同点&#xff1a; &#xff08;二&#xff09;不同点&#xff1a; 六、代码块的执行先后 一、protected 关键字 在类与对象中提到过&…

Leetcode 第394场周赛 问题和解法

题目 统计特殊字母的数量 I 给你一个字符串word。如果word中同时存在某个字母的小写形式和大写形式&#xff0c;则称这个字母为特殊字母。 返回word中特殊字母的数量。 示例 1: 输入&#xff1a;word "aaAbcBC"输出&#xff1a;3解释&#xff1a;word 中的特殊…

搭建Zookeeper完全分布式集群(CentOS 9 )

ZooKeeper是一个开源的分布式协调服务&#xff0c;它为分布式应用提供了高效且可靠的分布式协调服务&#xff0c;并且是分布式应用保证数据一致性的解决方案。该项目由雅虎公司创建&#xff0c;是Google Chubby的开源实现。 分布式应用可以基于ZooKeeper实现诸如数据发布/订阅…

LeetCode刷题总结 | 图论3—并查集

并查集理论基础 1.背景 首先要知道并查集可以解决什么问题呢&#xff1f; 并查集常用来解决连通性问题。大白话就是当我们需要判断两个元素是否在同一个集合里的时候&#xff0c;我们就要想到用并查集。 并查集主要有两个功能&#xff1a; 将两个元素添加到一个集合中。判…

C语言—深度剖析数据在内存中的存储

数据类型介绍 前面我们已经学习了基本的内置类型&#xff1a; char //字符数据类型 short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数 //C语言有没有字符串类型&#…

hive了解系列一

“ 随着智能手机的普及&#xff0c;互联网时代红利的爆发&#xff0c;用户数量和产生的数据也越发庞大。为了解决这个问题&#xff0c;提高数据的使用价值。 Hadoop生态系统就被广泛得到应用。 在早期&#xff0c;Hadoop生态系统就是为处理如此大数据集而产生的一个合乎成本效益…