基于51单片机的盆栽自动浇花系统

一.硬件方案

工作原理是湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号。选用湿度传感器和AD转换,电路内部包含有湿度采集、AD转换、单片机译码显示等功能。单片机需要采集数据时,发出指令启动A/D转换器工作,ADC0832根据送来的地址信号选通IN1通道,然后对输入的模拟信号进行转换,转换结束时,EOC输出高电平,通知单片机可以读取转换结果,单片机通过调用中断程序,读取转换后的数据。最后,单片机把采集到的湿度数据经过软件程序处理后送到LCD1602进行显示。电路主要由STC89C52单片机,ADC0832,LCD1602液晶,土壤湿度传感器,温度传感器,抽水电机,按键,蜂鸣器设计;

二.设计功能

(1)液晶第一行显示 实际的湿度,液晶第二行显示 湿度上限值 湿度下限值。

(2)按键说明:从左边第一个起,减键、加键、设置键。。

(3)可以设置湿度和温度的上下限报警范围,并具有掉电保存功能,保存在STC单片机内部,上电无需重新设置。

(4)当湿度低于下限值时,打开水泵进行抽水自动灌溉同时声光报警,当湿度高于上限值时,自动关闭水泵停止灌溉。

(5)当温度高于上限值时,打开水泵进行抽水自动灌溉同时声光报警,当温度低于下限值时,自动关闭水泵停止灌溉。

(6)具有手动模式,按减键手动打开抽水电机,可以按加键手动关闭抽水电机。

三.设计原理图

Protues仿真图如下:

四.软件设计

主程序源码

c 复制代码
/***************主函数*****************/
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;
	}
}

资料链接:https://pan.baidu.com/s/1ORRvAoIsLH30jrH4GSM8Pg?pwd=coxh

相关推荐
国科安芯1 小时前
断电也隔离、听得真:ASL3159S 单通道 SPDT 模拟开关的“断电保护 + 音频保真“账
单片机·嵌入式硬件·安全·商业航天·抗辐射
自小吃多1 小时前
【Verilog/FPGA】存储器(数组)
嵌入式硬件·fpga开发
szxinmai主板定制专家1 小时前
RK3588+FPGA异构架构|高速数据采集+边缘AI落地应用全解析
人工智能·嵌入式硬件·fpga开发·架构·zynq
jianqiang.xue2 小时前
【CStackGUI 实战】深色主题终端:app.dark 默认深色 + 顶层命名样式表 + 运行时切换
单片机·嵌入式·cstackgui·c语言gui·可视化拖拽
M78佐菲2 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习
M78佐菲2 小时前
ARM学习笔记(10)
linux·arm开发·笔记·嵌入式硬件·学习
小程序设计2 小时前
基于STM32的智慧厨房多参数安全监测与预警系统设计
stm32·嵌入式硬件·安全
新晨单片机设计2 小时前
S008C-基于STM32单片机无线抢答器【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·无线抢答器
小诗懂技术3 小时前
【裸机lcd】framebuffer的配置与小型图像库的移植
arm开发·单片机·嵌入式硬件·裸机
comyccccc4 小时前
3.3V稳压电源设计与PCB实现学习笔记
单片机·嵌入式硬件