当前位置: 首页 > news >正文

【51单片机】【protues仿真】基于51单片机自动浇花系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、LCD1602液晶显示土壤湿度值
2、按键设置土壤湿度阈值
3、土壤湿度值低于下限时,蜂鸣器报警并驱动水泵浇水
4、土壤湿度值高于上限时停止浇水

二、使用步骤

基于51单片机的自动浇花系统是一种通过土壤湿度传感器检测环境湿度,并自动控制水泵进行灌溉的智能装置。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、土壤湿度传感器、数模转换模块
4、蜂鸣器模块
5、继电器模块
6、LCD1602显示模块

四、软件设计

#include <reg51.H> 
#include "intrins.h"
#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned long
#define     LCDIO      P0     //液晶屏数据口
//ADC0832的引脚
sbit ADCLK =P1^1;  //ADC0832 clock signal
sbit ADDIO =P1^3;  //ADC0832 k in
sbit ADCS =P1^4;  //ADC0832 chip seclect

sbit rs=P1^0;  //定义1602 RS
sbit lcden=P1^2; //定义1602 EN
sbit key1=P3^0;    //设定
sbit key2=P3^1;    //加
sbit key3=P3^2;    //减
sbit motor=P3^7;   //继电器接口
sbit speak=P1^5;    //蜂鸣器接口
uchar key;         //设定指针
uint RH=400,RL=200;//水位上下限
float temp_f;
ulong temp;
uchar v;
uchar count,s1num;
uchar code table[]= "soil hum:          ";
uchar code table1[]="RH:  %              ";
uchar getdata; //获取ADC转换回来的值
/*********************************************/
void delay(uint z)          //延时
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
/**********************************************/
void write_com(uchar com)
{
    rs=0;
//    rd=0;
    lcden=0;
    P0=com;
    delay(5);
    lcden=1;
    delay(5);
    lcden=0;    
}
/*********************************************/
void write_date(uchar date)
{
    rs=1;

    lcden=0;
    P0=date;
    delay(5);
    lcden=1;
    delay(5);
    lcden=0;    
}

void lcdinit()
{
    lcden=0;
    write_com(0x38);
    write_com(0x0c);
    write_com(0x06);
    write_com(0x01);
}
/***********************************************/
void init()
{
    uchar num;
    
     for(num=0;num<15;num++)
         {
             write_date(table[num]);
             delay(5);
         }
     write_com(0x80+0x40);
     for(num=0;num<15;num++)
        {
             write_date(table1[num]);
             delay(5);
         }
    }


/********************************************************/
void displayRH()            //下限显示
 {write_com(0xc0+3);
 write_date(RH/100%10+0x30);//上限百位
 write_date(RH/10%10+0x30);//上限十位
 //write_date('.');
 //write_date(RH%10+0x30);
 }
void displayRL()      //下限显示
 {write_com(0xca);
  write_date('R');
  write_date('L');
  write_date(':');
 write_date(RL/100%10+0x30);
 write_date(RL/10%10+0x30);
 write_date('%');
}
/**************************************************/

void main(void)
{
    lcdinit();
    init();
    displayRH();   //显示上限
    displayRL();   //显示下限
    delay(50);     
    delay(50);     //延时片刻(可不要)
    delay(50);             //延时
    delay(50);
    Conut();       //显示函数
    delay(150);     
    while(1)
    {     
         Conut();    
         keyscan();
         if(temp>RH) 
         {motor=1;      
         }
         else if(temp<RL) 
         {motor=0;        
         }
         if(temp<RL)       //小于下限启动报警并浇水
         {speak=0;                //启动报警
          delay(150);             //延时
          speak=1;
         }
         keyscan();         //按键检测
         delay(150);             //延时50MS
    }
}

五、实验现象

演示视频:

https://www.bilibili.com/video/BV1DYYyz5E39/https://www.bilibili.com/video/BV1DYYyz5E39/

http://www.dtcms.com/a/557607.html

相关文章:

  • 2003系统建网站福清做网站的公司
  • 装饰网站案例网站上传附件目录格式
  • Spring AI Alibaba 框架使用示例总体介绍
  • 百度智能云API实现人脸识别
  • AOI在产品质量检测制造领域的应用
  • 哪里有网站培训的罗湖中小网站建设
  • CentOS Stream 网络故障排查:静态IP丢失、无法访问的完整解决方案
  • wp网站建设app图标制作
  • 昆明seo网站建设费用店面设计英文
  • 基于LLM的智能数据查询与分析系统:实现思路与完整方案
  • 技术准备十三:Redis++
  • 顺企网属于什么网站家教网站代理
  • Lua代码混淆-Prometheus方案教程
  • 星夜智能建站平台静态网站开发文章
  • 预测市场:人类信号的回潮与金融权力的新边界
  • C#网络编程完全指南:从Socket到TCP/UDP实战应用
  • 【Linux系统编程】5. 基础开发⼯具(下)
  • 网站如何做前后端分离南宁市网站开发
  • 深入理解 .NET Core 中的 IServiceScopeFactory:用法、场景与静态类依赖注入
  • wordpress找不到jquery长春做网站seo
  • “数字粮仓” - 物联网系统
  • 【愚公系列】《MCP协议与AI Agent开发》003-LLM 的输入输出机制与上下文表示
  • 【Linux系统编程】5. 基础开发⼯具(上)
  • 企业门户网站 源码网络营销方案内容
  • MySQL的数据库事务、ACID特性以及实战案例
  • 常平东莞网站建设保卫处网站建设
  • Redshift COPY 错误排查:字符串长度超出 DDL 定义
  • DeepSeek-OCR:无损压缩新突破,解码精度高达97%
  • 天气雷达旁瓣回波
  • C++ QT 结合 OpenCV 12周项目制学习计划(普通版)