已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人机接口设备人机接口设备LEDLED类部件的仿真实现类部件的仿真实现摘摘要要计算机仿真技术是当前应用最广泛的使用技术之一,虚拟现实已成为最热门的话题之一。随着科技的发展,计算机仿真技术被广泛运用于众多的领域之中。特别是20年代末,仿真模拟技术在高科技中所处的地位日益提高。在科学研究、工业、交通、军事、教育等领域得到大量应用。计算机仿真技术成为一种工程领域必不可少的重要设计手段,它的应用可以大大地缩短产品的开发周期和降低产品开发的成本,从而提高产品的竞争力。本文介绍的是LED类部件的设计。主要是普通LED灯和用于显示数字的“8”字灯,为了力图仿真的效果,这里加入了响应时间的因素,以达到接近真实的情况。并分别封装成DLL文件来实现各LED类部件的功能并且易于更新功能。同时,还要求与另一些同学所设计与实现的“大型接口器件的功能演示的可视化设计”,“虚拟实验台的网络化改进方向”,“人机接口设备的仿真实现”等集成在一起,形成一个多功能的接口实验台模拟软件。本文的最后对设计研究工作进行了总结,指出了研究上的不足,说明了需要进一步深入讨论的内容。关键词:关键词:计算机仿真;DLL;更新;集成Man-machineInteractionEquipment-SimulationImplementationofLEDPartsAbstractThecomputersimulationisoneoftechnologyemployedmostwidelyandvirtualrealityhasalreadybecomeoneofthehottesttopics.Withthedevelopmentofscienceandtechnologycomputersimulationtechnologyisappliedinnumerousfieldsextensively.EspeciallyintheendofthetwentiesthepositionofsimulationtechnologygetsimprovedinHi-Techdaybyday.Itgetsalargeamountofapplicationinscientificresearchindustrytrafficmilitaryaffairseducatingandetc.Computersimulationtechnologybecomesanessentialdesigningmeansinengineeringfieldanditsapplicationcanshortenthedevelopmentperiodoftheproductsandreducethecostofproductdevelopmentgreatlythusimprovethecompetitivenessoftheproducts.ThethesisintroducedthedesignofLEDpartswhichisordinaryLEDlightand8wordlightusedfordisplayingfigure.ForthebettersimulationresultthefactorofresponsetimeistakenintoaccountsandtheLEDfunctionsarepackagedintoDLLfileforupdatingthefunctionsmoreeasily.Meanwhileitisstillrequiredtointegratedwithothermodulestoachieveamultifunctionalsoftwareforinterfaceexperimentssuchasvisualizationoffunctionsdemonstrationoflarge-scaleinterfacedevicenetworkorientedimprovementofvirtuallaboratoryplattheemulationofinterfaceapparatusofmanandmachineandetc.whicharedesignedbyotherstudents.Attheendofthethesisitsummarizedtheresearchworkofdesigningpointedoutthedeficiencystudiedandexplainedthecontentneededfurtherdiscussing.Keywords:ComputeremulationDLLUpdateIntegrate目目录录论文总页数:21页1引言.11.1设计背景.11.2项目介绍.11.2.1计算机仿真技术.11.2.2虚拟实验平台.21.2.3预期成果.21.3研究意义.21.4研究方法.22编程的一些基本概念.32.1基类和派生类.32.2入口函数.32.3输出接口函数.33LED的特性参数.43.1LED的分类.43.2LED的特性.43.2.1LED的发光原理.43.2.2LED的响应时间.44系统的总体设计.54.1要实现的功能.54.2工程的建立.54.3主要类和函数介绍.74.3.1主要的类.74.3.2主要的函数.84.4普通单色LED灯功能的实现.114.5用于显示数字的“8”字灯的实现.124.6设计测试.154.6.1普通单色LED的测试.154.6.2“8”字灯的测试.17结论.19参考文献.19致谢.20声明.21商业源代码,全套计算机毕业设计免费下载更多全套设计联系QQ:1042897696最新设计大全第1页共21页11引言引言随着计算机技术的发展,利用计算机对系统进行仿真越来越受到人们的重视,对系统仿真的理论方法和应用技术的研究也逐步深入,应用的领域越来越广。1.11.1设计背景设计背景近年来计算机、网络等信息技术在教育领域的广泛应用,虚拟实验正日益成为广大教师的计算机辅助教学手段。虚拟实验平台正是应这个大需求而诞生。并且随着信息技术的发展,以纯软件的形式模拟硬件接口实验平台的逻辑功能,用于接口教学。在与硬件接口实验平台的实验步骤一致的情况下,连接线路,用汇编语言或者C语言等编写程序,再运行程序观看结果。软件仿真无硬件平台、器件的开销和磨损;也无实验环境的时间限制。让使用者更直观的更形象的演示实验过程和结果,更好的理解电路运行原理。随着多媒体技术和图形图像技术的不断发展,可视化技术得到广泛的重视。所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图形技术和方法的应用。VisualC+是个很好的可视化编程工具,使用VisualC+环境来开发机遇Windows的应用程序大大缩短了开发时间,而且它的界面更友好。1.21.2项目介绍项目介绍.1计算机仿真技术计算机仿真技术计算机仿真技术是以多种学科和理论为基础,以计算机及其相应的软件为工具,通过虚拟试验的方法来分析和解决问题的一门综合性技术。计算机仿真(模拟)早期称为蒙特卡罗方法,是一门利用随机数实验求解随机问题的方法。其原理可追溯到1773年法国自然学家G.L.L.Buffon为估计圆周率值所进行的物理实验。根据仿真过程中所采用计算机类型的不同,计算机仿真大致经历了模拟机仿真、模拟数字混合机仿真和数字机仿真三个大的阶段。20世纪50年代计算机仿真主要采用模拟机;60年代后串行处理数字机逐渐应用到仿真之中,但难以满足航天、化工等大规模复杂系统对仿真时限的要求;到了70年代模拟数字混合机曾一度应用于飞行仿真、卫星仿真和核反应堆仿真等众多高技术研究领域;80年代后由于并行处理技术的发展,数字机才最终成为计算机仿真的主流。现在,计算机仿真技术已经在机械制造、航空航天、交通运输、船舶工程、经济管理、工程建设、军事模拟以及医疗卫生等领域得到了广泛的应用。第2页共21页.2虚拟实验平台虚拟实验平台计算机技术、大规模集成电路技术和通讯技术的飞速发展,为虚拟实验的发展奠定了坚实的基础。虚拟实验就是在通用计算机上加载相应的软件或硬件,使得使用者在操作这台计算机时,就像是在操作一台专用的传统实验设备一样。在虚拟实验系统中,软件是整个系统的关键,任何以个使用者都可以通过软件的相关设置来达到要实现实验的效果。虚拟实验就是利用外部输入(如鼠标的点击、拖动和键盘的敲击等),将计算机上虚拟的各种仪器,按实验要求、过程,组装成一个完整的实验环境,同时在这个环境中完成实验操作,包括实验器材的添加、实验条件的改变、数据采集以及实验结果的模拟、分析。它包含了虚拟仿真技术、计算机技术、实验技术等多方面理论知识。.3预期成果预期成果本设计的预期成果是完成多功能接口实验台模拟软件的部分功能LED类部件的仿真实现,并封装成DLL文件来实现LED类部件的功能;同时,还要求与另一些同学所设计与实现的“大型接口器件的功能演示的可视化设计”,“虚拟实验台的网络化改进方向”,“人机接口设备的仿真实现”等集成在一起,形成一个多功能的接口实验台模拟软件。1.31.3研究意义研究意义随着信息技术在教育领域的广泛应用,虚拟实验正日益成为广大教师的计算机辅助教学手段。虚拟实验平台正是应这个大需求而诞生。并且随着信息技术的发展,以纯软件的形式模拟硬件接口实验平台的逻辑功能,用于接口教学。在与硬件接口实验平台的实验步骤一致的情况下,连接线路,用汇编语言或者C语言等编写程序,再运行程序观看结果。软件仿真无硬件平台、器件的开销和磨损;也无实验环境的时间限制。让使用者更直观的更形象的演示实验过程和结果,更好的理解电路运行原理。1.41.4研究方法研究方法系统的开发要求模拟接口实验台,开发一个多功能的接口实验台模拟软件进行设计与开发。因此,本次毕业设计应首先分析接口实验台软件的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括计算机接口、数据结构、编程相关知识等),选择VisualC+6.0开发工具进行本毕业设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法。本文主要介绍的是LED类部件。而对于LED类器件,可以在VisualC+环第3页共21页境下设计一个器件基类,由基类派生出不同的器件类。在实验时,通过特定的接口调用这些器件的派生类。本设计的核心模块是DLL工程。DLL的主要工作读取输入信号,设置显示信息;设计LED类部件的主要功能。用VisualC+6.0来完成。主要负责调用DLL工程,演示LED类部件的功能。22编程的一些基本概念编程的一些基本概念2.12.1基类和派生类基类和派生类类是进行面向对象程序设计的基础。它能够定义数据和对数据的操作,并通过不同的访问权限,将类的接口和内部的实现分开,支持信息的封装和隐藏。面向对象程序设计的其它重要特征还包括:继承和多态。支持程序代码的复用是面向对象程序设计的主要目标之一,而支持程序代码复用的最重要的方法之一就是继承。继承能够从一个类派生出另一个类,前者称之为基类或父类,后者称之为派生类或子类。派生类能够继承基类的功能,也能改变或增加它的功能。在面向对象的程序设计中,多态的功能强大,但也较难掌握。它允许指向基类对象的指针指向派生类的对象。基类和派生类中可有名字和参数完全相同的函数,但他们的功能并不相同。当程序运行时,如果用基类指针调用成员函数,能够根据该指针所指向的对象的类型自行确定是调用基类的成员函数还是调用派生类的成员函数。如果没有多态的功能,我们就不得不用条件语句,确定是调用哪一个类的成员函数。代码复用是C+最重要的性能之一,它是通过类继承机制来实现的。通过类继承,我们可以复用基类的代码,并可以在继承类中增加新代码或者覆盖基类的成员函数,为基类成员函数赋予新的意义,实现最大限度的代码复用。2.22.2入口函数入口函数在VisualC+中,可以创建不用MFC而直接用C语言写的DLL程序,也可以创建基于MFC类库的DLL程序。每一个DLL必须有一个入口点,在VC+中,DllMain是一个缺省的入口函数。DllMain负责初始化(Initialization)和结束(Termination)工作。利用MFC的AppWizard自动生成的DLL框架中没有显式的调用DLLMain入口函数,但是对于每个DLL来说,将自动生成一个CWinApp派生类的对象,它会在派生类的成员函数InitInstance和ExitInstance中完成必要的初始化和终止工作。2.32.3输出接口函数输出接口函数对于使用AppWizard创建的MFCDLL,AppWizard会创建一个DEF文件的框架,并自动增加到工程中,然后在DEF文件中增加用于输出的。第4页共21页;DLL名字LIBRARYDLed2DLL;DLL描述DESCRIPTIONDLed2DLLWindowsDynamicLinkLibrary;输出函数及其编号EXPORTS在此加入被调用的函数33LEDLED的特性参数的特性参数3.13.1LED的分类的分类按发光管发光颜色分,可分成红色、橙色、绿色(又细分黄绿、标准绿和纯绿)、蓝光等。另外,有的发光二极管中包含二种或三种颜色的芯片。本文中讨论的2种LED灯都用红色。按发光管出光面特征分圆灯、方灯、矩形、面发光管、侧向管、表面安装用微型管等。本文中讨论的普通LED灯属于圆灯,而“8”字灯是用7个矩形的小灯来表示。3.23.2LEDLED的特性的特性.1LEDLED的发光原理的发光原理发光二极管是由-族化合物,如GaAs(砷化镓)、GaP(磷化镓)、GaAsP(磷砷化镓)等半导体制成的,其核心是PN结。因此它具有一般P-N结的I-N特性,即正向导通,反向截止、击穿特性。此外,在一定条件下,它还具有发光特性。在正向电压下,电子由N区注入P区,空穴由P区注入N区。进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光。.2LED的响应时间的响应时间LED的点亮时并不是管脚输入高电平后立刻就达到正常的亮度的,它需要一定的响应时间,虽然只是纳秒级的时间差,肉眼无法观察的到的,同样熄灭时也是一样的。响应时间从使用角度来看,就是LED点亮与熄灭所延迟的时间。即图1中tr、tf。图中t0值很小,可忽略。LED的点亮时间上升时间tr是指接通电源使发光亮度达到正常的10%开始,一直到发光亮度达到正常值的90%所经历的时间。LED的熄灭时间下降时间tf是指正常发光减弱至原来的10%所经历的第5页共21页时间。响应时间主要取决于载流子寿命、器件的结电容及电路阻抗,所以不同材料制得的LED响应时间各不相同。如GaAs、GaAsP、GaAlAs其响应时间10-9S,GaP为10-7S。图1LED的响应时间44系统的系统的总体设计总体设计4.14.1要实现的功能要实现的功能LED类部件的功能说起来比较简单,就是从信号输入管脚输入一个或一组信号,将这个或这一组信号直观的用亮灭来表现出来。为了力图仿真的效果,这里加入了响应时间的因素,以达到接近真实的情况。如图1,可以看出LED类部件不是一下就达到正常亮度,也不是一下就完全熄灭的,其亮度是经过了中间无数个状态才达到正常亮度或熄灭的,这样仿真的解决方法是在点亮和熄灭的过程加入几个中间色作为过度,以达到对真实情况的模拟。4.24.2工程的建立工程的建立打开VisualC+6.0操作界面,建立工程类型为MFCAppWizarddll的对话框文档的新工程,系统自动为用户创建CDLed2DLLApp这个类。创建过程如图2-图4所示(这里以普通单色LED工程的建立为例)。第6页共21页图2DLL工程的建立1图3DLL工程的建立2工程建立完成后把VisualexDoc、DComponent和line两个类及他们各自的头文件VisualexDoc.h、DComponent.h和line.h拷贝到DLed2DLL当中,然后第7页共21页在FileView中在SourceFiles文件夹点击右键选择“AddFiletoFolder.”一项,将VisualexDoc.cpp、DComponent.cpp和line.cpp填加到文件夹中,并在HeaderFiles文件夹点击右键选择“AddFiletoFolder.”一项,将VisualexDoc.h、DComponent.h和line.h填加到文件夹中,这样就把以前有的器件基类、VisualexDoc类和Cline类填加到工程中了。然后再建立一个DLed2类。方法如下:菜单栏中选择“Insert”“NewClass.”,就会出现如下的对话框,“Classtype”中选择GenericClass名称为DLed2,然后点击确定就会出现DLed2类和他的的头文件DLed2.h了。图4类的建立这样工程就已经建立了,用来编写代码以实现LED的功能。4.34.3主要类和函数介绍主要类和函数介绍.1主要的类主要的类DComponent类,是器件类的基类,所有器件都是由它派生出来的。VisualexDoc类,用于实现可视化功能。line类,用于对电路图中的线进行操作,如在不同器件的管脚间连线等。Dled2类,从基类中派生的普通单色LED灯的类。Dled8类,从基类中派生的“8”字灯的类。第8页共21页.2主要的函数主要的函数ReadInfo(FILEfileCVisualexDocpDoc):是负责读取保存在文本文档中器件的状态的,例如器件信息(名称,位置,大小,引脚数等),引脚信息(引脚号,位置,名称等)等描述器件状态的。属于器件类的成员函数。DrawObject(CDCpDC):是负责画器件的,就是根据ReadInfo函数所读取的信息,将这些信息具体的在平面图中展示出来,实验时能让人们清晰的看清楚它是什么样子的,每个位置都是什么样子的。DrawObject(CDCpDC)函数部分主要代码(以普通单色LED为例)如下:DrawObject(CDCpDC):if(lc=0)col=60elseif(lc=1)col=200CBrushbrush2oldbrush2brush2.CreateSolidBrush(RGB(col00)oldbrush2=pDC-SelectObject(&brush2)pDC-Ellipse(Position.xPosition.yPosition.x+cxPosition.y+cy)pDC-SelectObject(oldbrush2)pDC-FillPath()deletebrushpDC-SelectObject(oldFont)pDC-SelectObject(oldBrush)DispMsg(CStrings):负责显示当前状态,在特定的文本框中输出文本信息,显示现在在执行的动作。属于VisualexDoc的成员函数。OutSig(intiPinNointiSigval):第9页共21页外部通过OutSig给器件某引脚一个信号值,并将引脚号和信号值传给SetPin函数。是器件类的成员函数。SetPin(intiPinNointiSigVal):根据引脚号和信号值来判断下一步的工作。是器件类的成员函数。Dled2:JudDet(intiSigVal):根据参数的信号值与上次显示的信号值是否相等来判断会不会产生响应时间。Dled8:JudDet(intLedsNumintValue):参数为“8”字灯7个小灯的编号,和该小灯将显示的状态,根据判断该小灯状态是否会变化来判断会不会有响应时间。Dled8:SigProc(intPinVcc):信号处理函数,首先判断引脚PinVcc是否为高电平,否则返回,是就把4跟数据引脚上的数据转换成要显示的10进制的数,并根据这个数字来判断“8”字灯中各小灯的状态,并调用7次Dled8:JudDet(intLedsNumintValue)函数来判断各小灯的是否回有响应时间。Dled8:SigProc(intPinVcc)函数部分主要代码(以普通单色LED为例)如下:Dled8:SigProc(intPinVcc):for(inti=0iDispMsg(msg)OnTimer(CDCpDC):由加载DLL文件的应用程序(测试程序)每隔一定时间调用该函数,用来实现延迟过程(中间色的变化)。OnTimer(CDCpDC)函数部分主要代码(以普通单色LED为例)如下:OnTimer(CDCpDC):if(lc=3)col+=20if(col=200)lc-=2pParent-DispMsg(点亮延迟结束)第11页共21页DrawObject(pDC)elseif(lc=2)col-=10if(colDispMsg(熄灭延迟结束)DrawObject(pDC)Dled2:Detention(intiSigVal):响应时间产生函数,当LED状态发生变化后,在很短的时间里,LED的亮度是经过了中间无数个状态才达到正常亮度或熄灭的,根据信号值判断产生了那种响应时间,并通过OnTimer函数来实现中间色的转换。并返回一个状态值(3为点亮延迟,2为熄灭延迟)。4.44.4普通单色普通单色LEDLED灯功能的实现灯功能的实现普通单色LED灯只有2根信号输入脚(数据输入脚和LED开关VCC),分亮灭2种状态,功能比较简单,从信号输入脚读入信号值,并判断VCC是否为1(即LED处于工作状态)。和前一次读的值做比较(初始状态值为0,即熄灭状态),如果相同则直接显示,若不相同说明灯的状态发生了改变,需要有响应时间,再根据当前读入的信号值来判断产生了哪种响应时间(点亮延迟还是熄灭延迟,即图1中的tr、tf)。基本流程图如图5所示。第12页共21页与上次是否相等结束直接显示点亮延迟读管脚状态读入状态=1熄灭延迟否否是是开始VCC=1否是图5普通LED功能实现基本流程4.54.5用于显示数字的用于显示数字的“8”“8”字灯的实现字灯的实现“8”字灯有5根信号输入脚,其中4根为数据线,用于向“8”字灯输入4位数据,另一根为电源线,若电源线信号为0表示“8”字灯未接入电源,只有VCC信号为1时才读入数据,“8”字灯管脚示意图见图6。图6“8”字灯的5个输入管脚和小灯编号“8”字灯的实现相对来说复杂了些,由于外加的信号是一次只加一根信号第13页共21页线的信号,而“8”字灯是要求对一组4根数据线上的数据做显示,所以用VCC这样一根控制线,以便一次读入4根数据线的值(LedLDS3为高位,LedLDS0为低位)。读入数据之后调用类中定义的信号处理函数,将4位数据转换成将要显示的0-9的10进制数(并设置了错误代码,若输入值为10-15,返回错误信息)。并根据转换后的数来决定“8”字灯中的7盏灯有哪几盏需要亮。这7盏灯的编号见图5。表1“8”字灯的输出与7盏小灯关“8”字灯输出Leds0Leds1Leds2Leds3Leds4Leds5Leds601111101100110002011011130011111410110105100111161101111700111008111111191011111因为有响应时间的因素,所以在每种显示的情况下对每盏小灯进行延迟判断(每种显示情况都需要7次判断),判断方法是根据当前小灯的编号,和将要显示的情况与其当前显示情况做比较,若不同则有响应时间,再根据将要显示情况来判断将产生哪种延迟。基本流程图见图7。第14页共21页开始结束输入信号线信号VCC=1读4根数据线数据数据转换转换后9确定每盏灯的状态与将显示状态相同返回ERROR信息将显示状态=1直接显示状态点亮延迟熄灭延迟是否是否是否是否图7“8”字灯实现基本流程第15页共21页4.64.6设计测试设计测试利用程俊同学做的器件测试程序进行功能测试,在显示平台上显示LED的功能。.1普通单色普通单色LEDLED的测试的测试根据ReadInfo(FILEfileCVisualexDocpDoc)函数定义的格式建立一个名为aLed2_1.txt的文本文档来存放器件信息,内容如下:“Unit普通红色LED示意12020器件位置200200器件大小1:0100-50100(PinLD2)管脚位置名称2:200100250100(PinVcc)VCC”并将一些相关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新冠疫情捐赠协议书
- 水位标尺采购合同范本
- 楼顶买卖写合同范本
- 断桥安装安全协议书
- 栈桥商铺转让合同范本
- 校园安全顾问合同范本
- 水果批发销售合同范本
- 书店进销货合同范本
- 水暖电工聘用合同范本
- 智能化技术员试题带答案
- 2025股权质押借款合同
- 2025-2026第一学期高二物理期中试卷
- 2025年下半年漯河市源汇区事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 股权收购尽职调查报告范本
- 装配电工基础知识培训
- GB/T 46151-2025电梯、自动扶梯和自动人行道的电气要求信息传输与控制安全
- 劳动砺心智 实践促成长-劳动教育主题班会
- 疑难危重孕产妇病例分析汇报
- 2025福建福州水务集团有限公司招聘1人笔试历年参考题库附带答案详解
- 骑手配送食品安全培训课件
- 2025年高中信息技术会考试题及参考答案
评论
0/150
提交评论