单片机课程设计液位检测系统剖析电子教案.docx

上传人:b****3 文档编号:27542811 上传时间:2023-07-02 格式:DOCX 页数:21 大小:300.66KB
下载 相关 举报
单片机课程设计液位检测系统剖析电子教案.docx_第1页
第1页 / 共21页
单片机课程设计液位检测系统剖析电子教案.docx_第2页
第2页 / 共21页
单片机课程设计液位检测系统剖析电子教案.docx_第3页
第3页 / 共21页
单片机课程设计液位检测系统剖析电子教案.docx_第4页
第4页 / 共21页
单片机课程设计液位检测系统剖析电子教案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机课程设计液位检测系统剖析电子教案.docx

《单片机课程设计液位检测系统剖析电子教案.docx》由会员分享,可在线阅读,更多相关《单片机课程设计液位检测系统剖析电子教案.docx(21页珍藏版)》请在冰豆网上搜索。

单片机课程设计液位检测系统剖析电子教案.docx

单片机课程设计液位检测系统剖析电子教案

 

单片机课程设计——液位检测系统剖析

烟台大学机电汽车工程学院

单片机课程设计

液位检测系统设计报告

指导教师:

姜风国

班级:

机101-4

姓名:

学号:

小组成员:

设计时间:

2013.5.27-6.7

 

第一章设计任务书••••••••••••••••••••••••••••1

第二章项目简介••••••••••••••••••••••••••••••2

第三章任务分工••••••••••••••••••••••••••••••3

第四章功能描述••••••••••••••••••••••••••••••4

一功能简介•••••••••••••••••••••••••••••••4

二系统硬件设计简介••••••••••••••••••••••••4

三核心器件的选择及介绍••••••••••••••••••••5

(一)单片机AT89C51••••••••••••••••••••••••5

(二)传感器的选择•••••••••••••••••••••••••8

(三)数模转换器ADC0809•••••••••••••••••••••9

第五章硬件电路的设计••••••••••••••••••••••••11

一传感器电路的设计••••••••••••••••••••••••11

二A/D转换电路的设计•••••••••••••••••••••••11

三LED显示电路的设计•••••••••••••••••••••••11

四报警电路的设计•••••••••••••••••••••••••••12

第六章系统软件部分的设计••••••••••••••••••••12

一程序框图•••••••••••••••••••••••••••••••••13

二程序清单•••••••••••••••••••••••••••••••••14

第七章总结••••••••••••••••••••••••••••••••••••17

附录电路原理设计图•••••••••••••••••••••••••••18

第一章设计任务书

一、本设计研究的内容:

设计某制药厂液缸内液位检测系统,本设计以MCS-51系列单片机为核心,采用常用电子器件设计,自行设计电源,选用合适的液位检测传感器,检测液位,数码管显示,当液位高度太高或太低时,报警。

(可采用中断方式设计)。

二、设计任务:

分组按照指导教师下达的设计任务,设计各种单片机应用系统,具体要求为:

1.用MCS-51单片机,12MHz时钟,常规的上电和手动复位电路;

2.3个以上的按键;

3.LED或/和数码管或/和LCD显示及其接口;

4.至少2路输入信号,可以是模拟量或数字量。

三、课程设计具体要求:

1.选题具有足够的工作量;

1.编写项目功能说明书,确定应用系统的功能和具体参数;

2.设计电路原理图;

3.编写汇编语言或C语言源程序,程序中加注必要的注解说明;

4.编写设计说明书。

 

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

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

本设计主要包括以下模块:

传感器模块:

采用液位检测集成芯片LM1042,用LM1042液位检测集成芯片测量液位,具有测量精度高、速度快、可靠、稳定等

A/D转换模块:

采用A/D8位转换芯片AD0809,它是逐次逼近式A/D转换器,可以和单片机直接接口。

AT89C51单片机:

作为主控元件以及接口的电路、监控程序。

LED显示模块:

数码管选用7SEG-MPX4-CA-BLUE4位显示LED.并使用74LS245驱动。

报警装置:

当水位高于或低于设定值时,系统报警。

优点:

采用单片机来控制液位信息的采集,并且计算出真实液位值,通过运算判断是否超限报警,考虑到工厂的使用环境,使用了二极管发光增强了安全系数。

提醒工作人员执行相关操作,避免发生危险。

使检测具有更高的智能性。

大大减少了人的劳动强度。

 

第三章任务分工

小组成员在认真分析项目功能的基础上,根据每一位成员的优点划分了具体的任务。

在保证紧密合作、共同进步的基础上,确立了每人的分工任务。

在设计的过程中,我们各自负责的部分组成了一个不能分割整体,因此更过的时间我们是共同的学习。

具体分工如下:

A/D转换器的选择

第四章功能描述

一功能简介

本设计经过调研,收集且分析相关技术资料,综合考虑液位检测技术发展和液位检测系统特点的基础上,提出把液位检测显示同超限报警综合的解决方案。

本系统采用AT89C51单片机作为处理器,主要完成以下工作:

1.基于AT89C51的液位信息检测设计方案。

2.传感器LM1042,A/D转换芯片ADC0809与单片机的接口电路设计。

3.LED数码管的显示是利用段码加位码循环动态显示实现的。

4.设计主要软件程序模块,完成软件设计。

二系统硬件设计简介

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

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

LM1042外接的热阻探针温度的变化依赖于周围材料的热阻的大小,从而可以根据探针在液体中的深度不同时电阻的不同检测出液位的深度信息,由LM1042内部转换电路网络转换为与液位成线性关系的电压信号,再由A/D转换芯片AD0809将模拟信号转换为数字信号,实现液位信息的输入,AT89C51从ADC0809读取液位信息后进行数据处理和超限判断,随后将处理过的数据分别通过位码和段码送给相应的芯片。

同时,若液位超限则由单片机驱动蜂鸣器报警。

 

图3-1系统总体结构图

各部分功能:

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

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

3.ADC0809将放大器输出的电压信号经A/D转换后送到单片机。

4.AT89C51为处理器,实现液位信息的接收、数据处理、输出到LED显示端.

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

6.单片机对液位数据处理后输出,送给相应芯片控制LED动态显示。

三核心器件的选择及介绍

(一)单片机AT89C51

图3-251系列单片机的内部整体结构原理图

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

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

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

2.管脚说明:

图3-351系列单片机引脚图

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口管脚备选功能

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口,双功能复用。

(二)传感器的选择

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

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

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

该器件采用16脚DIP封装。

芯片的主要特点如下;

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

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

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

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

5电源范围7.5~18V;

6内部有电源调节器;

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

图3-4LM1042原理图

(3)数模转换器ADC0809

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

ADC0809的内部逻辑结构:

ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

图3-5ADC0809引脚图

图3-5ADC0809内部结构逻辑图

ADC0809各脚功能如下:

D7-D0:

8位数字量输出引脚。

IN0-IN7:

8位模拟量输入引脚。

VCC:

+5V工作电压。

GND:

地。

REF(+):

参考电压正端。

REF(-):

参考电压负端。

START:

A/D转换启动信号输入端。

ALE:

地址锁存允许信号输入端。

(以上两种信号用于启动A/D转换)

EOC:

转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。

OE:

输出允许控制端,用以打开三态数据输出锁存器。

CLK:

时钟信号输入端(一般为500KHz)。

A、B、C:

地址输入线。

 

第五章硬件电路的设计

一传感器电路的设计

由于我们在设计的过程中未接触到实际传感器,在protues仿真软件中采用电位器模拟的办法,因此我们只是了解了传感器的原理。

传感器电路设计部分并未实现。

(2)A/D转换部分的电路设计

本系统经过采用AD0809芯片,其中11脚为电源端,最主要的6脚START,启动控制端口,高电平有效,EOC连接51单片机的终端输入端,触发中断的信号。

9脚是输出时能端,电路图中可以看出它是由P2.6控制的。

10脚为时钟接口,12,16分别为参考正,参考负。

26脚为通道0的信号输入端,23,24,25为通道选择引脚,22为锁存使能信号端,下面的八路信号是输出端,由低到高的对应八位二进制数。

13为参考地。

(见附录电路原理设计图)

(3)数码管显示部分的电路设计

电路图可以参见上面的图2-8,大致控制是通过P0口将段码送给245增加驱动后,送至LED的A-DP的输入端,控制显示的大小。

同时通过P2.0,P2.1作为139译码器的输入信号选出一路信号后,作为位码送至LED的1-4端口,决定哪一位显示。

整个LED显示电路的控制主要是通过245的使能端控制实现的。

至于它的动态显示,是由于在一个时刻,只能送一个位码,一个段码,也就是只能保证一位数字的正确显示,通过快速的程序循环就实现了动态的显示过程。

(4)报警装置的电路设计

BU(P2.5接口)蜂鸣器用于报警。

当检测到液位高于200cm或者低于100cm时,启动报警装置。

第六章系统软件部分的设计

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

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

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

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

在该系统的软件部分的设计中,第一部分主要是对流程图的介绍,第二部分是系统工作程序的编程内容,由于全部编程部分较多,只取最重要的水位检测主程序段。

本程序段主要实现启动ADC0809转换器,并从A/D转换器采集信号的功能。

 

一程序框图:

开始

设置初始值

重装T0初值

T0计时次数是否20次

计时次数TO清零

启动A/D转换子程序

A/D读取子程序

输入控制信号

选择通道0

模拟量转换

读取结果

 

N

Y

 

 

 

二程序清单

#include

unsignedcharA_DV0;//A_D转换得到值

unsignedHmax,Hmin;//上下限值

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

charT0c=0;

charA;//T0计时次数

voidT0Run(void);//T0启动子程序

voidLED(unsignedcharA_DV[]);//LED显示子程序

voidA_DRun(void);//启动A_D转换子程序

voidA_DReA_D(void);//A_D转换子程序

intHeight;

bitBjj(intHeight,unsignedHmax,Hmin);//数值比较函数

sbitBU=P2^5;

sbitL1=P2^0;

sbitL2=P2^1;

sbitST=P2^6;

sbitOE=P2^7;

sbitEOC=P3^2;

main()

{

BU=0;

Hmax=200;//上限值,根据实际情况设定

Hmin=100;//下限值,根据实际情况设定

T0Run();

while

(1);

}

voidT0Run(void)//T0启动子程序

{

IE=0x82;//启动中断T0

TMOD=0x01;//设置T0工作于模式1

TH0=0xff;

TL0=0xec;//送入计数初值

TR0=1;

ST=0;

OE=0;//启动定时器T0

}

voidtime0(void)interrupt1

{

TH0=0xff;

TL0=0xec;//重装计数初值

T0c++;

if(T0c>19)//如果计时20次即1s

{

T0c=0;

A_DRun();//启动A_D转换

A_DReA_D();

LED(A_DV);

Bjj(Height,Hmax,Hmin);

}

}

voidA_DRun(void)//启动A_D程序

{

ST=0;

ST=1;

ST=0;

}

voidA_DReA_D(void)

{

intA_DV0;

while(EOC==0);

OE=1;

A_DV0=P1;

OE=0;

Height=A_DV0;//计算A_D转换值

A_DV[0]=Height%10;//逐位分离液位值

A_DV[1]=(Height%100)/10;

A_DV[2]=(Height%1000)/100;

A_DV[3]=0;

}

voidLED(unsignedcharA_DV[])//LED显示子程序

{

inti,k;

chara[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//数字零到数字九的共阳极显示时的七段码

charb[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

for(i=0;i<1000;i++)

//设定循环次数,使这四位数循环快速显示,实现长时间的动态显示

{

k=A_DV[3];

L1=1;

L2=1;

A=a[k];

P0=A;

//显示第3位

k=A_DV[0];

L1=0;

L2=1;

A=b[k];

P0=A;

//显示第2位

k=A_DV[1];

L1=1;

L2=0;

A=a[k];

P0=A;

//显示第1位

k=A_DV[2];

L1=0;

L2=0;

A=a[k];

P0=A;

}

}

bitBjj(intHeight,unsignedHmax,Hmin)//数值比较函数

{if(Height>Hmax||Height

BU=1;

elseBU=0;//p2.5接的是蜂鸣器,到有高电平时,蜂鸣器就会响起

return1;

}

 

第七章总结

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

本系统主要介绍了水体的液位检测,介绍了8051单片机和其它一些单片机在液位控制系统中的应用,介绍了它们的引脚和在系统中的电路图,本设计还采用了多种传感器来对液位的信号采集,利用LED来进行信号的输出显示,我们设计的硬件系统的结构简化,系统精度高,具有良好的人机交互功能,并设有液位报警,有问题立即就能发现,操作人员劳动强度小。

本系统所采用的传感器性能稳定,测量准确,大大简化现场安装,具有较高的性价比,有较大的工程应用价值,而且利用计算机单片机技术对工业生产过程进行自动控制有着重要的意义。

在该次课程设计中,我了解了AT89C51单片机的基本用法,了解了AD转换元件的工作原理,进一步了解了利用proteus软件绘制电路原理图的方法。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.让我在课堂学习到的知识在实践中得以运用。

我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

最后,向所有关心和帮助我的老师、同学表达真诚的谢意。

 

附录电路原理设计图

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

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1