单片机课程设计——液位检测系统剖析_第1页
单片机课程设计——液位检测系统剖析_第2页
单片机课程设计——液位检测系统剖析_第3页
单片机课程设计——液位检测系统剖析_第4页
单片机课程设计——液位检测系统剖析_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 烟台大学机电汽车工程学院 单片机课程设计 液位检测系统设计报告 指导教师: 姜风国 班 级: 机101-4 姓 名: 学 号: 小组成员: 设计时间: 2013.5.27-6.7 目录第一章 设计任务书1第二章 项目简介2第三章 任务分工3第四章 功能描述4 一 功能简介4 二 系统硬件设计简介4 三 核心器件的选择及介绍5 (一) 单片机AT89C515 (二) 传感器的选择 8 (三)数模转换器ADC08099 第五章 硬件电路的设计11 一 传感器电路的设计11 二 A/D转换电路的设计11 三 LED显示电路的设计11四 报警电路的设计12第六章 系统软件部

2、分的设计12 一 程序框图13 二 程序清单14第七章 总结17附录 电路原理设计图18专心-专注-专业 第一章 设计任务书一、本设计研究的内容:设计某制药厂液缸内液位检测系统,本设计以MCS-51系列单片机为核心,采用常用电子器件设计,自行设计电源,选用合适的液位检测传感器,检测液位,数码管显示,当液位高度太高或太低时,报警。( 可采用中断方式设计)。二、设计任务:分组按照指导教师下达的设计任务,设计各种单片机应用系统,具体要求为:1. 用MCS-51单片机,12MHz时钟,常规的上电和手动复位电路;2. 3个以上的按键;3. LED或/和数码管或/和LCD显示及其接口;4. 至少2路输入信

3、号,可以是模拟量或数字量。三、课程设计具体要求:1. 选题具有足够的工作量;1. 编写项目功能说明书,确定应用系统的功能和具体参数;2. 设计电路原理图;3. 编写汇编语言或C语言源程序,程序中加注必要的注解说明;4. 编写设计说明书。 第二章 项目简介 随着社会的进步、生产工艺和生产技术的发展,人们对液位的检测提出了更高的要求。而新型电子技术微电子技术和微型计算机的广泛应用于普及,单片机控制系统以其控制精度高,性能稳定可靠,设置操作方便,造价低等特点,被应用到液位系统的控制中来。本设计主要包括以下模块:传感器模块:采用液位检测集成芯片LM1042,用LM1042液位检测集成芯片测量液位,具有

4、测量精度高、速度快、可靠、稳定等A/D转换模块:采用A/D8位转换芯片AD0809,它是逐次逼近式A/D转换器,可以和单片机直接接口。AT89C51单片机:作为主控元件以及接口的电路、监控程序。LED显示模块:数码管选用7SEG-MPX4-CA-BLUE4位显示LED.并使用74LS245驱动。报警装置:当水位高于或低于设定值时,系统报警。优点:采用单片机来控制液位信息的采集,并且计算出真实液位值,通过运算判断是否超限报警,考虑到工厂的使用环境,使用了二极管发光增强了安全系数。提醒工作人员执行相关操作,避免发生危险。使检测具有更高的智能性。大大减少了人的劳动强度。 第三章 任务分工 小组成员在

5、认真分析项目功能的基础上,根据每一位成员的优点划分了具体的任务。在保证紧密合作、共同进步的基础上,确立了每人的分工任务。在设计的过程中,我们各自负责的部分组成了一个不能分割整体,因此更过的时间我们是共同的学习。具体分工如下: 传感器的选择及文献资料的收集 共同研讨修改后期程序及硬件电路的调试 硬件电路的设计 系统软件程序编写A/D转换器的选择 第四章 功能描述一 功能简介 本设计经过调研,收集且分析相关技术资料,综合考虑液位检测技术发展和液位检测系统特点的基础上,提出把液位检测显示同超限报警综合的解决方案。本系统采用AT89C51单片机作为处理器,主要完成以下工作:1 基于AT89C51的液位

6、信息检测设计方案。2 传感器LM1042,A/D转换芯片ADC0809与单片机的接口电路设计。3 LED数码管的显示是利用段码加位码循环动态显示实现的。4 设计主要软件程序模块,完成软件设计。二 系统硬件设计简介该系统以AT89C51作为核心控制部件,外加传感器。一片A/D转换芯片和一片数码管驱动芯片来完成系统的预期任务,即液位的检测、显示和超限报警。LM1042外接的热阻探针温度的变化依赖于周围材料的热阻的大小,从而可以根据探针在液体中的深度不同时电阻的不同检测出液位的深度信息,由LM1042内部转换电路网络转换为与液位成线性关系的电压信号,再由A/D转换芯片AD0809将模拟信号转换为数字

7、信号,实现液位信息的输入,AT89C51从ADC0809读取液位信息后进行数据处理和超限判断,随后将处理过的数据分别通过位码和段码送给相应的芯片。同时,若液位超限则由单片机驱动蜂鸣器报警。电源 AT89C51 蜂鸣器 A/D转换器传感器 LED显示 图3-1 系统总体结构图各部分功能:1. 电源部分提供+5V +15V电压供系统各部分使用。2. 传感器LM1042实现液位信息到电压信号的转换。3. ADC0809将放大器输出的电压信号经A/D转换后送到单片机。4. AT89C51为处理器,实现液位信息的接收、数据处理、输出到LED显示端.5.蜂鸣器部分在单片机检测到液位超限是由单片机驱动实现声

8、音报警。6.单片机对液位数据处理后输出,送给相应芯片控制LED动态显示。三 核心器件的选择及介绍 (一)单片机AT89C51 图3-2 51系列单片机的内部整体结构原理图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2. 管脚说明: 图3-3 51系列单片机引脚图VCC:供电电压GND:接地

9、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口缓冲器

10、可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。胖口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给地址“1”时,他利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出器特殊功能寄存器的内容。P2口在FLISH编程和校验时接受高八位地址信号和控制信号。P3口:P3口管脚是八个带内部上拉电阻的双向I/O口,可接受输出4个TTL门电流。当P3口写入“1”后,他们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3

11、口将输出电流,这是由于上拉的缘故。P3口管脚备选功能P3.0 RXD (串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLISH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以

12、不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高,如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的的选通信号。在有外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部存储器时,这两次有效的/PSEN信号讲不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部存储器(0000H-FFFFH),不管内部

13、是否有程序存储器。注意加密方式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和一组热探针组成,实现液位信号到电压信号的转换。

14、LM1042使用热阻探针技术来测量非可燃性液体的液面高度,它能提供一正比于液位高度的输出,可进行单次或重复测量,所有控制热阻探针、检测热阻探针的短路和开路所需的监控电路都集成在LM1042芯片内部。此外该芯片还可采用其他传感器信号或线性输入作为输入信号。该器件采用16脚DIP封装。芯片的主要特点如下;1 集成有热阻探针的控制电路;2 可单次测量或重复测量; 3 具有探针短路、开路检测功能;4电源或控制输入端具有50V的瞬态电压保护电路;5电源范围7.518V;6内部有电源调节器;7可在-40+80的工作温度范围内工作。 图3-4 LM1042原理图(3) 数模转换器ADC0809 ADC080

15、9是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 ADC0809的内部逻辑结构 :ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 图3-5 ADC0809引脚图 图3-5 ADC0809内部结构逻辑图ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量

16、输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换)EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。 第五章 硬件电路的设计一 传感器电路的设计 由于我们在设计的过程中未接触到实际传感器,在protues仿真软件中采用电位器模拟的办法,因此我们只是了解了传感器的原理。传感器电路设计部分并未实现。(2)

17、 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的输入端,

18、控制显示的大小。同时通过P2.0,P2.1作为139译码器的输入信号选出一路信号后,作为位码送至LED的1-4端口,决定哪一位显示。整个LED显示电路的控制主要是通过245的使能端控制实现的。至于它的动态显示,是由于在一个时刻,只能送一个位码,一个段码,也就是只能保证一位数字的正确显示,通过快速的程序循环就实现了动态的显示过程。 (4) 报警装置的电路设计BU(P2.5接口)蜂鸣器用于报警。当检测到液位高于200cm或者低于100cm时,启动报警装置。 第六章 系统软件部分的设计 系统的硬件确定以后,功能完善的软件能够很好的指导和协调硬件的工作,可使系统发挥其最大的作用,并且便利以后的更新换代

19、升级。 一个完整的系统都离不开对系统状态的监控,为了更好的协调软件,硬件各个部分正常工作就必须对整个系统进行严密监控。在本系统中定时器T0中断服务程序担任数据读取,处理和输出显示任务,每隔一定的时间对A/D转化进行一次采样,并进行相应的处理,在经过LED驱动电路来实现液位的显示。而主程序完成的任务相对简单,它只是完成初始化和启动T0定时的工作。在该系统的软件部分的设计中,第一部分主要是对流程图的介绍,第二部分是系统工作程序的编程内容,由于全部编程部分较多,只取最重要的水位检测主程序段。本程序段主要实现启动ADC0809转换器,并从A/D转换器采集信号的功能。一 程序框图: 开始 设置初始值 重

20、装T0初值T0计时次数是 否20次 N Y计时次数TO清零 输入控制信号选择通道0 启动A/D转换子程序模拟量转换读取结果 A/D读取子程序 LED显示P2.0和P2.1送位选码P0口输出段选码 判断报警 结束二 程序清单#include<reg51.h>unsigned char A_DV0; /A_D转换得到值unsigned Hmax,Hmin; /上下限值unsigned char A_DV4; /当前液位值char T0c=0;char A; /T0计时次数 void T0Run(void); /T0启动子程序void LED(unsigned char A_DV); /

21、LED显示子程序void A_DRun(void); /启动A_D转换子程序void A_DReA_D(void); /A_D转换子程序int Height;bit Bjj(int Height,unsigned Hmax,Hmin); /数值比较函数sbit BU=P25;sbit L1=P20;sbit L2=P21;sbit ST=P26;sbit OE=P27;sbit EOC=P32;main() BU=0; Hmax=200; /上限值,根据实际情况设定 Hmin=100; /下限值 ,根据实际情况设定 T0Run(); while(1); void T0Run(void) /T0

22、启动子程序 IE=0x82; /启动中断T0 TMOD=0x01; /设置T0工作于模式1 TH0=0xff; TL0=0xec; /送入计数初值 TR0=1;ST=0;OE=0; /启动定时器T0 void time0(void) interrupt 1 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); void A_DRun(void) /启动A_D程序 ST=0; ST=1; S

23、T=0; void A_DReA_D(void) int A_DV0; while(EOC=0); OE=1; A_DV0=P1; OE=0; Height=A_DV0;/计算A_D转换值 A_DV0=Height%10; /逐位分离液位值 A_DV1=(Height%100)/10; A_DV2=(Height%1000)/100; A_DV3=0; void LED(unsigned char A_DV) /LED显示子程序 int i,k; char a10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /数字零到数字九的共阳极显示时的七段码 char b10=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; for(i=0;i<1000;i+) /设定循环次数,使这四位数循环快速显示,实现长时间的动态显示 k=A_DV3; L1=1; L2=1; A=ak; P0=A; /显示第3位 k=A_DV0; L1=0; L2=1; A=bk; P0=A; /显示第2位 k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论