搜索
您的当前位置:首页正文

【毕业论文】基于LabVIEW的多功能秒表设计(计时器+倒计时+节拍器+日历+时钟)

来源:尚佳旅游分享网


基于LabVIEW的秒表设计

摘要

数字式秒表是一种常用的计时工具,广泛用于各种比赛以及各类实验测量中。随着生活节奏的加快,人们时间观念的加强,各种计时器已经成为人们日常生活中不可或缺的一部分,并且人们已经不能满足于单一的某一种功能了。而如何在秒表的基础上,根据人们生活的需要增加相应的功能以方便人们的生活,便成为秒表设计方面的重点。

我基于LabVIEW设计的的秒表,具有秒表计时器、倒计时器、节拍器、时钟和闹钟的功能。其具有界面美观,简单易用,功能强大,精确度高等特点。此秒表的所有功能均可以独立运行,互不干扰,具有很好的用户体验。 关键词:秒表,计时,LabVIEW

第 II 页

Stopwatch design based on LabVIEW

Abstract

Digital stopwatch is a commonly used tool for timing.It is widely used in various competitions and a variety of experimental measurements.With the accelerated pace of life and the strengthening of the concept of time,variety timer has become an indispensable part of everyday life,and it has been unable to meet on a single feature of a certain kind.It has become the focus of the stopwatch design that how to add the corresponding function according to the needs of people's lives based on the stopwatch to convenience to people's lives.

Stopwatch witch I designed based on LabVIEW, is with a stopwatch timer, countdown timer, metronome, clock and alarm functions.It has a beautiful interface, easy to use, powerful, high precision characteristics.This stopwatch’s all functions can be run independently, means can without disturbing each other, and with good user experience.

Keywords: stopwatch, timer, LabVIEW

第 III 页

目 录

1.绪 论 ............................................................ 1

1.1 引言 ....................................................... 1 1.2虚拟仪器的概念及特点 ....................................... 1

1.2.1虚拟仪器 ............................................. 1 1.2.2 虚拟仪器的特点 ....................................... 1

2. 图形化编程和LabVIEW ............................................ 2

2.1 图形化编程简介 ............................................. 2 2.2 LabVIEW简介 ............................................... 2

2.2.1前面板 ............................................... 2 2.3.2 程序框图 ............................................. 2

3.秒表介绍及程序设计 ............................................... 3

3.1 概述 ....................................................... 3 3.2 秒表的发展 ................................................. 3 3.3 秒表的功能设计 ............................................. 5

3.3.1.正计时 ............................................... 5 3.3.2 倒计时 ............................................... 6 3.3.3.节拍器 ............................................... 6 3.3.4.时钟与闹钟 ........................................... 6

4. 程序实现 ........................................................ 7

4.1秒表计时器 ................................................. 7

第 IV 页

4.1.1 流程图 ............................................... 7 4.1.2程序设计 ............................................. 8 4.2 倒计时器 .................................................. 21

4.2.1流程图 .............................................. 21 4.2.2程序设计 ............................................ 22 4.3节拍器 .................................................... 25

4.3.1流程图 .............................................. 25 4.3.2 程序设计 ............................................ 26 4.4时钟及闹钟 ................................................ 28

4.4.1流程图 .............................................. 28 4.4.2 程序设计 ............................................ 28

总 结 ............................................................. 31 致 谢 ............................................................. 33

第 V 页

1.绪 论

1.1 引言

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。

1.2虚拟仪器的概念及特点

1.2.1虚拟仪器

LabVIEW程序又称虚拟仪器,即VI,其外观和操作均模仿现实仪器,如示波器和万用表。每个VI都使用函数从用户界面或其它渠道获取信息输入,然后将信息显示或传输至其它文件或计算机。 1.2.2 虚拟仪器的特点

根据概念创建者美国国家仪器公司(National Instruments)的定义,虚拟仪器(英语:Virtual instrumentation)技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟 仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势。

第 1 页

2. 图形化编程和LabVIEW

2.1 图形化编程简介

图形化的程序语言,又称为 “G” 语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。

2.2 LabVIEW简介

双击LabVIEW快捷图标,出现启动画面,打开一个新的LabVIEW程序,可以看到它由两个面板组成。第一个是前面板窗口;第二个是后面板窗口。

2.2.1前面板

前面板由输入控件和显示控件组成。这些控件是VI的输入输出端口。输入控件模拟仪器的输入装置,为VI的程序框图提供数据。显示控件模拟仪器的输出装置,用以显示程序框图获取或生成的数据。 2.3.2 程序框图

前面板创建完毕后,便可使用图形化的函数添加源代码来控制前面板上的对象。程序框图是图形化源代码的集合,图形化源代码又称G代码或程序框图代码。前面板上的对象在程序框图中显示为接线端。

第 2 页

3.秒表介绍及程序设计

3.1 概述

秒表是一种常用的测时仪器。又可称\"机械停表\"。由暂停按钮、发条柄头、分针等组成。它是利用摆的等时性控制指针转动而计时的。在它的正面是一个大表盘,上方有小表盘(图1.4-2)。秒针沿大表盘转动,分针沿小表盘转动。分针和秒针所指 的时间和就是所测的时间间隔。在表正上方有一表把,上有一按钮。旋动按钮,上紧发条,这是秒表走动的动力。用大拇指按下按钮,秒表开始计时;再按下按钮, 秒表停止走动,进行读数;再按一次,秒表回零,准备下一次计时。秒表的精度一般在0.1-0.2秒,计时误差主要是开表、停表不准造成的。而使用labview制作的秒表,其精确度可达到1毫秒。

3.2 秒表的发展

原始人凭天空颜色的变化、太阳的光度来判断时间。古埃及发现影子长度会随时间改变,发明日晷在早上计时,他们亦发现水的流动需要的时间是固定的,因此发明了水钟。古代中国人亦有以水来计时的工具——铜壶滴漏,他们亦会用烧香计时。将香横放,上面放上连有钢珠的绳子,有报时功能。 中国古代烧香的闹钟。除了用水流来计时外,中国古代民间亦有利用燃点线香来计量时间。龙舟报时更香就是利用烧香来计时的仪器,它更设有定时响闹的作用。龙舟上挂了数条两端系著金属球的幼线,线下放了燃著的香。每隔

第 3 页

一段时间,香便会烧断一条线子,当金属球跌进下面的盛器时,便会发出报时响闹。这种烧香时计最早 见于宋代(公元12世纪中叶)的文献中。用更香来计算时间的精度不高,但由于它简单易行,极之适合民间使用,所以曾经十分流行。据文献记载有些更香可燃烧一画夜,有些甚至可以燃烧至一个月。此更香是根据文献及示图复原,没有原物传世。

1088年,宋朝的科学家苏颂和韩工廉等人制造了史上首座以水力作自动化机械操作的水运仪象台,它是把浑仪、浑象和机械计时器组合起来的装置。 1276年,中国元代的郭守敬制成大明灯漏。它是利用水力驱动,通过齿轮系及相当复杂的凸轮结构,带动木偶进行“一刻鸣钟、二刻鼓、三钲、四铙”的自动报时。自宋起,十二时辰分初正即廿四小时系统,一刻即今天的十五分钟,其准确度较德国之桌钟早三百多年。

1283年在英格兰的修道院出现史上首座以砝码带动的机械钟。

13世纪意大利北部的僧侣开始建立钟塔(或称钟楼),其目的是提醒人祷告的时间。

1360年詹希元创制“五轮沙漏”,以齿轮、时刻盘合成

16世纪中在德国开始有桌上的钟。那些钟只有一支针,钟面分成四部分,使时间准确至最近的十五分钟。

1657年,惠更斯发现摆的频率可以计算时间,造出了第一个摆钟。1670年英国人威廉·克莱门特(William Clement)发明锚形擒纵器。

1797年,美国人伊莱·特里(Eli Terry)获得一个钟的专利权。他被视为美国钟表业的始祖。

世界上第一座原子钟建于1949年,位于美国的国家标准技术研究所。第一

第 4 页

座准确的原子钟于1955年建造,位于英国国家物理实验室。1967年,第十三届国际度量衡会议采用铯-133原子钟所发出特定波长的频率,作为秒的基准依据。当此原子钟某特定波长所发出 的光振动 9,192,631,770 次所经过的时间,定义为一秒。原子钟相当稳定,不易受环境变化影响。

计时码表,或称码表,是一种有计时功能的手表,是将秒表的功能结合于手表之中。计时码表于 1720年由英国人 George Graham 发明。

无论是机械手表,石英手表,甚至 LCD显示数位表,都有计时码表的产品。LCD数位手表的价钱是三者中最低,但计时功能却是最为精确,精度可达百分之一秒或千分之一秒。石英的计时码表价钱较贵,精度多数为十分之一秒 。而机械计时码表的精度是最差,只能以秒计算,但由于机芯结构复杂,因此价钱最为昂贵。

3.3 秒表的功能设计

3.3.1.正计时

我设计的秒表的正计时器首先具有精确到0.01秒的计时功能,最高可以计时到99小时59分59秒99,其他功能如下:

以LED七段数码管的方式显示时间。 在计时过程中,可以暂停、继续计时。

在任意状态下,可以执行复位操作,清除所有数据。 可以在任意状态记录任意次时间。

第 5 页

在任意状态下,可以实现单人记圈/多人记名的切换,并且切换后自动复位。 有毫秒指针,每秒转一圈。 3.3.2 倒计时

我设计的倒计时器可以从任意时间开始倒计时,并在倒计时结束时触发警报,其他功能如下:

有倒计时指针显示剩余时间的百分比,且平滑移动。 以LED七段数码管的方式显示剩余时间。 可以设置不同的提示音。 精确到1秒。

倒计时结束时指针中间会出现红点。 3.3.3.节拍器

我设计的节拍器具有如下功能: 开始、暂停节拍器。

设置节拍,从20拍/分钟到240拍/分钟,间隔为20拍/分钟。 3.3.4.时钟与闹钟

我设计的时钟具有以下功能: 以指针方式显示12进制的时间。 显示当前日期和时间,星期。 设置闹钟,并可设置闹钟状态。

第 6 页

4. 程序实现

4.1秒表计时器

4.1.1 流程图

通过对秒表原理的理解基础上,在结合LabVIEW软件,秒表计时器的程序流程图如图(4.1)所示:

图4.1程序流程图

第 7 页

4.1.2程序设计 1.前面板设计

程序的前面板如图4.2所示

图4.2 前面板

2.程序框图

整个秒表计时器的程序框图如图4.3所示

第 8 页

图4.3 程序框图

3.程序设计 顺序计数的实现:

建立while循环,将i创建显示控件,从而将计数值显示到前面板上。在循环中添加等待时间可以控制计时精度。如添加10毫秒等待则是精确到0.01秒。 进位的实现:

进位的实现有几种备选方案: 1)for循环指定循环次数

2)事件结构中设置比较器,当i等于特定值时触发进位 3)使用条件结构,当i等于特定值时比较器输出true,激活进位 4)算数计算由i算出各个数位

使用前三种方案有一个弊端:每增加一个进位就会相应的增加一个嵌套的循环,而循环越多越容易出现错误和死循环。于是我选用第四个进位方法:算

第 9 页

数方法。由于1秒=1000毫秒,1分钟=60秒,1小时=60分钟。我们可以算出,当while循环延迟为1毫秒时,小时数为(i/60*60*1000)的整数商。设i’为(i/60*60*1000)的余数,则分钟数为(i’/60*1000)的整数商。设i”为(i’/60*1000)的余数,则秒数为(i”/1000)的商,其余数即为毫秒数。市面上的秒表多数是精确到0.01秒,也就是10毫秒,所以我把算出的毫秒数又进行了*10,从而得到0.01秒的精确度。

实现算数进位的子vi程序框图如图4.4所示,其中x为输入端,输出为一个含有4位的时间簇。

图4.4 算数进位函数

暂停计时的实现:

暂停计数要求在计数开始后点击暂停按钮时暂停计数,再次点击时又开始计数,并且是接着刚才的数值计数。这就要求在整体程序运行时,将程序的一部分暂停和恢复。

为了做到这点,我先后尝试了各种结构,最终使用了双层while循环的嵌套结构。具体是将一个while循环外再加一个while循环,在内层while循环中加入停止按钮,并且将停止按钮的动作设置为“释放时转换”,同时将前面板的停止按钮设置为开关的形状以便于识别。

第 10 页

这样,这个内层的停止按钮就会实现暂停的功能。 具体程序框图如图4.5所示

图4.5 暂停的实现

随时退出程序的实现:

我的计数方案没有for循环,所以它不会自己停止。如果沿用先前的独立停止按钮的设计,就会出现一个严重的问题:只能在计时过程中停止。当程序处于计时状态时,内部while循环处于停止状态,点击停止按钮会立即得到响应;而当程序处于暂停计时时,内部while循环处于运行状态,从而外部的事件将无法响应。

我注意到,当在暂停状态下点击停止按钮后再让秒表开始计时,内部循环将会跳出,而停止命令则会得到响应。由此想到,如果让程序在我点击停止的时候,自动让内部while循环处于运行状态,那么问题便迎刃而解了。

第 11 页

由此想法,列出了如下的真值表: 暂停端 1 1 0 0

不难看出此真值表与或门完全一致。于是便有了如图4.6所示的设计。使用或门将两个按钮同时连接到内部while循环,并且把触发端都放置在最内部,消除延迟:

停止端 0 1 0 1 内部while循环 1 1 0 1

图4.6 停止按钮设计

整体框图如图4.7所示

第 12 页

图4.7 可以随时停止的秒表设计

计时清零的实现:

对显示控件的清零有几种备选方案: 1)事件结构 2)条件结构 3)嵌套while循环

经过多次实验,发现事件结构和条件结构容易在while循环中形成死循环无法跳出,故采用嵌套while循环来实现清零功能。由于在前面的程序中停止程序并重启后i会自动归零,所以在整个程序外面再加一个while循环。这样,可以随时停止内部程序而不中止整个进程。而停止内部程序则会实现清零的操作。

和停止按钮一样,如果沿用先前的独立停止按钮的设计,就会出现同样的

第 13 页

的问题:只能在计时过程中清零。当程序处于计时状态时,内部while循环处于停止状态,点击清零按钮会立即得到响应;而当程序处于暂停计时时,内部while循环处于运行状态,从而外部的事件将无法响应。

解决此问题,同样根据真值表可以看出,在内循环添加或门,这样就可以顺利触发清零。

程序框图如图4.7所示.

图4.7 带停止功能的秒表程序框图

记录功能的实现:

秒表的记录功能要求能够在计时的过程中随时记录多次的时间。首先,我实现的是记名。为了能够显示一个完整的字符串(如:第1名:0小时0分钟1

第 14 页

秒.20)我使用字符串连接函数将多个字符串和时间进行组合,并使用条件结构控制对数据的采集。在最后添加换行符以换行。为了能够实现实时采集,同样将采集按钮放在最内层循环,并使用或门与其他按钮相连。为使程序能够连续多次记录,使用反馈节点储存数据。

程序框图如图4.8所示。

图4.8 可以连续记录的秒表程序框图

随着记录功能而来的一个问题就是清屏。先前的清零只能对时间进行重置,而字符串却不行。开始时,我使用了对显示控件从新赋值的方法,但这种方法有一个弊端,就是移位寄存器是不可重置的,这样就会导致在执行清零后再记录时,先前清除的内容又显示回来了。

为了解决移位寄存器清零的问题,我转而使用了另一种方法:临时文件的读取写入。临时文件可以很好的解决清除数据与读取的问题。先将数据写入临时文件,再从文件中读取字符串显示到显示控件上。每点击一次采集按钮,就会在对应文件的下一行添加一个记录字符串。当需要清零时只需要删除文件内

第 15 页

的数据即可。这样,当点击清零按钮时,所有显示控件都会清零,并且没有数据残留。同样,将该按钮放置在内循环并使用或门与其它开关相连。

程序框图如图4.9所示.

图4.9 可以清零的秒表程序框图

复位按钮的实现:

秒表上通常会有一个复位按钮,这个按钮会同时实现两个功能:清除所有数据;使秒表处于停止计时状态。所以我把清零按钮改为了复位按钮,次改进需要增加一些触发功能。首先,在点击复位时会清空临时文件中的数据,这一点通过事件结构实现;其次,在清除数据时,将开关置为暂停状态,为此创建了暂停按钮局部变量,通过对局部变量的赋值实现该功能。当点击复位时,暂停按钮会被赋值F,从而暂停计时。事件结构具体如图4.10所示。

第 16 页

图4.10 复位的程序框图

切换记名/记圈的实现:

切换记名/记圈实现的功能就是当点击切换按钮时,程序会在记名模式/记圈模式之间来回切换,并且在切换的同时进行复位。为实现该功能,我使用了一个条件结构,在“真”里面放置“圈”字,在“假”里面放置“名”字,使其共同输出到一个显示控件上。同时,在前面板隐藏该显示控件,并在程序框图上创建该显示控件的局部变量,设置为读取模式,将其连接到采集数据的长字符串里面。这样,就可以把字符串里面的一个字符在两个字之间切换了。程序框图如图4.11所示

为了能够在切换的同时执行复位,我在复位按钮的旁边增加了一个事件结构,设置触发源为切换按钮值改变,这样,点击切换按钮时,事件结构触发,输出一个T,将其和复位按钮以或门相连,便可以实现多个触发源触发一个功能了。

第 17 页

图4.11 切换的实现

LED七段数码管显示的实现:

七段数码管显示数字的效果如图4.22所示。每一位数字都是由7个布尔指示灯拼接而成,每两位形成一组,共同显示一个小时/分钟/秒/毫秒数值。在每两个位之间,有绿色的双闪LED灯,每秒闪一下。

图4.12 LED七段数码管显示效果

为了实现LED数码管的显示,首先需要制作一个数字转换为LED显示的子VI,否则程序会很繁杂。该子VI的程序框图如图4.13所示,前面板如图4.14所示。首先,建立一个十进制整形的数值输入控件,将其连接至一个条件结构,在条件结构中添加10个条件分支,分别对应0~9这10个数字。在条件结构的每个分支中,加入7个布尔常量,并分别创建显示控件,将显示控件设置为方形指示灯,这7个指示灯对应7个数码管。对这7个指示灯的形状和大小进行调整,使之成为一个“8”字。接下来对条件结构中的常量进行设定,比如8对应的数码管就是7个T,因为8的LED显示中数码管都是亮的。同样的,对所有10个条件分支进行设定,使每一个数值对应一个LED显示样式。因为本

第 18 页

程序是子VI,不宜有太多输出,故创建局部变量并将其捆绑为簇,实现单输入单输出。

图4.13 LED显示子VI程序框图

图4.14 LED显示子VI前面板

在主程序中,需要调用8次LED显示函数。因为该函数一次只能显示一位,所以要把时间的两位数变为两个一位数。对一个两位数除10取余和商便可达到这一目的。将簇解除捆绑之后,把每一位除以10,将商和余数分别接入LED显示子VI,并在子VI上创建显示控件,便可在前面板上显示出LED的数字了。程序框图如图4.15所示.

为实现每两个数字中间的闪烁灯,我在秒的位置增加了除以2的操作,通

第 19 页

过余数来判断奇偶,当得到奇数时,使用条件结构给8个布尔指示灯赋值T,使之点亮。当得到偶数时,使用条件结构给8个布尔指示灯赋值F,使之灭。程序框图如图4.15所示。

图4.15 主函数部分LED显示

图4.15 闪烁灯程序框图

秒针转盘的实现:

在前面板上创建一个量表,并进行自定义,使之成为图4.16中的样子,并将其最大值设置为100.这样,即可实现每秒钟转一圈的秒表指针了。

第 20 页

图4.16 毫秒指针

4.2 倒计时器

4.2.1流程图

倒计时器的流程图如图4.17所示。

图4.17 倒计时器流程图

第 21 页

4.2.2程序设计 1.前面板设计

程序的前面板如图4.18所示。

图4.18 倒计时器的前面板

2.程序框图

倒计时器的程序框图如图4.19所示。

第 22 页

图4.19 倒计时器的程序框图

3.程序设计

初始时间设置的实现:

倒计时所输入的时间为小时:分钟:秒,想将这些时间转化为秒,则需要把小时*3600+分钟*60+秒。 数值倒计的实现:

得到秒的数值之后,只需要把该数值减去循环次数i就可以实现倒计时了。而将while循环的间隔设置为1秒就可以实现每秒减1的倒计时了。在实际设计中,倒计时提示会在程序运行时响起,因为此时计数数值也是0.为解决此问题,我在-i之前对数值*100,在-i之后又进行/100取整,并且使用/10取整之前的数值与1比较,相等时就会触发报警。同时,把while循环的间隔设置到10毫秒,这样计时还是1秒,同时提高了精确度。程序框图如图4.20所示。

第 23 页

图4.20 倒计时原理

倒计时暂停/开始的实现:

和秒表一样,具体是将一个while循环外再加一个while循环,在内层while循环中加入停止按钮,并且将停止按钮的动作设置为“释放时转换”,同时将前面板的停止按钮设置为开关的形状以便于识别。这样,这个内层的停止按钮就会实现暂停的功能。 倒计时复位的实现:

倒计时的复位原理同秒表一样,只不过由于不需要记录数据,要比先前简单很多。在点击复位按钮之后,内循环会停止,同时将暂停/开始按钮置为暂停状态。原理在前面的秒表部分已有叙述,在此不再重复。 倒计时铃声及其切换的实现:

该倒计时器在倒计时器结束时会有铃声报警,并且铃声是可换的。为了实现该功能,我先找来两个wav格式的铃声,使用事件结构来判断是否时间到。时间到时,事件结构执行真的部分,播放放在指定路径下的声音文件。为了实现切换提示音,在条件结构内在加入一个条件结构,并在前面板中加入一个枚举输入,从而选择铃声。

另外,在倒计时结束时,指针中间会有一个红点出现,这使用的是一个圆形指示灯的可见性属性节点通过条件结构的赋值所实现的。其触发原理同上。

第 24 页

程序框图如图4.21所示。

图4.21 倒计时结束触发

整合停止按钮:

在逻辑上,秒表和倒计时器的运行关系是并行的,也就是说互不影响,所以要放在同一个程序中。这样就要求当点击停止按钮时,它们必须同时停止而不是只有一个框架停止运行。为实现该功能,我隐藏了倒计时器的停止按钮,同时使用了一个触发源为秒表停止按钮的事件结构来代替它。这样,一个停止按钮就可以停止整个程序了。 指针倒计时的实现:

倒计时指针是一个显示剩余时间百分比的装置。所以只需要对剩余时间和设定时间的秒数进行相除即可。为实现平滑效果,将其接入-i的前面和后面,这样指针每10毫秒动一下,人的肉眼几乎无法察觉。

4.3节拍器

4.3.1流程图

节拍器的流程图如图4.22所示。

第 25 页

图4.22 节拍器流程图

4.3.2 程序设计 1.前面板设计

程序的前面板如图4.23所示。

图4.23 节拍器

第 26 页

2.程序框图

节拍器的程序框图如图4.24所示。

图4.24 节拍器程序框图

3.程序设计 节拍选择的实现:

在前面板使用转盘输入所需节拍,将其设置为输入差值20,最小值20,最大值240。设需要x拍/分钟,则每拍就是60/x秒,故用60除以所输入的数值即可。为了使得节拍器可以实时识别指令,将while循环的间隔设为50毫秒,同时对输出数值*20。 节拍的提示方式:

该节拍器通过判断循环次数i与所需节拍是否为整除关系来判断是否报警,通过条件结构实现。节拍提示采用系统自带的提示音,使用发声控件实现。

第 27 页

节拍的暂停/继续与停止:

此处的原理与倒计时器和秒表完全相同,故在此不再重复说明。

4.4时钟及闹钟

4.4.1流程图

时钟闹钟的流程图如图4.25所示。

图4.25 时钟闹钟的流程图

4.4.2 程序设计 1.前面板设计

程序的前面板如图4.26所示。

第 28 页

图4.26 时钟与闹钟

2.程序框图

时钟/闹钟的程序框图如图4.27所示。

图4.27 时钟的程序框图

第 29 页

3.程序设计

字符串显示时间日期的实现:

通过获取系统时间的控件可以获取系统的日期、时间、星期,将他们用字符串连接控件连接后再拿显示控件显示出来即可。 指针显示12进制时间的实现:

使用获取系统时间的控件获取的是字符串,将其前面连接不同的常量可以获取不同的时间量,如%S获取的就是秒。在获取时间字符串之后,将其转换为整形数字,连接至量表即可用指针显示时间。注意每个时间单独连接一个量表,这样可以将各个指针设置为不同的大小,最后将所有控件叠加即可。 24进制闹钟的实现:

与时钟不同,闹钟要求是24进制小时的,所以获取的也是24进制的时间。将获取的系统时间与输入的预设时间进行比较,将比较结果的TF值用与门进行连接,结果送到条件结构,具体报警方式和铃声切换与倒计时器相同,这里不再重复说明。

第 30 页

总 结

此次毕业设计到此告一段落,在此次毕业设计中,我有很多感触。毕业设计是我们专业课知识综合运用的实践训练,是对专业知识的总结与考察,是从事将来的工作前的一个不可或缺的过程。

毕业设计有实践性,综合性,探索性,应用性等特点,本次选题的目的是秒表设计。随着毕业设计做完,也将意味我的大学生活即将结束,但在这段时间里面我觉得自己是努力并快乐的。在繁忙的的日子里面,曾经为解决技术上的问题,而去翻我所学有关的书籍。

脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。

第 31 页

参考文献

[1]陈锡辉等主编,《LabVIEW8.20程序设计》,清华大学出版社,2007年 [2]吴俊清等主编,《基于虚拟仪器的相位差测量研究》,北京理工大学,2005年

[3]李国朝等主编,《基于虚拟仪器的相位差测量研究》,天中学刊,2004年 [4]杨乐平等主编,《虚拟仪器技术概论》,华南理工大学出版社,2003年 [5]刘君华等主编,《基于LabVIEW的虚拟仪器设计》,电子工业出版社,2003年

[6]杨文胜主编,《基于虚拟仪器的相位测量》,秦皇岛市技术监督局,2002年 [7]碗喜明主编,《虚拟仪器设计方法与信号参数测量原理》,湖南工程学院,2001年

[8]刘君华主编,《虚拟仪器图形化编程语言LabVIEW教程》,西安电子科技大学,2001年

第 32 页

致 谢

本次毕业设计在老师的指导下顺利完成。在设计秒表的整个过程中与我们小组成员相互协作,共同研讨,给予我很大的帮助,使我感受到了在任何工作环节中团队合作精神的重要性。

在此,特别要感谢的是王良甚老师的大力支持和精心指导,老师的指导使我受益匪浅,特别是老师的不厌其烦的教学态度让我感激不已,感谢这么一位好老师,为我答疑解惑并提供给我很多有益的意见,使我能顺利的完成毕业设计。

第 33 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top