单片机实验——水塔自动抽水系统设计(基于Proteus仿真)

news2024/11/24 12:29:08
  • 实验内容及要求

自来水供水是现代生活的一大特点,水塔作为储水装置是自来水系统必不可少的重要设施,让水塔保持一定的水量是自来水不断供的必要条件,本设计模拟自来水系统中水塔的自动抽水机制,设计分为控制系统和虚拟水塔两部分,参考电路如下:

设计要求:

  1. 虚拟水塔模拟水塔的功能,水塔水量低于一定值时,发信息给控制系统,控制系统启动抽水机住水塔注水,注放水指示灯点亮,数码管显示当前水塔中的水量,当水量高于一定值时,向控制系统发出水满信号,控制系统停止抽水机运转。水塔设有两个阀门,每个阀门可以单独放水,水位低向控制系统发出抽水信号,相应的指灯显示当前水塔状态。
  2. 控制系统设自动抽水和手动抽水两种模式,自动抽水依据水塔发出的信号启动或停止抽水,手面模式是通于手动开关进行启动或停止抽水。
  3. 利用C51设计程序完成以上功能,上述电路仅供参考,可自行创新设计。
  4. 在keil中利用C51进行程序设计,利用ptotues设计电路并进行仿真。
  5. 控制系统使用单片机的中断机制。
  • 涉及的主要知识点

  1. 51单片机的中断系统。
  2. 7段数据管的编码与显示原理。
  3. Keil及protues软件的使用。
  • 提示及预备知识

  1. 水塔水满或水空时,利用I/O引脚向控制系统发出负脉冲作为中断源,控制系统根据不同的中断源,作出启动或停止抽水动作。
  2. 抽水机用直流电机模拟,通过I/O引脚控制MOS管驱动直流电机。
  3. 参考流程图如下:
  1. 控制系统

  1. 虚拟水塔

实验图纸如下:

部分代码:

# include<reg52.h>
# define empty 1
# define full 10

sbit Lful = P1^0;
sbit Lemp = P1^1;
sbit pour = P1^2;
sbit star = P1^3;
sbit stop = P1^4;
sbit k1 = P1^5;		//·ÅË®·§ÃÅ1
sbit k2 = P1^6;		//·ÅË®·§ÃÅ2
sbit pump = P1^7;
char mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,	  //led×ÖÄ£
						  0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};

void delay(unsigned int time)   //ÑÓʱtime ms
{
    unsigned char a,b;
    for(;time>0;time--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}

void display(char water)
{
	char shi,ge;
	shi = water/10;
	ge = water%10;
	P2 = mod[shi];
	P0 = mod[ge];
}

void main()
{
	char water=5;
	Lful=Lemp=pour=0;
	display(water);

	while(1)
	{
		pump = 1;	//¶ÁÈ¡Ç°ÏÈÖÃ1
		if(pump == 1)
		{
			delay(300);
			water++;
			display(water);
			
			if(water==full)
			{
				Lful=1;
				stop=0;
				delay(1);
				stop=1;
			}						
		}
		
		if(k1==0||k2==0)
		{
			delay(300);
			water--;
			display(water);
			
			if(water==empty)
			{
				Lemp=1;
				star=0;
				delay(1);
				star=1;
			}	
		}
	}
}

部分运行结果:

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

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

相关文章

若依管理框架-漏洞复现

文章目录 0x00 介绍0x01 默认口令漏洞0x02 SQL注入0x03 Shiro反序列化漏洞0x04 任意文件读取/下载0x05 定时任务0x06 `swagger-ui.html`接口文档泄漏0x07 Druid未授权访问摘抄免责声明0x00 介绍 RuoYi 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Apa…

黑产工具情报的分析方式浅析

接下来我们以恶意爬虫、抢券工具和注册机三种工具来谈一下黑产工具情报的分析方式。 对于企业方面来说&#xff0c;黑产工具情报可以有效的提高业务安全的攻防效率。通过分析工具利用的业务接口&#xff0c;不仅可以将黑产作恶行为进行有效的追踪&#xff0c;对其进行有效的处…

Java本地搭建宝塔部署实战springboot自动化立体智慧仓库WMS源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 本期给大家带来一套Java开发的springboot自动化立体智慧仓库WMS源码。 技术架构 技术框架&#xff1a;SpringBoot layui HTML CSS JS运行环境&#xff1a;jdk8 IntelliJ IDEA maven3 宝塔面板 本地搭建教…

MongoDB入门与实战-第四章-SpringBoot集成MongoDB

目录参考MongoDB 连接java客户端方式引入驱动依赖测试创建客户端创建集合查询文档查询集合大小条件查询排序投影聚合查询复合聚合插入文档批量插入更新文档删除文档SpringDataMongoDB添加依赖配置文件新建实体映射插入文档修改文档删除参考 SpringBoot 整合 MongoDB 实战解说 …

[附源码]java毕业设计濒危物种科普系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

jq获取和设置偏移量:offset()、position()

jq获取和设置偏移量&#xff1a; js获取盒子的偏移量是&#xff1a;offsetLeft、offsetTop&#xff1b;jq获取盒子的偏移量的方法&#xff1a;offset&#xff08;&#xff09;、position&#xff08;&#xff09;&#xff1b;offset&#xff08;&#xff09;&#xff1a;距离文…

去除有重复的行

【问题】 I have a csv file and I have duplicate as well as unique data getting add to it on a daily basis. This involves too many duplicates. I have to remove the duplicates based on specific columns. For eg: csvfile1: title1 title2 title3 title4 title5…

C++程序开启大地址(虚拟内存),让32位程序使用4G内存的方,虚拟内存概念及寻址范围详解

如何让 32 位程序突破 2G 内存限制 一般情况下&#xff0c;32 位程序的内存大小被限制在了 2G&#xff0c;不过可以通过以下的操作来突破这个限制。 修改操作系统参数 这一步骤只针对 32 位操作系统&#xff0c;64 位操作系统可以跳过 用管理员权限打开一个命令行窗口 执行…

【数据库原理及应用】——安全性与完整性(学习笔记)

&#x1f4d6; 前言&#xff1a;随着计算机的普及&#xff0c;数据库的使用也越来越广泛。为了适应和满足数据共享的环境和要求&#xff0c;DBMS要对数据库进行保护&#xff0c;保证整个系统的正常运转&#xff0c;防止数据意外丢失、被窃取和不一致数据产生&#xff0c;以及当…

【Linux】---认识进程

文章目录进程的概念1、什么是进程2、PCB3、查看进程4、初始fork()创建进程5、kill杀死进程进程的状态普适的操作系统下的状态运行阻塞挂起Linux下的状态理解R--运行状态S--睡眠状态D--深度睡眠状态T--暂停状态t--追踪暂停状态X--死亡状态Z--僵尸状态孤儿进程进程优先级进程的其…

先广度后深度,打开编程视野

古人云 “读万卷书&#xff0c;行万里路。” 书籍是人类进步的阶梯、培养阅读习惯&#xff0c;当一个人爱上读书的时候&#xff0c;眼睛都是发光的。 在小编看来&#xff0c;学习理念是【先广度后深度】&#xff0c;先把Java知识体系的东西都了解到&#xff0c;工作上先会用&…

【数据结构与算法】之动态规划经典问题

前言 本文为 【数据结构与算法】动态规划 经典问题相关介绍 &#xff0c;具体将对最长递增子序列问题&#xff0c;找零钱问题&#xff0c;0-1背包问题相关动态规划算法问题进行详尽介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可…

【LeetCode】No.91. Decode Ways -- Java Version

题目链接&#xff1a;https://leetcode.com/problems/decode-ways/ 1. 题目介绍&#xff08;Decode Ways&#xff09; A message containing letters from A-Z can be encoded into numbers using the following mapping: 【Translate】&#xff1a; 包含从A到z的字母的消息可…

C++之继承详解(万字讲解)

这里是目录呀前言一、继承的概念及定义1.继承的概念2.继承定义(1)定义格式(2)继承关系和访问限定符(3)继承基类成员访问方式的变化二、继承中的作用域三、基类和派生类对象赋值转换四、派生类的默认成员函数五、继承与友元六、继承与静态成员七.复杂的菱形继承及菱形虚拟继承1.…

暗猝灭剂BHQ-2 氨基,BHQ-2 amine,CAS:1241962-11-7

产品描述 1、名称 英文&#xff1a;BHQ-2 amine 中文&#xff1a;BHQ-2 氨基 2、CAS编号&#xff1a;1241962-11-7 3、所属分类&#xff1a;Other dyes 4、分子量&#xff1a;477.53 5、分子式&#xff1a;C24H27N7O4 6、质量控制&#xff1a;95% 7、储存&#xff1a; …

爱心html制作并部署github

手机也可以观看 效果预览地址 1.网页效果 心形优化 2.网页源码 源码地址 可以改变不同的图片&#xff0c;作者已经改为全局变量 <!DOCTYPE html> <html><head><title></title><script src"js/jquery-1.7.2.js"></script…

高并发,你真的理解透彻了吗?高并发核心编程手册荣登Github榜首

高并发&#xff0c;几乎是每个程序员都想拥有的经验。原因很简单&#xff1a;随着流量变大&#xff0c;会遇到各种各样的技术问题&#xff0c;比如接口响应超时、CPU load升高、GC频繁、死锁、大数据量存储等等&#xff0c;这些问题能推动我们在技术深度上不断精进。 在过往的面…

Spring Cloud Ablibaba 学习系列文章

前言&#xff1a; 最近发现Spring Cloud的应用越来越多了&#xff0c;微服务的概念在一般的互联网公司上面几乎都会使用到&#xff0c;于是准备一套Spring Cloud Alibaba的学习文章&#xff0c;文章写到一定阶段&#xff0c;会进行实战篇&#xff0c;比如搭建注册通信的框架&a…

C. Crossword Validation(字典树)

Problem - C - Codeforces 题意: 你得到了一个在NN网格上完成的填字游戏。每个单元格要么是填有字母的白色单元格&#xff0c;要么是黑色单元格。你还会得到一本包含M个不同单词的字典&#xff0c;其中每个单词都有一个与之相关的分数。网格中的一个横向候选词是在网格的同一行…

Android TCPIP常见问题

book: Understanding Linux Network Internals socket读写错误返回值&#xff1a;errno TCP: Robert Elliot Kahn IP: Robert Elliot Kahn, Vint Cerf 1 RFC规范 RFC793&#xff1a;TCP RFC768&#xff1a;UDP RFC791&#xff1a;IP RFC826&#xff1a;ARP RFC792&#xff1a;I…