【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计(原理图工程+源码工程+仿真工程+答辩论文+答辩PPT)

news2025/2/27 23:26:09

typora-root-url: ./

【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计(原理图工程+源码工程+仿真工程+答辩论文+答辩PPT)

文章目录

    • typora-root-url: ./
  • 【毕业设计】31-基于单片机的农业蔬菜大棚温度自动控制系统设计(原理图工程+源码工程+仿真工程+答辩论文+答辩PPT)
    • 任务书
    • 设计说明书
      • 摘要
      • 设计框架架构
      • 设计说明书及设计文件
      • 源码展示

任务书

基于单片机作为控制器,利用温度传感器等采集大棚温度,并结合其它元器件,设计一个农业大棚温度自动控制系统,实现对棚内温度的设定、采集、检测、控制、报警、调节等功能。

1、提出农业大棚温度自动控制系统的总体设计方案;

2、对系统的进行硬件、软件设计;

3、应用Proteus软件对系统进行仿真验证。

资料链接
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
答辩论文低重复率文档,24276字
英文文献及翻译
答辩PPT
visio流程图工程

设计说明书

摘要

系统设计上,首先对系统分析确定系统需要实现的功能,确定系统框架选择适合本次系统的元器件。根据各方面的分析和对比,本设计选择STC89C51单片机作为控制器,温度传感器为DS18B20,当温度超出设置上下限阀值,则系统报警并启动继电器进行温度控制。系统的人机交互使用独立按键实现对温度的调节,使用LCD1602液晶显示器显示系统的各项信息。软件设计采用Keil平台,C语言进行编程,最后使用Proteus软件对系统模拟仿真。仿真结果表明,本次系统能够实现对温度的检测,并且可以通过按键来调节温度阀值,保证当温度超过设定范围后报警,并开启继电器控制升降温设备,满足设计需求。

设计框架架构

前 言… 1

第一章 农业大棚温度控制系统的概述… 3

第一节 系统的研究背景及现状… 3

一、研究背景… 3

二、研究现状… 3

第二节 系统的研究意义… 4

第三节 本文主要研究的内容… 4

第四节 本章小结… 5

第二章 农业大棚温度控制系统设计方案… 6

第一节 系统功能及系统指标分析… 6

一、系统功能分析… 6

二、系统的设计指标要求… 6

第二节 系统设计方案的确定… 7

一、主控芯片选择… 7

二、温度传感器选择… 8

三、显示器选择… 9

四、电机选择… 9

第三节 系统结构总框图… 10

第四节 本章小结… 10

第三章 系统的硬件电路设计… 11

第一节 单片机最小系统电路设计… 11

一、单片机介绍… 11

二、单片机最小系统设计… 12

第二节 电源电路设计… 13

第三节 按键电路设计… 13

第四节 继电器电路设计… 15

第五节 LCD液晶显示电路设计… 16

第六节 DS18B20电路设计… 17

第七节 报警电路设计… 18

第八节 系统总电路图… 19

第九节 本章小结… 19

第四章 农业大棚温度自动控制系统软件设计… 20

第一节 Keil软件介绍… 20

第二节 系统的主程序设计… 20

第三节 按键子程序设计… 21

第四节 继电器控制程序设计… 22

第五节 DS18B20程序设计… 24

第六节 LCD显示程序设计… 24

第七节 本章小结… 25

第五章 农业大棚温度自动控制系统的仿真 26

第一节 仿真软件介绍… 26

第二节 仿真系统电路搭建与调试… 26

一、用Proteus搭建仿真总图… 26

二、用Keil对程序进行调试、编译… 28

第三节 系统功能测试… 29

一、系统功能测试… 29

二、系统的指标参数… 33

第四节 本章小结… 34

结 论… 35

致 谢… 36

参考文献… 37

附 录… 38

一、英文原文… 38

二、英文翻译… 42

三、程序源码… 46

设计说明书及设计文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码展示

//程序头函数
#include <reg52.h>
//显示函数
#include <display.h>
//宏定义
#define uint unsigned int 
#define uchar unsigned char 
//管脚声明
sbit jdq= P2^4;	//继电器
sbit Feng = P1^1; //蜂鸣器
//按键
sbit Key1=P1^3;	 //设置
sbit Key2=P1^4;	 //加
sbit Key3=P1^5;	 //减
sbit Key4=P1^6;	 //确定
sbit pwm = P1^2; 
uchar f_pwm_l ;	
sbit DQ=P1^0;     			//定义DS18B20总线I/O
signed char w,bj,bjx,bjd;     				//温度值全局变量
uint c;				//温度值全局变量
bit bdata flag=0,flag_BJ,flag_off=1;
//时间计算
#define Imax 14000    //此处为晶振为11.0592时的取值, 
#define Imin 8000    //如用其它频率的晶振时,
#define Inum1 1450    //要改变相应的取值。
#define Inum2 700 
#define Inum3 3000 
//解码变量
unsigned char Im[4]={0x00,0x00,0x00,0x00};
//全局变量
uchar f;
unsigned long m,Tc;
unsigned char IrOK;
//设置变量
uchar xx=20;
//下限
uchar sx=30;
//上限
int ds=0;
uchar Mode=0;
void delay(uint z)
{
	uint i,j;
	for(i=0;i<z;i++)
	for(j=0;j<121;j++);
}
/*****延时子程序*****/
void Delay_DS18B20(int num)
{
  while(num--) ;
}
/*****初始化DS18B20*****/
void Init_DS18B20(void)
{
  unsigned char x=0;
  DQ = 1;         //DQ复位
  Delay_DS18B20(8);    //稍做延时
  DQ = 0;         //单片机将DQ拉低
  Delay_DS18B20(80);   //精确延时,大于480us
  DQ = 1;         //拉高总线
  Delay_DS18B20(14);
  x = DQ;           //稍做延时后,如果x=0则初始化成功,x=1则初始化失败
  Delay_DS18B20(20);
}
/*****读一个字节*****/
unsigned char ReadOneChar(void)
{
  unsigned char i=0;
  unsigned char dat = 0;
  for (i=8;i>0;i--)
  {
    DQ = 0;     // 给脉冲信号
    dat>>=1;
    DQ = 1;     // 给脉冲信号
    if(DQ)
    dat|=0x80;
    Delay_DS18B20(4);
  }
  return(dat);
}
/*****写一个字节*****/
void WriteOneChar(unsigned char dat)
{
  unsigned char i=0;
  for (i=8; i>0; i--)
  {
    DQ = 0;
    DQ = dat&0x01;
    Delay_DS18B20(5);
    DQ = 1;
    dat>>=1;
  }
}
/*****读取温度*****/
unsigned int Read Temperature(void)
{
  unsigned char a=0;
  unsigned char b=0;
  unsigned int t=0;
  float tt=0;
  Init_DS18B20();
  Write One Char(0xCC);  //跳过读序号列号的操作
  Write One Char(0x44);  //启动温度转换
  Init_DS18B20();
  Write One Char(0xCC);  //跳过读序号列号的操作
  Write One Char(0xBE);  //读取温度寄存器
  a=Read One Char();     //读低8位
  b=Read One Char();    //读高8位
  t=b;
  t<<=8;
  t=t|a;
  tt=t*0.0625;
  t= tt*10+0.5;     //放大10倍输出并四舍五入
  return(t);
}
/*****读取温度*****/
void check_wendu(void)
{
	c=Read Temperature()-5;  			//获取温度值并减去DS18B20的温漂误差
	w=c/10;      						//计算得到整数位
	if(w<0){w=0;}   				//设置温度显示上限
	if(w>99){w=99;}   				//设置温度显示上限    
}
void Key()
{
	//模式选择
	if(Key1==0)
	{
		while(Key1==0);
		Feng=0;
		Mode++;
		Display_wd();
		if(Mode==4)
		{
			Mode=1;
			Feng=1;
		}
   		write_com(0x38);//屏幕初始化
   		write_com(0x0d);//打开显示 无光标 光标闪烁
   		write_com(0x06);//当读或写一个字符是指针后一一位
		switch(Mode)
		{
			case 1:
			{
				write_com(0x80+15);//位置
				Feng=1;
				break;
			}
			case 2:
			{
				write_com(0x80+0x40+5);//位置
				Feng=1;
				break;
			}
			case 3:
			{
				write_com(0x80+0x40+14);//位置
				Feng=1;
				break;
			}
		}
	}


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

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

相关文章

NetCore OpenIdConnect验证为什么要设置Authority?

在使用Identity Server作Identity Provider的时候&#xff0c;我们在NetCore的ConfigureServices((IServiceCollection services))方法中,常需要指定options的Authority&#xff0c;如下代码所示&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 …

基于PHP+MYSQL酒店管理系统的设计与开发

随着人们生活条件的提高,旅游和出差已经成了家常便饭,但是因为他向异地所以第一个要解决的问题就是吃住问题,吃先对是比较好解决的一个问题,随便一个超市或者饭店甚至地摊就能解决这一问题,但是总不能露宿街头吧,所以很多人在到达目的地的第一时间就是去寻找一个能够入住的酒店…

一文彻底搞懂Mysql索引优化

专属小彩蛋&#xff1a;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff08;前言 - 床长人工智能教程&#xff09; 目录 一、索引介绍 二、性能分析 三、查询优化 一、索引介绍…

Python使用矩阵分解法推荐系统找到类似的音乐

这篇文章是如何使用几种不同的矩阵分解算法计算相关艺术家。最近我们被客户要求撰写关于的矩阵分解法推荐系统研究报告&#xff0c;包括一些图形和统计输出。代码用Python编写&#xff0c;以交互方式可视化结果。 加载数据 这可以使用Pandas加载到稀疏矩阵中&#xff1a; # r…

Jmeter 使用BeanShell断言,实现自动获取文章列表,并判断文章是否为当天发布的

系列文章目录 提示&#xff1a;阅读本章之前&#xff0c;请先阅读目录 文章目录系列文章目录前言一、正则表达式提取器&#xff0c;提取所有文章id二、循环控制器&#xff0c;读取每篇文章的创建时间三、JSON提取器&#xff0c;提取创建时间&#xff0c;然后进行判断四、运行结…

Java设计模式七大原则-里氏替换原则

里氏替换原则 OO中的继承性的思考和说明 继承包含这样一层含义&#xff1a;父类中凡是已经实现好的方法&#xff0c;实际上是在设定规范和契约&#xff0c;虽然它不强制要求所有的子类必须遵循这些契约&#xff0c;但是如果子类对这些已经实现的方法任意修改&#xff0c;就会对…

1540_AURIX_TriCore内核架构_FPU

全部学习汇总&#xff1a; GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com) 这一次看一下TriCore的FPU&#xff0c;浮点处理单元。说起来&#xff0c;这算是很多MCU中的一个高级模块了。 1. 在TriCore中FPU其实是可选实现的&a…

动画演示选择排序(Selection Sort)

1、排序规则 1.1 一句话总结选择排序 从数组中第一个数字开始&#xff0c;数组中每个数字都要和后面所有数字比一次大小&#xff0c;每每次循环遍历当前最小值&#xff0c;放在当前循环范围内的最小位置。当完成第 N - 1 次循环之后&#xff0c;排序完成。N 数组长度 - 1。 …

113.(leaflet篇)leaflet根据距离截取线段

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

不同类型的 SSL 证书解释

了解不同类型的 SSL 证书&#xff1a;扩展验证 (EV)、组织验证 (OV) 和域名验证 (DV)。 查看用例及更多。 SSL/TLS 证书用于验证网站的身份并在服务器和浏览器之间创建安全连接。有许多不同类型的 SSL 证书选项可用&#xff0c;它们都有其独特的用例和价值主张。证书颁发机构 …

【项目实战合集】计算机视觉毕业设计项目怎么选,超30个经典案例供你选择...

每年到了搞毕业设计的时候&#xff0c;很多学生朋友都很头疼&#xff0c;指导老师给不了好题目&#xff0c;自己也没有什么好的想法&#xff0c;怕选的太容易了过不了&#xff0c;怕选的太难了做不出&#xff01;今年我们在计算机视觉方向出了【超过30个基于Pytorch框架】的实战…

FineReport 动态图表表格软件-函数计算组成和语法

1. 概述 1.1 版本 1.2 功能简介 在设计模板时用户需要频繁的使用公式函数&#xff0c;例如&#xff1a;求和、求个数、做判断等等。 本文介绍函数的计算组成和语法。 2. 计算语法 2.1 概览 组成部分 语法 示例 函数 函数语法详情查看对应函数&#xff1a; SUM(合同金额…

AGI意识科学每周速递 | 2022年11月第四期

AGI&意识科学每周速递 | 2022年11月第四期 心识研究院 Mindverse Research 2022-11-28 17:00 发表于上海 收录于合集#AGI&意识科学每周速递24个 本周主要内容&#xff1a;程序辅助语言模型 PAL、AI 外交官 CICERO、视觉语言图灵测试、NLP 的持续学习、胎儿的大脑皮层…

winograd卷积实践

winograd卷积基本原理参考 Winograd算法实现卷积原理_Luchang-Li的博客-CSDN博客_optimizing batched winograd convolution on gpus winograd卷积图示&#xff1a; 注意这张图里面隐藏了input和output channel。实际上每个空间维度里面还包含了batch和in/out channel维度。 …

从pom文件里面找不到对应的Maven依赖,通过下面的方法完美解决

如下&#xff0c;我想获取gson对应的依赖 第一步&#xff1a;进入引入对应包的类里面 第二步&#xff1a;进入包&#xff1a;Ctrl 左键 ctrl左键点击gson后&#xff0c;会自动跳转到这个文件夹 第三步&#xff1a;打开依赖图 按箭头点击后&#xff0c;会出现下面的依赖图 …

[附源码]Python计算机毕业设计SSM基于Java的音乐网站(程序+LW)

环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 Maven管理等…

基于java+swing+mysql北方传统民居信息管理系统

基于javaswingmysql北方传统民居信息管理系统一、系统介绍二、功能展示1.用户登陆2.用户界面3.管理员界面4.民居信息修改5.民居信息详情三、系统实现1.ManageMainFrame.java四、其它1.其他系统实现一、系统介绍 用户&#xff1a;民居信息浏览、民居详细信息 管理员&#xff1a…

CDMP证书是什么样?CDMP证书有用吗?

随着数字化经济在我国的迅速开展&#xff0c;企业越来越重视数字人才的培养&#xff0c;致使越来越多得数字人通过考取CDMP证书来证明自己的能力。而一些犹豫观望的人&#xff0c;就会问。拿到CDMP证书&#xff0c;对你们真的有用吗&#xff1f;是纸质版证书还是电子版证书&…

PHP交流管理系统wamp运行定制开发mysql数据库html网页算机软件工程

一、源码特点 PHP交流管理系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库系统主要采用B/S模式开发,开发环境为PHP APACHE&#xff0c;数据库为mysql5.0 &#xff0c;使用php语言开发 PHP交流管理系统wamp运…