基于STC89C52单片机的智能花盆设计案例

发布者:码上奇迹最新更新时间:2023-08-23 来源: elecfans关键字:STC89C52  单片机  智能花盆 手机看文章 扫描二维码
随时随地手机看文章

项目名:

基于单片机的智能花盆设计


单片机:STC89C52

功能:

1、通过显示屏显示花盆中土壤的温度、湿度,花盆外光照强度;

2、通过按键切换显示屏的界面,设置土壤最小温度值、最小湿度值,花盆外光照强度值,输液倒计时,松土倒计时;

3、通过土壤湿度传感器检测土壤湿度,通过DS18B20检测土壤温度;

4、通过继电器控制加热片,水泵,输液,补光灯;

5、通过步进电机来实现松土;

部分程序:

#include "main.h"

#include "lcd1602.h"

#include "key.h"

#include "ds18b20.h"

#include "adc.h"

#include "motor.h"

#include "timer.h"

/**********************************

变量定义

**********************************/

uchar key_num = 0; //按键扫描标志位

uchar flag_display = 0; //显示模式标志位

bit flag_display_cut = 0; //切换界面标志位

uint time_num = 0; //10ms计数变量

uint temp_value = 0; //温度值

uchar temp_min = 10; //最小温度值

uint humi_value = 0; //湿度值

uchar humi_min = 30; //最小湿度值

uint light_value = 0; //光照强度值

uchar light_min = 50; //最小光照强度值

uchar time_songtu = 0; //松土时间

uint time_minus_songtu = 0; //松土倒计时时间

uchar time_shuye = 0; //输液时间

uint time_minus_shuye = 0; //输液倒计时时间

extern bit flag_songtu_begin; //松土开始标志位

extern bit flag_songtu_finish; //松土完成标志位

extern bit flag_shuye_begin; //输液开始标志位

extern bit flag_shuye_finish; //输液完成标志位

/**********************************

函数声明

**********************************/

void Delay_function(uint x); //延时函数

void Key_function(void); //按键函数

void Monitor_function(void); //监测函数

void Display_function(void); //显示函数

void Manage_function(void); //处理函数

/****

******* 主函数

*****/

void main()

{

Lcd1602_Init(); //LCD1602初始化

Delay_function(50);

lcd1602_clean(); //清屏

Delay_function(50);

Ds18b20_Init(); //DS18B20初始化

Delay_function(50);

Timer0_Init(); //定时器0初使化

Delay_function(50);

while(1)

{

Key_function(); //按键函数

Monitor_function(); //监测函数

Display_function(); //显示函数

Manage_function(); //处理函数

Delay_function(10); //延时10ms

time_num++; //间隔10ms计时变量+1

if(time_num >= 5000) //计时累加到5000,重新从0开始累加

{

time_num = 0;

}

}

}

/****

******* 延时 x ms函数

*****/

void Delay_function(uint x)

{

uint m,n;

for(m=x;m>0;m--)

for(n=110;n>0;n--);

}

/****

*******按键函数

*****/

void Key_function(void)

{

key_num = Chiclet_Keyboard_Scan(0); //按键扫描

if(key_num != 0) //有按键按下

{

switch(key_num)

{

case 1: //按键1,切换界面

flag_display++;

if(flag_display >= 6) //一共6个界面

flag_display = 0;

lcd1602_clean(); //按一下,清屏一次

break;

case 2:

switch(flag_display)

{

case 0: //界面为0时,手动松土

Motor_Foreward();

break;

case 1: //界面为1时,修改温度最小值+1

if(temp_min < 99)

temp_min++;

break;

case 2: //界面为2时,修改湿度最小值+1

if(humi_min < 99)

humi_min++;

break;

case 3: //界面为3时,修改光照最小值+1

if(light_min < 99)

light_min++;

break;

case 4: //界面为4时,修改松土时间+1

time_songtu++;

time_minus_songtu = time_songtu*60;

break;

case 5: //界面为5时,修改输液时间+1

time_shuye++;

time_minus_shuye = time_shuye*60;

break;

default:

break;

}

break;

case 3: //按键3

switch(flag_display)

{

case 0: //界面为0时,手动输液

RELAY_SHUYE = 0; //闭合输液继电器,开始输液

Delay_function(3000); //输液三秒

RELAY_SHUYE = 1; //断开输液继电器,停止输液

break;

case 1: //界面为1时,修改温度最小值-1

if(temp_min > 0)

temp_min--;

break;

case 2: //界面为2时,修改湿度最小值-1

if(humi_min > 0)

humi_min--;

break;

case 3: //界面为3时,修改光照最小值-1

if(light_min > 0)

light_min--;

break;

case 4: //界面为4时,修改松土时间-1

if(time_songtu > 0)

{

time_songtu--;

time_minus_songtu = time_songtu*60;

}

break;

case 5: //界面为5时,修改输液时间-1

if(time_shuye > 0)

{

time_shuye--;

time_minus_shuye = time_shuye*60;

}

break;

default:

break;

}

break;

case 4: //按键4,切换界面

flag_display_cut = ~flag_display_cut;

lcd1602_clean(); //按一下,清屏一次

break;

default:

break;

}

}

}


关键字:STC89C52  单片机  智能花盆 引用地址:基于STC89C52单片机的智能花盆设计案例

上一篇:基于AT89C2051做的音乐门铃
下一篇:大神教你用51单片机做信号发生器,同时输出四种频率的方波的技术

推荐阅读最新更新时间:2024-11-08 11:12

基于MCU和FPGA的LED图文显示屏控制系统
  引言   目前,市场上的中小规模LED显示系统,一般采用传统的单片机作为主控芯片。对LED大屏幕显示屏来说,由于数据传输量大,要求扫描速度快,而单片机内部的资源较少、运行速度较慢,难于满足系统要求。以FPGA作为控制器,一方面,FPGA采用软件编程实现硬件功能,速度较快;另一方面,它的引脚资源丰富,可扩展性强。因此,用单片FPGA和简单的外围电路就可以实现大屏幕LED显示屏的控制,无需另外设计汉字库,具有集成度高、稳定性好、设计灵活和效率高等优点。   1 系统总体结构   LED大屏幕显示系统由上位机(PC机)、单片机系统、FPGA控制器、LED显示屏的行列驱动电路等模块组成,如图1所示。上位机负责汉字、字符等数据的采
[电源管理]
基于<font color='red'>MCU</font>和FPGA的LED图文显示屏控制系统
STM32单片机GPIO端口使用
简介: 最近一段时间在学STM32,感觉都是在和寄存器打交道,首先先说下什么是寄存器。寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。 STM32的每个IO口有7个寄存器控制(1个IO口应该就是一组),分别是两个32位的端口配置寄存器,CRL和CRH。两个32位的数据寄存器IDR和ODR(这上面四个是重点),一个32位置位复位寄存器,一个16位复位寄存器,一个锁存寄存器LCKR. ____________________________________________________________________________________________________
[单片机]
利用单片机PWM信号进行舵机控制
基于单片机的舵机控制方法具有简单、精度高、成本低、体积小的特点,并可根据不同的舵机数量加以灵活应用。 在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动
[单片机]
实现能效升级|基于ACM32 MCU的冰箱压缩机变频方案
概述 冰箱制冷系统中最重要的部件是压缩机。它从吸气管吸入低温低压的制冷剂气体,通过电机运转带动活塞对其进行压缩后,向排气管排出高温高压的制冷剂气体,为整个制冷循环提供源动力。这样就实现了压缩→冷凝→膨胀→蒸发 ( 吸热 ) 的制冷循环。一般来说,压缩机由壳体、电动机、缸体、活塞、控制设备 ( 启动器和热保护器 ) 及冷却系统组成。 与普通冰箱相比,变频冰箱最显著的优点是提高制冷效率、节约电力、节约能源。另外,在能快速冷却的同时,还能保持温度波动范围较小,从而达到较好的冷藏保湿效果。压缩机转速的精准控制,压缩机无需频繁启停,噪音更小更安静。本文讨论了基于上海航芯ACM32G103的冰箱压缩机变频方案。 ACM32G103系列
[嵌入式]
实现能效升级|基于ACM32 <font color='red'>MCU</font>的冰箱压缩机变频方案
51单片机的P0口工作原理详细讲解
三态门:三态门缓冲器: 51单片机 P0口输入缓冲器 P0口的输出驱动:两个MOS管组成的推拉式结构 P0口作为IO线输入状态时:①读引脚;②读锁存器; P0口作为地址/数据复用口 P0口作为IO线输出时,只能输出低电平、高阻态,需要外接上拉电阻,使高阻态变为输出高电平(对比 AVR单片机 的推挽输出结构) 一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。 下
[单片机]
51<font color='red'>单片机</font>的P0口工作原理详细讲解
51单片机汇编语言:控制转移指令有哪些?
跳转指令 短跳指令 AJMP addr11 PC←addr11,跳转范围2k 长跳指令 LJMP addr16 PC←addr16,跳转范围64k 间接跳转指令 JMP @A+DPTR PC←(A)+(DPTR) 相对转移指令 SJMP rel 条件转移指令 JZ rel ;(A)=0,转移 JNZ rel ;(A)≠0,转移 JC rel ;如 C=1, 转移 JNC rel ;如 C=0, 转移 JB bit,rel ;如 bit=1, 转移 JNB bit,rel
[单片机]
单片机模拟2272软件解码介绍
在无线遥控领域,PT2262/2272是目前最常用的芯片之一,但由于芯片要求配对使用,在很大程度上影响了该芯片的使用,笔者从PT2262波形特征入手,结合应用实际,提出软件解码的方法和具体措施。 一、概述 PT2262/2272是一种CMOS工艺制造的低功耗低价位通用编解码电路,是目前在无线通讯电路中作地址编码识别最常用的芯片之一。 PT2262/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出。 PT2262/2272必须用相同地址码配对使用,当需要增加一个
[单片机]
<font color='red'>单片机</font>模拟2272软件解码介绍
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved