油箱液位测量仪设计.doc

上传人:聆听****声音 文档编号:1997827 上传时间:2023-05-02 格式:DOC 页数:22 大小:1.19MB
下载 相关 举报
油箱液位测量仪设计.doc_第1页
第1页 / 共22页
油箱液位测量仪设计.doc_第2页
第2页 / 共22页
油箱液位测量仪设计.doc_第3页
第3页 / 共22页
油箱液位测量仪设计.doc_第4页
第4页 / 共22页
油箱液位测量仪设计.doc_第5页
第5页 / 共22页
油箱液位测量仪设计.doc_第6页
第6页 / 共22页
油箱液位测量仪设计.doc_第7页
第7页 / 共22页
油箱液位测量仪设计.doc_第8页
第8页 / 共22页
油箱液位测量仪设计.doc_第9页
第9页 / 共22页
油箱液位测量仪设计.doc_第10页
第10页 / 共22页
油箱液位测量仪设计.doc_第11页
第11页 / 共22页
油箱液位测量仪设计.doc_第12页
第12页 / 共22页
油箱液位测量仪设计.doc_第13页
第13页 / 共22页
油箱液位测量仪设计.doc_第14页
第14页 / 共22页
油箱液位测量仪设计.doc_第15页
第15页 / 共22页
油箱液位测量仪设计.doc_第16页
第16页 / 共22页
油箱液位测量仪设计.doc_第17页
第17页 / 共22页
油箱液位测量仪设计.doc_第18页
第18页 / 共22页
油箱液位测量仪设计.doc_第19页
第19页 / 共22页
油箱液位测量仪设计.doc_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

油箱液位测量仪设计.doc

《油箱液位测量仪设计.doc》由会员分享,可在线阅读,更多相关《油箱液位测量仪设计.doc(22页珍藏版)》请在冰点文库上搜索。

油箱液位测量仪设计.doc

油箱液位测量仪设计

摘要

随着社会的进步、生产工艺和生产技术的发展,人们对液位的检测提出了更高的要求。

而新型电子技术微电子技术和微型计算机的广泛应用于普及,单片机控制系统以其控制精度高,性能稳定可靠,设置操作方便,造价低等特点,被应用到油位系统的控制中来。

本文介绍了用液位检测集成芯片LM1042和A/D转换芯片A/D574A,以及AT89C51单片机作为主控元件的油位检测的原理、电路及监控程序。

用LM1042液位检测集成芯片测量液位,具有测量精度高、速度快、可靠、稳定等优点;采用单片机来控制液位信息的采集,并且计算出真实液位值,通过运算判断是否超限报警,使检测具有更高的智能性。

关键词:

电子技术,油位检测,智能性

目录

1.系统方案设计………………………………………………1

1.1概述……………………………………………………………………………………1

1.2系统总体功能概述…………………………………………………………………….1

2硬件部分设计…………………………………………….2

2.1核心芯片的选择……………………………………………………………………….2

2.2硬件原理图…………………………………………………………………………….6

3软件部分设计……………………………………………11

3.1软件功能概述………………………………………………………………………11

3.2主程序设计…………………………………………………………………………11

3.3定时器T0中断服务程序…………………………………………………………...11

3.4A/D转换子程序…………………………………………………………………….13

3.5LED显示子程序……………………………………………………………………14

4结论………………………………………………………15

参考文献……………………………………………………16

致谢…………………………………………………………17

附录…………………………………………………………18

20

油箱液位测量仪设计

1.系统方案设计

1.1概述

本次设计系统以AT89C51为核心,当测量液面超过设定的液面上下限时,启动蜂鸣器和指示灯报警显示稳定,从而达到自动报警的功能。

随着社会的进步、生产工艺和生产技术的发展,人们对液位的检测提出了更高的要求。

而新型电子技术微电子技术和微型计算机的广泛应用于普及,单片机控制系统以其控制精度高,性能稳定可靠,设置操作方便,造价低等特点,被应用到液位系统的控制中来。

本文介绍了用液位检测集成芯片LM1042和A/D转换芯片A/D574A,以及AT89C51单片机作为主控元件的液位检测的原理、电路及监控程序。

用LM1042液位检测集成芯片测量液位,具有测量精度高、速度快、可靠、稳定等优点;采用单片机来控制液位信息的采集,并且计算出真实液位值,通过运算判断是否超限报警,使检测具有更高的智能性。

1.2系统总体功能概述

该系统以AT89C51作为核心控制部件,外加传感器。

一片A/D转换芯片和一片数码管驱动芯片来完成系统的预期任务,即液位的检测、显示和超限报警。

LM1042外接的热阻探针温度的变化依赖于周围材料的热阻的大小,而空气和液体的热阻大小有很大差别,从而可以根据探针在液体中的深度不同时电阻的不同检测出液位的深度信息,由LM1042内部转换电路网络转换为与液位成线性关系的电压信号,再由12位逐次逼近型A/D转换芯片AD574A将模拟信号转换为数字信号,实现液位信息的输入,AT89C51从AD574A读取液位信息后进行数据处理和超限判断,随后将处理过的数据输出到数码管驱动芯片ICM7218的RAM中,由ICM7218实现数码管的静态显示,若液位超限则由单片机驱动蜂鸣器报警。

各部分功能:

电源部分提供+5V+15V-15V电压供系统各部分使用。

传感器LM1042实现液位信息到电压信号的转换。

AD574A将传感器输出的电压信号经A/D转换后送到单片机。

AT89C51为处理器,实现液位信息的接收、数据处理、和输出到ICM7218.

蜂鸣器部分在单片机检测到液位超限是由单片机驱动实现声音报警。

单片机对液位数据处理后输出,由ICM7218驱动数码管显示。

2硬件部分设计

2.1核心芯片的选择

(1)单片机AT89C51

AT89C51单片机简介

单片机是把微型计算机主要部分集成在一块芯片上的单芯片微型计算机。

单片机应用系统的基本构成如图2

如图2单片机应用系统的基本构成

AT89C51简介

AT89C51主要参数如表所示:

AT89C51含E2PROM电可编闪速存储器。

有两级或三级程序存储器保密系统,防止E2PROM中的程序被非法复制。

不用紫外线擦除,提高了编程效率。

程序存储器E2PROM容量可达20K字节。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.主要特性:

与MCS-51兼容

4K字节可编程闪烁存储器

寿命:

1000写/擦循环

全静态工作:

0HZ-24HZ

三级程序存储器锁定

128*8位内部RAM

32可编程I/O线

两个16位定时器/计数器

5个中断源

可编程串行通道

低功耗的闲置和掉电模式

片内振荡器和时钟电路

2.管脚说明:

VCC:

供电电压

GND:

接地

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,他可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FLISH进行校验时,P0输出源码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉位高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLISH进行校验时,P1口作为第八地址接受。

P2口位一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

胖口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。

在给地址“1”时,他利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出器特殊功能寄存器的内容。

P2口在FLISH编程和校验时接受高八位地址信号和控制信号。

P3口:

P3口管脚是八个带内部上拉电阻的双向I/O口,可接受输出4个TTL门电流。

当P3口写入“1”后,他们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。

P3口也作为AT89C51的一些特殊功能口,如下所示:

P3口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(计时器0外部输入)

P3.5T1(计时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址所存允许的输出电平用于锁存地址的低位字节。

在FLISH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定是目的。

然而要注意的是:

每当用作外部数据存储器是,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高,如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

外部程序存储器的的选通信号。

在有外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部存储器时,这两次有效的/PSEN信号讲不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部存储器(0000H-FFFFH),不管内部是否有程序存储器。

注意加密方式1时,/EA将内部锁存为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).

XTAL1:

反响放大振荡器的输入及内部时钟工作电路的输入

XTAL2:

来自反响振荡器的输出。

3.I/O口引脚:

a:

P0口,双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用;

b:

P1口,8位准双向I/O口

c:

p2口,8位准双向I/O口,与地址总线(高8位)复用;

d:

P3口,8位准双向I/O口,双功能复用。

(2)传感器LM1042

传感器由液位检测专用集成芯片LM1042和一组热探针组成,实现液位信号到电压信号的转换。

LM1042使用热阻探针技术来测量非可燃性液体的液面高度,它能提供一正比于液位高度的输出,可进行单次或重复测量,所有控制热阻探针、检测热阻探针的短路和开路所需的监控电路都集成在LM1042芯片内部。

此外该芯片还可采用其他传感器信号或线性输入作为输入信号。

该器件采用16脚DIP封装。

芯片的主要特点如下;

●集成有热阻探针的控制电路;

●可单次测量或重复测量;

●具有探针短路、开路检测功能;

●电源或控制输入端具有50V的瞬态电压保护电路;

●电源范围7.5~18V;

●内部有电源调节器;

●可在-40℃—+80℃的工作温度范围内工作。

LM1042的结构如图2-2所示:

(3)A/D转换芯片AD574A

AD574A是美国模拟数字公司推出的单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动较零和自动极性转换功能,只需外接少量的阻容元件即可构成完整的A/D转换器,其主要功能特性如下;

●分辨率:

12位

●非线性误差:

小于±1/12LBS或±1LBS

●转换速率:

25us

●模拟电压输入范围:

0-10v和0-20v,0-±5v和0-±10v两挡四种

●电源电压:

±15v和5v

●数据输出格式:

12位/8位

●芯片工作模式:

全速工作模式和单一工作模式

其原理结构图如图2-3所示:

(4)数码管驱动芯片ICM7218

ICM7218是INTERSIL公司生产的一种性能价格比较高的通用8位LED数码管驱动电路,28脚双列封装,是一种多功能LED数码管驱动芯片,可与多种单片机接口使用。

ICM7218的输出可直接驱动LED显示器,不需外接驱动电路,其构成的显示电路结构简单,使用方便。

其引脚图和内框图如图2-4和2-5所示:

2.2硬件原理图

(1)电源部分

电源电路如图2-6所示:

图2-6电源电路

本系统供电为市电AC220v,经变压器T1降为交流18v,经整流桥堆整流后得到脉动直流电压18v,再分别经三端稳压器LM7805、LM7815、LM7915分别得到VCC(+5v)、+15v和-15v,其中电解电容C1、C3、C22、C5、C7、C9起滤波作用,C2、C4、C23、C6、C8、C10是旁路电容,起抑制干扰的作用。

(2)传感器电路

传感器电路如图2-7所示:

图2-7传感器电路

在传感器电路中,7脚和10脚是用于探针2的调整,由于本系统只用到探针1,故只需将7脚和10脚接地即可;1脚是热阻探针输入端;5脚是探针故障检测端;6脚是电源端;3,4脚分别接PNP管的发射极和集电极用于给探针提供200MA的固定电流;16脚为模拟电压输出端,输出与液位成正比的模拟电压;12,13脚用来调整探针的测量周期;9,14脚外接两个电容作为探针的记忆电容,记忆探针的电压值。

(3)A/D转换电路

A/D转换电路如图2-8所示:

图2-8A/D转换电路

本系统经过采用AD574A芯片,其中1脚为电源端;10脚输出标准10V电压经过变阻器R4连接到8脚给芯片内部解码网络供电;9脚为地端;12脚外接电阻网络用于调整零点,13脚为0-10V量程输入端;14脚为0-20V量程输入端,此系统不用;7,11脚为±基准电压输入端;16-19脚接单片机P1.4-P1.7用于输出低4位,20-27脚接单片机P1.0-P1.7用于输出高8位;28脚输出转换完成信号,6,3,4,5脚用于控制芯片的工作方式,2脚接地代表芯片用于12位转换。

当传感器信号输入13脚,单片机控制6脚为高电平,3,4,5脚为低电平时,芯片使28脚输出低电平并启动12位A/D转换,转换完成后置位28脚,允许单片机读取数据,当单片机检测到28脚为高电平,控制6脚为高电平,3,4,5脚为低电平读取高8位,再4,6脚为高电平,3,5脚为低电平读取低4位,这样就完成一次A/D转换和数据读取。

(4)单片机外围电路及蜂鸣器电路

单片机外接12MHZ晶振,在9脚外接手动复位电路;P0.3接蜂鸣器用于报警。

电路如图2-9所示:

图2-9单片机外围及蜂鸣器电路

(5)ICM7218A显示电路

ICM7218A显示电路如图2-10所示:

图2-10ICM7218A显示电路

本系统显示用的4位七段数据管由数据管专用驱动芯ICM7218A驱动,27,3,1,25,2,24,26脚分别接数据管的a~g,15,16,23,20脚为位选,分别控制4位数码管的亮灭,ID0~7为数据线,接单片机P2口,WRITE,MODE是写控制位和模式控制位,分别接单片机P0.6,P0.7。

3软件部分设计

3.1软件功能概述

在系统的硬件确定以后,功能完善的软件能够很好的指导和协调硬件的工作,可使系统发挥其最大的作用,并且便利以后的更新换代升级。

一个完整的系统都离不开对系统状态的监控,为了更好的协调软件,硬件各个部分正常工作就必须对整个系统进行严密监控。

在本系统中定时器T0中断服务程序担任数据读取,处理和输出显示任务,每隔一定的时间对A/D转化进行一次采样,并进行相应的处理,在经过LED驱动电路来实现液位的显示。

而主程序完成的任务相对简单,它只是完成初始化和启动T0定时的工作。

3.2主程序设计

在本系统中主程序完成的任务相对简单,它只是完成初始化和启动T0定时的工作。

图3-1主程序设计

3.3定时器T0中断服务程序

T0中断服务程序完成的任务比较多,主要包括:

每一秒启动一次A/D转换,读取并处理数据,显示和超限报警。

T0中断服务程序流程图如图3-2所示:

其中读取和处理数据放到A/D值读取子程序;显示放到LED显示子程序;由于液位是一种变化比较缓慢的量,故只需每隔一定时间检测一次即可满足需要,在此选定一秒检测一次,即1秒进行一次A/D转换。

由于本系统所用晶振为12MHZ,故定时器每计时一次用时为1/12*10^(-6)*12S=1us,因此定时器为16位定时器,故最多计时2^16=65536次,即计时65536US=65.536MS,此时用定时器T0定时50ms,则当定时器定时20次,共定时20*50MS=1S,满足系统需要。

据TC=M-T/T计数(T=50ms,T计数=1us,M=2^16)得TC=15536则定时器初值为TH0=3C,TL0=B0。

超限预警则是通过把A/D转换值与上下限值比较得出液位是否有超限,若超限则输出高电平驱动蜂鸣器报警。

图3-2定时器T0中断服务子程序

图3-3A/D转换子程序

3.4A/D转换子程序

A/D转换子程序主要完成A/D值的读取以及数据的处理。

因为AD574A进行A/D转换的过程中第28脚STS=0,转换完成后STS=1,故启动A/D转换后要先检测STS,若STS为高电平才进行A/D值读取操作,A/D值读取要先写读高8位控制字,然后读取高8位,再写入读低4位控制字然后读取低4位,将读取得到的12位数据用于计算得到液位值,然后再对液位值逐步分离,分别得到数码管显示饿百位,十位,个位和一位小数位,并将它们放到字符数组A/DV【4】中,用于LED显示,A/D转换子程序流程图如图3-3所示:

3.5LED显示子程序

LED显示子程序主要完成液位值的显示,本系统采用数码管专用驱动芯品ICM7218驱动4位七段数码管用于液位值的显示,只需要把要显示的数据写入ICM7218的RAM中即可,由于该芯品默认驱动八位数码管,必须写入8字节显示数据,而此系统只用低4位,只需把高4位置为随机数即可,故先通过ICM7218的控制位WR=0和MODE1使芯片工作于方式1,写入控制字,然后使MODE=0使芯片工作于方式0,写入8字节数据即可完成液位值的LED显示。

LED显示子程序流程图如图3-4所示:

图3-4LED显示子程序

4结论

本次毕业设计主要是为了改善现有液位检测系统精度不高,速度慢,智能化程度低的缺点,给生产提供精度更高,速度更快,更加智能的液位检测系统。

整个系统实现了预期的目标,达到了控制的高精度,高速,智能型的要求:

1高精度:

使用LM1042Z作为长安其能够输出与液位成正比的电压信号,使用AD574A作为A/D转换芯片,来达到提高精度的目的,LM1042作为能够输出与液位成正比信号的电压信号,AD574A是12位A/D转换芯片,并非线性误差仅为±1LBS。

2高速:

使用AD574A作为A/D转换芯片,其转换时间仅为25US。

3智能型:

单片机AT89C51读取液位信息经过处理得到液位高度,并判断是否超限,若超限则驱动蜂鸣器报警,提高系统智能化程度。

但是也存在不少的不足,由于电源的波动,传感器的电气特性等问题,使得A/D转换结果有时波动很大,这样就可能出现误报警。

由于时间的关系,系统中本应具有的根据液位变化自动调节液位的功能没有实现,而只是实现了超限报警。

由于上述缺点的存在,此系统不是很完善,还有待进步改进和完善。

通过这次设计,更加深入的理解和掌握了这方面的知识,对本专业的认识也更加深入,使自己对本专业更加的热爱,对本科阶段四年的学习做了进一步的总结,更加明确了自己学习的目标和方向,由很多感悟和体验心得。

而且,对工程设计的流程和步骤有了清晰的认识,为自己日后的学习和研究打下了坚实的基础。

在这次系统设计过程中,我深刻的认识到要做好一个项目,不仅需要学好本身相关知识,还要广泛涉猎其他学科知识。

不仅需要有坚实的知识,还要有坚强的意志和精益求精的精神,追求,只有这样才能做好工程项目。

才能成为一名合格的人才。

参考文献

[1]王清.《机械工程测试技术》教学改革探讨[J].科技信息(科学教研),2008,17:

500.

[2]谢锋云.MATLAB在机械工程测试技术中应用探讨[J].佳木斯大学学报(自然科学版),2008,05:

603-605.

[3]吴文秀,汪建华,周思柱.MATLAB在《机械工程测试技术》教学中的应用[J].科技资讯,2006,26:

105-106.

[4]林近山.关于机械工程测试技术教学改革的几点思考[J].潍坊学院学报,2011,02:

149-150.

[5]张志刚,石晓辉,富丽娟.《机械工程测试技术》课程理论教学的改革与创新[J].科技创新导报,2011,23:

147-148.

[6]石磊.案例教学法在《机械工程测试技术》的应用[J].机电技术,2011,05:

147-148.

[7]王文娟.MATLAB/Simulink在机械工程测试技术基础教学中的应用[J].农业科技与装备,2009,04:

52-54.

[8]李敏通,朱兆龙,查峥.“机械工程测试技术”教学方法研究探讨[J].教育教学论坛,2012,04:

189-190.

[9]张凤生,王海峰,孙忠义,李智,杨倩.机械工程测试技术课程教学改革与实践[J].教学研究,2012,01:

92-94.

[10]文成,周传德.工程案例法在“机械工程测试技术”课程教学中的应用[J].重庆科技学院学报(社会科学版),2012,21:

188-190.

[11]吴世雄,王成勇.“机械工程测试技术”教学改革的探索[J].广东工业大学学报(社会科学版),2007,S1:

108-109.

[12]《C语言程序设计教程第三版》.高等教育出版社

[13]《单片机C语言windows环境编程宝典》.北京航空航天大学出版社

[14]《8051C语言实习》.中国水利水电出版社

[15]《单片机原理及其接口技术(第二版)》.清华大学出版社

致谢

首先要感谢我的父母,是他们用辛勤的汗水浇灌着我的生命,省吃俭用供我完成学业,教导我在人生道路上迈好每一步。

其次要感谢我的恩师,他严谨的治学、和蔼的性格教导始终让我如沐春风,激励着我走向学术的大门。

论文开题后,老师多次指导收集材料、进行数据分析,多次对论文提出修改意见,为我的论文费尽心血,还关心我的学习生活,在生活和学业上都给我极大的帮助。

我的这篇文章从开题到写作成型再到几次修改完善,经过了一个不断学习、不断探索的阶段,现在拿在手上喜悦和辛酸涌上心头。

在此我要感谢我的父母亲朋、良师益友和无私帮助过我的人们。

最后要感谢我的同窗好友们,他们给我一个温暖的集体、一个良好的学习生活环境,在论文的修改阶段也是给予了许多帮助。

毕业来临,今后我将继续将这种求真务实的治学态度带到人生中的每一个阶段,将这份感恩铭记于心。

附录

主程序代码

#include

#defineA_DINP1

#defineICMOUTP2

sbitBuzzer=P0^3;

sbitICMMODE=P0^6;

sbitICMWR=P0^7;

sbitSTS=P3^0;

sbitRC0=P3^1;

sbitA0=P3^2;

sbitCS0=P3^3;

sbitCE=P3^4;

unsignedcharA_DV0,A_DV1;//A_D转换得到值

unsignedHmax,Hmin;//上下限值

unsignedcharA_DV[4];//当前液位值

floatU1,U2,H;

voidT0Run(void);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2