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

基于51单片机的智能水表

一.硬件方案

本设计主要以51单片机作为主控处理器的智能水表,该水表能够记录总的用水量和单次用水量,当用水量超出设定值时系统发出声光报警提醒,水量报警值能够通过按键进行自行设置,并且存储于AT24C02中,并且可以测量水流速度。测量的结果采用LCD1602液晶显示平显示出来。。
主要由51单片机+最小系统+LCD1602液晶显示模块+蜂鸣器模块+LED指示灯模块+继电器驱动模块+按键电路+AT24C02芯片模块+水泵驱动电路;

二.设计功能

(1)采用LCD1602液晶显示屏实时显示瞬时水流速、总用水量、本次用水量、水流量限值;
(2)可通过按键设置水流量限值,当本次用水量超过水流量限值时系统发出声光报警提醒;
(3)系统加入AT24C02存储芯片用于存储总用水量,具有掉电存储的功能,能够记录历史总共用水量;
(4)按键说明:“设置”键 :按下进入设置用水量限值;
“加值”键 :当设置时,按下限值+1;
“减值”键 :当设置时,按下限值-1;
“复位”键 :按下后单片机复位,总用水量不会清除;

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)Protues仿真图如下:
在这里插入图片描述

四.软件设计

主程序源码

/********************************************************
函数名称:void main()
函数作用:主函数
参数说明:
********************************************************/
void main()
{	if(key_jian==0){delayms(7);if(key_jian==0){AT24C02_write_date(0,0);      //写入【总流量】数据保存AT24C02_write_date(1,0);      //写入【总流量】数据保存AT24C02_write_date(2,1000/256);//写入【流量限值】数据保存AT24C02_write_date(3,1000%256);//写入【流量限值】数据保存}}ML2=AT24C02_read_date(0);	         //读取存储的【总流量】数据ML2=ML2*256+AT24C02_read_date(1);    //读取存储的【总流量】数据ML2=ML2*256+AT24C02_read_date(2);    //读取存储的【总流量】数据ML_up=AT24C02_read_date(3);	         //读取存储的【流量限值】数据ML_up=ML_up*256+AT24C02_read_date(4);//读取存储的【流量限值】数据LCD_init();			   //LCD1602初始化	T0_init();			   //定时器初始化while(1)			   //死循环{	scan();			   //按键检测处理if(set_f==0)display();     //正常显示界面elsedisplay2();    //设置流量限值}
}

资料链接:https://pan.baidu.com/s/1WsNsgcJJI_EBZvSNglOxGw?pwd=621g

http://www.lryc.cn/news/372981.html

相关文章:

  • SQLServer 借助Navcate做定时备份的脚本
  • MBD_入门篇_21_SimulinkSignalAttributes
  • Web前端高级课程:深入探索与技能飞跃
  • 螺丝工厂vtk ThreadFactory(1)
  • Android13 蓝牙协议属性配置详解
  • 南通国际高中有哪些?南通惠立学校高中部校长见面日重磅来袭
  • Al智能图像处理APP,安卓手机专用一键优化工具资源合集下载
  • Kettle根据分类实现Excel文件拆分——kettle开发31
  • merkle tree中文
  • 制作自己的 @OnClick、@OnLongClick(告别 setOnClickListener,使用注解、反射和动态代理)
  • Android基础-RecyclerView的优点
  • C# Winform 用户控件,扩展控件,自定义控件综合实例
  • 经济学和金融学有什么区别?
  • Java课程设计:基于swing的学生信息管理系统
  • 【代码】3d->video
  • 算法01 递推算法及相关问题详解【C++实现】
  • 自动化测试火狐下载文件
  • 基于JSP技术的定西扶贫惠农推介系统
  • Linux 终端窗口设置为透明
  • MySQL 中 Varchar(50) 和 varchar(500) 区别是什么?
  • 强化RAG:微调Embedding还是LLM?
  • 提取 Excel单元格文本下的超链接
  • 一键安全体检!亚信安全携手鼎捷软件推出企业安全体检活动 正式上线
  • numpy - array(1)
  • 师彼长技以助己(6)递归思维
  • Kali Linux 2024.2
  • 【Spine学习08】之短飘,人物头发动效制作思路
  • chatgpt的命令词
  • 用python把docx批量转为pdf
  • 项目采购管理