基于单片机自动节水灌溉系统设计本科毕业论文(编辑修改稿)内容摘要:

准确性与长期稳定性。 小巧化的体积设计,方便携带和安装。 结构设计合理密封,不锈钢探针保证适用性和广泛性。 以环氧树脂密封胶灌封,可以直接埋入土壤中使用且不受腐蚀,保证较长的使用寿命。 很高的测量灵敏度和精度,采用高抗干扰设计,性能可靠稳定。 420mA 工业通用接口,使现场测量更加灵活多变,可适应多种场合。 技术参数: 接口说明: 设备输出三线接口,红黑线是传感器电源接口,绿线是电流输出接口。 接口会引出三 个接线座方便用户接线。 本设备绿线和黑线为 42mA 电流输出,供电电压为红线和黑线,电压为 1224V 之间。 具体颜色与引脚定义如下表所示: 本设备采集工业通用的电流 420mA 信号输出的方式,下图为典型的应用接线示意图。 其中 V为电源的负极。 V+与 V之间通常在本地接入电源。 而 A+与 A之间为水分信号电流输出。 因输出为是电流信号,故可以远距离信号传输。 理论上最大可以在 1000米距离范围内可靠传输。 使用说明: 土壤含水率:规定条件下测得的土壤中水的量,以土壤的烘前质量与烘干质量的差数对烘干质量的百分率表示。 简单地说就是: (湿重 干重 )/干重 100%,含水率为土壤中自由水的质量在土壤总质量中占的百分比。 实际使用时,当土壤中的含水量超过 24%时土壤已达到饱和且呈溢出水状态,因此检测含水量超过 24%的值没有实际意义。 农作物正常生长所需的适宜含水率土壤为12%20%范围之内。 因此仅需要检测低于饱和含水量 24%的含水量就满足灌溉和各种生产实际需要了。 因此该传感器的动态定为 024%检测范围表示为 0100%的土壤含水率 输出。 因输出为模拟量, 420mA 分别对应设定的满量程。 A/D 转换器的选用 A/ D转换是把模拟量信号转化成与其大小成正比的数字置信号, A/ D转换电 路是数据采集系统的核心电路。 目前 A/ D转换电路的种类繁多,但大量投放市场的单片集成或模块 A/ D按其转换原理主要分为逐次逼近式、双积分式、量化反馈式和并行式 A/ D转换器。 双积分式 A/ D转换器转换精度高,抗干扰能力强、价格 低,但转换速度较慢;并行式转换器速度快,但价格高:逐次逼近式 A/ D转换器,转换精度较高、速度快,大约在几微妙到几百微妙之间,但抗干扰能力弱。 总的来讲逐次逼近式 A/ D转换器的性价比最高,应用最广泛,国内使用较多的芯片有ADC0808/ 0809,ADC0801ADC0805及 ADC0816/ 0817和 ADS74等.本系统选用中速、低廉的逐次逼近式 ADC0809模数转换芯片。 A/ D转换爨的主要技术指标为: ① 分辨率表示输出数字量变化一个相邻数码所需输入模拟电压的变化量,习惯上以输出的二进制位数或 BCD码位数表示。 ② 量化误差由 A/ D转换器的有限分辨率面引起的误差。 ③ 转换精度反映一个实际 A/ D转换器在量化值上与理想 A/ D转换器的差值。 ④ 转换速率指能够重复进行数据转换的速疫,即每秒转换的次数。 显示器件选取 显示部分选用 1602 液晶显示共十六引脚, 1602 液晶模块内部的字符发生存储器( CGROM)已经存储了 160 个不同的点阵字符图形,如表 1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“ A”的代码是 01000001B( 41H),显示时模块把地址 41H中的点阵字符图形显示出来,我们就能看到字母“ A”。 蓝底白字标准型 16X2 液晶显示字符模块(背光 /蓝屏) 1602 采用标准的 16 脚接口,其中 : 第 1 脚: VSS 为地电源 第 2 脚: VDD 接 5V 正电源 第 3 脚: V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度 第 4 脚: RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第 5 脚: R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。 当 RS和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 RW为高电平时可以读忙信号,当 RS 为高电平 RW为低电平时可以写入数据。 第 6 脚: E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。 第 7~ 14 脚: D0~ D7 为 8位双向数据线。 第 15 脚:背光电源正极 第 16 脚:背光电源负极 开关与报警选取 开关部分采用控制开关来控制电路。 报警装置采用的是蜂鸣器以及二极管。 本系统下位机以单片机为核心,采用 C语言编程。 C语言是书写程序的一种软件语言,它是计算机软件设计的重要工具。 在系统软件开发、实时控制的和实时处理领域中有着不可替代的地位。 用 C语言编程使编程简洁易懂,进而进行高质量的设计,而且它不独立于具体机器,是一种非常通用的高级程序设计语言,采用 C语言编程,因此,在已经有众多高级语言和可视化集成开发环境工具的今天,C语言有着重要的有效的程序设计语言地位。 时钟电路 单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。 MCS51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚 XTALl 和 XTAL2 分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图所示在其外接晶体振荡器 (简称晶振 )或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。 图中外接晶体以及电容 C2 和 C3 构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为 30PF 左右,晶振频率选 12MHz。 复位电路 为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使 CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要 RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位。 但如果 RST引脚上持续为高电平,单片机就处于循环复位状态。 复位后系统将输入/输出 (I/ O)端口寄存器置为 FFH,堆栈指针 SP置为 07H, SBUF内置为不定值,其余的寄存器全部清 0,内部RAM的状态不受复位的影响,在系统上电时 RAM的内容是不定的。 复位操作有两种情况,即上电复位和手动 (开关 )复位。 本系统采用上电复位方式。 数据采集处理电路 ADC0809是一种 8位逐次逼近 AD转换器,内部具有锁存控制的 8路模拟开关,外接 8路模拟输入端,可同时对 8路 O一 5V的输入模拟电压信号分时进行采集转换,本系统只用到 IN0输入通道。 ADC0809转换器的分辨率为 8位,最大不可调误差小于177。 1LSB,采用单一 +5V供电,功耗为 15mW,不必进行零点和满度调整。 由于ADC0809转换器的输出数据寄存器具有可控的三态输出功能,输出具有三态锁存缓冲器,故其 8位数据输出引脚可直接与数据总线相连。 AD转换器需外部控制启动转换信号方能进行转换,这一启动转换信号可由 CPU提供,不同型号的 A/ D转换器,对启动转换信号的要求也不同,分脉冲启动和电平启动两种, ADC0809采用脉冲启动转换,只需给 A/ D转换器的启动控制转换的输入引脚 (START)上,加入正脉冲信号,即启动 A/ D转换器进行转换,转换开始后,转换结束信号输出端 (EOC)信号变低,转换结束时, EOC返回高电平,以通知主机读取转换结果的数字量,这个信号可以作为 A/ D转换器的状态信号供查询,也可以用作中断请求信号。 本系统中 ADC0809与 AT89C51单片机的接口如图 4. 5所示,采用等待延时方 ADC0809的时钟频率范围要求在 10一 1280kHz,采用定时器给其脉冲频率。 如图连接方式,ADC0809的 8位数据输出引脚可 直接与数据总线相连,地址译码引脚 A、 B、 C分别接地,以选通 IN0通道。 AT89C51的 P:。 作为片选信号,在启动 AID转换时,由单片机的写信号 WR和 P:。 控制 ADC的地址锁存和转换启动。 由于 ALE与 START连在一起,因此 ADC0809在锁存通道地址的同时也启动转换,在读取转换结果时,用单片机的读信号 RD和 P。 引脚一级或菲门产生的正脉冲作为 OE信号,用以打开三态输出锁存器。 LCD 液晶显示 该系统采用 1602 液晶显示,数据口接单片机 P0 口,和 AD0809 公用数据口,LCD 显示简单,电路接线也简单,价格也便宜。 报警系统 为了在某些紧急状态或反常状态下,能使操作人员不致忽视,以便及时处理,往往需要有某种更能引起人们注意提起警觉的报警信号产生,这种报警信号通常有三种类型:闪光报警、鸣音报警、语音报警,本系统采用简单易行的光报警 电路。 报警设备选用压电式蜂鸣器,它约需要 10mA 的驱动电流,只需在其两条引线上加 3一 15v 的直流电压,即可产生 3KHz 左右的蜂鸣声音,图中蜂鸣器的一端接在高电平 +5V,另一端接 P1. 7,在初态 P1. 7始终输出高电平 1,当需要报警时,程序对其端口清 零即可,声音的长短可用延时程序控制实现。 系统软件程序设计主要包括:主程序设计.采样子程序设计。 数据处理程序 LCD显示子程序 ,开关控制,蜂鸣器报警。 头文件 文件名称: 版 本: Keil uVision4 控 制 器 : STC89C51/STC89C52RC/AT89C51/AT89C52@12MHz 说 明:基于 SHT10 的自动花草浇水器控制程序 说 明:传感器 SHT10,液晶显示器 LCD1602,蜂鸣器报警 ,继电器控制 ,按键设置 说 明:液晶实时显示采集的湿度值 ,显示湿度界限值,浇水倒计时时间 说 明:三个设置按键 ,一个设定按键 ,一个增加按键 ,一个减少按键 ,检测频率 150ms 说 明:测量湿度值小于湿度界限值,自动打开继电器浇水,蜂鸣器报警提示 说 明:倒计时运行,显示倒计时。 加水期间,湿度值大于界限值,自动停止浇水 ****************************************************************************/ /*includes*/ include include /*typedefs*/ typedef unsigned char u8。 typedef unsigned int u16。 /*继电器底层控制函数 */ /*sbits*/ sbit Pin_Relay = P1^3。 //Pin of Relay /*defines*/ define Relay_ResetPin() Pin_Relay = 0 define Relay_SetPin() Pin_Relay = 1 /**************************************************************************** * 函数名称 : Relay_Control(unsigned char State) * 功能书名: 继电器 1 控制函数 ******************************************************************************/ void Relay_Control(unsigned char State) { if(State) {Relay_ResetPin()。 } else {Relay_SetPin()。 } } /*蜂鸣器驱动函数 */ /*sbits*/ sbit Pin_BuzzePhone = P2^4。 //Button pin of BuzzePhone /*defines。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。