1846【毕设课设】基于单片机液位自动控制与检测设计(仿真 程序 论文)

基于单片机液位自动控制与检测设计

摘要

随着社会的进步,生产工艺和生产技术的发展,人们对液位检测提出了更高的要求。由于新型电子技术、微电子技术和微型计算机被广泛应用,单片机控制系统以其控制精度高,性能稳定可靠,设置操作方便,造价低等诸多特点,被应用到液位系统的控制中来。本文介绍了以LM型液位传感器,A/D转换芯片ADC0809,以及AT89C51单片机作为主控元件的液位检测系统的设计方法。本文分别从液位检测,A/D转换,数码管显示,超限报警等几个方面对硬件电路进行了详细介绍,然后对A/D转换程序,数码管显示程序,超限报警程序等做了详细阐述,并用流程图做进一步解释。通过软件和硬件的联合调试,实现了在一定范围内对液位的调节,动态显示出液位结果,实现报警,完全实现了任务书上的要求。

关键词:液位检测、A/D转换、LM型液位传感器、超限报警

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仿真、代码等资料下载地址:
https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

1 设计任务

1.1 设计目的和意义

随着现代工业的发展,液位检测在工业生产中占有重要地位。为了实现液位的自动控制和检测,设计一套基于单片机的液位自动控制与检测系统具有重要意义。通过本次设计,学生可以掌握单片机控制系统的设计方法,增强综合应用能力及单片机应用系统开发和设计能力。

1.2 设计任务要求

本设计要求实现液位的检测、显示和超限报警,具体内容如下:

  1. 使用LM型液位传感器检测液位信息。
  2. 使用ADC0809进行A/D转换,将模拟信号转换为数字信号。
  3. 使用AT89C51单片机进行数据处理和控制。
  4. 使用数码管显示液位信息。
  5. 实现超限报警功能。

2 系统硬件电路的设计

2.1 总体设计方案

2.1.1 总体设计原理

液位传感器将液位信息转换为电压信号,经过A/D转换芯片ADC0809转换为数字信号送入单片机。AT89C51单片机对液位信息进行处理,并判断是否超限。处理后的数据通过数码管显示,若液位超限则触发报警电路。

2.1.2 总体设计框图

单片机系统包括电源部分、液位传感器电路、A/D转换电路、单片机系统、数码管显示电路和超限报警电路。总体设计框图如图1所示。

图1 总体设计框图

电源部分
液位传感器
A/D转换电路
单片机系统
数码管显示电路
超限报警电路

2.2 具体电路设计

2.2.1 电源部分

电源部分提供+5V电压供系统各部分使用,确保系统稳定工作。

2.2.2 液位传感器电路

液位传感器电路采用LM型液位传感器,将液位信息转换为电压信号输出。

2.2.3 A/D转换电路

A/D转换电路采用ADC0809芯片,将液位传感器输出的模拟电压信号转换为数字信号,送入单片机进行处理。

2.2.4 单片机系统

单片机系统以AT89C51为核心,负责接收A/D转换后的液位信息,进行数据处理和超限判断,并控制数码管显示和报警电路。

2.2.5 数码管显示电路

数码管显示电路用于显示当前液位信息,通过单片机的I/O口控制数码管的显示。

2.2.6 超限报警电路

超限报警电路包括蜂鸣器和LED,当液位超限时,由单片机驱动蜂鸣器发声和LED闪烁报警。

2.3 整体硬件电路

整体硬件电路将上述各个模块连接在一起,通过单片机的I/O口实现各个模块的控制和协调工作。

2.4 系统所用元器件

系统所用元器件包括AT89C51单片机、LM型液位传感器、ADC0809、数码管、蜂鸣器、LED、电阻、电容等。

3 软件设计

3.1 A/D转换程序

A/D转换程序负责从ADC0809读取液位信息,并将其转换为数字信号,送入单片机进行处理。

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit ADC_CS = P3^7; // ADC片选
sbit ADC_RD = P3^6; // ADC读
sbit ADC_WR = P3^5; // ADC写
sbit ADC_INTR = P3^4; // ADC中断

void ADC_Init()
{
    ADC_CS = 0;
    ADC_RD = 1;
    ADC_WR = 1;
}

uchar ADC_Read()
{
    uchar value;
    ADC_WR = 0;
    ADC_WR = 1;
    while(ADC_INTR);
    ADC_RD = 0;
    value = P1;
    ADC_RD = 1;
    return value;
}

3.2 数码管显示程序

数码管显示程序负责将液位信息显示在数码管上。

uchar code segment[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

void Display(uchar value)
{
    P0 = segment[value / 10];
    P2 = 0xfe;
    delay(5);
    P0 = segment[value % 10];
    P2 = 0xfd;
    delay(5);
}

3.3 超限报警程序

超限报警程序负责检测液位是否超限,并控制蜂鸣器和LED报警。

void Alarm(uchar value)
{
    if(value > 80) // 超过80%液位报警
    {
        P3 = 0x01; // 蜂鸣器鸣叫
        P2 = 0xff; // LED闪烁
    }
    else
    {
        P3 = 0x00; // 蜂鸣器关闭
        P2 = 0x00; // LED关闭
    }
}

3.4 主程序设计

主程序负责系统的初始化和主循环,包括读取液位信息、显示液位、检测超限等。

void main()
{
    uchar value;
    ADC_Init();
    while(1)
    {
        value = ADC_Read();
        Display(value);
        Alarm(value);
    }
}

4 系统仿真与调试

4.1 系统软件程序的调试

系统软件程序的调试通过KEIL编程软件进行,编写并调试源程序,实现各项功能。

4.2 系统硬件电路的仿真与调试

系统硬件电路的仿真与调试通过PROTEUS仿真软件进行,仿真硬件电路的工作情况,验证设计的正确性。

5 总结

5.1 本系统的优缺点

本系统通过单片机实现了液位自动控制与检测,具有控制精度高、性能稳定可靠、设置操作方便、造价低等优点。但由于硬件资源有限,系统的扩展性和性能还有待提高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值