基于单片机液体水流量检测流量监测系统Proteus仿真(含全部资料)

全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等

资料下载:

通过网盘分享的文件:资料分享
链接: 百度网盘 请输入提取码 提取码: tgnu


目录

资料下载:

Proteus仿真功能

项目文件资料:

一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书

三、系统流程图

四、Keil c语言程序源代码


项目功能:

51单片机液体水流量检测设计
本系统由51单片机电路+水流量传感器模块电路+LCD1602液晶显示电路+按键电路+蜂鸣器电路+电源电路组成。
1、水流量传感器采用椭圆齿轮传感器。
2、通过液晶LCD1602液晶实时显示瞬时流量和累计流量。
3、通过按键设置累计流量阈值,如果累计流量高于设置阈值,蜂鸣器开始报警
4、通过液晶LCD1602液晶实时显示设置流量设置值。
5、累积流量和设置的流量阈值掉电不丢失数据。


项目文件:

一、Proteus仿真源文件

二、AD原理图文件

二、报告说明书

三、系统流程图

四、器件清单

元件标号元件名称数量
C1470uF电解电容1
C210uF电解电容1
C3, C430pf瓷片电容2
J1电源接口1
K1轻触按键1
L43mm红色LED1
P14P排针1
P2XH-2A白色底座+XH-2P双头线(注意正反)1
R210K电阻1
R31K电阻1
R10103蓝白滑动变阻器1
R574.7K电阻1
SW1自锁开关1
U1STC89C52单片机+DIP40底座1
U23DS18B20温度传感器1
U53MAX485芯片+DIP8底座1
Y111.0592M晶振1
锡丝若干1
导线若干1
9*15万用板1
USB供电线一根或电池盒1

五、Keil c语言程序源代码(部分)

#include <REGX52.H>
#include "LCD1602.h"
#include "eeprom52.h"
uchar ms=0;    
uchar count=0;	      //流量计数
uint flow=0;	      //流量数据
uint flow_h=1;	      //流量数
uint flow_Value=0;	      //流量数
uint speed_count=0;  //速度数据计数
uint speed=0;  //速度数据计数
bit memory_flag=0;
bit beep1=0;
bit flow_flag=0;
bit memory_flag1=0;
uchar sec=0;
uchar sec1=0;
uchar time=0;
void memeory()
 {
	if(memory_flag) 
	 {	memory_flag=0;
	   	SectorErase(0x2000);
		byte_write(0x2000,flow_h/256);
		byte_write(0x2001,flow_h%256);
	 }
	if(memory_flag1) 
	 { 	memory_flag1=0; 
	    SectorErase(0x2200);
		byte_write(0x2200,flow/256);
		byte_write(0x2201,flow%256);
	 }
 }
void read_memeory()
 {
   flow_h=byte_read(0x2000)*256+byte_read(0x2001);
    flow=byte_read(0x2200)*256+byte_read(0x2201);
   if(flow_h>999||flow_h<0) 
    {
	  flow_h=20;
	}

   if(flow>999||flow<0) 
    {
	  flow=0;
	}

 }
void key_dispose() 
 {
   if(!key1) 
    {
	  if(key1_flag) 
	   {
	     key1_flag=0;
		 if(flow_h<999) flow_h++; 
	   }

	   if(sec==0) 
	    {
		  if(flow_h<999) flow_h++; 
		}
	}
	else 
	 {	
	    if(key1_flag==0) memory_flag=1;
	    key1_flag=1;
		sec=4;
	 }
   if(!key2) 
    {
	  if(key2_flag) 
	   {
	     key2_flag=0;
		 if(flow_h>0) flow_h--; 
	   }
	}
	else 
	 {
	    if(key2_flag==0) memory_flag=1;
		key2_flag=1; sec1=4;
	 }

   if(!key1&&!key2) 
    {
	}
	else 
	 {
	    if(key3_flag==0) memory_flag1=1;
		key3_flag=1; 
	 }
 }



void display()
 {
   LCD1602_write(0,0x80);
   LCD1602_writebyte("Speed:");
   LCD1602_write(0,0x8A);
   LCD1602_writebyte("L/S        ");
   LCD1602_write(0,0xC0);
   LCD1602_writebyte("F:");
   if(flow>99) LCD1602_write(1,0x30+flow/100%10);
   else 	   LCD1602_write(1,' ');
   LCD1602_write(1,0x30+flow/10%10); 
   LCD1602_write(1,'.');
   LCD1602_write(1,0x30+flow%10);
   LCD1602_write(1,'L');
   LCD1602_writebyte("  H:");
   LCD1602_write(1,0x30+flow_h/10%10); 
   LCD1602_write(1,'.');
   LCD1602_write(1,0x30+flow_h%10);
   LCD1602_write(1,'L');
 }
void police()
 {
   if(flow>flow_h) 
    {
	  beep1=1;
	}
	else 
	 {
	   beep1=0;
	 }
 }
void main()
 {  LCD1602_cls();
   TMOD=0x01;
   ET0=1;
   TR0=1;
   EA=1;		  //配置定时器0 工作在方式1 最大计数65535
   EX0=1;
   IT0=1;
   read_memeory();
   while(1) 
    {  police();
	   display();
	   memeory();
		
	}
 }
void time0() interrupt 1
 {
   ms++;
   key_dispose() ;
   if(ms%10==0) 
    {
	  if(beep1) beep=~beep;
	  else      beep=1;	

	  if(sec!=0) sec--;
	  if(sec1!=0) sec1--;
	}
   if(ms>=20) 
    { 
	  ms=0;
	  EX0=0;
	  speed=speed_count*0.22222222222222; //一个脉冲数是0.0022222222222222L,我们要精确到小数点后两位
	  speed_count=0;  	  
	  EX0=1;

	   LCD1602_write(0,0x86);
	   LCD1602_write(1,0x30+speed/100%10);
	   LCD1602_write(1,'.');
	   LCD1602_write(1,0x30+speed/10%10);
	   LCD1602_write(1,0x30+speed%10);
	}
 }
void int0() interrupt 0
 {
   count++;
   speed_count++;		 //既然是450脉冲为1L,则1/450得到的就是一个脉冲是多少升	  0.0022222222222222,也就是说1个脉冲等于0.0022222222222222升数据
   if(count>=45) 		 // 每450脉冲为1L,则,45脉冲就是0.1L
    {
	  count=0;
	  flow=flow+1;		// flow就是每次获得0.1L数据加一
	  memory_flag1=1;
	}
 }

六、全套资料包含

七:项目资源获取

需要完整的资料可以点击下面的名片关注,回复“资料”!

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞鹰工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值