基于51单片机自动智能浇花系统设计
1、系统功能介绍
- 系统构成
- 本设计由STC89C52单片机电路+4位共阳数码管显示电路+ADC0832采样电路+水泵控制电路+土壤湿度传感器电路+按键电路+电源电路组成。
- 1、数码管实时显示土壤湿度传感器测到的湿度。
- 2、按键说明:从左边第一个起,减键、加键、设置键。可以用按键设置,设置湿度的上、下限值,并具有掉电保存,保存在STC单片机的内部,上电无需重新设置。
- 3、当湿低于下限值时,自动打开水泵进行抽水自动灌溉,当湿高于上限值时,断开水泵停止灌溉,
- 4、具有手动模式,按减键手动打开水泵,可以按加键手动关闭水泵。
2、资料下载
3、系统电路介绍
3.1、STC89C52单片机最小系统设计
- STC89C52单片机作为主控芯片。STC89C51是宏晶科技公司生产的一款低功耗、高性能的八位CMOS微处理器,片内具有8k在线编程Flash存储器。STC89C51单片机的内核采用的是MCS-51内核,指令完全兼容MCS-51,但是该单片机越做了升级使得芯片具有很多传统的51单片机不具备的功能,例如该芯片还有4K的EEPROM存储,在需要使用到掉电存储数据的时候就可以直接使用单片机内部的存储,不在需要在外接存储芯片进行存储。STC89C51单片机具有的开发简单、可在线编程下载、成本低是非常不错的选择。
STC89C52单片机具有以下主要特性:
- 高性能的8051内核,12MHz时钟频率。
- 8KB闪存和4KB内部RAM。
- 32个通用I/O引脚,具有较强的驱动能力和抗干扰性。
- 2个16位定时器/计数器,可用于定时、频率测量和PWM输出。
- 2个串行通信接口(UART和SPI)。
- 支持在线编程功能。
- 低功耗设计,适合电池供电的应用。
单片机最小系统电路图如下图所示
-
-
实物图:
-
3.2、数码管显示驱动电路设计
-
本设计中选择4位共阳数码管来显示数据。4位共阳数码管一共12个引脚,4个位选,8个段选。1、2、3、4、5、7、10、11为段选,6、8、9、12为四个数码管的位选。每个位选通过三极管进行驱动,在本设计中,Q1-Q5三极管均为驱动电路。R3-R5均为限流电阻,保护三极管。当单片机控制位选的引脚为低电平时,则相关位的数码管可以亮,否则,相关位的数码管不亮。单片机控制段选的引脚通过高低电平的组合即可显示不同的数据信息。
-
电路原理图
-
-
实物图
-
3.3、土壤湿度检测电路设计
-
在本设计中选择土壤湿度传感器PC-28来检测土壤的湿度,通过电位器调节土壤湿度控制阀值,可以自动对土壤湿度的控制,通过电位器调节控制相应阀值,湿度低于设定值时,DO输出高电平,高于设定值时,DO输出低电平;模块也有模拟接口,可以检测出土壤湿度的模拟信号。本模块使用LM393比较器将模拟的土壤湿度信号转化为数字信号,并通过DO输出。模块工作电压3.3V-5V
-
电路设计如下图所示:
-
-
实物图:
3.4、A/D转换电路设计
-
ADC0832是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,
其目前已经有很高的普及率。学习并使用 ADC0832 可是使我们了解 A/D 转换器的原理,有助于我们单片机技术水平的提高。 -
电路原理图:
-
-
实物图:
-
4、程序设计
4.1、系统主程序设计
void main()
{
delay_1ms(100);
P0 = P1 = P2 = P3 = 0xff; //初始化IO口
while(1)
{
key(); //独立按键程序
if(key_can < 10)
{
key_with(); //按键按下要执行的程序
}
flag_200ms ++;
if(flag_200ms >= 200)
{
flag_200ms = 0;
P0 = 0xff; //消隐
if(menu_1 == 0)
{
shidu = ad0832read(1,0); //读出湿度
dis_smg[0] = 0xff; //
dis_smg[1] = smg_du[shidu % 10]; //取湿度的个位显示
dis_smg[2] = smg_du[shidu / 10 % 10] ; //取湿度的十位显示
dis_smg[3] = 0XFF; //
dianji_kongzi(); //电机控制函数
}
}
display(); //数码管显示函数
}
}