数据采集系统的设计和实现毕业(设计)论文

上传人:仙*** 文档编号:201245921 上传时间:2023-04-19 格式:DOC 页数:50 大小:2.01MB
返回 下载 相关 举报
数据采集系统的设计和实现毕业(设计)论文_第1页
第1页 / 共50页
数据采集系统的设计和实现毕业(设计)论文_第2页
第2页 / 共50页
数据采集系统的设计和实现毕业(设计)论文_第3页
第3页 / 共50页
点击查看更多>>
资源描述
摘 要摘 要数据采集系统是集合现代数据采集理论、方法和Java图形用户界面的智能化数据采集系统,为图形个性化学习提供“灵活、方便、科学、公平”的“个别化数据采集服务”,图形可以随时、随地进行各种题型的数据采集。本文主要介绍了串口数据的温度的采集实现动态曲线,串口数据的采集是JAVA程序设计中的重要组成部分。随着现在社会生活工作节奏越来越快,人工的做一些数据收集的事情已经不能满足社会的需要。而串口程序的出现却很好的解决了这个问题。一个串口,加上相应的程序,就可以对数据进行采集、整理,以及分析。这样,既有效的节约了成本,也很好的实现了数据的有效性,减少了错误的出现。系统利用DSl8B20数字温度传感器和Atmel公司的AT89S51单片机作为控制核心设计成智能温度采集模块,采集环境温度;将测得数据经串口传送给计算机。创新之处是采用虚拟仪器技术,利用LabVlEW软件编写相应上位机软件,控制采集模块进行温度采集,串口的数据传输,然后对数据处理和显示。关键字: 数据采集系统,温度传感器, 单片机,串口通信I附录 ABSTRACTData acquisition system is the intelligent data acquisition system for the collection of modern data acquisition theory, method and the Java graphical user interface, graphics to provide personalized learning flexible, convenient, scientific, fair individualized data acquisition services, data acquisition pattern can at any time, anywhere for various types of.This paper mainly introduces the serial data acquisition of temperature to achieve dynamic curve, the serial data acquisition is an important part of the program design of JAVA. Now with the social life and work in an increasingly fast pace, artificial do some data collection has been unable to meet the needs of the society. The serial program is a good solution to the problem. A serial port, and a corresponding program, you can collect, the data, and analysis. So, can effectively save the cost, but also can realize the validity of data, reduce errors.STC89C52 singlechip digital temperature sensor DSl8B20 and STC into the design of intelligent temperature acquisition module using system, collection of environmental temperature; the measured data is transmitted to computer via serial port. Innovation is the use of virtual instrument technology, the preparation of the corresponding computer software using LabVlEW software to control the acquisition module, temperature acquisition, data transmission, then the data processing and display.Key Words: The data acquisition system,a temperature sensor, serial port, serial port communication目 录毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日目 录第1章 引言11.1系统的概述11.1.1选题的背景11.1.2目的和意义11.2研究理论基础21.2.1java技术介绍21.2.2数字温度传感器31.2.3单片机41.3本章小结5第2章 可行性研究62.1可行性分析62.2可行性研究的结果62.3本章小结7第3章 需求分析83.1需求分析概述83.2具体功能83.3系统流程图83.4系统功能图113.5本章小结12第4章 总体设计134.1总体设计的任务134.2硬件设计144.2.1电源电路144.2.2温度采集电路154.2.3电路设计164.2.4系统组成164.2.5 温度测量单元硬件184.3软件设计184.3.1系统概述184.3.2下位机软件194.3.3上位机软件194.4程序的启动204.4.1理论原理204.4.2实现代码204.5数据采集实时显示程序设计244.6本章小结28第5章 详细设计295.1注册模块的设计295.2用户登录模块设计305.4实时曲线的生成335.5本章小结34第6章 系统的测试356.1系统测试的基本概念356.2测试环境及方法356.2.1测试环境356.2.2测试方法366.3测试内容366.3.1温度信号采集366.3.2串口调试376.4本章小结37第7章 总结38参考文献 39致谢 40附录 41IV第1章 引言第1章 引言1.1系统的概述1.1.1选题的背景随着计算机技术的飞速发展,新形势的得到来,信息和改变了我们这个社会。企业在数据的采集、分析各个方面也在悄悄的改变。一个企业的数据采集分析将是一个很大的工程。如果之使用人工来完成,这将会消耗巨大的资金和时间。但是,如果将这些交给计算机来完成,无疑将会更快捷,更方便,更安全。 21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入到应用工程的各个领域。 温度是工业、农业生产中常见的和最基本的参数之一,在生产过程中常需对温度进行检测和监控,采用微型机进行温度检测、数字显示、信息存储及实时控制,对于提高生产效率和产品质量、节约能源等都有重要的作用。伴随工业科技、农业科技的发展,温度测量需求越来越多,也越来越重要。但是在一些特定环境温度监测环境范围大,测点距离远,布线很不方便。这时就要采用无线方式对温度数据进行采集。1.1.2目的和意义为了实现计算机对生产过程及对象的控制,需要将对象的各种测量参数按照要求转换成数字信号送入计算机。经计算机运算处理后再再转换成适合于对生产过程进行控制的量。所以在危机和生产过程之间,必须设置信息的变换和传递通道。而我们所做的模拟输入通道,主要功能就是随时间变化的模拟输入信号变成数字信号送入计算机,主要有多路转换器,采样保持器和 A/D转换器等组成。该系统主要用于温度检测,实现温度信号的采集,是一个状态反馈系统,并非动态控制系统。他可以利用放大器实现多个点的温度巡回检测,并在LED上显示当前的温度值和通道号。当温度信号改变时,LED显示的值也随之改变。1.2研究理论基础1.2.1java技术介绍1.java起源Java来自于1991年Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,可以吧E-mail发给冰箱、电视机等家用电器,对它们经行控制。开始,准备采用C+,但C+太复杂,安全性差,最后基于C+开发了一种新的语言0aK (Java的前身),0aK是一种用于网络的精巧而安全的语言。1994年下半年,Internet的快速语言发展,促进了Java语言研制的进展,Green项目组成员用Java编制了HotJava浏览器,触发了Java进军Internet上受欢迎的开发与编程语言,现已发展成为一种重要的Internet平台。2.java的特点简单性:Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,程序开发者只需对基本的概念有个初步了解,即可用其编写出适合于各种情况的应用程序。安全性:程序运行时,内存由操作系统分配,这样就避免了病毒通过指针侵入系统。Java对程序提供了安全管理器,互联网程序是不能随意访问客户端的资源的,这样可防止病毒的侵入和程序的非法访问。平台无关性:Java的平台无关性是指可以在不同的平台上运行。Java引进了虚拟机原理,Java虚拟机是建立在硬件和操作系统之上的,可以对Java中的二进制代码进行解释执行,使得Java可以运行在安装了Java运行环境的操作系统上,也就真正实现了一次编译,到处运行的特点。可移植性:指编写的程序可以同时在不同的平台上运行。使用Java 语言编写的程序,只要做较少的修改,甚至有时根本不修改就可以在不同平台上运行。面向对象语言:Java语言是一种纯面向对象的语言,它的设计集中于对象及其接口,对象中封装了它的状态变量和相应的方法,实现了模块化和信息的隐藏;而类的封装性、继承性等特性,使程序代码只需一次编译,就可以通过上述特性被反复利用。多线程:Java的主要目标之一就是使程序开发者可以交互程序,对一个问题可以分解成多个任务来执行。健壮性:Java语言在伪编译时,做了许多早期潜在问题的检查,并且在运行时又做了一些相应的检查,它的这种防患于未然的手段将许多程序中的错误扼杀在摇篮之中。3.java的开发工具JBuilder:JBuilder是Borland公司开发的针对Java的开发工具, JBuilder的核心有一部分采用了VCL技术,使得程序的条理非常清晰。JBuilder另一个特点是简化了团队合作。Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB (Enterprise JavaBeans)的应用。Eclipse: 中文的翻译为“帕斯菲达,是一种可扩展的开放源代码IDE。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。JCreator: Jcreator是一个用于Java程序设计的集成开发环境,具有编辑、调试、运行Java程序的功能,是Java 语言编程开发人员的IDE工具。它为使用者提供了大量强劲的功能,例如: 项目管理、工程模板、代码完成、调试接口、高亮语法编辑、使用向导以及完全可自定义的用户界面。第一次启动时提示设置JavaJDK主目录及JDKJavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDKHelp。可无限撤销、代码缩进、自动类库方法提示、按所选智能定位查阅JavaAPI文档等功能。采用仿VS2005界面设计,体验感觉更快更好更易用。支持JSP、Ant、CVS。小巧、易用、美观,是Java初级程序员的理想IDE。InterlliJ IDEA: IDEA 全称 IntelliJ IDEA,是Java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。1.2.2数字温度传感器DSl8B20数字温度传感器:DSl8B20是DALLAS公司生产的单线数字温度传感器,他具有独特的单线总线接口方式。文章详细的介绍了单线数字温度传感器DSl8B20的测量原理、特性以及在温度测量中的硬件和软件设计,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。图1-1 DSl8B20方框图采用数字温度传感器DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线性度较好。在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89S52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于AT89S52可以带多个DSB1820,因此可以非常容易实现多点测量。轻松的组建传感器网络。 采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。1.2.3单片机AT89S52单片机:AT89S52单片机片内的Flash可允许在线重新编程,也可用通用非易失性存储编程器编程;片内数据存储器内含128字节的RAM;有40个引脚,32个外部双向输入/输出(I/O)端口;具有两个16位可编程定时器;中断系统是具有6个中断源、5个中断矢量、2级中断优先级的中断结构;震荡器频率0到33MHZ,因此我们在此选用12MHZ的晶振是比较合理的;具有片内看门狗定时器;具有断电标志POF等等。AT89S51具有PDIP、TQFP和PLCC三种封装形式。图1-2 AT89S51引脚图1.3本章小结本章主要介绍了数据采集系统的开发背景和开发工具。通过本章知识的学习,使大家对数据采集系统有了初步的了解。41第2章 可行性研究第2章 可行性研究2.1可行性分析原理:读串口数据的原理是,只要当有数据向串口发数据来时,计算机就会自动将其数据写到一个特定的缓冲区,我们只要写程序去读那个特定的缓冲区就可以了。 有数据向串口发过来时,程序可以将数据接收到,接收的数据是字符型的,那么将数据转化为数字型的,再将这个数据的大小作为画图的某一个点的纵坐标,横坐标为数据的序号.将这些点用线连起来就是一个曲线图了,这个就是图形显示基本原理。查看原来的数据的原理也是这样的,不同的地方就是,数据是从文件中来,同样的也是将多个数据分成一个一个的,然后这一个数据的大小就是画图的某一个点的纵坐标,横坐标同样为数据的序号,再将这些点用线连起来就是曲线图。图形能移动的原理,是我们首先改变的只是数据,图形并没有变,但图形的形式是由这些数据来确定的,当数据发生变化后,我们通过刷新显示区来变化的。可行性分析:现在,计算机已经十分普及价格低廉性能很好,本系统的开发可以为代替人工进行许多繁杂的工作,节约资源提高数据管理的工作效率,同时具有较高的安全性。本系统所耗资源小,企业的电脑能够满足,所以本系统在运行上是可行的。在技术上,运用Java技术,在后台数据库方面采用本地记事本作为数据库的方式,本系统依靠当前技术完全能够实现。2.2可行性研究的结果技术可行性:在硬件方面,则选择空间较大,只要是Pentium IV系列及以上的计算机都可以,内存在1G以上,硬盘在80G以上能,都可以满足系统的开发需要!当然,硬件的配置越高,系统的开发与运行会更流畅。考虑到如今的家用或商用电脑硬件的整体配置水平,系统在硬件方面是可行的。运行可行性:该系统需要搭建JVM即JAVA虚拟机,在此环境下,并且在正确连接数据库后可以正常运行。法律可行性:该平台是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上可行的。通过以上的可行性分析,本系统采用java技术.2.3本章小结本章主要介绍了可行性研究果,并从技术可行性、运行可行性、法律可行性上对可行性研究结果进行了具体分析。第3章 需求分析第3章 需求分析3.1需求分析概述 为了实现本系统,必须对整个系统的全面功能做出详细的分析。系统需求分析是软件系统开发中最重要的一个阶段,直接决定着系统的开发质量和成败。本章对基于数据采集系统的设计以及实现做出具体的分析。需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程及软件产品质量是至关重要的。需求分析是基本任务是要准确地定义新系统的目标,回答系统必须“做什么”的问题。系统要达到的目的:界面友好、易于操作;完成数据的采集和分析,并提交数据库保存。包括:串口数据的采集,数据的分析等;实现数据的安全性,实现数据的分开管理,数据满足条件就储存;实现信息发布与查询。3.2具体功能 数据信息管理系统由数据管理、数据分析、数据储存等模块组成。数据管理模块:本模块包括串口设置、数据分析等组成。数据储存模块:主要实现数据的本地储存。3.3系统流程图根据需求分析得程序流程图如图3-1、图3-2所示,系统流程图,如图3-3所示:图3-1发射流程图图3-2 接收流程图图3-2 系统流程图3.4系统功能图功能图对整个系统各个模块作出言简意赅的说明,使得整个系统模块间的关系一目了然,如图3-2所示:图3-2 系统功能图3.5本章小结本章主要介绍系统需求分析以及具体功能介绍。第4章 总体设计第4章 总体设计 4.1总体设计的任务传感器:采用单片模拟量的温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂。另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量。即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。主控部分:采用AT89S52八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。系统框图如下:图4-1 发射电路系统框图图4-2 接收电路系统框图4.2硬件设计 该温度测量系统是由上位机和温度测量单元组成。上位机即计算机,实现对温度测量单元控制,通过串口程序发送命令、接收测量数据,对测量数据处理显示。温度测量单元,接收上位机命令,按照命令进行温度测量和数据传输等操作。本课题所设计的外围电路包括:电源电路、温度采集、时钟电路、存储电路、报警电路、模拟控制电路、按键电路、显示电路以及串口等电路。下面将依次对各个模块进行说明。4.2.1电源电路电源变压器是将交流电网220V的电压变为所需要的电压值。交流电经过二极管整流之后,方向单一了,但是电流强度大小还是处在不断地变化之中。这种脉动直流一般是不能直接用来给集成电路供电的,而要通过整流电路将交流电变成脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。滤波的任务,就是把整流器输出电压中的波动成分尽可能地减小,改造成接近稳恒的直流电。但这样的电压还随电网电压波动,一般有10%左右的波动,负载和温度的变化而变化,因而在整流、滤波电路之后,还需要接稳压电路。图4-3 电源原理图4.2.2温度采集电路 DS18B20有4个主要的数据部件: A、64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。 B、温度灵敏元件。 C、非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。 D、配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。其中R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。图4-3 分辨率关系高速暂存存储器由9个字节组成,其分配如图4-4所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图4-4所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。图4-4 DS18B20存储器4.2.3电路设计本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但时间应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。另外单总线长度也不宜超过80M,否则也会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。电路如图4-5图4-5 单总线原理图4.2.4系统组成实现单点温度测量,采用如图1所示结构。上位机和温度测量单元采用RS232串行通信标准。图中上位机发送的信息可以被温度测量单元所接收,温度测量单元发送的信息也可以被上位机接收。温度测量单元中主控单片机串行口采用方式。图4-1 单点测温系统结构图图4-2 单片机部分电路温度测量部分,温度传感器采用单总线方式的集成数宁温度传感器DSl8B20。DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。DSl8B20的测量范围从一55摄氏度到+125摄氏度,增量值为05摄氏度。可在1s(典型值)内把温度变换成数字,电路原理图如下:图4-3 温度测量电路串口通信采用Max232实行电平转换,电路原理图如图4-4所示图4-4 串口电路4.2.5 温度测量单元硬件温度测量单元硬件设计主要分为三个部分;单片机控制单元、温度测量单元和串口通讯。 STC89C52是一种低功耗,高性能CMOS8位微控制器。具有以下标准功能:8k字节Flash,256字节RAM,32位I0口线,2个16位定时器计数器,5个中断源2级中断优先权,1个全双工串行口。目前支持5l单片机编译器的语言主要有汇编语言、c语言等。 单片机部分的电路设计如图2所示,主要包括复位电路、晶振电路。4.3软件设计4.3.1系统概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。程序设计流程图4.3.2下位机软件下位机软件由java语言编写,主要包括DSl8B20的读写和串口通信两个部分。串行通信采用中断方式,波特率为9600,测温单元主控单片机串行口工作在方式1。完整程序见附录。程序流程图如下:图4-5 程序流程图4.3.3上位机软件上位机软件采用LabVIEW编写。LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛应用于工业界、学术界和研究实验室,被视为一个标准的数据采集和仪器控制软件。LabVIEW有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等等,是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。图4-6 上位机界面4.4程序的启动4.4.1理论原理程序启动,将会打开主程序界面以及数据设置界面。打开速回据设置界面,主要是为了对系统一些关键性数据进行设置,以便进行后面的运行。4.4.2实现代码Graphics graphics=null;/预定义一个画图对象DrawPanel drawPanel=null;/预定义画图面板类DateSet dateSet;/预定义数据设置类GetDate getDate;/预定义接受数据类CommJPanel commJPanel;/预定义画图类JMenu menuDate,menuInstrustion;/定义数据管理和说明菜单DateMain dm;String massage;/定义接受的串口数据的缓冲区int int_size=72;/定义接收一个圆轴核心点数长度int int_hexin;/定义一个装载核心点数的数组,长度由int-size决定Thread th_commJPanel,th_getDate;String txt_radius,txt_hexin,txt_comm;这里主要是定义一些后面必须的全局变量。/设置下面面板的属性及控件JPanel jpDown=new JPanel();jpDown.setLayout(new GridLayout(1,0);drawPanel=new DrawPanel();/实例化画图面板jpDown.add(drawPanel);/设置上面面板属性及控件getDate=new GetDate(this,drawPanel/*,commJPanel*/);jsplitpane.setTopComponent(getDate);th_getDate=new Thread(getDate);th_getDate.start();jsplitpane.setBottomComponent(jpDown);jsplitpane.setDividerLocation(100);/_总窗体属性设置URL url=DateMain.class.getResource(2.jpg);ImageIcon II=new ImageIcon(url);this.setIconImage(II.getImage();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.add(jsplitpane);this.setSize(712,500);this.setVisible(true);System.out.println(getDate.getSize();graphics=this.getGraphics();dateSet=new DateSet(commJPanel,this);drawPanel.d=drawPanel.getSize();dateSet.setVisible(true);上面的代码实现,先是实例化一个分割面板,然后,实例化一个对DrawJPanel继承的面板,放在上面面板中,这样,我们就能在上面面板中显示一些状态信息。接着实例化下面面板以便画图的实现,最后是显示主窗体。当然,后台代码是必不可少的,我们需要对主窗体程序的各种菜单进行处理,不同的菜单,打开不同的程序,对数据进行不同的处理。代码如下:it_date.addActionListener(new ActionListener()/public void actionPerformed(ActionEvent e)System.out.println(datemain_size:+int_size);for(int t=0;tint_hexin.length;t+)System.out.println(hexin+t+:+int_hexint);new DateAnalysis(dm,int_hexin););it_setdate.addActionListener(new ActionListener()/串口设置菜单选项public void actionPerformed(ActionEvent e)System.out.println(这里是串口设置);dateSet=new DateSet(commJPanel,dm);/*if(th_getDate.isAlive()System.out.println(it is alive);th_getDate.interrupt();if(th_getDate.isAlive()System.out.println(it is not alive);Thread tt=new Thread(commJPanel);tt.start();*/);我们启动主窗体,: main函数是必不可少的,这个程序的主函数只是启动程序的主类,然后调用init()函数对画图面板进行初始化。public void init(Graphics g)/初始化画图面板,对一些关键坐标及中轴进行刻画:System.out.println(this is init);graphics.setColor(Color.RED);graphics.setFont(new Font(null,Font.BOLD,20);for(int i=1;iInvalidate()强制重载OnPaint()函数,那么数据图就可以动起来了。OnPaint()画图函数如下:void CCommDlg:Display()if (NextTime = 600 & stop=FALSE)LineHightNextTime/5 = LineHight121; /中保存的是最新采集的一个数据elsefor (int i=0;iInvalidate();return;5、查看以前的数据查看以前的数据的方法是,将数据从文件中取出并将每一个数据都付给那一个全局变量,最后同样用this-Invalidate()就能显示以前的数据了。具体算法见commDlg.cpp文件中的OnButton4()和OnButton5()函数。按秒移动查看以前数据算法见OnButton6()和OnButton7()。void CCommDlg:OnButton7() if (stop=FALSE)gogo=NextTime;DTemp=m_ReceiveData;for (int i =0;i=600 & NextTimeinstr.GetLength()-600) NextTime=instr.GetLength()-600;for (i=0;iInvalidate();/更新图相在移动数据以前要对当前显示的数据进行保存:gogo=NextTime;DTemp=m_ReceiveData;for (int i =0;i120;i+) LHTempi=LineHighti;以便在继续接收时能接着原来的。6、数据保存方式对采集的数据采用文本方式保存于一文件中,保存格式为,第120数据保存一次,数据采用推算法来确定时间。如:08.9 33.5 08.8 65.4 09.8 09.3程序算法为:if (file.Open(FilePath,CFile:modeCreate|CFile:modeReadWrite)file.Write(m_ReceiveData,600);/写入120个数据file.Close();完整算法见:OnComm()7、通用性为了提高程序的通用性,串口的波特率,串口号都采用下拉选择的方式,在使用中可跟据情况选择。4.6本章小结本章主要介绍了系统的总体设计,分别从硬件设计和软件设计方面进行了介绍。第5章 详细设计第5章 详细设计 5.1注册模块的设计 1.注册功能概述:用户注册时在注册页面编辑个人信息,通过信息表单提交个人信息到服务器审核。检查用户提交的信息是否为空,用户提交的信息不能为空。提交后信息将添加到数据库中保存。图5-1注册页面2.代码设计:用户名: 密码:  邮箱:  年级:5.2用户登录模块设计1用户登录模块概述:用户输入用户名及密码,单击“进入”按钮。界面表示层(FormLogin)讲数据传递给业务逻辑层(LoginBL),业务逻辑层调用数据访问层(LoginDA),通过公共服务层(Common)中的数据库连接类调用数据库中的存储过程得到判断结果,最后将结果反馈给表示层。若登录成功则进入系统主页面,若登录失败仍然返回登录页面。图5-2登录页面代码设计:String u = request.getParameter(username);u = new String(u.getBytes(iso-8859-1), gb2312);String p = request.getParameter(password);UserBeanCl ubc = new UserBeanCl();if (ubc.checkUser(u, p) session.setAttribute(username, u);response.sendRedirect(welcome.jsp); else response.sendRedirect(login.jsp);2.登陆成功进入首页:如图5-3所示。图5-3 首页代码设计: String u = request.getParameter(username); u = new String(u.getBytes(iso-8859-1), gb2312); String p = request.getParameter(password); UserBeanCl ubc = new UserBeanCl();if (ubc.checkUser(u, p) session.setAttribute(username, u);response.sendRedirect(welcome.jsp); else response.sendRedirect(login.jsp);5.4实时曲线的生成实时采集系统中很重要的一项功能就是能将采集的参数以曲线形式描述出来,通过调用WindowsAPI函数Cdraw类来实现曲线从右到左的动态移动,曲线的绘制在部分代码如下:voidCDraw:OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/) .m_pSet=&GetDocument()-m_readCompassSet;ResizeParentToFit();voidCDraw:OnDraw(CDC*pDC)CDocument*pDoc=GetDocument();this-GetClientRect(&rc);pDC-SetMapMode(MM_ANISOTROPIC);pDC-SetWindowOrg(0,0);pDC-SetViewportOrg(10,rc.bottom-10);pDC-SetWindowExt(cxGraph,cyGraph);pDC-SetViewportExt(rc.right-20,-(rc.bottom-20);按照上面的函数方法,在java下开发的本系统完全可以满足实时控制的要求,图5-8为温度差变化曲线:图5-8 温度曲线5.5本章小结本章主要介绍了系统的详细设计。分别讲到了系统设计的任务、各功能模块的详细设计。第6章 系统的测试与维护第6章 系统的测试6.1系统测试的基本概念系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案.。它的的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统做得怎样?。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!