1. 研究目的与意义
课题背景:在当前社会背景下,无论是每个人的生活工作方式还是更广泛的工业发展都有了巨大改变,自动化已经受到了广泛应用,液位测量广泛运用于石油加工、食品加工、化工、水处理、制药、电力、造纸、冶金,船舶和锅炉等领域中。
常用的方法有音叉振动式、磁浮式、压力式、超声波、声呐波,磁翻板、雷达等。
本课题以单片机为控制核心,结合电子传感器、电磁阀开关电路,构成鱼缸自动换水器设计。
2. 课题关键问题和重难点
1.关键问题:检测水位的控制器具有自动液位检测功能,水位控制误差小于5毫米;可以设置定时换水时间,24小时定时误差小于2分钟;可定换水量、自动换水,欠、过水位自动保护等功能。
通过软件内部改善和硬件外部强化来减小实验条件环境带来的影响和误差。
2.难点:(1)各个控制模块和检测模块的相关原理和原理图学习(2)如何实现模块的整合和代码的编写编译(3)熟练组装硬件并进行调试(4)实现鱼缸的自动检测换水功能各个模块的整合和所需的代码编写编译需要对各个模块的原理和软硬件相关功能需求进行资料查询和学习,完成相关学习后完成硬件拼接和程序编写编译,然后用keil5进行烧录。
3. 国内外研究现状(文献综述)
张靖,刘少强在2002年于北京中国电力出版社出版的《检测技术与系统设计》中较全面地、系统地介绍了检测技术的主要理论知识和应用技术。
内容反映了近年来自动化领域中检测技术的新技术、新方法、新器件相渐成果。
马忠梅等在2003年于北京航天航空大学出版社出版了《单片机的c语言应用程序设计》(第3版),这本书是针对目前最通用的单片机8051和最流行的程序设计语言——c语言,以keil公司*版本8051单片机开发套件讲解单片机的c语言应用程序设计的教材。
4. 研究方案
1.系统硬件设计为了人们方便控制鱼缸,系统设计的时候要考虑到主控制部分和输入输出控制部分的功能板分别放在鱼缸不同的位置,同时为了能进一步的提高控制的稳定性能,于是设计了主控制器和输入输出控制器两部分电路,这两部分电路中分别使用两块单片机来作为主芯片,同时运用串口连接的方式进行通信。功能鱼缸智能控制器的硬件结构和设计。主要包括主从机电路模块设计、数据存储/看门狗/复位电路模块设计、时钟电路模块设计、系统电源模块设计、键盘控制与显示模块设计、温度控制模块设计、输出控制电路模块设计、通讯控制模块以及电路原理图与电路板设计等。双cpu接口电路结构图。从机电路模块实际包含两个部分:第一是电源部分,电源为两部分控制电路提供电深;第二是以at89c8051为核心构成的输入输出控制部分,即从机电路。 2.系统软件设计 软件设计是鱼缸智能控制系统设计的主要内容和重点,应该根据系统功能要求,以系统硬件电路为基础进行系统的软件设计。为了使设计出来的软件功能明确,阅读、调试方便,可靠性好,一般采用结构化的程序设计方法。结构化的程序设计包括三方面的工作:自顶向下的设计、模块化编程和结构化编程。除此之外,有时还需要加强软件抗干扰设计,以提高程序的可靠性。单片机系统程序采用单片机c编程语言进行开发的,整个单片机系统的程序共分为六个模块,即主程序模块、中断服务模块、时间和温度采集模块,鱼缸环境参数采集检测模块、键盘控制和显示处理模块、工作状态控制模块,以及数据存储、掉电保护、上电复位和看门狗模块。每个模块都具有一定的功能,其中有的模块还包含一些子模块,既相互独立又相互联系,低级模块可以被高级模块调用。软件设计方法:在介绍其体软件实现之前,先来介绍一下系统软件的设计方法:模块化设计。棋化设计就是把软件按照规定的原则划分为一个个较小的、相对独立但又相关的棋块。分解和信息隐滚及模块独立性,就是实现模块化设计的指导思想。分解是大多数人处理复杂问题时最常用的方法,对于问题求解的大量实验表明了人们将一个复杂的问题分解成为几个较小问题,就能够减少解决问题所需要的总工作,但是在一个软件系统当中.各个组成模块之间是密切关联着的。模块划分的数目越多,各个模块之间的相互联系也就越多。每个模块本身的复杂程度和工作盈虽然会随模块的变小而减少。但是模块的接口工作里却会随着模块数目的增加而增大。每一个软件都会存在一个最小成本区,把棋块数目控制在这个小范围之内,就可以使总的开发工作量保持最小限度。信息隐藏是指模块当中的数据和过程,把不需要了解的这些数据和过程的模块隐藏起来。但是为了完成软件的总体功能必需在模块间交换不同的信息,因此才允许在系统模块间进行传递。这个思想的目的,就是为了提高系统模块的独立性,当修改或者维护模块的时候.减少把一个模块的错误扩散到其它的模块中去的机会。用这种方法设计出来的模块,各个模块的功能非常单一,与其它棋块数据的共享降低到最低,不仅使用性能较好,而且方便测试、联调以及维护。模块独立性概括的说明了把软件划分为摸块时要遵守的基本准则,同时也是判断模块构造是否合理的重要标准。坚持模块的独立性,多数认为是获得良好设计的关键性所在。独立性可以从两个方面来说明,即模块本身的内聚以及不同模块之间的祸合。前者是指模块内部各个成份之间的相互联系,因此也称模块内联系或者模块的强度;后者是指一个模块与其它棋块之间的相互联系,因此也称为块间联系。模块的独立性越高,则块内系就会越强,块间联系相对就会越弱。在开发软件的时候,还需要注意软件开发当中文档的建立。在软件开发的过程中,总会产生和使用大量的相关信息。软件文档在产品的开发过程中起着非常重要的作用。软件文档提高了软件开发过程的能见度,最重要的是软件文档把开发过程中发生的所有事件以某一种可阅读的形式记录并保存到文档中.同时还提高了软件的开发效率。有了软件文档的编制,这就使开发人员对各个阶段的工作都进行了周密思考、全盘权衡。减少的软件设计的返工,减少了很多不必要的错误,还可在开发早期发现错误以及软件设计目标和成果不一致性,便于及时加以纠正,并且便于协调以后的软件的升级、使用以及维护。 本系统是按照上面所述的软件设计的思想为指导,于是采用keilc51集成环境开发系统软件.keilc51是英国keil software公司出品的51系列兼容性单片机c语言软件开发系统,同汇编相比较,c语言在功能上、结构性、可读性、可维护性上有明显的优势。keilc51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面.另外重要的一点,只要看一下编译后生成的汇编代码.就能体会到keilc51生成的目标代码效率非常之高,多数语句生成的汇编代码很容易理解。 本文所述系统的软件主要包括:主程序、初始化子程序、采样检测程序、中断服务程序、键盘控制与显示处理程序、采样检测程序、工作状态控制程序,以及数据存储、掉电保护、上电复位和看门狗程序。软件主程序流程图如下:
5. 工作计划
第 1 周 接受任务书,领会课题含义,按要求查找相关资料,翻译相关英文资料;第 2 周 阅读相关资料,理解有关内容,写出开题报告;第 3 周 分析了解各类液位检测设计方案,相关实例资料;第 4 周 购买材料,搭建硬件电路;第 5 周 编写完成液位检测信号的采集,期中检查;第 6 周 编写完成基于单片机液位检测距离显示;第 7 周 编写定时、电磁阀驱动、欠过水位自动保护设计;第 8 周 完善硬件制作调试和软件设计;第 9 周 软硬件联调;验收成果;第10周 完成毕设论文查重,提交毕设论文终稿和查重检测报告,接受答辩资格审查;第11周 评阅教师评阅论文,学生准备答辩;第12周 答辩结束;第13周 检查毕设文档,毕设结束。
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。