链接:https://pan.baidu.com/s/1FYp5D9MMMFs5CjUBvrtODw
提取码:v4di
基本框架
该电路的工作原理是由STC89C52单片机和ADC0832组成系统的核心部分,湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号。选用湿度传感器和AD转换,电路内部包含有湿度采集、AD转换、单片机译码显示等功能。单片机需要采集数据时,发出指令启动A/D转换器工作,ADC0832根据送来的地址信号选通IN1通道,然后对输入的模拟信号进行转换,转换结束时,EOC输出高电平,通知单片机可以读取转换结果,单片机通过调用中断程序,读取转换后的数据。最后,单片机把采集到的湿度数据经过软件程序处理后送到LCD1602进行显示。自动浇水系统设计为智能和手动两个部分:智能浇水部分是通过单片机程序设计浇水的上下限值与感应电路送入单片机的土壤湿度值相比较,当低于下限值时,单片机输出一个信号控制浇水,高于上限值时再由单片机输出一个信号控制停止浇水;手动部分是由通过关闭单片机电源,由外围电路供电进行浇灌。
土壤温湿度采集与显示
土壤温湿度采集与显示系统以单片机STC89C52为控制核心,通过软件设置达到具体动作实现。土壤的温湿度是由ADC0832和两个点位器进行模拟并送入单片机,通过单片机的I/O口把检测到的土壤温湿度值用LCD显示出来。同时,如果系统在智能浇水设置情况下,则该值与设定的浇水上下限值相比较,若低于下限值,则单片机发出一个控制信号,开始浇水。若高于上限值时,单片机再发出一个控制信号控制,停止浇水。如果系统设置在手动浇水情况下,则按照设定好的定时浇水时间进行浇水,温湿度检测电路把检测到的土壤温湿度值显示在LCD上,以达到对土壤温湿度实时监测的目的。
仿真图:
原理图:
#include<reg51.h> #define uchar unsigned char #define uint unsigned int sbit ad_cs=P1^3; //ADC0832的控制位 sbit ad_clk=P1^0; sbit ad_dat=P1^1; sbit lcd_rs=P3^0; //LCD1602的控制位 sbit lcd_e=P3^1; sbit key1=P1^4; //独立按键 sbit key2=P3^2; sbit key3=P3^3; sbit relay=P1^6; //继电器 sbit led=P1^7; //指示灯 bit flag=1; //工作模式标志 bit flag_motor=1; //手动模式下,抽水机开关标志 bit flag_jia=0; bit flag_jian=0; uchar Hum_H=60; //自动模式下,湿度设定最大值 uchar Hum_L=30; //自动模式下,湿度设定最小值 uchar num=0; /********************延时函数1ms***************** void delay_ms(uint a) {uint i;while(a--)for(i=0;i<125;i++); } *************************************/ /*******************延时函数50us******************/ void delay_50us(uint a) {uint i;while(a--)for(i=0;i<19;i++); } /*************************************/ /*******************ADC读取******************/ uchar read_ad(uchar channel) {uchar i;uchar dat1,dat2;ad_clk=0;ad_cs=0;ad_dat=1;ad_clk=1;ad_clk=0; //起始信号ad_dat=1;ad_clk=1;ad_clk=0; //选择单通道模式ad_dat=channel;//0对应通道0,1对应通道1ad_clk=1;ad_clk=0;ad_dat=1;for(i=0;i<8;++i){ad_clk=1;ad_clk=0;dat1=dat1<<1;if(ad_dat)dat1|=0x01;}for(i=0;i<8;i++){dat2=dat2>>1;if(ad_dat)dat2|=0x80;ad_clk=1;ad_clk=0;}ad_cs=1;return (dat1==dat2)?dat1:0; } /*************************************/ /*******************LCD1602初始化******************/ void write_com(uchar com)//写指令 {lcd_e=0;lcd_rs=0;P0=com;delay_50us(10);lcd_e=1;delay_50us(10);lcd_e=0; } void write_data(uchar dat) //写数据 {lcd_e=0;lcd_rs=1;P0=dat;delay_50us(10);lcd_e=1;delay_50us(10);lcd_e=0; } void init_lcd1602() //lcd 初始化 {delay_50us(300);write_com(0x38);delay_50us(100);write_com(0x38);delay_50us(100);write_com(0x38);write_com(0x38);write_com(0x08);write_com(0x01);write_com(0x06);write_com(0x0c); } void display_shu(uchar add,uchar dat) //显示数字 {uchar l,m; //k=dat/100;l=dat%100/10;m=dat%10;write_com(0x80+add); //write_data(k+0x30);write_data(l+0x30);write_data(m+0x30); } void display_string(uchar add,uchar *dat) //显示字符串 {uchar i;write_com(0x80+add);while(dat!=0&&(*dat!=' ')&&i<16){write_data(*dat);dat++;i++;if(i==15) i=0;} } /*****************************************/ /****************主函数*******************/ void main() {EA=1; //开总中断EX0=1; //开外部中断0EX1=1; //开外部中断1IT0=0; //外部中断0触发方式为低电平IT1=0; //外部中断1触发方式为低电平init_lcd1602(); //relay=0;display_string(0,"Hum: %"); //实时显示当前的湿度display_string(11,"H: %"); //显示设置的湿度最大值display_string(0x40,"Mode:"); //显示工作模式display_string(0x40+11,"L: %"); //显示设置的湿度最小值
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176相关知识
基于51单片机的智能浇花系统(可做毕设)
基于51单片机土壤湿度检测及自动浇花浇灌系统
基于STM32单片机远程浇花花盆GSM短信浇水补光灌溉系统
基于51单片机智能浇花控制系统 土壤湿度计设计 自动灌溉 大棚土壤湿度采集 光照采集 光照补偿 智能花卉 成品 套件 DIY设计 实物+源程序+原理图+仿真+其它资料
基于单片机智能花卉灌溉浇花浇水检测系统设计
第七讲:7.物联网土壤湿度远程监控+自动花浇水
基于单片机的智能浇花(灌溉)系统设计
自动浇水系统设计
基于51单片机智能浇花浇水花卉灌溉水滴水分检测无线设计23
基于51单片机智能浇花浇水花盆自灌溉土壤湿度无线视频监控设计1
网址: 基于51单片机的自动浇花浇水系统LCD1602显示仿真 https://m.huajiangbk.com/newsview154927.html
上一篇: 桂花的品种分类,桂花的品种分类及 |
下一篇: 51单片机——自动浇花系统(含全 |