自动浇花系统(共29页)

上传人:风*** 文档编号:42754434 上传时间:2021-11-27 格式:DOC 页数:30 大小:847KB
返回 下载 相关 举报
自动浇花系统(共29页)_第1页
第1页 / 共30页
自动浇花系统(共29页)_第2页
第2页 / 共30页
自动浇花系统(共29页)_第3页
第3页 / 共30页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上 编号(学号): 本科学生毕业设计 题 目: 自动浇花系统设计 学院名称:_专业名称: 年 级: 学生姓名: 学 号: 指导教师:_ _ 职称/学历:_ _ _教务处 制Abstract自动浇花系统设计*物理与电子信息学院电子信息工程专业2010级10班 指导教师:*摘要: 此次设计采用STC89C52RC 单片机外接湿度传感器、显示模块、电机驱动模块、按键模块,组成自动浇花系统。在控制器的控制下,探测器检测土壤温湿度,将检测值传送回来,经控制器判断该值是否在正常温湿度范围内,若低于温湿度的最小值,发出浇水指令,让水泵自动出水;若高于最大值,发出终止浇水指令,让水泵停止浇水。关键词:STC89C52RC;湿度传感器;自动浇花Design of Automatic watering system*School of Physics and Electronic Information, Electronic and Information Engineering, Class10 Grade 2010. Inistructor: *Abstract: This design uses STC89C52RC microcontroller and external humidity sensor, display module, motor driver module, key module, automatic watering system.Under the control of the controller, the soil temperature and humidity detection detector, the detected value sent back, the controller judges whether the value under normal temperature and humidity range, if less than the minimum temperature and humidity, a watering instruction, let the automatic water pump; if higher than the maximum value, issued a stop watering instruction, make the pump stop watering.Keywords: STC89C52RC;Humidity sensor;Automatic watering1 绪论1.1课题背景及研究意义 随着城镇化、城市化的大力发展,人们的生活质量不断的提高,越来越多的家庭开始在自己的庭院、阳台等种植花卉等小型植物,花卉种植的普及当然也带来了一些小小的难题,浇水“难”其中常见且重要的一个问题。为了应对这个难题,自动浇水系统应运而生。 随着科技的不断发展,他们无一例外都是能够起到方便我们日常生活的作用。自动浇花系统可以理解为各种设备的一种,它能够通过编程手段完成特定任务,实现浇花自动化,方便我们的日常生活。 同时自动浇花系统的制作成本十分低廉,电路结构简单,程序调试也很方便,具有很好的移植性和趣味性,因此受到了广大同学的喜爱。同时全国大学生电子设计竞赛每年都设有自动浇花系统类的题目,也可看出国家对生活自动化的重视。 本题目设计的是具有自动自动浇花功能的系统,其设计和日常生活中花卉种植的需求想结合。设计采用湿度传感器检测,单片机控制。自动浇花系统系统的设计采用了C语言编程的模式,简单易懂,设计电路结构简单,调试方便,有很大的扩展空间。1.2课题的设计目的1. 通过此次设计,加深对大学本科所学专业知识的理解,获得初步的应用经验,为走出校门从事专业相关工作打下基础。2. 通过对课题方案的筛选、分析,以及后期的制作、调试过程,加强对专业问题的解决能力。3. 通过了此次课题设计,培养了我们对课题研究的兴趣,加深了我们科研的学习精神。1.3课题的主要工作通过湿度传感器得出测量值,通过AD转换器转换成数字信号,经单片机处理,进而控制继电器开关,控制水泵的出水。 课题要求如下:1.湿度传感器输出电压连续且范围变化合理2.AD转换器线性度好,精度高3.当湿度大于设定值时继电器打开,否则关闭4.通过两个按键调节阀值大小1.4本文研究内容 本设计要求采用单片机为控制核心,利用湿度传感器实现对土壤湿度的检测,并将检测值通过AD转换传给单片机进行处理,然后由单片机根据所检测的数据判断实现对继电器的控制,并将检测湿度通过LED显示屏显示出来。 本设计就采用了STC89C52RC单片机为控制核心,TCL2543N为模数转换器,XD-3461AS为显示器,FC-28为湿度检测器,采用继电器SRD-12VDC-SL-C为电机驱动芯片,外接两个按键调节阀值大小。2 系统概述2.1整体方案设计思想 根据题目所提要求,确定如下方案:自己购买材料制作出,使用SRD-12VDC-SL-C模块,连接单片机使之对土壤的湿度进行控制,并以此为基础,在最小系统板上加装湿度传感器FC-28。然后,湿度检测模块把测距数据返回给单片机,单片机发送相应的指令实现对水泵开关的控制,从而达到自动检测湿度以及自动浇水的功能。2.2系统组成 主 显示部分 传感器模块 控 芯 按键部分 电源部分 片 电机驱动模块 水泵 图2.1 系统组成2.2.1主控芯片的选择 现在市场上的控制芯片种类繁多,大多数都能够很好地满足题目中的要求,比如MCS-51系列单片机STC89C52RC,AVR单片机,还有ARM,凌阳等等1,当然他们都有各自的优缺点,而本次设计过程中,我们选择了STC89C52RC。相对于其他种类的控制芯片,STC89C52的一系列更加适合我们这次的题目,比如:STC89C52RC单片机完全能够很好的完成本设计的所有功能; STC89C52RC的外围电路十分简单,控制方便;在我们的课程中关于STC89C52RC的介绍很多;最重要的一点STC89C52RC价格相对其他控制芯片而言要便宜很多,能够很好控制设计成本。 综合以上几点我在最终设计的时候选择了MCS-51系列单片机STC89C52RC来完成本设计。2.2.2传感器模块选择 随着科学技术的不断发展,传感器领域也相应得到了很大的发展。它在各个领域都有着非常广泛的运用。在本次设计的传感器的选择上,我们考虑了湿度传感器和温湿传感器这两种。温湿传感器体积小,性能稳定,精度高,可以检测土壤的温度和湿度,但价格昂贵;湿度传感器,精度和长期稳定,对湿度敏感,可用于土壤湿度检测,且价格低。经过和老师同学的探讨,考虑到对传感器的选择上关键在于是否适合单片机处理。最后我们选择了相对实用的湿度传感器。2.2.3电机驱动模块 继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器2。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用继电器,充当水泵开关,控制水泵出水。正是因为其功能,符合我们此次的设计,我们选择其作为自动浇花系统的电机驱动模块。2.2.4显示部分 数码管是一种半导体发光器件,又称LED数码管3,其基本单元是发光二极管。其是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。 LED数码管根据LED的接法不同分为共阴和共阳两类,共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。 按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示)。 按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。 3 系统硬件设计3.1 STC89C52RC单片机STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52RC使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52RC 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其主要工作特性是:8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;8K字节程序存储空间;256字节数据存储空间;自带2KB的EEPROM存储空间;3.1.1 STC89C52RC单片机管脚图图3.1 STC89C52RC单片机管脚部分引脚介绍4:引脚9:REST/Vpd,RESET是复位端,连续保持两个机器周期以上的高电平,单片机将完成复位。Vpd是备用电源输入端,当电源电压下降到一定值时,备用电源通过Vpd端给内部RAM供电,直至单片机工作电压恢复正常。引脚11:TXD,串行口输出引脚12:INT0,外部中断0输入引脚13:INT1,外部中断1输入引脚14:T0,定时/计数器T1外部输入引脚15:T1,定时/计数器T1外部输入引脚16:WR,外部RAM写信号引脚17:RD,外部RAM读信号引脚20:Vss,接地端引脚40:Vcc,电源端。正常工作和编程校验(8051/8751)均为+5V。引脚31:EA/Vpp,片外程序存储器访问允许信号/编程电源。EA为低电平时,允许访问,片外程序存储器。对ROM Less型单片机,使用时该引脚必须接地。3.2 AD转换模块 具有11个输入端的12位模数转换器TLC2543是美国德州仪器公司推出的一种性能价格比较优的12位A/D转换芯片,具有多种封装形式。其使用开关电容逐次逼近技术完成A/D转换过程,由于是串行输入结构,能够节省51系列单片机I/O资源,且价格适中。其特点5有:(1)12位分辨率A/D转换器;在工作温度范围内10us转换时间;11个模拟输入通道;3路内置自测方式;采样率为66kbps;线性误差+1LSB(max);有转换结束输出;可编程的MSB和LSB;可编程的输出数据长度;与带有串行外设接口(SPI)的微处理器易于接口。3.2.1 TLC2543CN引脚图 图3.2 TLC2543CN引脚 TLC2543CN引脚介绍:引脚1:AIN0,模拟量输入端。引脚10:GND,接地端。引脚11:AIN9,模拟量输入端。引脚12:AIN10,模拟量输入端。引脚13:REF,负基准电压端。基准电压的低端(通常为地)被加到REF-。引脚14:REF+,正基准电压端。基准电压的正端(通常为Vcc)被加到REF+,最大的输入电 压范围由加于本端与REF-端的电压差决定。引脚15:CS,片选端。在CS 端由高变低时,内部计数器复位。由低变高时,在设定时间内禁止DATAINPUT和I/O CLOCK引脚16:DATA OUT,A/D转换结果的三态串行输出端。CS为高时处于高阻抗状态,CS为低时处于激活状态和I/O CLOCK。引脚17:DATAINPUT,串行数据输入端。由4位的串行地址输入来选择模拟量输入通道。引脚18:I/O CLOCK,输入/输出时钟端。I/OCLOCK接收串行输入信号并完成以下四个功能:(1)在I/O CLOCK的前8个上升沿,8位输入数据存入输入数据寄存器。(2)在I/OCLOCK的第4个下降沿,被选通的模拟输入电压开始向电容器充电,直到I/OCLOCK的最后一个下降沿为止。(3)将前一次转换数据的其余11位输出到DATA OUT端,在I/OCLOCK的下降沿时数据开始变化。(4)I/OCLOCK的最后一个下降沿,将转换的控制信号传送到内部状态控制位。引脚19:E0C,转换结束端。在最后的I/OCLOCK下降沿之后,EOC从高电平变为低电平并保持到转换完成和数据准备传输为止。引脚20:Vcc,电源。3.2.2 AD转换器与单片机STC89C52RC单片机的接口电路图3.3 转换器与单片机接口电路3.3 显示模块 XD-3641AS是四位八段共阴极数码管,每个段均有0和1两种状态。各段发光二极管的阴极连在一起,将此公共点接地,某一段发光二极管的阴极为高电平(1)时,该段发光,数码管的a 、b、c、d、e、e、f、g、h、dp分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭2。如:使其显示“0”,则要求a、b、c、d、f各个引脚为高电平,g和dp为低电平,即:dp g f e d c b a(0 0 1 1 1 1 1 1)。3.3.1 XD-3641AS引脚图3.4 XD-3641AS引脚 图3.5 数码管实物显示XD-3641AS引脚介绍:引脚1:控制F,该引脚和STC89C52RC引脚14相连,实现数码单边亮的控制。引脚2:控制D,该引脚和STC89C52RC引脚13相连,实现数码管单边亮的控制。引脚3:控制DP,该引脚和STC89C52RC引脚相连,实现小数点亮或不亮的控制。引脚4:控制C,该引脚和STC89C52RC引脚12相连,实现数码管单边亮的控制。引脚5:控制G,该引脚和STC89C52RC引脚16相连,实现数码管单边亮的控制。引脚7:控制B,该引脚和STC89C52RC引脚11相连,实现数码管单边亮的控制。引脚10:控制F,该引脚和STC89C52RC引脚15相连,实现数码管单边亮的控制。引脚11:控制A,该引脚和STC89C52RC引脚17相连,实现数码管单边亮的控制。引脚6、8、9、12:分别控制从右往左,第一个数字“8”,第二个数字“8”,第三个数字“8”,第四个数字“8”。引脚12和STC89C52RC引脚36相连实现第四个“8”亮或不亮的控制。引脚9和STC89C52RC引脚37相连实现第三个“8”量或不亮的控制。引脚8和STC89C52RC引脚38相连实现第而个“8”量或不亮的控制。引脚6和STC89C52RC引脚39相连实现第一个“8”量或不亮的控制。3.4 湿度检测模块设计3.4.1 FC-28湿度传感器工作原理 接通电源。利用传感器探头的导电性,检测出电平信号。当湿度低于设定值时,输出高电平,高于设定值时,输出低电平。这样土壤的湿度以电信号的方式输送出来。输出的电平信号传送到AD转换器,将其转换成模拟信号。3.4.2 FC-28湿度传感器与AD转换器的接口电路3引脚接电源;2引脚接地;1引脚接AD转换器,将模拟信号输出到AD转换器6。图3.6 湿度传感器与AD转换器接口引脚3.5硬件整体设计 硬件整体设计原理图7如图3.8所示。图3.7 自动浇花系统的设计整体原理4 系统软件设计4.1 系统软件设计思路自动浇花系统软件设计包括四个部分的程序设计,分别是:AD转换模块程序设计、湿度检测模块设计、阀值调节模块、数码管显示模块设计。AD转换模块程序设计主要实现以下功能:将湿度传感器产生的模拟信号转换成数字信号。湿度检测模块设计主要实现以下功能:通过程序设计,对所测湿度值进行处理,当低于所设定阀值继电器打开,实现浇水功能;当高于或等于所设阀值继电器关闭,关闭浇水功能。阀值调节模块主要实现以下功能:设定两个按键实现对阀值的调节功能,其中一个按键要求是上调键,另一个是下调节,同时设定调节幅度为5。数码管显示模块主要实现以下功能:需要数码管实现三个值的显示,分别是:采集的电压值、采集的当前土壤湿度值、设定的适合植物生长的土壤湿度阀值。数值顺序显示,通过间歇加以区分显示。4.2系统软件设计整体框图8 初始化 开始 阀值设定 读取信号值 数据处理 显示 模拟电压 湿度 阀值 湿度判断大于等于 小于 jidianqi=0 jidianqi=1 图4.1 软件设计原理结论本文介绍了基于STC89C52RC单片机的自动浇花系统的设计,对整个硬件电路设计进行分析。文中介绍了自动浇花系统的功能和作用,介绍了自动浇花系统的设计思路和设计原理,从而对MCS-51系列单片机的有了一定的学习。制作过程中成功运用了DXP软件和电子工艺技术,加深了对大学专业本科知识的应用能力。利用Protel DXP强大的功能,用其进行原理图设计,它可以对当前所画的原理图进行仿真,在整个设计周期都可以查看和分析电路的性能指标,及时发现设计中所存在的一些问题并加以改正。设计者再进行电路的工作状况分析,从而提高电路的设计工作效率、缩短开发周期、降低制做成本。写完本篇论文,也仅仅是自动浇花系统做了一个初步研发,怎样将自动浇花系统做得更好更人性化,以及将此次设计应用发散到其它单片机设计,是此次设计完成后需要思考的问题。参考文献1 余锡存,曹国华著. 单片机原理及接口技术(第二版)M. 西安:西安电子科技大学出版社,2007.2孙惠康,冯增水著.电子工艺实训教程(第三版)M.北京:机械工业出版社,2009.3 黄国权,翘建安,陈宁.基于MC51湿度检测系统的实现D.广西工学院,2002,13(3).4田亚娟编.单片机原理及应用M.大连:大连理工大学出版社,2008,9.5杨颂华,冯毛官著. 数字电子技术基础(第二版)M. 西安:西安电子科技大学出版社,2008.6 阎石著. 数字电子技术基础(第五版) M. 北京:高等教育出版社,2006.7刘刚,彭荣群著. Protel DXP 2004 SP2原理图与PCB设计(第2版)M. 北京:电子工业出版社,2010.8 杨路明著. C语言程序设计教程(第2版) M 北京:北京邮电大学出版社,2005.附录A系统整体电路附录B全部程序清单#include #include #include #include sbit jidianqi=P26; /定义继电器引脚为P2.6sbit inc=P16; /定义加按键引脚为P1.6sbit dec=P17; /定义减按键引脚为P1.6sbit P20=P20; /定义小数点控制端口sbit CS = P25; /定义数据端口sbit output = P24 ;/定义AD输出端口sbit input = P23; /定义AD采集端口sbit clock = P22; /定义时钟端口sbit eoc = P21; /定义数据端口unsigned long dianya1=0;unsigned long dianya11;unsigned long a,b,c=600;/定义a,b,c初始值unsigned char code led_duan = 0x5f,0x03,0x6d,0x67,0x33,0x76,0x7e,0x43,0x7f,0x77;/p36=a,p35=g,p34=f,p33=e,p32=d,p31=c,p30=bunsigned char code led_wei = 0x07,0x0b,0x0d,0x0e;/s4=p00,s3=p01,s2=p02,s1=p03数码管位选,段选定义unsigned int read2543(unsigned char CON_WORD);/函数声明static void delay(unsigned int time) / 延时函数while(time-);void key(unsigned long b) /按键扫描函数 dec=inc=1; /默认为都没按下 delay(50); /延时 if(inc=0) /检测按键是否按下 delay(50); /延时,防抖动 if(inc=0) /再次检测是否按下 c=c+50;delay(50); /C的值加50,调整阀值 delay(100); if(dec=0) delay(100); if(dec=0)/再次检测是否按下 c=c-50;/调整阀值 delay(100); /*函数名:unsigned int read2543(unsigned char CON_WORD)功能:读取TCL2543的AD值参数:无*/unsigned int read2543(unsigned char CON_WORD) unsigned int ad=0; /定义局部变量unsigned char i; CON_WORD=4; clock=0;CS=0;eoc=1;for(i=0;i12;i+) if(output=1) ad=ad|0x01; if(CON_WORD&0x80) input=1; else input=0; clock=1;delay(10);clock=0; CON_WORD=1;ad=1;eoc=0;return(ad);/延时函数 static void delay_ms(unsigned int time_ms)unsigned int i;unsigned char j;for(i=time_ms;i0;i-)for(j=250;j0;j-);/*作用:共阴数码管显示1位到4位函数 直接调用就可以了*/数码管显示1位,i表示显示的内容,j表示显示的地址,k表示是否显示小数点void SEG_display_one(unsigned char i,unsigned char j,bit k) P3=0xff;P0=0xff; if(k=1) P20=0; else P20=1; /其中k用来 判断是否显示小数点 P3=led_duani; P0=led_weij; delay_ms(5); P0=0xff;P3=0xff;/数码管显示2位,i表示显示的内容,j表示显示的地址,k表示是否显示小数点void SEG_display_two(unsigned char i,unsigned char j,bit k)SEG_display_one(i/10,j,0);SEG_display_one(i%10,j+1,k);/数码管显示3位,i表示显示的内容,j表示显示的地址,k表示是否显示小数点void SEG_display_three(unsigned int i,unsigned char j,bit k)SEG_display_two(i/10,j,0);SEG_display_one(i%10,j+2,k);/数码管显示4位,i表示显示的内容,j表示显示的地址,k表示是否显示小数点void SEG_display_four(unsigned int i,unsigned char j,bit k)SEG_display_three(i/10,j,0);SEG_display_one(i%10,j+3,k);/主函数void main()unsigned int i; int y=100;int x=100; while(1) key(); /调用按键检测函数 dianya11=0; /变量赋值为0for(i=0;i0&dianya113700) dianya1=dianya11+dianya1; i+; dianya1 = dianya1/100;/求平均值 dianya1 = dianya1 * 482;/498是参考电压 dianya1 = dianya1 / 4096;/12位AD a=dianya1; /a为采集电压 b=320-dianya1; b=b*1000; b=b/315; /b值为植物生长的最佳湿度 delay(5); while(y-) SEG_display_one(a/100,1,0);/显示百位 SEG_display_one(a/10%10,2,1);/显示十位数和小数点SEG_display_one(a%10,3,1);/显示个位数 ; y=100; while(x-) SEG_display_one(b/100,1,1);SEG_display_one(b/10%10,2,0);SEG_display_one(b%10,3,1); ; x=100; while(x-) SEG_display_one(c/100,1,1);/C的初值为600,通过按键调整c的大小,进而改变阀值SEG_display_one(c/10%10,2,0);SEG_display_one(c%10,3,1); ; x=100; if(bc) /判断阀值 jidianqi=1; /继电器吸合 else jidianqi=0;/继电器断开 致谢 通过这一阶段的努力,我的毕业论文自动浇花系统设计终于完成了。在此期间我学到了很多,也成长了很多。感谢我的老师、朋友和同学,是你们的帮助给了我力量,让我能够更好的学习和成长。 在完成论文的过程中,我的同学提供了我很多好的资料和意见。我的指导老师老师更是给了我悉心的指导和建议,在这里我要特别感谢我的指导老师。感谢你百忙之中阅读我的此篇论文,并对此提出修改意见。专心-专注-专业
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!