历史上的今天
今天是:2024年10月11日(星期五)
2021年10月11日 | 基于51单片机的盆栽自动浇花系统
2021-10-11 来源:eefocus
一.硬件方案
工作原理是由STC89C52单片机和ADC0832组成系统的核心部分,湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号。选用湿度传感器和AD转换,电路内部包含有湿度采集、AD转换、单片机译码显示等功能。单片机需要采集数据时,发出指令启动A/D转换器工作,ADC0832根据送来的地址信号选通IN1通道,然后对输入的模拟信号进行转换,转换结束时,EOC输出高电平,通知单片机可以读取转换结果,单片机通过调用中断程序,读取转换后的数据。最后,单片机把采集到的湿度数据经过软件程序处理后送到LCD1602进行显示。
主要由STC89C52单片机+ADC0832+LCD1602液晶+土壤湿度传感器+防水温度传感器+抽水电机+ 按键+蜂鸣器设计;如图:

二.设计功能
(1)液晶第一行显示 实际的湿度,液晶第二行显示 湿度上限值 湿度下限值。
(2)按键说明:从左边第一个起,减键、加键、设置键。。
(3)可以设置湿度和温度的上下限报警范围,并具有掉电保存功能,保存在STC单片机内部,上电无需重新设置。
(4)当湿度低于下限值时,打开水泵进行抽水自动灌溉同时声光报警,当湿度高于上限值时,自动关闭水泵停止灌溉。
(5)当温度高于上限值时,打开水泵进行抽水自动灌溉同时声光报警,当温度低于下限值时,自动关闭水泵停止灌溉。
(6)具有手动模式,按减键手动打开抽水电机,可以按加键手动关闭抽水电机。
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:

(2)Protues仿真图如下:

(3)PCB图如下:

四.软件设计
(1)程序流程图

(2)主程序源码
/***************主函数*****************/
void main()
{
init_1602(); //1602液晶初始化
time_init(); //初始化定时器
while(1)
{
key(); //独立按键程序
if(key_can < 10)
{
key_with(); //按键按下要执行的程序
}
if(flag_300ms == 1)
{
flag_300ms = 0;
clock_h_l(); //报警函数
if(beep == 1)
{
shidu = Adc0832(0); //读出湿度
shidu = 99 - shidu * 99 / 255;
}
if(menu_1 == 0)
{
write_sfm2(1,9,shidu); //显示湿度等级
}
}
delay_1ms(1);
}
}
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{
static uchar value;
TH0 = 0x3c;
TL0 = 0xb0; // 50ms
value ++;
if(value % 6 == 0)
{
flag_300ms = 1; //300ms
value = 0;
}
}
史海拾趣
|
就是附件的这种D24V电动推杆 我想请教的问题是1.工作循环:最大15%或者2min持续使用,休息15分钟,怕烧坏元件吗?这是为什么? 2.快速释放功能,指的是什么? 3.可配高感应的传感器,配传感器有什么用途? 我想深入的学习下电动推杆,哪位老师 ...… 查看全部问答> |
|
节能环保招聘需求(重点,急聘) 产品研发总监 20W/Y ? 招聘数量:若干 ? 工作职责 负责能源统计分析系统、能源审计预测系统研究; 负责能源管理系统总体设计; 掌握产 ...… 查看全部问答> |
|
如何用方向键来控制鼠标移动,我做了一个,按方向键后鼠标位置是移动了,但是鼠标一动又回到原来位置,为什么啊? 如何用方向键来控制鼠标移动,我做了一个,按方向键后鼠标位置是移动了,但是鼠标一动又回到原来位置,为什么啊?… 查看全部问答> |
|
把WINCE设备做成U盘,连到PC怎么不见U盘盘符出现?设备管理器的设备列表也显示一个黄色的感叹号,为什么?难道还需要特别的U盘驱动程序? 把WINCE设备做成U盘,连到PC怎么不见U盘盘符出现?设备管理器的设备列表也显示一个黄色的感叹号,为什么?难道还需要特别的U盘驱动程序?… 查看全部问答> |
|
找了半天也没找到以前的那个讲usb时序的帖子,就新开一个了。现在在做一个usb的boot,基本功能已完成,只是下载速度不快,读取:50KB左右,下载20KB左右。 升级一个512K的芯片需要约22秒。不知道理论可以做到多少,是因为双缓冲的 ...… 查看全部问答> |
|
在LM3S上跑LWIP,RAW方式。在一个FOR循环中调用了TCP_WRITE()函数发送数据,发现循环次数多了的话,后面的数据会发送失败。请教,TCP_WRITE可以连续调用多少次,由哪个选项决定?… 查看全部问答> |
|
【MSP430共享】基于射频技术的工程机械仪表无线通信解决方案 针对大型工程机械各类信号与驾驶操控室仪表异地显示的通信问题, 提出基于射频模块 n R F 2 4 0 1 实现无线数据通信的设计方案,详细介绍射频芯片 n R F 2 4 0 1 的工作原理及特点, 并给出了无线通信系统硬件结构、 接口电路及相应程序框图。系统 ...… 查看全部问答> |
|
作为一个多用户、多任务的操纵系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在档节点中作删除标记,并不真正清除文件内容,但是其它用户和一些有写盘动作的进程会很快笼盖这些资料。不外,对于家庭单机使用的Linux,或者误删档 ...… 查看全部问答> |
|
某天某日某产房,你诞生了(power up , 上电运行),结果你不哭,医生把你提起来,屁股上狠狠一巴掌,你哇哇大哭(reset, 复位成功),护士给你检查,看有没有传染病(EMI测试)、然后打预防针(绝缘处理),没有问题后作记录(QC pass),你的父母来接你回去(客户验收 ...… 查看全部问答> |




