毕业设计 基于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