ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:445.19KB ,
资源ID:10688859      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10688859.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于labview的电子万年历设计与工程简化本科论文.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于labview的电子万年历设计与工程简化本科论文.docx

1、基于labview的电子万年历设计与工程简化本科论文本科毕业论文(设计)题目:基于LabVIEW的电子万年历设计与工程简化学院: 物理学科学学院 专业:微电子学 姓名: 指导教师: 2015年5月18日基于LabVIEW的电子万年历设计与工程简化The design and engineering simplify of a electronic calendar based on LabVIEW摘 要本文主要综述了LabVIEW编写电子万年历程序的各个过程,以及程序编写与实际工程设计的联系,其中主要介绍了基于LabVIEW的电子万年历程序中24时模块、年月日模块、星期模块和闹钟模块各自的完成

2、原理和相互串接时需进行的各种调整。另外本文中还讨论了以LabVIEW模型为蓝图进行工程设计较之直接进行设计的几项优点。本文还对LabVIEW在实例中体现出的特性与可行的应用场景进行了论述。关键词:LabVIEW 虚拟仪器 仿真 模块 万年历 Abstract This review focuses on the electronic calendar program written in LabVIEW various processes, and procedures for the preparation and the actual engineering design links, w

3、hich introduces the LabVIEW modules electronic calendar program 24 based on the date module, module and alarm module each week of complete theory and various adjustments connected with each other to be carried out. Also we discussed in this article with LabVIEW model as a blueprint for engineering s

4、everal advantages compared to direct the design. This paper also reflected in the LabVIEW example features and possible scenarios were discussed.Key words:LabVIEW Virtual Instruments Simulation Module Calendar目录前 言 11 虚拟仪器技术的概念 22 LabVIEW的概念和应用 22.1 LabVIEW的基本概念 22.2 LabVIEW的应用领域 32.3 LabVIEW相较文本语言的

5、优缺点 33 基于LabVIEW的电子万年历 43.1 电子万年历的模块化分析 43.2 电子万年历的模块间综合分析 44 基于LabVIEW的电子万年历的编写过程 44.1 核心时间模块的编写 54.2 七段式数码管子VI的编写 64.3 年月日模块的编写及进制转换算法 74.4 星期模块的编写及数码管显示矩阵算法 94.5 闹钟模块的编写及智能化的加入 105 纵观LabVIEW电子万年历 105.1 LabVIEW电子万年历编制工作总结 105.2 从万年历看向LabVIEW的全方位 13谢辞 14参考文献 15前 言随着电子信息技术的发展和集成芯片的出现,人们身边的各种工具正在以惊人的

6、速度不断地更新换代,手机、电脑就不用多说了,现在就连手表也具备了更繁杂的功能而被冠以“智能手表”的名号。这一切的变化都要归功于集成电路的诞生。通过对集成芯片的编码,也就是单片机技术中常说的“烧录”,来使芯片实现固定的功能,不同语言的烧录能够写出拥有不同功能的芯片。编码语言的神奇可见一斑,而且编码语言本身也存在多样性,有看起来枯燥无味又十分难懂的C语言,也有像本文就要提到的LabVIEW一样的图形化直观易懂的语言。1诸多的语言种类的编写过程其实都是大同小异,都是通过一系列简单功能的叠加嵌套来实现纷繁复杂的功能。2在编写比较简单的程序时,LabVIEW较之C语言有一个十分显著的优点,那就是它极度仿

7、真的程序框图外观,直白明了的编辑过程可以让我们在编辑时就可以按照实际的逻辑进行模块和子VI的铺设,极大地减少了逻辑错误发生的可能性,避免了文字输入错误。但在见繁杂程序编写时,过多的逻辑关系嵌套串接等等难免会产生错误,这也是LabVIEW无法避免的弊病,所以根据需要和个人喜好选择程序语言是首要的。3在编写方面,LabVIEW具有简洁明了的特点,而在实际应用中仿真模拟的应用中,LabVIEW以其便捷直观的特点也深受工程人士的喜爱,在了解硬件工作原理的基础上,4甚至可以用LabVIEW编辑的子VI固定实现某一硬件芯片的功能,并设计引脚合理串接已形成仿真电路。本文就以基于LabVIEW的电子万年历的设

8、计编写为例,讲述LabVIEW编写的整个过程以及注意事项,通过模块化串接的功能实现方式体现其在工程简化上的参考价值。1 虚拟仪器技术的概念虚拟仪器顾名思义就是虚拟的、没有真实物理形态的仪器设备。虚拟仪器技术(Virtual instrument)就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。5用通俗的话讲,虚拟仪器技术就是用高性能的集成技术芯片辅以编写完成的程序语言来实现相应电路功能的技术。就如同用烧录机给89S51芯片写入程序一样。虚拟仪器的产生是集成电路发展的必然,传统机械结构和非编程电路的不稳定性和功能局限性决定了它们不可能实现复杂的功能,而且同一个设

9、计造就的产品只能完成固定仅有的一个功能,这就意味着你身边要有各种各样的设备以满足日常生活中为数不多的基本需求。6这一点可以举一个路人皆知的例子就是埃尼阿克,庞大的体积和超乎想象的重量,完成的功能却少得可怜。可以看出,虚拟仪器技术才是集成电路的核心,7就好比是灵魂,集成电路只是将各种元器件小尺寸化,而虚拟仪器技术却能够合适的调用这数以亿计的晶体管中的一部分来实现你想要的功能。82 LabVIEW的概念和应用 2.1 LabVIEW的基本概念LabVIEW是一种图形化的编程语言,又称为“G语言”,其各个部件类似于普通文本式的编程语言中的函数固定语言或者子程序,LabVIEW开发出的软件也就是我们所

10、说的虚拟仪器。9LabVIEW的编辑界面有程序框图和前面板。程序框图显示的是各个部件或者子VI之间的逻辑关系图,可以根据需要合理的添加或去除相应部件;10前面板与现实中的仪器相仿,可以设置旋钮、按键、显示装置或者是其他输入输出装置,甚至还能够按照个人喜好对界面进行美化。LabVIEW系统的构成相当复杂,但大体上由数据采集、数据分析、数据显示及保存模块构成;按软硬件分类,LabVIEW由两部分组成:硬件获取测试对象的被测信号;测试软件的控制。11本身作为一种编程语言就具备了操作使用灵活的特点,其编程所能实现的功能远远超出实际器件的范围;加之本身极强的可辨识性和简单的学习难度,在许多应用领域都能被

11、人们很快的接受。12当然,图形语言也不仅仅指LabVIEW,各种语言都有着各自的优缺点,LabVIEW也不例外,在简单程序语句的编写中LabVIEW要比文本性语言快捷得多,但是复杂功能的实现就略显乏力,除非是经常使用LabVIEW的工程师,每次使用都将日后可能用到的各个子VI单独封装保存,这样即便是较繁琐的程序编辑也会变得比较简单。 2.2 LabVIEW的应用领域LabVIEW作为一种简单实用的图形化编程语言,被广泛的应用于精细测量、建筑测量、设计模拟、生物医药、精密化工等各个高新技术领域。13 2.3 LabVIEW相较文本语言的优缺点与C语言等纯文本性语言相比,LabVIEW更加直观可视

12、,操作也更加便捷,在常用功能的编辑中,LabVIEW可以直接调用一个或多个部件完成C语言中数以百计的单词编写出的程序的功能。另一方面,由于没有大量文本的编写,LabVIEW避免了像C语言中字符输入错误这样的问题,编写过程更加精准,减少了反复查找纰漏的过程。另外,LabVIEW还有前面板编辑,经过美化的前面板几乎可以与显示仪器设备的面板相媲美,实际测量操作更接近现实,还可以输入或输出数字、文字、图形、表格等多种信息格式,这样多自由度的操作也是LabVIEW的亮点之一。14但LabVIEW也有无法避免的缺点,那就是子VI的缺乏,不同的系统需要不同的子VI支持,就算是相同的系统,鉴于不同使用者的喜好

13、,子VI也不可能完全相同,很少有用户能够做到保存所有自己编写过的子VI,这样一来,在编写大型复杂化的软件程序时,每次都要浪费人力物力在相同的子VI部件的编写上,这是LabVIEW模块化部件工作的固有弊端。153 基于LabVIEW的电子万年历 3.1 电子万年历的模块化分析不一定每个人都熟悉或者电子万年历的构造,但是我们大多都了解电子万年历是如何发展过来的:从滴水计时到计时12时的钟表、能计算日期的钟表、能计算日期和星期的钟表,到现在的万年历,纵观其中的各个过程我们不难发现:后一代产物无法完全摒弃前一代的技术基础,计时12时的钟表也需要秒为单位的基本计时模块,计算日期的钟表也必须要有秒单位和计

14、时12时的功能,由此看来,万年历也肯定是前面所有种类计时器具优点的集合加上其特有的功能所诞生的产品。那么我们不难分析出:万年历是以秒计时单位为核心,按照相关进制转换计算分、时、日、月、年以及星期的步进式结构,而添加的闹钟工作时间可随意调节,可见闹钟是万年历中一个独特的单位,它每时每刻都会从万年历获取时间信息,与所定时间对比,而这时间相同时,闹钟工作。也就是说闹钟模块独立于计时循环模块之外,但对万年历时间的读取工作模块处于计时模块之内。 3.2 电子万年历的模块间综合分析鉴于LabVIEW本身的模块式部件语句编写模式,对电子万年历的分解只停留在部件是不够的,由3.1的分析可以得知:万年历的主体由

15、秒表模块、秒转分模块、分转时模块、时转日模块、日转月模块、月转年模块和星期计算模块以及闹钟模块构成,另外还要有数码管显示模块和闹钟调节模块以及初始调节模块的补充和完善。各个转换模块之间按顺序串接,就形成了一个以秒表为核心的基本自主计时体系;星期计算模块需要实时获取年信息、月信息以及日信息进行相应公式计算得出相应的星期;闹钟模块随时获取相应信息对比时间决定开关即可;这一整体辅以数码管显示模块和闹钟调节、初始调节模块完善整个系统的输入输出,以实现电子万年历功能。4 基于LabVIEW的电子万年历的编写过程由于之前也没有编写万年历程序的经历,所以编写过程是先编写主要核心,然后主次添加所需模块来完成的

16、,为了讲述方便,本文就按照编写进度顺序撰写: 4.1 核心时间模块的编写所谓核心时间模块就是整个电子万年历的发条,如图1所示为一个秒为单位的计时单元,延时模块设置时间延迟为1s,while循环框中计数变量i每次经过平铺是顺序框图都要在其中延时模块的控制下经过1s时间,然后到达下一帧页被+1然后进入第二次循环,当然这样的秒表是不完善的,i+1的输出端也没有接到显示模块上,秒的单位进制是60,所以我们可以取i值与60的余数作为当前的秒的数值,以商的值作为分的进位,如图2所示,这样秒表部分就完全完成了。 图 1 图 2分到时的进制也是60,也就是说我们可以对分进行同样的取商取余处理,得到当前分和时的

17、数值,但如果直接将分数值进行除法换算,当i的数值积累到60之后,每次计算所得商的值都会大于1,也就是每一秒都会给分累计加一,这样的算法当然是错误的了,所以在这里添加一个判断框,将余数与0对比:如果余数等于0,证明秒表刚好跑完了60秒,此时判定信息为“T”,可以给分一个信号,完成“分=分+1”的函数过程;如果余数不等于0,则证明不是秒表读数不是60的整数倍,此时判定信息为“F”,相应的函数过程为“分=分”。如图3和图4所示: 图 3 图 4 到这一步,秒到分的转换已经完成了,接下来分到时的转换又出现了问题,由于处在一个while循环框内,所以判定信号的频率就是秒表的频率,如果同样适用秒到分的方式

18、进行进位,那么当分的数值为60的整数倍,也就是给时进位之后的1分钟之内,每一秒都会测得“分=0”给时进位,这是个不得了的问题。 既然这60秒不好惹,那我们就避开它,直接从“分”进行判定,那么这一分与其他时刻的分的区别在哪呢?对,问题就在于“此时的分”与“前一分”,为了表示简单,我们设:“此时的分=分”,“前一分=分”,那么我们就将“分”与“分”进行比较:当“分=分”此时分没有变化,秒没有进位;当“分分”此时分为正常进位,即分与60的商为0;当“分分”此时分虽然得到了进位,显示值却小于上一分的数值,证明此时分与60的商为1,余数也就是当前的“分=0”。如图5和图6(图中已经准备好了同样原理的给“

19、日”进位的端口,本章节不再重复强调)所示: 图 5 图 6到这里,核心时间模块的编写已经完成了,这部分是整个电子万年历的核心,也是整个体系的主要部件。接下来的章节依次讲解其他构件的编写过程。 4.2 七段式数码管子VI的编写七段式数码管就是我们常见的电子标上就有的“8”字数字荧光显示屏,通过7节不同位置的荧光条的亮暗差别显示09的数字,这一结构其实也很简单,在LabVIEW编程的前面板中,有可以随意改变形状的荧光灯结构,可以采用这个结构和合适的程序语言实现数字到二进制编码的转变,然后对七段式数码管进行控制,其程序框图如图7和图8所示: 图 7 图 8为了美观,我个人将每一段数码管变成三段,用在

20、程序框图中的首位相同的布尔元件代表(即“0002”为一段数码管,同时开关)。按照数码管的排列位置编号06,通过索引数组模块将09的数字转换成相应的控制显示的二进制代码,而后将其数字信号转换为“T”或“F”的二进制代码并与06的数码管序号关联控制数码管的亮暗。 4.3 年月日模块的编写及进制转换算法图6中已经有了时分秒模块向日进位的端口,而日到月的进位就没有那么简单了,但也有其规律算法可循,我们所熟知的:1、3、5、7、8、10、12七个月份都是31天的进制,4、6、9、11四个月份是31天为进制,二月是一个个例,其本身与年号相挂钩,能被4整除不能被400整除的年,也就是闰年中,二月是29天,其

21、他年份都为28天,通过这些逻辑的罗列我们能看到闰年的判定还是比较简单的,而且是决定月份计算的基础;月的判定相关性和相似性很强,适合统一计算,闰年的计算如图9所示: 图 9按照经验我们可以将日到月的运算分为三类:二月份运算、30天月份的运算和31天月份的运算。如图10和图11所示: 图 10 图 11首先要强调的是系统运算时所用的数字是从0开始的自然数组,而现实中的月份和日期都是从1开始的数组,所以就设置了“ri=日-1”和“yue=月-1”的转化语言,此处并非编写错误。时进给日的是非条件分为三条路线分别传送给二月运算路线、30天月份运算路线和31天月份运算路线,可以看到011的12个数字被分成

22、了三组,分别代表这三个月份分类,通过求当前月份值与相应数字的差值是否为0来判定当前处于哪个月份,处于2月则需再根据跟闰年判断结果相与得到的逻辑符号来判定是进入28天的运算模块还是29天的运算模块,如果不在二月,就直接输出0就可以了;处于30天的月份则只需令“T”时为30天运算,“F”时输出为0就可以了,31天月份的运算方式也是如此。这种运算方式确保了12个月的路线全都走过,有该累计月份进位的就输出1,不该累计的输出0,这样的12个数字最后求和就可以准确无误的算出当前的月份值了。月到年的进位就更加简单了,跟分到时的进位大同小异,这里不再详细说明。 4.4 星期模块的编写及数码管显示矩阵算法星期模

23、块是编写过程中最为麻烦的一个模块,由于统计的数据过于庞大,所以就采用了三个方案进行简化:1.将年、月事先进行除7取余的简化,也就是选取一个基准年的年初第一天,即2000年1月1日作为基准日,选择2000年是因为2000年是能被400整除的非闰年,这样在计算2000年前或2000年后的不同年份的日期时可以4年为一个小单位,25个小单位为一个大单位,详细的说就是非闰年365天,可以简单运算为:3657=521,星期的进位为1,闰年3667=522,星期进位为2,每4年含有一个闰年,每25个4年,也就是每100年有一个被400整除的特殊非闰年,这样的计算模式如图12和图13所示: 图 12 图 13

24、2.对当前月份和本年度经过整月份的运算也通过相似的方法进行整合取余简化运算,鉴于本部分图案特点原因,就不单独进行图示了3.星期的表示方式采用荧光管矩阵形式这种形式的应用主要是考虑到美观性和协调性,整个万年历中的年、月、日、时、分、秒的显示都可以凭借七段式数码管来实现,那么何不将星期的显示也通过数码管来实现呢?而星期两个字在一周7天的变化中始终不变,所以就直接写在前面板上,“一”到“日”的变化可以通过点亮矩阵中相应位置的灯来显示,图14所示就是前面板显示用的10*10数码管矩阵中显示数字“五”的效果: 图 14 4.5 闹钟模块的编写及智能化的加入其实作为万年历一般都不会具有闹钟模块的,这里添加

25、闹钟模块只是出于我个人对于电脑没有自带闹钟的消遣,这一模块也是整个系统中最为简单的模块,通过直接读取时、分信息与设定信息比对,相同时就响起闹钟,而我设计的闹钟还有两个更为人性化的地方:1.闹钟除了时、分的比对之外,还设有能单独开关的日期比对模块,也就是说,如果你需要,可以指定闹钟在固定日期的固定时间响起,而其他日期的这一时间绝对不会影响你。2.闹钟还设置了间歇式逐次提醒模式,闹钟每次持续响铃时间为1分钟,如果你没时间去管它,那么一分钟之后它就会暂时安静下来,给你5分钟的休憩时间然后再响1分钟,总共响铃4次。这样的设计没有什么独特或者高难度的地方,纯粹为了个人喜好而已。5 纵观LabVIEW电子

26、万年历 5.1 LabVIEW电子万年历编制工作总结到这里,基于LabVIEW的电子万年历的基本零件已经讲述完了,另外还有很多为了美化和实用考虑的编程部件和美化显示效果的前面板设计就没有什么技术性可言了,这样的部件相互串接在一个大型的while循环框内就成了一个自循环的电子万年历。现在的万年历虽然已经是修改了二十多次的完成版,运行时的运算也基本都趋于稳定,不会再出现月份随秒表跳动等低级的错误,但经过最终的测试,也还存在着以下几个不足:1.时间的初始设置中,月份和日期的设置只能通过对“yue”和“ri”的设置来实现;2.时间的初始设置中,秒的设置不会起作用,不管秒设置值为多少,点击开始之后,都会

27、直接跳过当前一分钟进入下一分钟的0秒开始计时;3.闹钟的铃声尚不能自由选取,这里涉及软件权限问题,属于个人能力欠缺以上3个问题并非不能解决,只是鉴于个人原因没有充足的时间进行设计,放到最后的主要原因是这些问题都不影响程序整体的稳定运行。另外,整个电子万年历的编程之中,除了上述的各个部件之外,还有少数几个微小功能的部件,在接下来的整体程序框图(图15)和前面板图(图16)中都有体现:图15 程序框图图 16 前面板 5.2 从万年历看向LabVIEW的全方位LabVIEW编写电子万年历只是LabVIEW用法的一个很小的方面,另外,LabVIEW在电子电路测量、微变化物理量测量中搭配硬件仪器设备构

28、件测量系统的功能也是当今LabVIEW的主要用途之一。LabVIEW还经常应用于简单单片机设备虚拟系统开发、工程机械控制等诸多领域。总结而言,软件编辑操控硬件设备才是LabVIEW的看家本领,在高新科技飞速发展的现在,硬件设备的更新换代十分飞快,这也就意味着像LabVIEW这样的的编辑语言所受到的限制就越来越小,那么LabVIEW的未来究竟可以是什么样子呢?是可编程自动学习型的机器人设备还是高精度高可靠性的医疗卫生装备?我们无从知晓,但是,让我们也多多少少的去接触去了解一下这一类应用,哪怕只是给自己编辑一个最为普通的日常应用而已。谢辞 本论文的研究和撰写是在徐胜老师的严格要求和悉心指导下完成的

29、。在毕业设计期间,徐胜老师对我始终严格要求、充分信任,对我的专业学习给予了充分的理解和支持,他教导的研究方法的探索、创新能力的培养以及为人处事的原则对我产生的意义远远超过了论文本身。在此,必须要向我的指导徐胜老师表示感谢! 同时,我要特别感谢在大学期间曾经给予过我关怀和帮助的所有老师。没有他们对我各方面的关心和指导,我是不会如此顺利地完成我的学业以及这篇论文。 另外,我还想感谢给予我支持和帮助的同学和室友。正是由于大家的团结协作和互相帮助,才使得本论文能够顺利完成。在此,向他们表示衷心的感谢! 最后,我向所有曾给予过我指导和关心的亲人、老师和朋友们致以由衷的感谢和崇高的敬意。 参考文献1郑对元

30、. 精通LabVIEW虚拟仪器程序设计 清华大学出版社; 2012年5月第1版:72 陈树学,刘萱. LabVIEW宝典 电子工业出版社, 2005:205-211 3(美)布鲁姆著,刘章发,LabVIEW编程样式 电子工业出版社,2006:205-2084(美)Johnson,G.W,Jennings,R著;武嘉澍,陆劲昆译. LabVIEW图形编程 北京大学出版社,2001年1月:9-125(美)特拉维斯(Travis,J.),(美)克林(Kring,J.)著;乔瑞萍等译. LabVIEW大学实用教程,2008,31(4):92-946江建军. LabVIEW程序设计教程 电子工业出版社,

31、2008年3月第一版:757康威(Conway,J.),瓦特(Watts,S.)著. 软件工程方法在LabVIEW中的应用 北京大学出版社, 2000(2):408NI开发者社区,9郑对元. 精通LabVIEW虚拟仪器程序设计 清华大学出版社, 2012年5月第1版:65-6810黄松岭,吴静编著. 虚拟仪器设计基础教程 清华大学出版社,2008年10月 12-1311郑对元. 精通LabVIEW虚拟仪器程序设计 清华大学出版社,2012年5月第1版:181-19212David J.Ritter, LabVIEW GUI McGraw-Hill 2011年12月 第28卷:212-23313阮奇桢,我和LabVIEW 北京航空航天大学出版社2009年9月 第26卷第1期:27-2914郑对元. 精通LabVIEW虚拟仪器程序设计 清华大学出版社; 2012年5月第1版:148-154

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2