基于51单片机的智能水表

发布者:之敖赵先生最新更新时间:2021-10-08 来源: eefocus关键字:51单片机  智能水表  LCD1602液晶显示 手机看文章 扫描二维码
随时随地手机看文章

一.硬件方案

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


主要由51单片机+最小系统+LCD1602液晶显示模块+蜂鸣器模块+LED指示灯模块+继电器驱动模块+按键电路+AT24C02芯片模块+水泵驱动电路;如图:

在这里插入图片描述

二.设计功能

(1)采用LCD1602液晶显示屏实时显示瞬时水流速、总用水量、本次用水量、水流量限值;

(2)可通过按键设置水流量限值,当本次用水量超过水流量限值时系统发出声光报警提醒;

(3)系统加入AT24C02存储芯片用于存储总用水量,具有掉电存储的功能,能够记录历史总共用水量;

(4)按键说明:“设置”键 :按下进入设置用水量限值;

“加值”键 :当设置时,按下限值+1;

“减值”键 :当设置时,按下限值-1;

“复位”键 :按下后单片机复位,总用水量不会清除;


三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:

在这里插入图片描述

(2)Protues仿真图如下:

(3)PCB图如下:

四.软件设计

(1)程序流程图

(2)主程序源码


/********************************************************

函数名称: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();     //正常显示界面

else

display2();    //设置流量限值

}

}

关键字:51单片机  智能水表  LCD1602液晶显示 引用地址:基于51单片机的智能水表

上一篇:基于51单片机的电梯控制系统
下一篇:基于51单片机的非接触式红外体温计的设计

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved