单容水箱液位检测仪设计_第1页
单容水箱液位检测仪设计_第2页
单容水箱液位检测仪设计_第3页
单容水箱液位检测仪设计_第4页
单容水箱液位检测仪设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、I课程设计(论文)任务及评语课程设计(论文)任务及评语院(系):电气工程学院 教研室:自动化 学 号学生姓名专业班级课程设计(论文)题目单容水箱液位检测仪设计课程设计(论文)任务课题完成的功能、设计任务及要求、技术参数课题完成的功能、设计任务及要求、技术参数实现功能实现功能水箱是常用的储水装置,单片机控制的水箱液位检测仪,液位高度:10cm30cm,控制要求:(1)系统每隔 2 分钟采集一次液位值,正常情况下,由显示器显示;(2)当液位达到 30cm 以上时,红色指示灯常亮,并伴有声音报警,低于 10cm 时,黄色指示灯亮,也伴有声音报警;当液位 10cm30cm 之间时,绿色指示灯长亮。设计

2、任务及要求设计任务及要求1、分析系统功能,选择单片机、传感器和功能模块;2、设计系统的硬件电路图;3、编写相应的软件,完成控制系统的控制要求;4、上机调试、完善程序;5、按学校规定格式,撰写、打印设计说明书一份;设计说明书应在 4000 字以上。技术参数技术参数液位检测范围 0cm100cm ,检测精度1 cm 。进度计划1、布置任务,查阅资料,确定系统设计方案(2天)2、系统硬件设计及模块选择(3天)3、系统软件设计及编写功能程序及调试(3天)4、撰写、打印设计说明书(1天)5、验收及答辩(1天)指导教师评语及成绩平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日II注:成绩:

3、平时20% 论文质量60% 答辩20% 以百分制计算摘 要随着微电子工业的迅速发展,单片机控制的智能型控制器广泛应用于电子产品中。本系统采用单片机 STC89C51 为控制核心来实现水位的基本控制功能。系统由键盘、LCD12864、PCF8591、液位传感器 LM1042、电源和控制部分组成。系统从硬件电路设计,软件与上位机软件设计等几个方面介绍了基于单片机的单容水箱液位检测仪设计过程,给出相应的软件设计流程图和 C 语言程序以及原理图,并用 keil 软件编程仿真。最终实现了液位的实时测量与监控。系统可根据需要设定水位控制的高度,同时具备超限报警和故障报警功能,具有良好的检测控制功能。关键词

4、:STC89C51;LCD12864 显示;液位检测 III目 录第 1 章 绪论 .1第 2 章 课程设计的方案 .32.1 概述 .32.2 系统组成总体结构 .3第 3 章 硬件设计 .43.1 硬件设计概要 .43.1.1 系统硬件电路设计原则 .43.1.2 系统硬件选择 .43.2 单片机最小系统设计 .73.3 液位传感器电路设计 .73.4 AD 转换单元硬件设计 .83.5 其他电路及系统 PCB 图 .9第 4 章 软件设计 .104.1 系统软件设计系统软件设计 .104.2 各模块程序分析各模块程序分析 .114.2.1 主程序设计 .114.2.2 显示模块软件设计

5、.124.2.3 A/D 转换程序设计.13第 5 章 系统测试 .16第 6 章 课程设计总结 .17参考文献 .18附录 .191第 1 章 绪论随着我国的国民经济与生活水平的发展,各个行业对自动化的需求也日益增加,为减少污染、节约资源,单片机的控制技术得到了广泛的应用。无论是在工业生产中,还是在其他行业,水都是人们生活中不可或缺的资源,大部分都会使用到水箱,水箱里的水位控制就是最重要的问题了,以前都会有专门的人看管,既浪费人力,又不能准确的判断水位高低。所以以单片机控制水箱的水位就得到了广泛应用。 水位控制系统是以水位为被控参数的控制系统,它在工业生产的各个领域都有广泛的应用。在目前的过

6、程控制领域中水位控制的研究引起了广泛的关注,随着集成电路规模的日趋大型化、复杂化,各种复杂的液位控制系统已成为一个研究焦点。单片机是靠程序运行的,并且是可以修改的,通过不同的程序实现不同的功能。尤其是特殊的独特的一些功能,这是别的器件需要费很大的力气才能做到的,有些则是花大力气也很难做到的。为什么一点要用单片机呢,原因很简单,只因为单片机通过自己编写的程序便可以实现高智能、高效率以及高可靠性。现代电子系统的基本核心是嵌入式计算机系统(简称嵌入式系统) ,而单片机是最典型、最广泛、最普及的嵌入式系统。 目前我国在单片机测控装置研究、生产、应用中,取得了很大的成绩,总结了很多经验,但是各行业仍处于

7、发展期,经调查,更多科研研究在这方面开展的工作更看重的是理论和算法,数年来这方面的研究的论文较多,但着重生产实际的很少。 一些发达国家在单片机新型系统研究、制造和应用上,已积累了很多经验,奠定了基础,进入了国际市场。我国在新型测控装置与系统研究、制造、应用和经验上,与其他发达国家相比还存在差距,但是我国的研究人员已经克服很多困难,并在不断地摸索中前进,有望在相关领域赶上甚至超过发达国家的技术水平,这是发展趋势。 在工农业生产以及日常生活应用中,常常会需要对容器中的水位进行自动控制。比如自动控制冰箱、水池、水槽、锅炉等容器中的蓄水量,生活中抽水马桶的自动补水控制、自动电热水器、电开水机的自动进水

8、控制等。虽然各种水位控制的技术要求不同、精度不同,但是基本的控制原理可以归纳为一般的反馈控制方式,他们的主要区别在于检测水位的方式、反馈方式、以及控制器上的区别。 随着单片机和微机技术的不断发展,由 PC 机和多台单片机构成的多机向网络发展。2单片机自问世以来,性能不断地提高和完善,体积小、速度快、功率低的特点使它的应用领域日益广泛。一般,工业控制系统的工作环境差,干扰性强,利用单片机控制就能克服这些缺点,因此单片机在控制领域得到广泛的应用,使用单片机控制液体的水位是个很好的选择。基于 51 单片机的液位控制系统既满足系统精度的要求,同时具有可靠性。3第 2 章 课程设计的方案2.1 概述本次

9、设计主要是综合应用所学知识,设计单容水箱液位检测仪,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“单片机”课程中所学的基本理论和基本方法,并初步掌握小型单片机系统设计的基本方法。 应用场合: 应用于自动控制冰箱、水池、水槽、锅炉等容器中的蓄水量,生活中抽水马桶的自动补水控制、自动电热水器、电开水机的自动进水控制等。2.2 系统组成总体结构系统方案设计液位控制是利用把液位的状态转换成模拟信号,再通过模数转换芯片 PCF8591 把输出状态直接接到单片机的 I/O 接口,单片机经过运算控制,输出信号,输出接口接 LCD12864 进行显示,实现液位的报警和键盘的显示与控制。图

10、2.1 即是系统结构框图。键盘输入单片机STC89C52报警电路PCF8591液位传感器LCD12864液晶显示图 2.1 系统结构框图4第 3 章 硬件设计3.1 硬件设计概要3.1.1 系统硬件电路设计原则一般在系统硬件电路设计应遵循以下原则: (1)尽可能选择标准化、模块化的典型电路,且符合单片机应用系统的常规用法。 (2)系统中相关的器件要尽可能做到性能匹配。 (3)可靠性及抗干扰设计是硬件设计不可缺少的一部分。可靠性、抗干扰能力与硬件系统自身素质有关,必须认真对待。 (4)硬件结构应结合应用程序设计一起考虑。软件能实现的功能尽可能由软件完成,以简化硬件结构。但“软化”的结果也许会使响

11、应时间比硬件的响应时间长。在实时性要求比较高的场合应采用硬件完成。 (5)单片机外接电路较多时,必须考虑其驱动能力3.1.2 系统硬件选择(1)主控元器件单片机的选择单片机选择 STC89C51,STC 系列单片机是美国 STC 公司最新推出的一种新型 51 内核的单片机。STC89C51RC 是采用 8051 核的 ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为 80MHz,片内含 8K Bytes 的可反复擦写 1000 次的 Flash 只读程序存储器,器件兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理

12、器和 ISP Flash 存储单元,具有在系统可编程(ISP)特性,配合 PC 端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C51RC系列单片机是单时钟/机器周期(1T)的兼容 8051 内核单片机,是高速/ 低功耗的新一代 8051 单片机,全新的流水线/精简指令集结构,内部集成 MAX810 专用复位电路。89C51 单片机的引脚如图 3.1 所示:5图 3.1 STC89C51 引脚图各引脚简单功能介绍:VCC:供电电压。GND:接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。P0 能够用于

13、外部程序数据存储器,它可以被定义为数据/地址的第八位。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。 。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口

14、也可作为 AT89C51 的一些特殊功能口。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。 。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。EA/VPP:当 EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,EA 将内部锁定为 RESET;当

15、/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用6于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(2)液晶显示器的选择液晶显示的原理(LCD)是用液晶物理特性,通过电压的显示区域控制,有电的人说这即能够显示图形。液晶显示器与厚度薄,适于大规模集成电路直接驱动技术、易于实现全彩色显示的特点,已被广泛应用于便携式电脑、数码相机、PDA 移动通讯工具等。带中文字库的 12864 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵

16、图形液晶显示模块;其显示分辨率为 12864,内置 8192 个 16*16 点汉字,和 128 个 16*8 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 84 行 1616 点阵的汉字。也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶 显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。(3)AD 转换器的选择 A/D 转换器件和芯片单片机实现数据采集普通的外部设备。A/D 转换器性能的不同,各种数据采集系统设计中。本设计选用的是

17、 PCF8591,PCF8591 是一个单片集成、单独供电、低功耗、8-bit CMOS 数据获取器件。PCF8591 具有 4 个模拟输入、1 个模拟输出和 1 个串行 I2C 总线接口。PCF8591 的 3 个地址引脚 A0, A1 和 A2 可用于硬件地址编程,允许在同个 I2C 总线上接入 8 个 PCF8591 器件,而无需额外的硬件。在 PCF8591 器件上输入输出的地址、控制和数据信号都是通过双线双向 I2C 总线以串行的方式进行传输。(4)液位传感器选择LM1042 液位检测器使用热阻探针的技术来检测非可燃性液体液面高度,能提供一个正比于液位的高度的输出,可进行单次或重复测

18、量,所有控制热阻探针、检测热阻探针的短路、开路所需要的监控电路都集成在 LM1042 芯片内部。此外该芯片也可以采用其它的传感器信号或线性输入作为输入信号。 该器件采用的是 16 脚 DIP 封装。芯片的主要特点有: 1、集成有热阻探针的控制电路; 2、可以选择热阻或线性信号作为输入; 3、可单次测量或重复测量; 4、电源或控制输入端有 50V 瞬态电压保护电路; 5、在复位时切换,延时的功能可以避免瞬态信号的影响;76、具有探针短路、开路检测的功能。3.2 单片机最小系统设计要使单片机按照设计要求正常工作,完整单片机最基本的工作要求,考虑到系统无需精确地定时功能,且为了方便串口通信波特率的计

19、算,采用11.0592MHz 的晶振提供系统时钟。并附加复位电路,组成单片机最小系统。根据电路设计规范和 STC89C51 芯片手册,设计时钟电路与复位电路如图 3.2:图 3.2 单片机最小系统图 3.2 中具有上电复位与手动复位的功能;单片机的 XTAL1 与 XTAL2 引脚并联两个 30pF 电容和一个晶振是电路起振。由于单片机 P0 口作普通 I/O 口时不能输出高电平,因此需接上拉电阻,实际电路中,使用 8 个 10K 电阻作为上拉电阻。3.3 液位传感器设计在 LM1042 传感器电路中,7 脚和 10 脚主要用于对探针 2 的调整,由于本系统只用到探针 1,故可将 7 脚和 1

20、0 脚直接接地;1 脚是热阻探针输入端;5 脚为探针故障端;6 脚是电源端;3、4 脚分别接 PNP 管的发射极和集电极用于给探针提供 200MA 的固定电流;16 脚为模拟电压输出端,输出与液位成正比的模拟电8压;12、13 脚用来调整探针的测量周期;9、14 脚外接两个电容作为探针的记忆电容,记忆探针的电压值。如图 3.3 是 LM1042 的外围电路连接图图 3.3 LM1042 外围电路图3.4 AD 转换单元硬件设计AD 转换模块是系统中较为重要的一部分,由于涉及到模拟部分,AD 转换器的结构较为复杂,如图 3.4 是本设计中 AD 转换电路图。图 3.4 AD 转换电路图上图中网络

21、标号 SDA 和 SCL 接到单片机的引脚上,PCF8591 的 3 个地址引脚 A0, A1 和 A2 接到地上,4 个模拟通道选其中一个通道作为采集数据用。93.5 其他电路及系统 PCB 图蜂鸣器的作用,蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器电路设计时需加一个 NPNMOS 管来驱动蜂鸣器。设计电路如图 3.5。根据原理图画出如图 3.6 所示系统 PCB 图。图 3.5 蜂鸣器电路图图 3.6 系统 PCB 图10第 4 章 软件设计4.1 系统软件设计系统软件

22、设计8051 系类单片机共拥有 111 条系统指令,可实现 51 种基本操作。然而汇编语言指令却有程序的可读性低,程序开发人员的开发时间长与开发难度大,程序移植性差等缺点。C 语言是一种编译型程序设计语言。它兼顾了多种高级语言的特点,并具备汇编语言的功能。用 C 语言来编写目标系统软件程序,会大大缩短开发周期,增加软件的可读性,便于改进和扩充。用 C 语言进行 51 系列单片机程序设计是单片机开发与应用的必然趋势。keilC51 开发工具套件可用于汇编 C语言程序、汇编源程序,链接和定位目标文件和库,创建 HEX 文件以及调试目标程序。本设计使用 KeilC51Vision5 为开发编译环境,

23、使用 C 语言编写程序,实现各模块功能设计。系统主程序的功能主要是完成对单片机的初始化,设置警戒液位的上下限,实时显示液位值以及键盘扫描等工作。如图 4.1 程序流程图。开始初始化CPU参数设定是否有按键按下AD采样数据显示实时液位数据处理超限报警按键处理显示按键液位NY图 4.1 系统程序流程图114.2 各模块程序分析各模块程序分析4.2.1 主程序设计每个程序都是从 main 函数的起点开始执行,这意味着每个程序都必须在某个位置包含一个 main 函数。下面给出本次设计的主程序:void main( void )Init_ST7920();while( 1 ) DisplayUpdata

24、();if(!KEY_ADD) DelayMs(5); if(!KEY_ADD) while(!KEY_ADD); num_L2+; if(num_L230) num_L2=20; if(!KEY_DEC) DelayMs(5); if(!KEY_DEC) while(!KEY_DEC); num_L2-;if(num_L2num_L2)bee=!bee;LCD_POS(2,0);i=0;while(dis2i!=0)Write_Data(dis2i);i+;DelayMs(50);4.2.3 A/D 转换程序设计本设计采用 PCF8591,PCF8591 片内有控制寄存器,单片机通过向该寄存

25、器写入控制字来控制 A/D 和 D/A 转换,为此在转换之前要进行写控制字传送。操作过程中,在 PCF8591 接收到的每个应答信号的后沿触发 A/D 转换,随后就是读出转换结果,但读出的是前一次的转换结果。所以“读数据 0”是一次无效的操作。控制字节用于实现器件的各种功能,如模拟信号由哪几个通道输入等。控制字节存放在控制寄存器中,总线操作时为主控器发送的第二字节。其中: D1、D0 两位是 A/D 通道编号:00 通道 0,01 通道 1,10 通道 2,11 通道 3,自动增益选择(有效位为 1)。D5、D4 模拟量输入选择:00 为四路单输入、01为三路差分输入、10 为单端和差分配合输

26、入、11 为模拟输出有效。 当系统为 A/D 转换时,模拟输出容许为 0.模拟量输入选择位取值由输入方式决定,四路单输入时取 00,三路差分输入时取 01,单端与差分输入时取 10,二路差分输入时取 11.最低两位时通道编号位,当对 0 通道的模拟信号进行 A/D转换时取 00,当对 1 通道的模拟信号进行 A/D 转换时取 01,当对 2 通道的模拟信号进行 A/D 转换时取 10,当对 3 通道的模拟信号进行 A/D 转换时取 11。 在进行数据操作时,首先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主控器从被控器读出第一个数据字节,接收器发出应答,主控14器从被控器件读出

27、第二个数据字节,一直到主控器从被控器中读出第 n 个数据字节,接收器发出非应答信号,最后主控器发出停止信号(启动和停止信号只能由主控器件发出)。I2C 总线基本数据传输格式。 I2C 总线上的数据传输按位进行,高位在前,低位在后,每传输一个数据字节通过应答信号进行一次联络,传送的字节数不受限制。 启动信号由主控器件发出,在发出启动信号前,主控器件要通过检测 SCL 和SDA 来了解总线情况。若总线处于空闲状态,即可发出启动信号,启动数据传输。在启动信号之后发出的必定是寻址字节,寻址字节由 7 位从地址和 1 个方向位组成。其中从地址用于寻址从器件,而方向位用于规定数据传输方向。寻址字节通常写为

28、 SLA+R/W,其中 R 代表读,W 代表写。R/W=1 时,表示主控器件读(接收)数据;R/W=0 时,表示主控器件写(发送)数据。所以通过寻址字节即可知道要寻哪个器件以及进行哪个方向的数据传输。 当主控器件发出寻址字节后,其他各器件都接收到了总线上的寻址字节,并与自己的从地址进行比较,当某器件比较相等确认自己被寻址后,该器件就返回应答信号,以作为被寻址的响应。此时,进行数据传输的主从双方以及传输方向就确定了下来,然后进行数据传输。 数据传输同样以字节为单位,数据字节传输需要通过应答信号进行确认。所以每传输一个字节就有一个应答信号,直到数据传输完毕,主控器件发出停止信号。结束数据传输,释放

29、总线。I2C 总线的状态和信号:启动信号和停止信号。 串行数据传输的开始和结束由总线的启动信号和停止信号控制,启动信号和停止信号只能由主控器件发出,它们对应的是 SCL 的高电平与 SDA 的跳变。当SCL 线为高电平时,主控器件在 SDA 线上产生一个电平负跳变时,这便是启动信号,总线启动后,即可进行数据传输。当 SCL 线为高电平时,主控器件在SDA 上产生一个电平正跳变,这便是总线的停止信号PCF851 部分程序如下:Unsigned char ReadADC(unsigned char Chl) unsigned char Val;Start_I2c(); SendByte(AddWr

30、); if(ack=0)return(0);SendByte(0 x40|Chl); if(ack=0)return(0);Start_I2c();15SendByte(AddWr+1);if(ack=0)return(0);Val=RcvByte();NoAck_I2c(); Stop_I2c(); return(Val);16第 5 章 系统测试根据所设计系统的软件流程图,编写相应的程序在 Keil 软件环境下进行编程编译。通过制作 PCB 板子并焊接实物板进行实验测试,实验结果表明,该系统能成功实现了水位检测、电机故障检测、处理和报警等功能,具有良好的检测控制功能,可移植性和扩展性强。如

31、图 5.1 是系统测试现象,当液位超过所设定的液位值时即 L1 大于 L2 时,蜂鸣器会发出声音报警。图 5.1 系统测试图17第 6 章 课程设计总结设计过程中我遇到了很多的困难,因为知识是不连贯的,所以需要准备很多方面的知识去融合,去联系。由于在学习的时候更注重的是书面上的东西,而本次课程设计更多的是锻炼了我们的动手动脑能力,让我们有机会把课上学习的知识转化为可以在实际生产生活中应用的技术。本次课程设计的系统主要介绍了水体的液位检测控制,介绍了 STC89C51 单片机在液位控制系统中的应用,介绍了它们的引脚和在系统中的电路图,利用 LCD12864 来进行信号的输出显示,我设计的硬件系统的结构简化,系统精度高,具有良好的人机交互功能

温馨提示

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

评论

0/150

提交评论