【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
英文地址,請注明出處:http://en.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;…