ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:250.72KB ,
资源ID:9662022      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9662022.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的自动滴灌控制系统的设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的自动滴灌控制系统的设计.docx

1、基于单片机的自动滴灌控制系统的设计课程名称: 单片机课程设计 设计项目: 基于单片机自动滴灌控制系统设计 专业班级: 姓名(学号): 实验时间: 批阅时间: 指导教师: 成 绩: 基于单片机的自动滴灌控制系统的设计第一章 绪论1.1 本设计任务和主要内容本论文主要研究基于单片机的自动滴灌控制系统,分别对土壤湿度与灌水量之间的关系、滴灌控制技术及系统设备的软、硬件各个部分进行了研究。主要内容如下:1.根据滴灌技术的特点,进行节水灌溉控制系统的整体研究与设计。2.土壤湿度变化使用DHT11型温湿度传感器采集,再对湿度传感器的输出信号进行分析。3 .数码管显示土壤湿度值。4.使用步进电机控制阀门的开

2、启或关闭。5.当土壤湿度值低于设定的最低值时,系统可自动报警。第二章 硬件电路设计2.1单片机控制系统原理本系统的设计方案是基于微控、无线数据接收和传感器测量技术,采用湿度传感器采集土壤的湿度信息,根据采集的相应数据及农作物生长所需水分的需求量的设置,及时、精确、高效地控制滴灌的水量。系统根据传感器反馈的数据的大小控制滴灌的水量,使农作物及时的获得所需的水分,控制过程中当滴灌到作物所需的水量时,系统会及时的关闭水源的流入,这样则避免水资源的浪费,有效的实现节水灌溉的设计要求。图1 单片机控制系统原理框图2.2 单片机主机系统电路STC90C51单片机是STC推出的新一代超强抗干扰、高速、低功耗

3、的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。片上集成1280字节或512字节或256字节RAM,共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用,外部中断4路,下降沿中断或低电平触发中断,通用异步串行口(UART),还可用定时器软件实现多个UART,内部集成MAX810专用复位电路,当时钟频率在6MHz时,该复位电路是可靠的;当时钟频率在12MHz时,勉强可用。在要求不高的情况下,可在复位脚外接电阻电容复位。图2 单片机主机系统图2.2.1时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电

4、路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图2所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图3中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选6MHz。2.2.2复位电路 为了初始化单片机内部的某些特殊功能寄存器,

5、必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。 图2中R9和Cl组成上电复位电路,其值R取为1KQ, C取为1p

6、F.2.3数据采集电路(数字温湿度传感器DHT11)DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以

7、上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。测量分辨率分别为8bit(温度)、8bit(湿度)。图32.4 LED显示系统电路微机化测控系统中常用的测量数据的显示器有发光二极管显示器(简称LED或数码管)和液晶显示器(简称LCD)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用4个LED显示。数码管有共阴共阳之分,本系统采用8段共阴型LED,其原理图如图6所示,每位数码管内部有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮

8、取决于a-dp各引脚上是否是高电平。 LED数码管的外形结构如图6,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字(0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图5所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点

9、为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。 符号和引脚 共阴极 共阳极图5 LED数码管结构原理图:数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需要解决多位LED数码管的“段控”和“位控”问题,本电路的通过P1口实现:而每一位的公共端,即LED数码管的“位控”,则由P3口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的

10、字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开头”状态。2.5超限报警电路为了在某些紧急状态或反常状态下,能使操作人员不致忽视,以便及时处理,往往需要有某种更能引起人们注意提起警觉的报警信号产生,这种报警信号通常有三种类型:闪光报警、鸣音报警、语音报警,本系统采用简单易行的LED发光报警电路。 如图6所示报警电路,报警设备选用LED发光二极管,图中接入的发光二极管LED为超高限与超低限报警器,在湿度低于最低湿度或高于最高湿度时,二极管发光报警。报警设

11、备选用LED发光二极管,图中发光二极管的一端接在高电平+5V,另一端分别接P2.6与P2.7,当P2.6、P2.7端输出为低电平0时,二极管导通,灯亮发出报警信号。图6报警电路第三章 系统的软件设计#include #include /typedef unsigned char U8; /* 无符号8位整型变量 */typedef signed char S8; /* 有符号8位整型变量 */typedef unsigned int U16; /* 无符号16位整型变量 */typedef signed int S16; /* 有符号16位整型变量 */typedef unsigned lon

12、g U32; /* 无符号32位整型变量 */typedef signed long S32; /* 有符号32位整型变量 */typedef float F32; /* 单精度浮点数(32位长度)*/typedef double F64; /* 双精度浮点数(64位长度)*/#define uchar unsigned char#define uint unsigned int#define Data_0_time 4sbit P2_0 = P20 ;U8 U8FLAG;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_d

13、ata_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U8 outdata5; /定义发送的字节数 U8 indata5;U8 count, count_r=0;U8 str5=0,0,0,0,0;U16 U16temp1,U16temp2;uchar LedOut4;/此表为 LED 的字模, 共阴数码管 0-9 - unsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f

14、,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /段码控制/此表为8个数码管位选控制, 共阴数码管 1-8个 - unsigned char code FFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9; /反转unsigned char code FFZ8=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1; /正转uint K;sbit LS138A = P22; /定义138译码器的输入A脚由P2.2控制 sbit LS138B = P23; /定义138译码器的输入脚B由P2.3控制sbit L

15、S138C = P24; /定义138译码器的输入脚C由P2.4控制/Motorsbit F1 = P10;sbit F2 = P11;sbit F3 = P12;sbit F4 = P13;sbit led1=P27;sbit led2=P26; void Delay(U16 j) U8 i; for(;j0;j-) for(i=0;i27;i+); void Delay_10us(void) U8 i; i-; i-; i-; i-; i-; i-; /* 步进电机驱动 */void motor_ffw() unsigned char i; unsigned int j; for (j=0

16、; j12; j+) /转1*n圈 for (i=0; i8; i+) /一个周期转30度 if(K=1) P1 = FFWi&0x0f; /取数据 if(K=2) P1 = FFZi&0x0f; Delay(10); /调节转速,速度太快会使电机只震动不转动 void COM(void) U8 i; for(i=0;i8;i+) U8FLAG=2; while(!P2_0)&U8FLAG+); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while(P2_0)&U8FLAG+)

17、; /超时则跳出for循环 if(U8FLAG=1)break; /判断数据位是0还是1 / 如果高电平高过预定0高电平值则数据位为 1 U8comdata=1; U8comdata|=U8temp; /0 /rof /- /-湿度读取子程序 - /- /-以下变量均为全局变量- /-温度高8位= U8T_data_H- /-温度低8位= U8T_data_L- /-湿度高8位= U8RH_data_H- /-湿度低8位= U8RH_data_L- /-校验 8位 = U8checkdata- /-调用相关子程序如下- /- Delay();, Delay_10us();,COM(); /-

18、void RH(void) /主机拉低18ms P2_0=0; Delay(80); P2_0=1; /总线由上拉电阻拉高 主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); /主机设为输入 判断从机响应信号 P2_0=1; /判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!P2_0) /T ! U8FLAG=2; /判断从机是否发出 80us 的低电平响应信号是否结束 while(!P2_0)&U8FLAG+); U8FLAG=2; /判断从机是否发出 80us 的高电平,如发出则进入数据接收

19、状态 while(P2_0)&U8FLAG+); /数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1; /数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U

20、8temp=U8checkdata_temp) U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; /fi /fi void xianshi(uchar a) uchar i; /LedOut0=Disp_Taba/1000; /LedOut2=Disp_Taba/100; LedOut1=Disp_Taba%100/10; LedOut0=Disp_Tab

21、a%10; for( i=0; i3; i+) /实现4位动态扫描循环 P0 = LedOuti; /将字模送到P0口显示 Delay(2); switch(i) /使用switch 语句控制位选 也可以是用查表的方式 学员可以试着自己修改 case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; /case 2:LS138A=0; LS138B=1; LS138C=0; break; /Delay(10); void time0_init() /计数器初始化函数 TMOD=

22、0x01; /计数器0工作在方式模式1 TH0 = (65536-800)/256; /晶振是11.0592,产生PCA时钟为1.3824M TL0 = (65536-800)%256;/ TH0 = (65536-6556)/256; /晶振是11.0592,产生PCA时钟为1.3824M/ TL0 = (65536-6536)%256;/ AUXR=0xC0;/计数器均工作在1T模式。计数频率11.0592M ET0 = 1; /开中计数器0断 TR0 = 1; /开启计数器0 EA=1;void main() uchar m,flag=0,n; time0_init(); while(1

23、) for(n=0;n2;n+) RH(); strn=U8RH_data_H; / str1=U8RH_data_L; / str2=U8T_data_H; / str3=U8T_data_L; / str4=U8checkdata; Delay(20000); xianshi(strn); if(strn60) K=2; led1=1; led2=0; if(strn50&strn60&str1=50)|(str0=60) flag=1; else flag=0; if(flag=1) for(m=0;m3;m+) motor_ffw(); void ti() interrupt 1 TH

24、0 = (65536-6000)/256; TL0 = (65536-6000)%256; xianshi(str0); 第四章 总结通过本次设计,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。既让我们懂得了怎样把理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。在设计过程中,总是遇到这样或那样的问题。有时发现一个问题的时候,需要做大量的工作,花大量的时间才能解决。自然而然,我的耐心便在其中建立起来了。为以后的工作积累了经验,增强了信心本文设计了基于单片机的自动滴灌控制系统,通过本次课程设计对单片机控制系统原理有了进一步的了解,提高了科学的分析和运用能力,由于本人水平有限,因此对其中的原理和实际操作方法有待深入的学习研究和提高。指导教师评语:成绩: 指导教师签字: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1