基于51单片机的流量计制作(流程+程序)

发布者:daits摸鱼的最新更新时间:2022-03-23 来源: eefocus关键字:51单片机  流量计  流程 手机看文章 扫描二维码
随时随地手机看文章

流量计主要应用于检测流体流速,通过检测累计流量可以做到控制流体体积的功能,今天笔者给大家介绍一种基于STC89C52的流量计制作方法,主要能够实现检测实时流速,并在液晶屏上显示出来,累计流量达到限定值后,蜂鸣器产生警报的功能。需要的材料有:BUZZER蜂鸣器,30P无极电容,DC接口(小),10uf极性电容,水流量传感器,2.54间距3芯单排针,LCD1302液晶屏,LED灯,103电位器,9012直插电极管,10K电阻,1K电阻,按键,STC89C52单片机 ,电源开关,晶振,IC座,2.54单排座。 

系统硬件框图如下:` 


程序执行的大致流程给大家用流程图表示出来了; 


下面给大家分享一下笔者使用的源代码:

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include

#include "1602.h"

#include "delay.h"

 

sbit buzzer=P1^2;     //蜂鸣器

sbit key1=P1^1;   //按键1

sbit key2=P1^0;   //按键2

 

unsigned long PluNum=0; //检测速度转化来的脉冲量

unsigned long time_ms;         //定时器计数

float ShunShi=0;          //瞬时流量

float LeiJi=0;            //累计流量

float setNum=1.5;         //设置流量值

 

char dis0[16];         //显示更新暂存

char dis1[16];         //显示更新暂存

unsigned char dealFlag=0;  //处理速度标志

bit rekey =0;              //防止重复

 

void Init_Timer0(void);    //函数声明

 

/*------------------------------------------------

                    主函数

------------------------------------------------*/

void main (void)

{                  

    Init_Timer0();        //定时器0初始化

    EX0=1;         //外部中断0开

    IT0=1;         //边沿触发

    EA=1;          //全局中断开

    LCD_Init();           //初始化液晶

    DelayMs(20);          //延时有助于稳定

    LCD_Clear();          //清屏

 

    sprintf(dis0,"SH:%4.2fL/s",ShunShi);  //打印瞬时流量

    LCD_Write_String(0,0,dis0);         //显示 瞬时流量                           

    sprintf(dis1,"LJ:%4.1fL   %4.1f",LeiJi,setNum);  //打印累计流量

    LCD_Write_String(0,1,dis1);      //显示累计流量

 

    buzzer=0;       //关闭蜂鸣器

    while (1)         //主循环

    {

        if(dealFlag==1)   //定时处理流速

        {

            dealFlag=0;

            ShunShi=(float)PluNum*0.00223*2;    //计算瞬时流量 一个脉冲代表0.00223ml 3s处理一次

            LeiJi=LeiJi+(float)PluNum*0.00223;   //累计计算累计流量

 

            sprintf(dis0,"SH:%4.2fL/s",ShunShi);  //打印瞬时流量

            LCD_Write_String(0,0,dis0);         //显示 瞬时流量                           

            sprintf(dis1,"LJ:%4.1fL   %4.1f",LeiJi,setNum);  //打印累计流量

            LCD_Write_String(0,1,dis1);      //显示累计流量

            PluNum=0;   //清空计数

 

            if(LeiJi>setNum)   //对比设置和实际值

            {buzzer=0;}        //蜂鸣器报警

            else

            {buzzer=1;}        //关闭蜂鸣器

        }

 

        if((key1 == 0)||(key2 == 0))    //有按键情况下

        {

            if(rekey == 0)

            {

                DelayMs(10);

                if(key1 == 0)  //按键1按下

                {

                    rekey =1;   //防止重复按下

                    if(setNum<99.9)            //设置值++

                        setNum = setNum + 0.1;

                }

                else if((key2 == 0))//按键2按下

                {

                    rekey =1;   //防止重复按下

                    if(setNum>0.1)             //设置值--

                        setNum = setNum - 0.1;

                }

            }

        }

        else

        {

            rekey = 0;  //防止重复按下

        }

 

    }

}

 

void Init_Timer0(void)

{

    TMOD |= 0x01;     //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响          

    TH0=(65536-20000)/256;        //重新赋值 20ms

    TL0=(65536-20000)%256;

    EA=1;            //总中断打开

    ET0=1;           //定时器中断打开

    TR0=1;           //定时器开关打开

}

 

void Timer0_isr(void) interrupt 1 

{

    TH0=(65536-20000)/256;        //重新赋值 20ms

    TL0=(65536-20000)%256;

 

    time_ms++;

    if(time_ms%25==0)    //时间定时500ms

    {

        dealFlag=1;

    }

}

 

/*------------------------------------------------

                 外部中断程序

------------------------------------------------*/

void ISR_Key(void) interrupt 0 using 1

{

    PluNum++;        //脉冲计数

}


关键字:51单片机  流量计  流程 引用地址:基于51单片机的流量计制作(流程+程序)

上一篇:基于单片机的电热水器控制系统设计
下一篇:基于单片机的智能社区安全监测系统设计

推荐阅读最新更新时间:2024-10-30 22:38

基于51单片机的超声波发生器设计方案
  本设计的超声波发生器是利用单片机生成初始信号,然后经过一系列处理电路的作用后生成用来杀灭水蚤的超声波,成本低、效果好,可以在农业上加以采用。在此对3个模块进行设计:   (1)信号发生模块。12 MHz的8051单片机硬件连接及其程序设计。   (2)信号处理模块。驱动电路设计(CD4069非门集成芯片);倍频电路设计(S9014或ECGl08三极管、104普通电容、11 257.9 nH自制电感、1 kΩ电阻);整波电路设计(CD4069非门集成芯片);和频电路设计(CD4081与门集成芯片);选频电路设计(S9014或ECGl08三极管、104普通电容、112.58 nH自制电感、1 kΩ电阻)。   (3)信号检测
[单片机]
基于<font color='red'>51单片机</font>的超声波发生器设计方案
基于AT89S51单片机开发板的设计
1 引言 单片机系统传统的编程方式是将单片机先从电路板上取下,放入专用的编程器进行编程,再放人电路板进行调试。其缺点是频繁的拔插器件容易损坏器件的引脚;如果频繁的调试程序,必须重复拔插,大大降低了开发效率。ISP技术是未来发展的方向,其优势是无需编程器就可进行单片机的实验和开发,单片机器件可直接焊接到电路板上,调试结束即为成品,免去调试时由于频繁插入取出对器件和电路板造成的损坏和带来的不便。 ISP可降低研发成本;缩短从设计、制造到现场调试的时间,简化生产流程,大大提高工作效率;在试验新品或学生试验等常需用不同的程序调试器件的场合中,在线编程技术尤为重要。 设计AT89S51 单片机开发板 ,采用ISP下载线实现在Keil C
[模拟电子]
基于AT89S<font color='red'>51单片机</font>开发板的设计
流量计的故障排查方法种类
流量计的故障排查方法种类如下: 1、模拟信号法,用模拟信号发生器提供流量信号,以测试流量传感器; 2、电压法,判断工作电源; 3、电流法,测量流量计输出电流、励磁电流; 4、替代法,如将流量计的转换器、放大板进行互换; 5、波形法,熟悉线路基础上测试关键点波形; 6、电阻法: a、流量计 电源保险丝、励磁保险的通断; b、电磁流量计信号电缆、励磁电缆的通断; c、电磁流量计 励磁线圈的通断及阻值; d、电磁流量计励磁线圈对地的绝缘电阻; e、电极对称性测量; f、电极对地的绝缘电阻; g、流量计电源变压器的阻值;
[测试测量]
端到端流程架构的构建方法
作者: 博阳咨询 副总裁 高巍 关键词:端到端、流程管理、博阳咨询 随着企业的成长,开展流程管理的企业越来越多。如何有效地管理成百上千的流程成为企业管理者面临的重要课题。实践证明,构建“端到端流程架构” 体系是一种有效地流程管理方法。 所谓 “业务流程” 是为了满足内外部客户的需求所开展的一系列业务活动的组合。业务流程应是一个“端到端”的过程,即一条完整的业务流程应是“需求发起” 至 “需求关闭” 的全过程。同样,体现了流程分层、分类和关联关系的流程架构也应该是一套端到端流程的架构体系。 当前,在流程管理中存在一种现象,即“只关注职能流程,在建立了诸如采购流程、生产流程、财务流程等一系列职能流程之后,就认为流程体系已构建
[半导体设计/制造]
端到端<font color='red'>流程</font>架构的构建方法
基于51单片机与MXA2500GL传感器的振动信号分布式检测方法
  该检测方法以PC作为上位机,通过RS-485串行通讯,实现上位机与振动信号分布式检测系统的控制核心—C8051F020单片机之间的数据传输,并可以将检测结果在上位机上显示输出。 引言   由于加速度传感器及电荷放大器的连接线缆的距离限制,采用集中的数据采集和处理系统在空间距离较远的场合很难实现,其可靠性和抗干扰问题很难解决。常采用分布式检测方法:即设置多个数据采集站点,每个站点采用一套单独的数据采集和处理系统,通过网络通信将各站点相互连结起来,然后由一台系统机进行集中数据处理,提取相关特征信息。 C8051F020单片机性能特点   CYGNAL的C8051F020是集成模拟、数字信号的混合信号系统级SOC(System
[单片机]
基于<font color='red'>51单片机</font>与MXA2500GL传感器的振动信号分布式检测方法
Adapteva采用微捷码RTL-to-GDSII流程进行28纳米64核微处理器芯片的投片
美国加州圣荷塞 2011年11月11日– 芯片设计解决方案供应商微捷码(Magma(r))设计自动化有限公司(纳斯达克代码:LAVA)日前宣布,Adapteva采用了微捷码软件进行针对GLOBALFOUNDRIES的28纳米SLP工艺的Epiphany-IV 64核微处理器阵列IC的投片。通过利用微捷码的Talus(r)、Hydra(tm)和Titan(tm)数字与模拟IC设计解决方案以及拥有最新验证过的28纳米SLP工艺运行集的Quartz(tm) DRC/LVS物理验证工具,Adapteva能够以突破性70 GFLOPS/Watt性能,交付目前为止能效最高的浮点式处理器阵列解决方案。 微捷码流程是Epiphany-IV独特设
[半导体设计/制造]
51单片机控制+MAX7219+DS1302 电子钟
/************************************************** *程序名称: MAX7219 C语言控制程序 *程序功能: 3线串行控制8位共阴数码管 *3线定义:DIN 串行数据输入 * LOAD 数据锁存 * CLK 时钟输入 ***************************************************/ #in
[单片机]
Part4_lesson2---ARM处理器这个硬件启动流程分析
1、启动方式 s3c2440:可以从Nor flash启动,Nor flash一般是2MB;也可以从Nandflash启动,它一般是256MB,我们习惯上把我们的uboot,内核以及文件系统都放到Nandflash里面去,选择开发板从nandflash启动。 当2440从nandflash启动的时候,其地址布局是怎样的呢? 打开芯片手册 当处理器上电之后,它会从哪儿去取它的第一条指令呢,会从0地址处去取它的第一条指令。如果说是从nor flash来启动,0地址处应该安排我们的nor flash,然后编写的代码应该放在nor flash的最前端,否则cpu去取指令会取不到。如果说从nandflash启动的话,上图右面看不到na
[单片机]
Part4_lesson2---ARM处理器这个硬件启动<font color='red'>流程</font>分析
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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