【51单片机】【protues仿真】基于51单片机水位监测系统

 目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、数码管显示当前水位值
2、按键设置水位上下限阈值
3、当水位低于下限,启动蜂鸣器警报并抽水至水位上限停止抽水
4、电机模拟水泵,蜂鸣器,指示灯显示

二、使用步骤

51单片机水位监测系统是一种基于8051架构的嵌入式液位检测装置,通过模拟量/数字量传感器采集水位信息,结合控制算法实现水位监控与报警功能‌。该系统可广泛应用于水塔、水箱、河道等场景的水位监测与控制。

三、硬件资源

1、51单片机核心模块
2、按键模块
3、水位传感器模块、adc模块
4、蜂鸣器模块
5、继电器模块
6、数码管显示模块

四、软件设计

#include "reg51.h"
#include <PCF8591.h>
#define uchar unsigned char
#define uint unsigned int
sbit out=P3^3;//抽水机
sbit led1=P3^6;//指示灯
sbit led2=P3^7;
sbit smg1=P2^0;//数码管
sbit smg2=P2^1;     
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit k1=P1^0;//按钮
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit beep=P1^7;//蜂鸣器
uchar time=0,mode=0;//系统变量     
uchar water=0;//水位
uchar lim1=40,lim2=60;//阀值
uchar key=0;
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9,无小数点
//延时
void delay(uint i)
{
    while(i--);
}
 //按键检测
uchar key_scan()
{
    uchar i=0;
    if(!k1 &&(key!=1))
    {
        key=1;
        i=1;
    }
    if(!k2 &&(key!=2))
    {
        key=2;
        i=2;
    }
    if(!k3 &&(key!=3))
    {
        key=3;
        i=3;
    }
    if(!k4 &&(key!=4))
    {
        key=4;
        i=4;
    }
    if(!k5 &&(key!=5))
    {
        key=5;
        i=5;
    }
    if(k1 && k2 && k3 && k4 && k5 )
        key=0;
    return i;
}

//主函数
void main()
{
    uchar i=0,k=0;

    TMOD|=0X01;
    TH0=0X3C;
    TL0=0XB0;    
    ET0=1;//打开定时器0中断允许
    EA=1;//打开总中断
    TR0=1;//打开定时器
    while(1)
    {
        i=key_scan();//按键检测
        //设置按钮
        if(i==2)
        {
            mode=1;
        }
        if(i==1)
        {
            mode=2;
        }
        if(mode==1)//设置下限
        {
        if(i==4)
        {
            if(lim1<lim2)
                lim1++;
        }
        if(i==5)
        {
            if(lim1>0)
                lim1--;
        }
        }
        if(mode==2)//设置上限
        {
        if(i==4)
        {
            if(lim2<100)
                lim2++;
        }
        if(i==5)
        {
            if(lim2>lim1)
                lim2--;
        }
        }
        if(i==3)//OK
        {
            mode=0;
        }
        //点亮LED
        if(water<lim1)//水位低
        {
            led1=0;led2=1;
        }
        else if(water>lim2)//水位高
        {
            led1=1;led2=0;
        }
        else
        {
            led1=1;led2=1;
        }
        //显示水位
        if(mode==0)
        {
            P0=smgduan[water/100];        smg2=0;delay(100);smg2=1;
            P0=smgduan[water%100/10];    smg3=0;delay(100);smg3=1;
            P0=smgduan[water%10];        smg4=0;delay(100);smg4=1;
        }
        //显示下限
        if(mode==1)
        {
            P0=0x38;        smg1=0;delay(100);smg1=1;
            P0=smgduan[lim1/100];        smg2=0;delay(100);smg2=1;
            P0=smgduan[lim1%100/10];    smg3=0;delay(100);smg3=1;
            P0=smgduan[lim1%10];        smg4=0;delay(100);smg4=1;
        }
        //显示上限
        if(mode==2)
        {
            P0=0x76;        smg1=0;delay(100);smg1=1;
            P0=smgduan[lim2/100];        smg2=0;delay(100);smg2=1;
            P0=smgduan[lim2%100/10];    smg3=0;delay(100);smg3=1;
            P0=smgduan[lim2%10];        smg4=0;delay(100);smg4=1;
        }
    }
}

五、实验现象

演示视频:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96530.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

白名单过滤的文件上传如何bypass:boot2root靶机之fristileaks

靶机提示 base64解码提取图片 文件上传之apache多后缀名解析漏洞 linpeas dirtycow提权 靶机下载 通过网盘分享的文件&#xff1a;FristiLeaks_1.3.ova 链接: https://pan.baidu.com/s/1ZWznp8egNGwnQqwh1gkSZg?pwdwwvp 提取码: wwvp --来自百度网盘超级会员v8的分享主…

Centos 8 管理防火墙

firewall-cmd 检查与安装 在 CentOS 8 上安装和启用 firewalld&#xff08;提供 firewall-cmd 工具&#xff09;的步骤如下&#xff1a;1. 检查 **firewalld** 是否已安装 在安装前&#xff0c;先检查系统中是否已安装&#xff1a; sudo firewall-cmd --version如果返回版本号&…

使用PPT进行科研绘图过程中常用的快捷键

PPT科研绘图常用快捷键速查表功能类别快捷键功能描述基础操作与选择Ctrl A全选幻灯片上的所有对象。Ctrl D快速复制选中的对象&#xff0c;并自动保持等间距排列。Shift Click多选多个对象。Ctrl G将选中的多个对象组合成一个整体。Ctrl Shift G取消组合。Ctrl 拖动复制…

`strchr` 字符串查找函数

1) 函数的概念与用途 strchr 是 C 标准库中的一个基础但极其重要的字符串处理函数&#xff0c;它的名字来源于"string chracter"&#xff08;字符串字符&#xff09;。这个函数的功能非常明确&#xff1a;在字符串中查找特定字符的第一次出现位置。 可以将 strchr 想…

Redis 678

Redis 8 是当前的最新稳定版&#xff08;截至 2024 年中&#xff09;&#xff0c;它在 Redis 7 的基础上带来了更多重要改进。我们来对这三个主要版本进行一次全面的功能和性能对比。 核心演进脉络 Redis 6 (2020)&#xff1a;多线程时代的开创者。解决了网络 I/O 瓶颈&#xf…

【大白话解析】 OpenZeppelin 的 Address 库:Solidity安全地址交互工具箱​(附源代码)

🧩 一、这个文件是干嘛的?—— Address.sol 是个“工具箱” 你可以把这个 Address.sol文件理解为一个 ​​“工具箱”​​,里面装了一堆​​专门用来安全地跟别的地址(账户或合约)打交道的工具函数​​。 在区块链世界里,地址(address)可以是: ​​外部账户(EOA)…

漫谈《数字图像处理》之测不准原理

在数字图像处理中&#xff0c;提到的 “测不准原理” &#xff0c;和量子力学里由海森堡提出的 “不确定性原理” &#xff08;Heisenberg uncertainty principle&#xff0c;也叫海森堡测不准原理&#xff09;有一定的类比关系&#xff0c;但本质上并不是同一个概念。以下为详…

Linux服务测试

一、环境准备确认 确保 4 台主机&#xff08;APPSRV、STORAGESRV、ROUTERSRV、CLIENT &#xff09;网络连接正常&#xff0c;虚拟机网卡模式按要求设置&#xff08;APPSRV、STORAGESRV 为 NAT 模式&#xff1b;ROUTERSRV 为双网卡&#xff0c;NAT 仅主机模式&#xff1b;CLIE…

2.Shell脚本修炼手册---创建第一个 Shell 脚本

2. 创建第一个 Shell 脚本 文章目录2. 创建第一个 Shell 脚本2.1 什么是 Shell 脚本&#xff1f;2.1.1 脚本开头&#xff1a;告诉系统用什么程序执行2.1.2 脚本注释&#xff1a;给人看的 “说明书”2.1.3 bash 与 sh 的区别2.2 如何执行 Shell 脚本&#xff1f;方法 1&#xff…

Day22 顺序表与链表的实现及应用(含字典功能与操作对比)

day22 顺序表与链表的实现及应用&#xff08;含字典功能与操作对比&#xff09; 使用顺序表实现查字典功能 支持连续查询单词&#xff0c;输入 #quit 退出程序。数据格式示例如下&#xff1a; a\0 indef art one\r\n word mean [---buf--->] [---i--…

51单片机与stm32单片机,先学习哪一个?

纠结 51 单片机和 STM32 该先学哪个&#xff0c;就像刚学开车的人在自动挡和手动挡之间打转。有人一上来就爱开自动挡&#xff0c;踩着油门就能跑&#xff0c;不用琢磨换挡踩离合的门道&#xff1b;有人偏要从手动挡练起&#xff0c;哪怕起步时熄十几次火&#xff0c;也得搞明白…

DS 0 | 数据结构学习:前言

数据结构是CS最基础、最重要的课程之一在学习数据结构时&#xff0c;通常来讲&#xff0c;学生遇到的难点不在于对数据结构的理解&#xff0c;而在于如何写程序。即编写特定的程序&#xff0c;来实现这些数据结构&#xff0c;特别是如何按照面向对象思想将一个个数据结构设计成…

JVM-(8)JVM启动的常用命令以及参数

JVM启动的常用命令以及参数 在上文 JVM 堆内存逻辑分区 中已经使用过一些 jvm 启动命令&#xff0c;本文着重讲述JVM启动命令用法以及一些常用的参数 一. 基本命令格式 java [options] classname [args...] java [options] -jar filename.jar [args...]① [options] - 命令行…

GO学习记录七——上传/下载文件功能,添加启动运行工具

本来计划是学习Docker部署的&#xff0c;研究了一天没搞出来&#xff0c;得出结论是需要翻墙&#xff0c;懒得弄了&#xff0c;暂时放置。 一、以下是&#xff0c;上传/下载代码&#xff0c;和之前是重复的&#xff0c;只多添加了&#xff0c;上传/下载功能。 测试目录为工程根…

SQL中对视图的操作命令汇总

以下是基于搜索结果整理的SQL视图操作命令汇总&#xff0c;按功能分类说明&#xff1a; 一、创建视图 使用 CREATE VIEW 语句定义视图&#xff0c;需指定视图名称和基础查询表达式&#xff1a; CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHER…

【Spring Cloud 微服务】2.守护神网关Gateway

目录 1.API网关的作用 2.Spring Cloud Gateway 是什么&#xff1f; 3.核心由来与背景 1. 微服务架构的挑战&#xff1a; 2. API 网关模式的兴起&#xff1a; 3. Zuul 的局限性&#xff1a; 4. Spring Cloud Gateway 的诞生&#xff1a; 4.核心特征&#xff1a; 5.核心概…

解读商业智能BI,数据仓库中的元数据

之前的文章讨论过数据分析、数据治理、数据仓库等等&#xff0c;即使是非业内人员从字面意思&#xff0c;也是可以了解一二的&#xff0c;但是&#xff0c;很多人对于元数据可能就比较陌生了。那么&#xff0c;今天我们就来聊一聊元数据管理。数据仓库要说元数据&#xff0c;那…

3 种无误的方式删除 Itel 手机上的短信

如果你希望释放存储空间、保护隐私&#xff0c;或者准备出售或转让手机&#xff0c;删除 Itel 手机上的短信是一个实用的步骤。无论是收件箱中充斥着垃圾短信、过时的对话还是敏感内容&#xff0c;删除不需要的短信可以让你的消息体验更加干净和安全。本文将向你介绍 3 种简单且…

【学习笔记】网络安全专用产品类别与参考标准

一、基本标准 1.1 关键设备 网络关键设备认证依据的强制标准为 GB 40050-2021。 1.2 专用产品 网络安全专用产品认证依据的强制标准为 GB 42250-2022。 二、数据备份与恢复产品标准 相关标准&#xff1a; GB/T 29765-2021《信息安全技术 数据备份与恢复产品技术要求与测试评…

Pytho“张量”(Tensor)和 Java的“向量”(Vector)区别和联系

在Python和Java中&#xff0c;“张量”&#xff08;Tensor&#xff09;和“向量”&#xff08;Vector&#xff09;是两个不同语境下的概念&#xff0c;它们的设计目标、功能和应用场景存在显著差异&#xff0c;但也存在一定的共性。以下从区别和联系两方面详细说明&#xff1a;…