基于单片机的自动节水灌溉系统.docx
《基于单片机的自动节水灌溉系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的自动节水灌溉系统.docx(20页珍藏版)》请在冰豆网上搜索。
![基于单片机的自动节水灌溉系统.docx](https://file1.bdocx.com/fileroot1/2022-11/28/4b162260-20e9-41a6-b7f2-262f36d552a7/4b162260-20e9-41a6-b7f2-262f36d552a71.gif)
基于单片机的自动节水灌溉系统
数理与信息工程学院
应用系统设计
题目:
基于单片机的自动节水灌溉系统
专业:
班级:
姓名:
学号:
指导老师:
成绩:
第1节引言…………………………………………………………………………3
1.1节水灌溉系统概述……………………………………………………………3
1.2本设计任务和主要内容………………………………………………………4
第2节系统主要硬件电路设计………………………………………………………5
2.1单片机控制系统原理…………………………………………………………5
2.2单片机主机系统电路…………………………………………………………5
2.2.1时钟电路………………………………………………………………6
2.2.2复位电路………………………………………………………………6
2.2.3数据存储器的扩展电路………………………………………………6
2.3数据采集处理电路……………………………………………………………7
2.4LED显示系统电路……………………………………………………………8
2.5超限报警电路…………………………………………………………………10
第3节系统软件设计…………………………………………………………………11
3.1系统主程序设计………………………………………………………………11
3.2采样子程序设计………………………………………………………………12
3.3数据处理…………………………………………………………………………13
3.3.1数字滤波技术……………………………………………………………13
3.3.2标度变换…………………………………………………………………15
3.3.3BCD转换………………………………………………………………18
3.4LED动态显示程序…………………………………………………………18
第4节结束语…………………………………………………………………………21
参考文献…………………………………………………………………………22
基于单片机的自动节水灌溉系统
第1节引言
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。
单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行实现。
单片机控制部分采用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。
单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上。
该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。
1.1节水灌溉系统概述
生命之起源,水为必要条件,没有了水,地球上的生命将会枯竭。
随着21世纪的到来,能源危机将接踵而至。
比能源危机更可怕的是,作为
人类生命之源的水的短缺到了前所未有的程度,这一状况还将随着时间的推移和
社会的发展继续恶化。
水资源危机已成为全球性的突出问题,利用科技手段缓解这一危机,将是人类主要的出路。
农业是人类社会最古老的行业,是各行各业的基础,也是人类顿以生存的最
重要的行业。
农业的发展从长远来看很重要,一是水的问题,二是科技的问题。
农业的根本出路在科技,在教育。
由传统农业向现代化农业转变,由粗放经营向
集约经营转变,必须要求农业科技有一个大的发展,进行一次新的农业技术革命。
农业与工业、交通等行业相比仍然比较落后,农业灌溉技术尤其落后。
灌溉系统
自动化水平较低是制约我国高效农业发展的主要原因。
传统的灌溉模式自动化程
度极低,基本上属粗放的人工操作,即便对于给定的量,在操作中也无法进行有
效的控制,为了提高灌溉效率,缩短劳动时间和节约水资源,必须发展节水灌溉
控制技术。
现代智能型控制器是进行灌溉系统田间管理的有效手段和工具,它可提高操
作准确性,有利于灌溉过程的科学管理,降低对操作者本身素质的要求。
除了能
大大减少劳动量,更重要的是它能准确、定时、定量、高效地给作物自动补充水
分,以提高产量、质量,节水、节能。
现代灌溉控制器的研究使用在我国农、林、及园艺为数不多,与发达国家相
比,有较大的差距,还基本停留在人工操作上,即使有些地方搞了一些灌溉工程
的自动化控制系统,也是根据经验法来确定每天灌溉次数和每次灌溉量,如果灌
溉量与作物实际需水量相比太少,便不能有效的促进作物健康成长;而灌溉量太
多,肥水流失,又会造成资源浪费,同时传统的灌溉法还需要相关专家的实时观
察并经验指导生产,劳动生产率低,这也不能与现代化农业向优化、高效化方向
发展要求同步。
随着计算机技术和传感器技术的迅猛发展,计算机和传感器的价格日益降
低,可靠性日益提高,用信息技术改造农业不仅是可能的而且是必要的。
用高新
技术改造农业产业,实施节水灌溉已成为我国农业乃至国民经济持续发展带战略
性的根本大事。
本文旨在设计一套能对作物生长的土壤湿度进行自动监控的系
统,它能对作物进行适时、适量的灌水,起到高效灌溉,节水、节能的作用。
1.2本设计任务和主要内容
本论文主要研究单片机控制的滴灌节水灌溉系统,分别对土壤湿度与灌水量之间的关系、灌溉控制技术及系统设备的软、硬件各个部分进行了研究。
主要内容如下:
1.根据滴灌技术的特点,进行节水灌溉控制系统的整体研究与设计。
2.针对土壤湿度难以用精确的数学模型描述的特点,采用模糊控制理论,对这一理论进行了深入的研究,重点研究双输入单输出的模糊控制方式。
3.LED显示土壤湿度值,在灌水期间以倒计时的方式显示灌水剩余时间。
4.当土壤湿度值低于设定的最低值时,系统可自动报警。
第2节系统主要硬件电路设计
2.1单片机控制系统原理
图2单片机控制系统原理框图
2.2单片机主机系统电路
AT89C51单片机是51系列单片机的一个成员,是8051单片机的简化版。
内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
图3单片机主机系统图
2.2.1时钟电路
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通
常用两种电路形式得到:
内部振荡和外部振荡。
MCS-51单片机内部有一个用于
构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输
入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实
际使用中常采用这种方式,如图3所示在其外接晶体振荡器(简称晶振)或陶
瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外
石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
图3中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频
率、快速起振的作用,其值均为30P左右,晶振频率选6MHzo
RESET
2.2.2复位电路
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位
后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两
个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为
高电平,单片机就处于循环复位状态。
复位后系统将输入/输出(1/0)端口寄存
器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部
清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。
复
位操作有两种情况,即上电复位和手动(开关)复位。
本系统采用上电复位方式。
图3中R9和Cl组成上电复位电路,其值R取为1KQ,C取为1pF.
2.2.3数据存储器的扩展电路
AT89C51单片机外接数据RAM时,P2口输出存储器地址的高8位,PO口
分时输出地址的低8位和传送指令字节或数据。
PO口先输出低8位地址信号,
在ALE有效时将它锁存到外部地址锁存器中,然后PO口作为数据总线使用,此
处地址锁存器选用74LS373,实际电路图连接如图4所示。
图4数据存储器的扩展电路
2.3数据采集处理电路
ADC0809是一种8位逐次逼近式A/D转换器,内部具有锁存控制的8路模
拟开关,外接8路模拟输入端,可同时对8路0-5V的输入模拟电压信号分时进
行采集转换,本系统只用到INO和INl两路输入通道。
ADC0809转换器的分辨
率为8位,最大不可调误差小于士1LSB,采用单一+5V供电,功耗为15mW,
不必进行零点和满度调整。
由于ADC0809转换器的输出数据寄存器具有可控的
三态输出功能,输出具有TTL三态锁存缓冲器,故其8位数据输出引脚可直接
与数据总线相连。
A/D转换器需外部控制启动转换信号方能进行转换,这一启动
转换信号可由CPU提供,不同型号的A/D转换器,对启动转换信号的要求也不
同,分脉冲启动和电平启动两种,ADC0809采用脉冲启动转换,只需给A/D转
换器的启动控制转换的输入引脚((START)上,加入正脉冲信号,即启动A/D
转换器进行转换,转换开始后,转换结束信号输出端(EOC)信号变低,转换结
束时,EOC返回高电平,以通知主机读取转换结果的数字量,这个信号可以作
为A/D转换器的状态信号供查询,也可以用作中断请求信号。
图5数据采集处理电路
本系统中ADC0809与AT89C51单片机的接口如图5所示,采用等待延时方式。
ADC0809的时钟频率范围要求在10-1280kHz,AT89C51单片机的ALE脚的频率是单片机时钟频率的1/6,因此当单片机的时钟频率采用6MHz,ADC0809输入时钟频率即为CLK=1MHz,发生启动脉冲后需延时100Us才可读取A/D转换数据。
如图5连接方式,ADC0809的8位数据输出引脚可直接与数据总线相连,地址译码引脚A,B,C分别与74LS373的A,B,C相连,以选通INO-IN7中的一个通道。
AT89C51的p2.6作为片选信号,在启动AM转换时,由单片机的写信号WR和p2.。
控制ADC的地址锁存和转换启动。
由于ALE与START连在一起,因此ADC0809在锁存通道地址的同时也启动转换,在读取转换结果时,用单片机的读信号RD和p2.。
引脚一级或非门产生的正脉冲作为OE信号,用以打开三态输出锁存器。
2.4LED显示系统电路
微机化测控系统中常用的测量数据的显示器有发光二极管显示器(简称LED或数码管)和液晶显示器(简称LCD)。
这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用4个LED显示。
数码管有共阴共阳之分,本系统采用8段共阴型LED,其原理图如图6所示,每位数码管内部有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于a-dp各引脚上是否是高电平。
LED数码管的外形结构如图6,外部有10个引脚,其中3,8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。
由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。
LED有共阴极和共阳极两种。
如图6所示。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
图6LED数码管结构原理图:
符号和引脚共阴极共阳极
数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。
为节省端口及降低功耗,本系统采用动态扫描显示方式。
动态扫描显示方式需要解决多位LED数码管的“段控”和“位控”问题,本电路的通过P1口实现:
而每一位的公共端,即LED数码管的“位控”,则由P3口控制。
这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。
在这一瞬时,只有这一位在显示,其他几位则暗。
在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开头”状态。
因AT89C51单片机I/O口资源有限,必须对其Il0口进行扩展才能满足实现系统功能,如图7所示为用8155扩展1/0口的4个8位LED动态显示器,显示扫描由程控实现,其中PA口输出字型码,PC口输出位选信号即扫描信号,图中片选线CE和AT89C51的P2.7口相连,IO/M选通输入线与P2.4口相连,该系统中当P2.7=0且P2.4=1时,选中8155芯片内三个I/O口。
相应的端口地址分配如表4-1:
表4-18155端口地址分配
图7显示电路
2.5超限报警电路
为了在某些紧急状态或反常状态下,能使操作人员不致忽视,以便及时处理,往往需要有某种更能引起人们注意提起警觉的报警信号产生,这种报警信号通常有三种类型:
闪光报警、鸣音报警、语音报警,本系统采用简单易行的声光报警电路。
如图8所示报警电路,报警设备选用压电式蜂鸣器,它约需要10mA的驱动电流,只需在其两条引线上加3一15V的直流电压,即可产生3KHz左右的蜂鸣声音,图中蜂鸣器的一端接在高电平+SV,另一端接Pl.0,在初态Pl.0始终输出高电平1,当需要报警时,程序对其端口清零即可,声音的长短可用延时程序控制实现。
图中接入的发光二极管LED为超高线报警器,当P1.1端输出为低电平“0”时,二极管导通,灯亮发出报警信号
图8报警电路
第3节系统的软件设计
系统软件程序设计主要包括:
主程序设计,采样子程序设计,数据处理程序,显示子程序,串口通信程序等。
各芯片地址编码为:
RAM6116:
OFOOOH-OF7FFH81551/0口:
7FF8H-7FFDH
ADC0809:
OBFF8H-OBFFFH
3.1系统主程序设计
ADTURNOEQU21H;INO通道A/D转换数据存放首址
ADTURN1EQU2CH;IN1通道A/D转换数据存放首址
LINEADROEQU37H;1N0采集数据经滤波处理数据存
放地址
LINEADR1EQU38H;INl采集数据经滤波处理数
据存放地址
LINEADREQU39H;平均值存放地址
HUMIDEQU3BH;标度变换后的湿度值存放地址
BCDADREQU3CH;BCD转换后的湿度值存放地址
HUMADREQU3DH;上位机传来的湿度值存放地址
TIMEADREQU3EH;上位机传来的时间值存放地址
T100USEQU256-50;延时参
Cl00USEQU3FH
SHOWADREQU40H;显示区数据存放首址
ORGOOOOH
SJMPSTART
ORGOOOBH;定时器0中断服务程序入口
LimpTOINT
ORG0023H;串行I/O中断服务程序入口
LimpSERVE
ORG0050H
START:
MOVSP,#50H;设置堆栈
MOVHUMADR,#OFFH
SETBOD3H;选中寄存器3
SETSOD4H
MOVR0,#HUMADR
CLROD3H;选中寄存器0
CLROD4H
MovTMOD,#22H;主程序初始化
MovTH1,#OF3H
MovTLl,#OF3H
MovSCON,#50H
MovPCON,#80H
movDPTR,#7FF8H
movA,#4DH
MOVX@DPTR,A
SETBTR1
SETBEA
SETBES
RUN:
LCALLAD;调用A/D转换子程序
LCALLMAOPAO;调用滤波子程序
LCALLTURN;调用湿度转换子程序
MovA,HUMID;将湿度值送往上位机
MovSBUF,A
LCALLTWOSEC;延时等待两妙钟
LCALLBCDTURN;调用BCD转换子程序
LCALLSHOW;调用显示子程序
MovA,HUMID
CJNEA,HUMADR,COMP;检测到的湿度值大于上位机送来
的湿度值时,则循环采样,否则报
警灌溉
DONE:
CLRP1.1
LCALLALARM;调用报警延时子程序进行灌溉动作
LCALLTIME
ORLP1,#02H
LCALLTENMIN;灌水结束等待10分钟
LimpRUN;回到主程序
COMP:
JCDONE
LJMPRUN
END
3.2采样子程序设计
根据电路图5,因EOC未接入单片机,故只能采用延时等待的方法来读取A/D转换结果,ADC0809的INO和INl两个地址分别是OBFF8H,OBFF9H,INO通道采集到的11个数据放入以ADTURNO(片内21H)为首址的一片数据区内,IN1通道采集到的11个数据放入以ADTURN1(片内2CH)为首址的另一片数据区内。
程序清单:
AD:
MOVR0,#ADTURNO
MOVR6,#OBH
ADLOOP:
MOVDPTR,#OBFF8H;启动INO通道A/D转换
GOON:
MOVX@DPTR,A
MOVR7,#OAOH;延时等待转换结束
DLAY:
NOP
NOP
NOP
NOP
NOP
DJNZR7,DLAY
MOVXA,@DPTR
MOV@R0,A;将转换后的数据送入以
ADTURNO为首址的一片
RAM内
INCRO
DJNZR6,ADLOOP
SJMPAD
RET
3.3数据处理
3.3.1数字滤波技术
在单片机进行数据采集时,输入信号总难免受到这样那样的随机干扰,它们
来自被测信号源、传感器、外界干扰等,从而使A/D送入单片机的数据中存在误
差,这种因随机千扰而引入的误差为随机误差,其特点是在相同条件下测量同一
量时,其大小和符号作无规则变化而无法预测,但测量次数足够多时,其总体服
从统计规律,大多数随机误差服从正态分布。
为了克服随机干扰引起的误差,硬
件上可采用滤波技术;软件上可按照统计规律采用数字滤波方法来抑制有效信号
中的干扰成分,消除误差。
本系统即采用数字滤波法。
数字滤波无需硬件,它是用软件算法来实现的,只要适当改变软件滤波程序
的运行参数,就能方便的改变其滤波特性,实时性很强。
常用的数字滤波算法有:
限幅滤波法、中位值滤波法、算术平均滤波法、去极值平均滤波法、移动平均滤
波法、加权平均滤波法、低通滤波法、复合滤波法等。
中位值滤波法能有效的克服偶然因素引起的波动或采样器不稳定引起的误
码等脉冲干扰,对变化比较缓慢的被测参数采用此法能收到良好的滤波效果。
因
本系统的被测参数土壤湿度为缓慢变化参数,故采用中位值滤波算法。
中位值滤波算法实际上是一种排序方法,其具体思路是:
对被测参数连续采
样N次(一般N为奇数),然后把N次采样值按大小排列,取其中间值为本次采
样值。
本程序每次对土壤湿度连续采样11次,ADTURNO为片内RAM的21H地
址单元,是采样值放入内存的首地址,滤波结果放入片内RAM的37H地址单元,
即LINEADRO地址。
程序清单:
MAOPAO:
MOVRl,#ADTURNO
MOVR5,#OAH
CLROOH
FILTER:
MOV3CH,@R1
INCRl
MOVA,@R1
CLRC
SUBBA,3CH
JNCNEXT
MOVA,@Rl
MOV@R1,3CH
DECR1
MOV@Rl,A
INCRl
SETBOOH
NEXT:
DJNZR5,FILTER
JBOOH,MAOPAO
MOVLINEADRO,26H
RET
图9数字滤波程序流程图
3.3.2标度变换
在微机化测控系统中,经A/D转换器接口送入微机的数据,是对被测量进行
测量得到的原始数据。
这些原始数据送入微机后通常要先进行一定的处理,然后
才能输出作为显示器的显示数据。
例如当被测温度为1000C,经热电偶转换成热
电势,再经放大和A/D转换得到的数字是10,这个A/D转换结果10虽然与100
0C温度是对应的,但数字上并不是相等的。
因此,不能当作温度值去显示或打
印,必须把A/D转换结果10变换成供显示或打印的温度值100,这个变换就是
数字显示的标度变换。
在该系统中,湿度传感器和A/D相连,川D转换器和单片机相连,其中不包
括任何非线性的数字化测量通道,因此被测量的值N‘与A/D转换结果D,存在如
图10所示线性关系。
图10线性关系
在该系统中,土壤湿度测量范围0100%对应的输出电压范围为0-5V,ADC0809为8位A./D转换器,转换输出的数码为0255。
即根据上面公式,DL=0lDH=255,NL=0,NH=100.
TURN:
SETBOD3H
CLROD4H;选则第一组寄存器
CLRC
MOVA,LINEADR
MOVB,#20
MULAB
CLROD2H
MOVR7,B
MOVR6,A
MOVR5,#00H
MOVR4,#33H
LOOP1:
MOVA,R7
JNZLOOP2
MOVA,R6
JNZLOOP2
MOVR7,#0
MOVR6,#0
SJMP$
LOOP2:
CLRA
MOVR2,A
MOVR3,A
MOVRl,#16
ADIN:
CLRC
MOVA,R6
RLCA
MOVR6,A
MOVA,R7
RLCA
MOVR7,A
MOVA,R2
RLCA
MOVR2,A
MOVA,R3
RLCA
LOOP3:
DJNZR1,ADIN
MOVA,R3
JBACC.7,LOOP4
MOVA,R2
RLCA
MOVR2,A
MOVA,R3
RLCA
SUBBA,R5
JCDONE1
JNZLOOP4