![[理学]电子信息工程-C串口通信上位机毕业设计说明书.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-2/23/c9baa508-732d-4134-9457-3b7e94a69dd8/c9baa508-732d-4134-9457-3b7e94a69dd81.gif)
![[理学]电子信息工程-C串口通信上位机毕业设计说明书.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-2/23/c9baa508-732d-4134-9457-3b7e94a69dd8/c9baa508-732d-4134-9457-3b7e94a69dd82.gif)
![[理学]电子信息工程-C串口通信上位机毕业设计说明书.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-2/23/c9baa508-732d-4134-9457-3b7e94a69dd8/c9baa508-732d-4134-9457-3b7e94a69dd83.gif)
![[理学]电子信息工程-C串口通信上位机毕业设计说明书.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-2/23/c9baa508-732d-4134-9457-3b7e94a69dd8/c9baa508-732d-4134-9457-3b7e94a69dd84.gif)
![[理学]电子信息工程-C串口通信上位机毕业设计说明书.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-2/23/c9baa508-732d-4134-9457-3b7e94a69dd8/c9baa508-732d-4134-9457-3b7e94a69dd85.gif)
已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要摘 要随着现代信息技术的飞速发展以及计算机网络的广泛应用,计算机通信技术已经日趋成熟。通过上位机来控制下位机的运行、维护与优化得到了广泛的应用。串行通信是一种广泛使用且实用的通信方式,由于具有线路简单、应用灵活、可靠性高等一系列优点长期以来获得了广泛的应用。计算机串行通信在数据通信、故障检测、计算机远程监控等方面有广泛的应用与利用价值,特别是在Windows下的串口通信可以充分利用Windows下的软件资源优势,实现多任务条件下对外部的数据传输、信息收集和处理。本系统使用Visual Studio 2010的编程环境来编程。结合.NET Framework类库中提供的SerialPort 类来编写接收来自人耳听力测试仪下位机发送的数据。实现了对下位机数据的采集、存储,进而对存储数据的分析来了解不同年龄、性别、地区人群的可以听到的频率范围,并为人们提供一些实用的建议与保护听力的方法。关键词:Visual Studio 2010;串口通信;监测界面;波特率49AbstractAbstractWith the rapid development of modern information technology and the wide application of computer network, computer communication technology has become more mature. By using computer to control a machine operation, maintenance and optimization of a wide range of applications. Serial communication is a widely used and practical way of communications, because of the line is simple, flexible application, high reliability, a series of advantages for a long time widely. Computer serial communication in data finance, data communication, fault detection, remote computer monitoring and with extensive practical value, especially under Windows of serial communication can make full use of the resource advantages of the Windows software, realizing multi-duties conditions of external data transmission, information collection and processing.This system using Visual Studio 2010 programming environment to programming. Combined with Framework class library provide SerialPort class to write the cues from the human ear hearing tester who the data sent the machine. To realize the next place machine data acquisition, storage, and then to store data analysis to understand the different age, gender, regional people can hear the range of frequencies, and provide people with some practical Suggestions and protect the hearing the method.Keywords: Information technology; Serial communication;PC; Frequency目 录目 录摘要IAbstractII1 绪论7 1.1课题研究背景11.2人耳听力测试仪国内外研究现状6 1.3课题研究的目的和意义22系统总体设计41 2.1 系统总体设计描述34 2.2 系统设计原则与要求342.3 系统总体方案的确定343系统硬件电路设计413.1.1 功放电路设计423.1.2 信号发生器电路设计433.1.3 显示电路设计444人耳听力测试仪上位机软件的实现33 4.1 开发语言与开发环境简介344.1.1 C#语言和.NET Framework354.1.2 Visual Studio 2010 简介36 4.2 人耳听力测试仪上位机软件的实现374.2.1上位机软件的编程实现过程384.2.2上位机软件的界面设计394.3上位机软件与数据库的连接324.3.1 SQLSERVER2005数据库简介384.3.2上位机软件与SQL数据库连接的实现394.4上位机软件的调试395 串行通信75.1 串口通信接口定义85.2 RS232串行通信接口115.3 串行通信协议115.3.1同、异步串行通信协议描述395.3.2传输制式395.3.3 串行通信的基本参数395.4 实现串行通信多种方法概述265.4.1 串行通信Windows API函数275.4.2 串行通信组件285.5 SerialPort类295.5.1 SerialPort常用属性和方法315.5.2 SerialPort的使用32总结45致谢46参考文献47附录48河北工程大学毕业设计论文1 绪 论1.1 课题研究背景随着现代电子技术的不断进步和信息技术的飞速发展,以及计算机的迅速普及和计算机控制技术的发展,计算机被广泛应用于现代社会的各个控制领域之中。完成一个控制过程一般都要利用计算机控制系统。在这种控制系统中,下位机主要完成对现场数据采集和对设备一级的监控,上位机则要完成对整个系统的采集、分析、处理和控制以及数据、图形显示、打印、人机对话等工作。上位机与下位机大多是通过PC机的RS-232串行接口实现通信。随着Windows系统的普及,使得数据采集及工业控制软件也上升到了Windows环境下。这就给程序员提出了如何编写面向Windows的串行通信程序问题。Visual Studio 2010(以下简称VS2010)是一个Windows下简单易学、高效的可视化软件开发平台,C# 不但提供了良好的界面设计能力,而且在串口通信方面也有很强的功能。它提供的SerialPort通信控件,“隐藏”了大部分串口通信的低层运行过程和许多繁琐的过程,它使用户能够方便地访问Windows下串口通信驱动程序的大多数特性。所以整个串行通信程序的开发过程变得十分简单易行,程序员不需要处理繁琐的细节,利用该通信控件,只需编写少量的代码就可实现主要应用功能和界面的设计,完成软件的开发过程。1.2人耳听力测试仪国内外研究现状一个完整的、功能齐全的听力计,至少有三十多种测试功能,包括气导纯音测听、骨导纯音测听、言语测试,掩蔽声、多频道控制、病人反馈,特殊测试等。根据听力计的结构复杂与否和用途大小,可分为:(1)普通型听力计供一般临床诊断用,其气导频率自125-8000赫兹,骨导频率自250-4000赫兹。掩蔽要求是:气导125赫兹(75分贝)、250赫兹和8000赫兹(90分贝)、500-6000赫兹(100分贝);骨导250赫兹(40分贝)、750-3000赫兹(70分贝), 500赫兹和6000赫兹(60分贝)。只一组导程,一付耳机,无语言听力检查装置。(2)精密型听力计供临床和研究用。除有气导、骨导、噪音(白噪音、窄频噪音)掩蔽设备外,还配有语言听力检查装置、两组导程、双耳机(供特殊检查用)。 (3)防护型听力计供检查噪音环境中工作人员的听力用,起到监护作用,附有气导500、1000、2000、3000、4000、6000赫兹六个音频,声强自070分贝。但无骨导租噪音设备。 (4)集休筛选型供学龄儿童定期健康检查用,设备简单,价廉容易买到。发出的音频只有500、 1000、2000、 4000 (0-45分贝)、500-2000赫兹为语言频域,4000供早期发现感音性聋用。听力损失到45分贝以下时,便感对话困难。本系统设计采用微处理器MEG128控制信号发生电路、音量控制系统、通讯接口和电源等功能模块的协同工作,通过串行通讯组件实现下位机发送数据由上位机接收数据。PC上位机完成人机交互的功能,医生通过应用程序设置好相应测试参数、观察检测结果并记录病人相关状态数据,并可借助已存储的听力数据,及时诊断和制定治疗方案。由于白噪声的实现方法复杂多样,且要求质量高、可控性强,因此产生稳定高质的噪声信号是系统开发的重点和难点。设计中通过采用优化的随机算法、精密的后期处理、高效的D/A转换电路等手段输出符合国标要求的声音信号,在实际应用中取得了良好的效果。手控听力计:常用的有国产TLJ-1型,进口MadsenTBH-85型以及西德、丹麦产品等。1.3课题研究的目的和意义听力计主要是为了测定人耳对各种频率的声音感受性大小的仪器,通过与正常人耳听觉音频范围相比较来确定被测试者的听力损失情况。听力损失的程度可以利用听力计测定,因此对于医生治疗人耳各种疾病有极大的帮组与方便,在人耳听力保护方面也是有非常非常大帮助的不可缺少的仪器。随着现代社会经济的飞速发展,我们生活的环境也受到了极大的破坏与污染,人类的身心健康也受到了非常大的危害,各种疾病都在威胁着我们人类的生命安全,人耳的各种听力疾病也随着出现,为了找到引发各种疾病的病因,各国的耳科医护人员都投入了大量的精力,利用人耳听力测试仪上位机软件能够很好的对来自下位机数据的采集、存储,利用高智能化的数据分析软件来对记录的数据进行分析与纠正不仅能够很好的提高操作人员的工作效率,也让我们拥有更好研究环境来分析各种人群的听力情况,更好更快的找到各种耳科疾病解决方法。因此,本课题的研究对于治疗保护人耳听力是有什么重大意义的。2 系统总体设计2.1系统总体方案描述本系统由方波信号发生器产生方波信号并分成两路信号。一路输送入功率放大器进行放大;一路输送入单片机最小系统,经单片机的内置计数器频率计数,把频率的大小数值通过12864液晶显示器显示出来,同时把频率的数值输送至上位机,由上位机的存储操作把相应数据保存到数据库中。系统总体设计流程图如图2-1。图2-1系统总体设计流程图2.2.2系统设计原则与要求功放:电源+5V, 输出功率为0.3W(8负载),电压增益20dB,频率特性为20Hz20kHz,失真率1%以下。信号发生器:频率特性20Hz20kHz范围内。功放部分由分立原件搭建完成,同IC相比较,分立的可以微调声频,调整每一个环节,力求调出的频率范围更精细。最重要的是分立件的声音可以做到比IC的更加柔和,没有IC那般的晶体管声。分立件每个元件可以通过大的电流,不像芯片上在几微米的地方通过不算小的电流,就会造成令人烦躁的晶体管声。信号发生部分使用CD4046压频振荡器芯片产生。单片机部分使用80C52即可满足要求。显示部分使用带字库的液晶12864进行显示。2.3 系统总体方案的确定 本系统的设计方案可有多种选择:方案一、信号发生器部分采用555定时器的多谐振荡电路也能产生方波信号;功放部分可以采用LM358功放IC;液晶采用1602液晶进行显示。方案二、信号发生器部分采用LM331压频转换IC产生方波信号;功放部分可以采用LM358功放IC;液晶采用1602液晶进行显示。方案三、信号发生器部分采用CD4046压频转换IC产生方波信号;功放部分采用分立原件搭建电路;液晶采用12864液晶进行显示。方案一中用555定时器产生方波对于本设计的要求达不到,也就是说不能产生达到20Hz到20KHz的频率范围变化的方波,而方案二中使用LM331的话可以产生满足要求的方波信号,但是由于LM331电路搭建比较麻烦,相比CD4046来说,CD4046电路比较简单,很容易产生20Hz到20KHz的方波,所以信号发生器部分选用CD4046作为方波发生器。方案二与方案一中显示部分都选用了1602液晶,1602液晶价钱便宜,但是它只能显示数字与字母,对于一个智能系统来说,如果不能显示汉字,则不能体现出智能系统的界面友好性,因此,在此选用了带字库的液晶12864,这款液晶不仅可以显示字母与数字,而且可以显示汉字,系统完成后,界面好看。方案三与前两个方案还有一处不同在于功放部分采用的是分立原件搭建,同IC比,分立的可以细细的调声,调整每一个环节,力求出好声。最重要的是分立件的声音可以做到比IC的柔和,没有IC那般的晶体管声。分立件每个元件可以通过大的电流,不会像在芯片上几微米的地方通过不算小的电流,就会产生令人烦躁的晶体管声。3 系统硬件电路设计3.1.1 功放电路设计功率放大器电路设计要求输出功率为0.3W,电压为+5V,电压增益达到20dB,频率特性范围在20Hz20kHz之间,失真率达到1%以下。本系统设计出的功率放大器的电路如图3-1。该功放电路整体的电路结构是用共发射极放大电路对输入信号进行电压放大,在共发射极电路集电极插入的偏置电路作用下产生射极跟随器的偏置电压,并用推挽发射极跟随器进行电流放大。图3-1功率放大器电路3.1.2 信号发生器电路设计本系统信号发生器电路使用CD4046芯片产生020kHz的方波信号。CD4046是通用的CMOS锁相环集成电路,其特点是电源电压范围宽(3V18V),输入阻抗高(约100M),动态功耗小,在中心频率f0为10kHz下功耗仅为600W,属微功耗器件。CD4046锁相的意义是相位同步的自动控制,功能是完成两个电信号相位同步的自动控制闭环系统叫做锁相环,简称PLL。它广泛应用于广播通信、频率合成、自动控制及时钟同步等技术领域。锁相环主要由相位比较器(PC)、压控振荡器(VCO)。低通滤波器由三部分组成,如图3-2所示。图3-2 CD4046结构原理图CD4046工作原理:输入信号Ui从14脚输入后,经放大器A1进行放大、整形后加到相位比较器、的输入端,图3开关K拨至2脚,则比较器将从3脚输入的比较信号Uo与输入信号Ui作相位比较,从相位比较器输出的误差电压U则反映出两者的相位差。U经R3、R4及C2滤波后得到一控制电压Ud加至压控振荡器VCO的输入端9脚,调整VCO的振荡频率f2,使f2迅速逼近信号频率f1。VCO的输出又经除法器再进入相位比较器,继续与Ui进行相位比较,最后使得f2f1,两者的相位差为一定值,实现了相位锁定。若开关K拨至13脚,则相位比较器工作,过程与上述相同,不再赘述。如图3-3为可以产生最大20kHz的电路,用+5V供电,从3端口输出方波信号,6、7脚接振荡电容,11、12脚接振荡电阻,通过调节9脚的电位器可以调节输出频率从020kHz变化。图3-3 CD4046信号发生电路图3.1.3 显示电路设计由于液晶12864显示直观,相比液晶1602不但可以显示字符还可以显示汉字,亮度高,功能更加齐全。故本系统显示电路采用带字库的12864液晶进行显示,这样可以不但可以节省单片机所需要的内存,也使得程序更加简洁。它与单片机的连接图如图3-4所示:图3-4 液晶12864与单片机的引脚连接图4 人耳听力测试仪上位机软件的实现4.1 开发语言与开发环境简介4.1.1 C#语言和.NET FrameworkC#是一种面向对象的语言,与其他的编程语言相比,它更加的简洁并且是类型安全的,它可以生成在.NET Framwork上运行的多种应用程序,包括Windowns客户端应用程序、XML Web Services、分布式组件、客户端/服务器应用程序、数据库应用程序等。作为一种面向对象的语言,C#支持面向对象的三大特性,即封装、继承和多态。C#由类构成,也就是说,所有的变量和方法(包括Main方法)都封装在类中。类只能直接从一个父类继承(这与C+不同),但是可以实现任意数量的接口。C#语法表现力强,只有不到90个关键字。对于C+和Java程序员来说。C#简单易懂,因为它的语法与C,C+和Java非常相似。因此了解C+和Java的程序员就可以在很短的时间内掌握C#,并开始使用C#编写应用程序了。与C+相比,C#的语法简化了许多复杂的特性,如指针访问;而且还提供了很多强大的功能,如枚举、委托等。同样,与Java相比,它也具有许多Java所不具备的优良特性。C#程序只能在.NET Framwork上运行。从Windows 2003 开始,.NET Framwork成为了Windows的一个必要组件。.NET Framwork具有两个主要组件:公共语言运行时(CLR)和.NET Framwork类库。公共语言运行时(CLR)是.NET Framwork的基础。它在执行代码时对代码进行管理,还提供内存管理、线程管理和远程管理等核心服务。.NET Framwork 的另一个主要组件就是类库,它是一个综合性的面向对象的可重用类型集合。.NET Framwork类库包含一个由4000多个类组成的内容庞大的函数方法库,这些函数被组织为命名空间,以避免庞大类库中的方法重名。.NET Framwork类库提供开发中所需的几乎全部功能,包括基本数据类型、字符串操作、流输入和输出、XML文件操作、图形操作、Windows窗体控件、多线程操作等。4.1.2 Visual Studio 2010 简介一种编程开发语言能否被广泛的使用,除了应具备广泛的应用范围之外,还应具有强大的开发工具的支持。凭借C#微软公司推出的Visual Studio 开发工具,迅速地从一种新型的编程语言成为目前最流行的开发语言之一。VS2010支持C#语言的4.0。它提供了方便的用户界面设计器,高级代码编辑工具、对类库的操作、集成调试器在内的许多开发工具,极大地提高了编程人员的编程效率,缩短了应用程序的开发时间及减少了应用程序的开发成本。之所以选择VS2010编程环境来编写此软件是因为与其它版本相比VS2010版本增加有许多新特性与新功能。它将是经典的一个版本,相当于当年的6.0版,而且它可以自定义开始页。新功能还包括: (1)C# 4.0中的动态类型和动态编程;(2)多显示器支持;(3)使用VS2010的特性支持TDD;(4)支持Office;(5)Quick Search特性;(6)C+ 0x新特性;(7)IDE增强;(8)使用Visual C+ 2010创建Ribbon界面;(9)新增基于.NET平台的语言 F#; 根据微软发布的一份官方文档宣称,VS2010和.NET Framework 4.0将在下面五个方面有所创新:(1) 民主化的应用程序生命周期管理:在一个组织中,应用程序生命周期管理(ALM)将牵涉到多个角色。但是在传统意义上,这一过程中的每个角色并不是完全平等的。Visual Studio Team System 2010将坚持打造一个功能平等、共同分担的平台以用于组织内的应用程序生命周期管理过程。(2)顺应新的技术潮流:每年,业界内的新技术和新趋势层出不穷。通过VS2010,微软将为开发者提供合适的工具和框架,以支持软件开发中最新的架构,开发和部署。(3) 让开发商惊喜:从Visual Studio的第一个版本开始,微软就将提高开发人员的工作效率和灵活性作为自己的目标。VS2010将继续关注并且显著地改进开发者最核心的开发体验。(4) 下一代平台浪潮的弄潮儿:微软将继续投资于市场领先的操作系统,工具软件和服务器平台,为客户创造更高的价值。使用VS2010,将可以在新一代的应用平台上,为你的客户创造令人惊奇的解决方案。跨部门的应用客户将在不同规模的组织内创建应用,跨度从单个部门到整个企业。VS2010将确保在这么宽泛的范围内的应用开发都得到支持。(5) 高效的开发环境:Microsoft Visual Studio 2010采用拖曳式便能完成软件的开发。简简单单的操作便可以实现一个界面的生成。但拖曳的界面,也应当有相应的代码来实现功能。Microsoft Visual Studio 2010支持C#、C+ 、VB。 可以快速实现相应的功能。4.2 人耳听力测试仪上位机软件的实现4.2.1 上位机软件的编程实现过程本节中将介绍在VS2010编程环境下,使用C#语言编程实现人耳听力测试仪上位机软件的过程,通过使用.NET Framework提供的类库中的SerialPort类来实现上位机与下位机的通信。现在大多数硬件设备均采用串口技术与计算机相连,因此串口的应用程序开发越来越普遍。本系统使用SerialPort类实现串口通信要经过的一般流程有通讯端口号的设置、波特率的设定,数据位的选择、校验位和停止位的选择,再打开端口连接,发送数据,接收数据,最后关闭端口连接这些步骤。在.NET Framework 4.0中提供了SerialPort类,该类主要是为了实现串口数据通信等。该类有许多属性来表征其特性,主要属性如表4-1所示。表4-1 SerialPort类的主要属性名称说明BaseStream获取 SerialPort 对象的基础 Stream 对象BaudRate获取或设置串行波特率BreakState获取或设置中断信号状态BytesToRead获取接收缓冲区中数据的字节数BytesToWrite获取发送缓冲区中数据的字节数DataBits获取或设置每个字节的标准数据位长度DiscardNull获取或设置一个值,该值指示 Null 字节在端口和接收缓冲区之间传输时是否被忽略DsrHolding获取数据设置就绪 (DSR) 信号的状态DtrEnable获取或设置一个值,该值在串行通信过程中启用数据终端就绪 (DTR) 信号Encoding获取或设置传输前后文本转换的字节编码Handshake获取或设置串行端口数据传输的握手协议IsOpen获取一个值,该值指示 SerialPort 对象的打开或关闭状态NewLine获取或设置用于解释 ReadLine和WriteLine方法调用结束的值Parity获取或设置奇偶校验检查协议PortName获取或设置通信端口,包括但不限于所有可用的 COM 端口ReadBufferSize获取或设置 SerialPort 输入缓冲区的大小ReadTimeout获取或设置读取操作未完成时发生超时之前的毫秒数ReceivedBytesThreshold获取或设置 DataReceived 事件发生前内部输入缓冲区中的字节数RtsEnable获取或设置一个值,该值指示在串行通信中是否启用请求发(RTS) 信号StopBits获取或设置每个字节的标准停止位数WriteBufferSize获取或设置串行端口输出缓冲区的大小WriteTimeout获取或设置写入操作未完成时发生超时之前的毫秒数SerialPort类同样也有很多的方法来实现它与其它硬件的通信,其常用方法如表4-2所示。表4-2 SerialPort类的常用方法方法名称说 明Close关闭端口连接,将IsOpen属性设置为False,并释放内部Stream对象Open打开一个新的串行端口连接Read从SerialPort输入缓冲区中读取ReadByte从SerialPort输入缓冲区中同步读取一个字节ReadChar从SerialPort输入缓冲区中同步读取一个字符ReadLine一直读取到输入缓冲区中指定NewLine值ReadTo一直读取到输入缓冲区中指定的value的字符Write已重载。将数据写入串行端口输出缓冲区WriteLine将指定的字符串和NewLine值写入输出缓冲区在本系统的串口通信设计中最重要的设计就是数据接收的方法设计,SerialPort类控件在C#中有许许多多的事件可以调用,使用其中的DataReceived事件来触发的方法,只要完美的设置好其中ReceivedBytesThreshold的数值就可以很方便的使用,若接收的数据长度为定长时,则只要将其中ReceivedBytesThreshold的数值设置为该接收数据的长度即可;若接收的数据的末端是固定的字符或字符串则可用ReadTo的方法来实现或在DataReceived事件中判断接收的字符是否符合条件,若满足条件就进行接收。SerialPort类读取数据的方法许多都是同步阻塞调用,应尽量避免在主线程中调用,可以使用线程间处理调用或异步处理来调用这些读取数据的方法。事件表示C#中已定义的一个对象,即处理通知过程的对象。可是这样说未免抽象,对于像我这样的初学者往往还是难以理解。而我的理解是,事件是处理事件的对象感兴趣的,能够感知或捕获到一种事物状态的改变。说白了,事件即改变。哲学上说,事物的运动是永恒的,静止是相对的。永恒的运动意味着事物本身在发生着改变,所以无时无刻,我们生活的这个世界和宇宙都有无穷的改变在发生,但是,这当中的绝大多数对你来说并不是事件,秘鲁总统死了,对秘鲁全国所有的人来说或许是一个事件,因为他们关心,可是对课堂正在听课全然不知的你来说就不是,除非你听到了这样一个新闻,开始关注,那么这个变化对你来说就是一个事件。所以,在这所有的变化中,你能捕获到的,感兴趣的变化,对你来说,就是一个事件。委托是C中的一种引用类型,类似于C/C+中的函数指针。与函数指针不同的是,委托是面向对象、类型安全的,而且委托可以引用静态方法和实例方法,而函数指针只能引用静态函数。委托主要用于.NET Framework中的事件处理程序和回调函数。 一个委托可以看作一个特殊的类,因而它的定义可以像常规类一样放在同样的位置。与其他类一样,委托必须先定义以后,再实例化。与类不同的是,实例化的委托没有与之相应的术语(类的实例化称作对象),作为区分我们将实例化的委托称为委托实例。 C中的委托和指针不一样,指针不通过MSIL而是直接和内存打交道,这也是指针不安全的原因所在,当然也是采用指针能够提高程序运行速度的缘故;委托不与内存打交道,而是把这一工作交给CLR去完成。从SerialPort对象接收数据时,由于DataReceived事件是在辅线程被引发,当接收到一条完整的数据时就返回到窗体上显示或返回主线程处理时,特别要注意跨线程的处理,C#可采用控件异步委托的方法Control.BeginInvoke及同步委托的方法Invoke。如图2-1表示上位机软件编程实现的流程图。图4-1上位机软件编程实现的流程图4.2.2 上位机软件界面的设计上位机软件界面是在VS2010编程环境下来设计实现的。VS2010是微软公司开发的面向对象、高度封装的跨平台C#图形用户界面开发平台,它提供了一个开发商业级别,多平台应用的软件开发环境。(1)登录界面的设计启动软件VS2010新建一个项目并命名为RLTL,然后软件自动就生成一个Form面板,将其重命名为frmLogin,调整到适当的大小,再分别添加相应的Label控件、TextBox控件、Button控件。为了登录界面的美观我在其属性背景图片中添加了一张图片,看起来使得登录界面更加的绚丽与引人注目。在本系统中添加登录界面主要是为了增加软件的安全性,同时也可以方便用户对软件的管理,增加了人际界面的互动。最后设计完成的登录界面如图4-2: 图4-2上位机软件登录界面登录界面的主要程序代码如下: string sql = select * from userinfo where username= + txtUsername.Text.Trim().ToLower() + and password= + txtPassword.Text.Trim() + ; if (OperateDB.ExecuteReader(sql) frmMain frm = new frmMain(); frm.Show(); this.Hide(); else MessageBox.Show(“用户名或密码错误!“, 出错了, MessageBoxButtons.OK, MessageBoxIcon.Error); (2)信息设置界面的设计信息设置界面是本软件的主要界面也是主要信息显示以及上位机与下位相联系起来串口设置的界面。其次在该项目中添加一个新的窗体并命名为FrmMainMessage,添加好相应的控件。该界面主要是用来接收来自下位机的数据与设置串口的相应设置。串行接口简称串口,也成串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。由于RS-232串口连接简单,操作方便,编程简单,通信速率也完全可以满足本软件的需求,故本软件设计使用了RS-232串口(其引脚图如图4-3)。其主要属性如下:图4-3 RS-232引脚图RS-232电缆9个引脚定义:1载波检测(DCD) 、2接受数据(RXD) 、3发出数据(TXD)、4数据终端准备好(DTR) 、5信号地线(SG)、6数据准备好(DSR)、7请求发送(RTS) 、8清除发送(CTS)、9振铃指示(RI) 。在C#中使用SerialPort类需要设置的属性有:串行端口号、波特率、数据位、校验位、起始位、停止位。在该界面中还有被测试者的相关信息以及由下位机发来的数据。最后设计完成的界面如图4-4所示。 图4-4上位机软件信息设置界面其中被测试者的基本信息以及接收到的来自下位机的数据都被保存到数据库中。串口设置的主要程序代码如下: private void combxCom_SelectedIndexChanged(object sender, EventArgs e) this.serialPort.PortName = bxCom.SelectedItem.ToString(); private void combxBaud_SelectedIndexChanged(object sender, EventArgs e) this.serialPort.BaudRate = Convert.ToInt32(bxBaud.SelectedItem); private void combxCheckBit_SelectedIndexChanged(object sender, EventArgs e) switch (bxCheckBit.SelectedItem.ToString() case None: this.serialPort.Parity = Parity.None; break; case Even: this.serialPort.Parity = Parity.Even; break; case Odd: this.serialPort.Parity = Parity.Odd; break; default: this.serialPort.Parity = Parity.None; break; private void combxDataBit_SelectedIndexChanged(object sender, EventArgs e) this.serialPort.DataBits = Convert.ToInt16(bxDataBit.SelectedItem); private void combxStopBit_SelectedIndexChanged(object sender, EventArgs e) switch (Convert.ToInt16(bxStopBit.SelectedItem) case 1: this.serialPort.StopBits = StopBits.One; break; case 2: this.serialPort.StopBits = StopBits.Two; break; default: this.serialPort.StopBits = StopBits.One; break; (3)查询信息界面的设计最后再添加一个窗体并命名为frmSearch,该窗体主要是用来对来自下位机的数据保存后的查询,以便用户对保存数据的分析处理。在该窗体设计中主要的是对数据控件DataGridView控件的操作。DataGridView是用于Windows Forms 2.0的新网格控件。它具有许多方便的特性,可以取代比先前版本的DataGrid控件,它易于使用并可高度定制,支持很多我们的用户需求的特性。通过DataGridView控件,可以显示和编辑表格式的数据,而这些数据可以取自多种不同类型的数据源。DataGridView控件具有很高的的可配置性和可扩展性,提供了大量的属性、方法和事件,可以用来对该控件的外观和行为进行自定义。当你需要在WinForm应用程序中显示表格式数据时,可以优先考虑DataGridView(相比于DataGrid等其它控件)。如果你要在小型网格中显示只读数据,或者允许用户编辑数以百万计的记录,DataGridView将为你提供一个易于编程和良好性能的解决方案。其主要特性如表4-3所示。表4-3 DataGridView主要特性DataGridView特性描 述多种列类型DataGridView提供有TextBox、CheckBox、Image、Button、ComboBox和Link类型的列及相应的单元格类型。多种数据显示方式DataGrid仅限于显示外部数据源的数据。而DataGridView则能够显示非绑定的数据,绑定的数据源,或者同时显示绑定和非绑定的数据。你也可以在DataGridView中实现virtual mode,实现自定义的数据管理。自定义数据的显示和操作的多种方式DataGridView提供了很多属性和事件,用于数据的格式化和显示。此外,DataGridView提供了操作数据的多种方式,比如,你可以: 对数据排序,并显示相应的排序符号(带方向的箭头表示升降序) 对行、列和单元格的多种选择模式;多项选择和单项选择 以多种格式将数据拷贝到剪贴板,包括text,CSV (以逗号隔开的值) 和 HTML 改变用户编辑单元格内容的方式用于更改单元格、行、列、表头外观和行为的多个选项DataGridView使你能够以多种方式操作单个网格组件。比如,你可以: 冻结行和列,避免它们因滚动而不可见; 隐藏行、列、表头; 改变行、列、表头尺寸的调整方式; 改变用户对行、列、单元格的选择模式; 为单个的单元格、行和列提供工具提示(ToolTip)和快捷菜单。 自定义单元格、行和列的边框样式。提供丰富的可扩展性的支持DataGridView提供易于对网格进行扩展和自定义的基础结构,比如: 处理自定义的绘制事件可以为单元格、列和行提供自定义的观感; 继承一个内置的单元格类型以为其提供更多的行为; 实现自定义的接口以提供新的编辑体验。最后设计完成的界面如图4-5所示:图4-5上位机软件信息查询界面4.3上位机软件与数据库的连接4.3.1 SQL Server数据库简介SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server 2005 数据引擎是企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使得相应软件可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。Microsoft对各行业进行了认真研究,经过不懈努力及创造性思索才最终向您奉献出这一引入了上百种新增功能或改进功能的 SQL Server 2005。这些功能将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息处理技术员经典考题及答案
- 软件测试的重要性和方法试题及答案
- 计算机应用案例分析试题及答案
- 材料疲劳寿命评估数据可视化重点基础知识点
- 行政管理综合素质试题及答案分享
- 军训火灾应急预案范文(3篇)
- 选择的里程碑2024年高考作文考试试题及答案
- 2025年战略管理中的组织变革试题及答案
- 行政法学与其他学科融合试题及答案
- 设计模式在实际项目中的应用案例试题及答案
- 电动葫芦考试试题及答案
- 四年级下册道德与法制全册电子教案备课
- 精神病人肠梗阻的护理
- 《食源性疾病》课件
- 人力资源管理数字化转型方案
- 数字艺术创作版权保护协议
- 保健院急诊急救工作制度与流程(2025版)
- 珍奇的稀有动物针鼹课件
- 台达VFDM变频器说明书
- 社会保险缴费征管与企业数字化转型
- 课题申报参考:行业协会商会服务经济高质量发展研究
评论
0/150
提交评论