C51单片机控制电磁阀开关为主体,按键输入湿度值,电磁阀控制水流的自动浇水系统。求仿真和程序。

用C51单片机实现自动加水的程序_百度知道
用C51单片机实现自动加水的程序
我有更好的答案
需要液位传感器,水泵。单片机采集液位传感器水位的高低,控制水泵补水。
采纳率:83%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。智能花盆自动浇水系统的设计_毕业设计说明书doc下载_爱问共享资料
智能花盆自动浇水系统的设计_毕业设计说明书.doc
智能花盆自动浇水系统的设计_毕业设计说明书.doc
智能花盆自动浇水系统的设计_毕业设计说明书.doc
简介:本文档为《智能花盆自动浇水系统的设计_毕业设计说明书doc》,可适用于高等教育领域,主题内容包含智能花盆自动浇水系统的设计毕业设计说明书河南理工大学毕业设计说明书盆花自动浇水系统的设计测控级班指导老师:摘要:本次设计的盆花自动浇水系统包括土壤温符等。
侵权或盗版
*若权利人发现爱问平台上用户上传内容侵犯了其作品的信息网络传播权等合法权益时,请按照平台要求书面通知爱问!
赌博犯罪类
在此可输入您对该资料的评论~
添加成功至
资料评价:盆花自动浇水系统的设计--《科技创新与应用》2016年11期
盆花自动浇水系统的设计
【摘要】:文章介绍了一种基于AT89S51单片机的便捷、高可靠性的盆花自动浇水系统的设计方法。本设计采用HM1500湿度传感器检测花盆的土壤湿度,单片机根据土壤湿度判断是否需要进行浇水,如需要浇水,单片机控制继电器继而控制电磁阀实现浇水。此外,为保证供水水箱的水位,采用星仪CYW11投入式静压液位变送器检测水箱液位,利用单片机控制水位在规定的范围内。
【作者单位】:
【分类号】:S688;S237
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【相似文献】
中国期刊全文数据库
;[J];中国花卉盆景;1986年03期
孙嘉燕;[J];农机化研究;1995年01期
蔡志清,何建平;[J];南京林业大学学报;1996年03期
马德智;李巴津;;[J];绿色科技;2012年09期
杨少慧;杨延峰;;[J];烟台职业学院学报;2006年04期
吴英才;[J];湛江水产学院学报;1995年02期
;[J];;年期
中国重要会议论文全文数据库
王阳;陈军宁;柯导明;孟坚;;[A];全国第16届计算机科学与技术应用(CACIS)学术会议论文集[C];2004年
侯建军;;[A];四川省电子学会传感技术第九届学术年会论文集[C];2005年
李小兵;杨明红;廖招龙;;[A];中国光学学会2010年光学大会论文集[C];2010年
朱岳辉;;[A];江苏省计量测试学会2005年论文集[C];2005年
周锋;张淑娟;刘泰宏;丁立平;房喻;;[A];中国化学会第28届学术年会第11分会场摘要集[C];2012年
谢晓;王文;何世堂;;[A];中国声学学会第十届青年学术会议论文集[C];2013年
曾欢欢;赵湛;王奇;方震;张博军;;[A];中国微米、纳米技术第七届学术会年会论文集(一)[C];2005年
李扬;邓超;杨慕杰;;[A];2011年全国高分子学术论文报告会论文摘要集[C];2011年
向光华;忽满利;乔学光;刘玉;;[A];2011西部光子学学术会议论文摘要集[C];2011年
邓超;李扬;杨慕杰;;[A];2011年全国高分子学术论文报告会论文摘要集[C];2011年
中国重要报纸全文数据库
重庆中易电测技术研究所;[N];电子报;2000年
吴琼;[N];中国电子报;2000年
;[N];中国电子报;2002年
;[N];消费日报;2010年
江西 李靖 编译;[N];电子报;2011年
潘建;[N];电子报;2001年
青化 摘译;[N];电子报;2010年
中国博士学位论文全文数据库
姚尧;[D];西南交通大学;2013年
赵振刚;[D];哈尔滨工业大学;2012年
丁喜波;[D];哈尔滨理工大学;2005年
王蕊;[D];吉林大学;2010年
贺媛;[D];吉林大学;2011年
中国硕士学位论文全文数据库
杜鹏;[D];西南交通大学;2015年
刘喆;[D];华中师范大学;2015年
林瑶;[D];电子科技大学;2015年
谢唯静;[D];武汉理工大学;2015年
刘文慧;[D];齐齐哈尔大学;2015年
崔千红;[D];兰州大学;2010年
汤慕豪;[D];华中科技大学;2012年
凌娇;[D];电子科技大学;2013年
刘守兵;[D];东华大学;2014年
张会锐;[D];浙江大学;2004年
&快捷付款方式
&订购知网充值卡
400-819-9993拒绝访问 | www.vipzhuanli.com | 百度云加速
请打开cookies.
此网站 (www.vipzhuanli.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(f439a-ua98).
重新安装浏览器,或使用别的浏览器查看: 1626|回复: 17
单片机自动浇花系统(附原理图、仿真文件、源程序)
(共享资料)自己做的基于stc89c51单片机的自动浇花系统,有自动和手动两种模式,可以设置湿度的上下限,利用lcd1602显示,有一点遗憾的是设置湿度上下限时,没有光标闪动提示,希望大家给点建议,帮助改进,我把源程序附在这。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
protues仿真
单片机源代码:
#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=P2^7;& && && &//LCD1602的控制位
sbit lcd_e=P2^6;
sbit key1=P1^4;& && && && && &&&//独立按键
sbit key2=P3^2;
sbit key3=P3^3;
sbit relay=P1^6;& &&&//继电器
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)& && && && && && && && && && && && && &
{
& && &&&
& && &&&while(a--)
& && &&&for(i=0;i&125;i++);
}
*************************************/
/*******************延时函数50us******************/
void delay_50us(uint a)
{
& && &&&
& && &&&while(a--)
& && &&&for(i=0;i&19;i++);
}
/*************************************/
/*******************ADC读取******************/
uchar read_ad(uchar channel)&&
{
& && &&&
& && &&&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=//0对应通道0,1对应通道1
& && &&&ad_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=
& && &&&delay_50us(10);
& && &&&lcd_e=1;
& && &&&delay_50us(10);
& && &&&lcd_e=0;
}
void write_data(uchar dat)&&//写数据
{
& && &&&lcd_e=0;
& && &&&lcd_rs=1;
& && &&&P0=
& && &&&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)&&//显示字符串
{
& && &&&
& && && &write_com(0x80+add);
& && &&&while(dat!=0&&(*dat!='\0')&&i&16)
& && &&&{
& && && && && &&&write_data(*dat);
& && && && && & dat++;
& && && && && & i++;
& && && && && & if(i==15) i=0;
& && &&&}
}
/*****************************************/
/****************主函数*******************/
void main()
{
& && &&&EA=1;& && && && && && && && && && && && && && && && && && && & //开总中断
& && &&&EX0=1;& && && && && && && && && && && && && && && && && && && & //开外部中断0
& && &&&EX1=1;& && && && && && && && && && && && && && && && && && && & //开外部中断1
& && &&&IT0=0;& && && && && && && && && && && && && && && && && && && & //外部中断0触发方式为低电平
& && &&&IT1=0;& && && && && && && && && && && && && && && && && && && & //外部中断1触发方式为低电平
& && &&&
& && &&&init_lcd1602();& && &&&
& && &&&
& && &&&display_string(0,&Hum:&&%&);& && &//实时显示当前的湿度
& && &&&display_string(11,&H:&&%&);& && & //显示设置的湿度最大值
& && &&&display_string(0x40,&Mode:&);& && && & //显示工作模式
& && &&&display_string(0x40+11,&L:&&%&);&&//显示设置的湿度最小值
& & while(1)
& && &&&{& && &&&
& && && && && &
& && && && && &
& && && && && & i=100-read_ad(0)*0.39;
& && && && && & display_shu(4,i);
& && && && && & display_shu(13,Hum_H);
& && && && && & display_shu(0x40+13,Hum_L);
& && && && && & if(key1==0)& && &&&
& && && && && && && && &{
& && && && && && && && && && &&&delay_50us(100);
& && && && && && && && && && &&&if(key1==0)
& && && && && && && && && && &&&{
& && && && && && && && && && && && && & while(!key1);
& && && && && && && && && && && && && & num++;
& && && && && && && && && && && && && & if(num&2) num=0;
& && && && && && && && && && &&&}& && &&&
& && && && && && && && && &
& && && && && && && && && && &&&switch (num)& && && && && && && && && && && && && &&&//选择工作模式和调整湿度设置最大、最小值
& && && && && && && && && & {
& && && && && && && && && && &&&case 0:flag=~
& && && && && && && && && && && && && && & flag_jia=0;
& && && && && && && && && && && && && && & flag_jian=0;
& && && && && && && && && && && && && && & //write_com(0x80+0x40);
& && && && && && && && && && && && && &//write_com(0x0f);
& && && && && && && && && && && && && && &
& && && && && && && && && && &&&case 1://write_com(0x80+9);
& && && && && && && && && && && && && &//write_com(0x0f);
& && && && && && && && && && && && && && & //delay_50us(1000);
& && && && && && && && && && && && && && & //write_com(0x0c);
& && && && && && && && && && && && && && & flag_jia=1;
& && && && && && && && && && && && && && & flag_jian=0;
& && && && && && && && && && && && && && &
& && && && && && && && && && &&&case 2://write_com(0x80+0x40+9);
& && && && && && && && && && && && && &//write_com(0x0f);
& && && && && && && && && && && && && && & //delay_50us(1000);
& && && && && && && && && && && && && && & //write_com(0x0c);
& && && && && && && && && && && && && && & flag_jian=1;
& && && && && && && && && && && && && && & flag_jia=0;
& && && && && && && && && && && && && && && && &&&
& && && && && && && && && &}
& && && && && && && && && &if(flag==0&&num==1)& && &&&
& && && && && && && && && &{
& && && && && && && && && && && &&&flag=~
& && && && && && && && && && && &&&num=0;
& && && && && && && && && && && &&&flag_jia=0;
& && && && && && && && && && && &&&flag_jian=0;
& && && && && && && && && &}& && && && && &
& && && && && && &&&}& && && && && && &
& && && && && & if(flag==0)& && && && && && && && && && &//手动模式
& && && && && & {
& && && && && && && && &
& && && && && && && && & display_string(0x40+5,&MT&);
& && && && && && && && &if(flag_motor) relay=1;
& && && && && && && && &else if(i&Hum_H) relay=0;& && && & //不能超过湿度最大值
& && && && && && && && &else relay=1;
& && && && && & }& && && && && && && && && && &&&
& && && && && & else& && && && && && && && && && && && && && && && && && && & //自动模式
& && && && && & {
& && && && && && && && &display_string(0x40+5,&AT&);
& && && && && && && && &if(i&(Hum_L+Hum_H)/2)& && && && && && & //最大和最小值的平均值作为抽水的判断条件
& && && && && && && && &{
& && && && && && && && && && && &relay=0;
& && && && && && && && &}
& && && && && && && && &else relay=1;
& && && && && & }
& &&&}& && &&&
}
/********************************************/
/***********************外部中断*********************/
void int0() interrupt 0
{
& && &&&delay_50us(20);
& && &&&if(key2==0)
& && &&&while(!key2);
& && &&&flag_motor=~flag_
& && &&&if(flag&&flag_jia)
& && && & {
& && && && && && &&&//write_com(0x80+9);
& && && && &&&//write_com(0x0f);
& && && && && && &//delay_50us(1000);
& && && && &&&//write_com(0x0c);
& && && && && && &//delay_50us(1000);
& && && && && && &Hum_H++;
& && && && && && &if(Hum_H&=99) Hum_H=99;
& && && & }
& && &&&if(flag&&flag_jian)
& && && & {
& && && && && && &&&//write_com(0x80+0x40+9);
& && && && && && &//write_com(0x0f);
& && && && && && &//delay_50us(1000);
& && && && && && &//write_com(0x0c);
& && && && && && &//delay_50us(1000);
& && && && && && &Hum_L++;
& && && && && && &if(Hum_L&=Hum_H) Hum_L=Hum_H-1;
& && && & }& &
void int1() interrupt 2
{
& && &&&delay_50us(20);
& && &&&if(key3==0)
& && &&&while(!key3);& && &&&
& && &&&if(flag&&flag_jian)
& && && & {
& && && && && && &&&//write_com(0x80+0x40+9);
& && && && && && &//write_com(0x0f);
& && && && && && &//delay_50us(1000);
& && && && && && &//write_com(0x0c);
& && && && && && &//delay_50us(1000);
& && && && && && &Hum_L--;
& && && && && && &if(Hum_L&=1) Hum_L=1;
& && && & }
& && &&&if(flag&&flag_jia)
& && && & {
& && && && &&&//write_com(0x80+9);
& && && && &&&//write_com(0x0f);
& && && && && && &//delay_50us(1000);
& && && && &&&//write_com(0x0c);
& && && && && && &//delay_50us(1000);
& && && && && && &Hum_H--;
& && && && && && &if(Hum_H&=Hum_L) Hum_H=Hum_L+1;
& && && & }
}
/********************************************/复制代码全部资料51hei下载地址:
(33.96 KB, 下载次数: 100)
12:01 上传
点击文件名下载附件
共享资料的黑币奖励!
共享资料的黑币奖励!
在吗,怎么在keil3_full编译不行的,我一摸一样复制的
在吗,怎么在keil3_full编译不行的,我一摸一样复制的
提示什么错误 我用的keil4编译环境
共享资料的黑币奖励!
adc0832不能仿真怎么办
我是小白,请问左下角的那个圆形在ISIS中怎么找啊
在吗,怎么在keil3_full编译不行的,我一摸一样复制的
格式不对或者缺少什么语句,仔细检查,如果代码没问题建议换keil 4
给你点赞,暂时不下载 ,需要的时候自然下载
没有下载电路吧
非常给力!!!
很不错,能仿真出来
感谢楼主分享
可以用keil 4编译成功,仿真可以
又没有做出来东西
身为一个小白感觉很厉害厉害
请问能解释一下AD原理图继电器模块与电源接口模块的工作原理吗,看不太懂。
Powered by

我要回帖

更多关于 单片机控制电磁阀电路 的文章

 

随机推荐