做化妆品注册和注册的网站,后台网站更新 网站没显示,如何进行网站检查,网站备案需要哪些材料一、系统概述
自动浇水灌溉系统设计方案#xff0c;以AT89C51单片机为控制核心#xff0c;采用模块化的设计方法。
组成部分为#xff1a;5V供电模块、土壤湿度传感器模块、ADC0832模数转换模块、水泵控制模块、按键输入模块、LCD显示模块和声光报警模块#xff0c;结构如…一、系统概述
自动浇水灌溉系统设计方案以AT89C51单片机为控制核心采用模块化的设计方法。
组成部分为5V供电模块、土壤湿度传感器模块、ADC0832模数转换模块、水泵控制模块、按键输入模块、LCD显示模块和声光报警模块结构如下。 工作原理为土壤湿度传感器测出土壤湿度模拟信号经AD转换器将模拟信号转换成数字信号后传输到51单片机单片机将土壤湿度数据与设定的上下限值进行比较。 当土壤湿度低于下限时驱动水泵工作进行灌溉浇水并提供声光报警。设计获取蒋宇智QQ2327603104。
当土壤湿度增加至超过下限时声光报警关闭但水泵会继续工作直到土壤湿度继续增加并超过设定的上限值为止。
用户可通过按键设定湿度上下限值土壤湿度数据和上下限值数据均通过LCD显示屏实时显示。 二、土壤湿度传感器 Proteus仿真电路 三、原理图 仿真结果分析
打开Proteus仿真文件其后缀名为.DSN。双击单片机加载AutoWater.hex文件位于Keil C程序文件夹内运行仿真结果如下。 由图可知LCD显示当前测量的土壤湿度Humidity为53%系统预设的湿度上限HHigh的缩写为60%下限LLow的缩写为30%土壤湿度正常在上下限范围之内。资源获取蒋宇智QQ2327603104。
此时湿度低报警灯和蜂鸣器处于关闭状态继电器RL1开关打至下方水泵处于断电状态。
通过调节滑动变阻器RV2鼠标点击上下两个红色箭头改变输入到ADC0832采样通道0的电压大小来模拟土壤湿度的变化。
点击RV2向下的红色箭头模拟土壤湿度的降低。例如当土壤湿度从53%降低至23%低于下限值30%时红色LED报警灯点亮蜂鸣器发声继电器RL1开关打至上方水泵通电开始自动浇水绿色的水泵工作指示灯也被点亮。 点击RV2向上的红色箭头模拟土壤湿度的增加。
当土壤湿度从23%增加至37%超过下限时声光报警停止工作但水泵会继续工作直到土壤湿度继续增加到高于上限值为止过程如下所示。 需要说明的是水泵停止工作即土壤湿度超过上限后调节RV2模拟土壤湿度的下降在下降到上下限范围内时水泵不会启动只有土壤湿度继续下降至低于下限时才会启动。
通过按键可以预设湿度的上下限值。
点击“设定”键进入上下限设置模式首先是H上限值光标闪烁此时可以点击加/减键改变上限值大小。 上限值设置完成后点击“设定”键L下限值光标闪烁同理点击加/减键改变下限值大小。 上下限值都设置完成后再次点击“设定”键退出上下限设置模式。例如我们设置湿度上限值H为75%下限值L为25%结果如下图所示。 综上所述仿真运行效果满足设计要求。
四、C代码
void main()//主函数
{Init1602();//初始化液晶函数init(); //初始化定时器init_eeprom(); //开始初始化保存的数据while(1)//进入循环{for(m0;m50;m)//读50次AD值sum adc0832(0)sum; //读到的AD值将读到的数据累加到sumtempsum/50;//跳出上面的for循环后将累加的总数除以50得到平均值tempsum0; //平均值计算完成后将总数清零temp temp*0.390625; //ADC0832存储数据为1个字节湿度显示范围为0~100因此1单位湿度100/2560.390625
// if(tempfull_range)
// temp(temp*100)/full_range;
// else
// temp100;if(set0)//set为0说明现在不是设置状态Display_1602(temp,MH,ML);//显示AD数值和报警值if(tempMLset0)//湿度值小于报警值{//资源获取蒋宇智QQ2327603104flag1;//打开报警Relay0;//继电器触点闭合水泵工作LED_R0; //红灯点亮}else if(tempMHset0) //湿度值大于报警值{flag0;//关闭报警Relay1;//继电器触点打开水泵停止LED_R1; //红灯熄灭}else{flag0;LED_R1; //红灯熄灭}Key(); //调用按键函数}
} #include reg51.H#include intrins.h#define uint unsigned int#define uchar unsigned char#define ulong unsigned long#define LCDIO P0 //液晶屏数据口//ADC0832的引脚sbit ADCLK P1^1; //ADC0832 clock signalsbit ADDIO P1^3; //ADC0832 k insbit ADCS P1^4; //ADC0832 chip seclectsbit rsP1^0; //定义1602 RSsbit lcdenP1^2; //定义1602 ENsbit key1P3^0; //设定sbit key2P3^1; //加sbit key3P3^2; //减sbit motorP3^7; //继电器接口sbit speakP1^5; //蜂鸣器接口uchar key; //设定指针uint RH400,RL200;//水位上下限float temp_f;ulong temp;uchar v;uchar count,s1num;uchar code table[] moisture: ;uchar code table1[]RH: % ;uchar getdata; //获取ADC转换回来的值/*********************************************/void delay(uint z) //延时{uint x,y;for(xz;x0;x--)for(y110;y0;y--);}/**********************************************/void write_com(uchar com){rs0;// rd0;lcden0;P0com;delay(5);lcden1;delay(5);lcden0; }/*********************************************/void write_date(uchar date){rs1;// rd0;lcden0;P0date;delay(5);lcden1;delay(5);lcden0; }void lcdinit(){lcden0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);}/***********************************************/void init(){uchar num;for(num0;num15;num){write_date(table[num]);delay(5);}write_com(0x800x40);for(num0;num15;num){write_date(table1[num]);delay(5);}}//****************************************************************************//************读ADC0832函数************///采集并返回/****************************************************************************函数功能:AD转换子程序入口参数:CH如果读取CH0channel的值为0x01如果读取CH1则channel的值为0x03出口参数:adval****************************************************************************/uchar Adc0832() //AD转换返回结果{uchar i;uchar dat0;ADCLK0;ADDIO1;ADCS0; //拉低CS端ADCLK1; ADCLK0; //拉低CLK端,形成下降沿1ADDIO1;//指定转换通道是CH1还是CH2指定值位与0x1取最后一位的值ADCLK1; ADCLK0; //拉低CLK端,形成下降沿2ADDIO0;//指定值右移一位再取最后一位的值ADCLK1;ADCLK0; //拉低CLK端,形成下降沿3ADDIO1; for(i0;i8;i){ADCLK1;ADCLK0; //形成一次时钟脉冲if(ADDIO)dat| 0x80i; //收数据}ADCS1; //拉低CS端ADCLK1;ADDIO1; //拉高数据端,回到初始状态return(dat); //return dat}/***************************************************************************//********************************************************/void displayRH() //下限显示{write_com(0xc03);write_date(RH/100%100x30);//上限百位write_date(RH/10%100x30);//上限十位//write_date(.);//write_date(RH%100x30);}void displayRL() //下限显示{write_com(0xca);write_date(R);write_date(L);write_date(:);write_date(RL/100%100x30);//下限百位write_date(RL/10%100x30);//下限十位write_date(%);}/**************************************************//********************************************************/void keyscan() //按键处理{bit kk10,kk20;if(key10){delay(30);while(key10);if(key2){key0;}else{key;}switch(key){speak1;kk2motor;motor1;case 1:{write_com(0x0f);write_com(0xce); //光标闪烁while(key1!0) //等待按键松开{if(key20) //key2按键下{delay(30); //按键延时消抖if(key20) //确定key2按下{while(key20); //等待松开if(RL998){RL999; //RL下限最大设置为99}else{RL10; //RL加1} }displayRL(); //调用RL下限显示函数write_com(0xce);} if(key30) //key3按下{delay(30); //按键延时消抖if(key30) //确定key3按下{while(key30); //等待key3按键松开if(RL1) //RL最小设置为1{RL0;}else{RL-10; //RL下限减1}}displayRL(); //调用RL下限显示函数write_com(0xce);}}while(key10); }case 2:{write_com(0x0f);write_com(0xc4); //RH设置数据光标闪烁while(key11){if(key20) //key2按下{delay(30); //按键延时消抖if(key20) //确定key2按下{while(key20); //等待松开if(RH998) //RH最大设置为99{RH999;}else{RH10; //RH加1}}displayRH(); //RH上限显示函数write_com(0xc4);}if(key30) //key3按下{delay(30); //按键延时消抖if(key30) //确定按下{while(key30);//等待松开if(RH1) //RH最小设置为1{RH0;}else{RH-10; //RH减1}}displayRH(); //调用RH显示函数write_com(0xc4);}}while(key10);}case 0:{write_com(0x0c);motorkk2;break;}}}}/**************************************************/void Conut(void) //土壤检测数据转换{ vAdc0832();tempv;temp_ftemp*9.90/2.55;temptemp_f;temp1000-temp; write_com(0x8010);write_date(temp/100%100x30);//千位write_date(temp/10%100x30);//百位write_date(.);write_date(temp%100x30);write_date(%);//显示符号位}/********************************************************/void main(void){lcdinit();init();displayRH(); //显示上限displayRL(); //显示下限delay(50); //启动等待等LCD讲入工作状态delay(50); //延时片刻(可不要)delay(50); //延时delay(50);Conut(); //显示函数delay(150); while(1){ Conut(); //显示当前湿度keyscan();if(tempRH) //如果湿度大于上限停止浇水{motor1; //关闭继电器}else if(tempRL) //如果湿度小于RL下限启动浇水{motor0; //启动继电器}if(tempRL) //小于下限启动报警并浇水{speak0; //启动报警delay(150); //延时speak1;}keyscan(); //按键检测delay(150); //延时50MS}} 文章转载自: http://www.morning.wbqk.cn.gov.cn.wbqk.cn http://www.morning.gfznl.cn.gov.cn.gfznl.cn http://www.morning.btblm.cn.gov.cn.btblm.cn http://www.morning.nngq.cn.gov.cn.nngq.cn http://www.morning.ntgrn.cn.gov.cn.ntgrn.cn http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn http://www.morning.rsszk.cn.gov.cn.rsszk.cn http://www.morning.xhpnp.cn.gov.cn.xhpnp.cn http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn http://www.morning.tmlhh.cn.gov.cn.tmlhh.cn http://www.morning.rlbc.cn.gov.cn.rlbc.cn http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn http://www.morning.psdsk.cn.gov.cn.psdsk.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn http://www.morning.yxzfl.cn.gov.cn.yxzfl.cn http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn http://www.morning.hilmwmu.cn.gov.cn.hilmwmu.cn http://www.morning.mhwtq.cn.gov.cn.mhwtq.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.zstry.cn.gov.cn.zstry.cn http://www.morning.tsycr.cn.gov.cn.tsycr.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn http://www.morning.hsgxj.cn.gov.cn.hsgxj.cn http://www.morning.tdscl.cn.gov.cn.tdscl.cn http://www.morning.cdlewan.com.gov.cn.cdlewan.com http://www.morning.knqck.cn.gov.cn.knqck.cn http://www.morning.zlgr.cn.gov.cn.zlgr.cn http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn http://www.morning.grtwn.cn.gov.cn.grtwn.cn http://www.morning.wzjhl.cn.gov.cn.wzjhl.cn http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn http://www.morning.bjjrtcsl.com.gov.cn.bjjrtcsl.com http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn http://www.morning.qnbck.cn.gov.cn.qnbck.cn http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn http://www.morning.gcqs.cn.gov.cn.gcqs.cn http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn http://www.morning.qrpdk.cn.gov.cn.qrpdk.cn http://www.morning.dangaw.com.gov.cn.dangaw.com http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn http://www.morning.glswq.cn.gov.cn.glswq.cn http://www.morning.mjdbd.cn.gov.cn.mjdbd.cn http://www.morning.gthgf.cn.gov.cn.gthgf.cn http://www.morning.pzbjy.cn.gov.cn.pzbjy.cn http://www.morning.smcfk.cn.gov.cn.smcfk.cn http://www.morning.pggkr.cn.gov.cn.pggkr.cn http://www.morning.xznrk.cn.gov.cn.xznrk.cn http://www.morning.dyxlj.cn.gov.cn.dyxlj.cn http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn http://www.morning.kwnbd.cn.gov.cn.kwnbd.cn http://www.morning.qzfjl.cn.gov.cn.qzfjl.cn http://www.morning.sgqw.cn.gov.cn.sgqw.cn http://www.morning.clbsd.cn.gov.cn.clbsd.cn http://www.morning.jntcr.cn.gov.cn.jntcr.cn http://www.morning.lkhfm.cn.gov.cn.lkhfm.cn http://www.morning.pjfmq.cn.gov.cn.pjfmq.cn http://www.morning.jcbjy.cn.gov.cn.jcbjy.cn http://www.morning.nfmlt.cn.gov.cn.nfmlt.cn http://www.morning.hmdyl.cn.gov.cn.hmdyl.cn http://www.morning.hbfqm.cn.gov.cn.hbfqm.cn http://www.morning.kycxb.cn.gov.cn.kycxb.cn http://www.morning.wjqyt.cn.gov.cn.wjqyt.cn http://www.morning.qzpkr.cn.gov.cn.qzpkr.cn http://www.morning.twfdm.cn.gov.cn.twfdm.cn http://www.morning.syhwc.cn.gov.cn.syhwc.cn http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn http://www.morning.bhpsz.cn.gov.cn.bhpsz.cn http://www.morning.ycgrl.cn.gov.cn.ycgrl.cn http://www.morning.yjmns.cn.gov.cn.yjmns.cn http://www.morning.mbmh.cn.gov.cn.mbmh.cn http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn http://www.morning.znpyw.cn.gov.cn.znpyw.cn http://www.morning.bwttp.cn.gov.cn.bwttp.cn http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn http://www.morning.pqjlp.cn.gov.cn.pqjlp.cn http://www.morning.dsncg.cn.gov.cn.dsncg.cn http://www.morning.fdhwh.cn.gov.cn.fdhwh.cn