当前位置: 首页 > news >正文

毕业设计 基于51单片机自动智能浇花系统设计

基于51单片机自动智能浇花系统设计

  • 1、毕业设计选题原则说明(重点)
  • 2、项目资料
    • 2.1 系统框架
    • 2.2 系统功能
  • 3、部分电路设计
    • 3.1 STC89C52单片机最小系统电路设计
    • 3.2 按键电路设计
    • 3.3 水泵控制电路设计
  • 4、部分代码展示
    • 4.1 数码管位选程序
    • 4.2 ad0832数据读取程序
    • 4.3 延时函数
  • 5. 项目编号

1、毕业设计选题原则说明(重点)

  • 选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的!
  • 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。
  • 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业证而已!!!
  • 当你明白这一点后,作毕业设计的要求就是在满足老师的要求后,越简单越好,这样不但容易去做,而且你自己也容易去理解,掌握,同样也能花最少的钱!!!
  • 满足老师的要求,这个没办法,毕竟他是决定你是否能通过答辩的人。
  • 每年都有很多同学找到我的时候,后悔当初为什么要把功能写的那么复杂,后悔没有提前找我咨询一下!所以在这里提醒同学们,提交开题报告之前一定要多想想,咨询下以往的学长学姐,不要自己随便写一堆提交上去!!!
  • 大家找不到学长学姐的话,也可以找我免费咨询,我可以给大家一些建议
  • 点击此处即可咨询

2、项目资料

  • 点击查看详细资料

2.1 系统框架

本设计由STC89C52单片机电路+4位共阳数码管显示电路+ADC0832采样电路+水泵控制电路+土壤湿度传感器电路+按键电路+电源电路组成。

2.2 系统功能

  • 1、数码管实时显示土壤湿度传感器测到的湿度。
  • 2、按键说明:从左边第一个起,减键、加键、设置键。可以用按键设置,设置湿度的上、下限值,并具有掉电保存,保存在STC单片机的内部,上电无需重新设置。
  • 3、当湿低于下限值时,自动打开水泵进行抽水自动灌溉,当湿高于上限值时,断开水泵停止灌溉,
  • 4、具有手动模式,按减键手动打开水泵,可以按加键手动关闭水泵。

3、部分电路设计

3.1 STC89C52单片机最小系统电路设计

STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

STC89C52单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。

单片机最小系统原理图如下图所示:

实物图:

3.2 按键电路设计

其具体电路原理图如下图所示:

  • 实物图

3.3 水泵控制电路设计

该电路是由三极管进行控制

其具体电路原理图如下图所示:

4、部分代码展示

4.1 数码管位选程序

void smg_we_switch(uchar i)
{switch(i){case 0: smg_we1 = 0;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 1; break;case 1: smg_we1 = 1;  smg_we2 = 0; smg_we3 = 1;  smg_we4 = 1; break;case 2: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 0;  smg_we4 = 1; break;case 3: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 0; break;}	
}

4.2 ad0832数据读取程序

unsigned char ad0832read(bit SGL,bit ODD)
{unsigned char i=0,value=0,value1=0;		SCL=0;DO=1;CS=0;		//开始SCL=1;		//第一个上升沿	SCL=0;DO=SGL;SCL=1;  	//第二个上升沿SCL=0;DO=ODD;SCL=1;	   //第三个上升沿SCL=0;	   //第三个下降沿DO=1;for(i=0;i<8;i++){SCL=1;SCL=0; //开始从第四个下降沿接收数据value=value<<1;if(DO)value++;						}for(i=0;i<8;i++){			//接收校验数据value1>>=1;if(DO)value1+=0x80;SCL=1;SCL=0;}SCL=1;DO=1;CS=1;	if(value==value1)				//与校验数据比较,正确就返回数据,否则返回0	return value;return 0;
}

4.3 延时函数


void delay_1ms(uint q)
{uint i,j;for(i=0;i<q;i++)for(j=0;j<120;j++);
}

5. 项目编号

012

http://www.lryc.cn/news/41758.html

相关文章:

  • 熟悉常用的 Linux 操作和 Hadoop 操作
  • Vue2项目总结-电商后台管理系统
  • 【二】一起算法---队列:STL queue、手写循环队列、双端队列和单调队列、优先队列
  • <Linux>环境变量
  • 【MySQL】下载(超详细教程)
  • 再探pytorch的Dataset和DataLoader
  • 【2023.3.18 美团校招】
  • 程序员必须知道的HTML常用代码有哪些?
  • 多目标家庭行为检测--人脸识别模块构建
  • RocketMQ重复消费问题的原因
  • proxy详细介绍与使用
  • 基于YOLOv5的舰船检测与识别系统(Python+清新界面+数据集)
  • 【C#】List数据去重
  • 避免踩坑,教给你VSCode中最常用到的6项功能
  • ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)
  • 【Java Spring基本问题】记录面试题宝典中自己不熟悉的Spring问题
  • I2C协议简介 Verilog实现
  • 服务器被DDoS攻击,怎么破?
  • 实现完全二叉树
  • 【独家】华为OD机试 - 矩阵最值(C 语言解题)
  • C++模板(进阶)
  • 【数据分析之道(二)】列表
  • 架构师必须要掌握的大小端问题
  • 2023年ACM竞赛班 2023.3.20题解
  • 什么是语法糖?Java中有哪些语法糖?
  • STM32学习(五)
  • STM32的CAN总线调试经验分享
  • 深度剖析自定义类型(结构体、枚举、联合)——“C”
  • 《水经注地图服务》发布的全球影像数据在水经微图中调用
  • MyBatis --- 缓存、逆向工程、分页插件