第一范文网 - 专业文章范例文档资料分享平台

[毕业论文]基于LabVIEW的多功能秒表设计(计时器 倒计时 节拍器 日历 时钟) - 图文

来源:用户分享 时间:2025/5/29 10:48:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图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 页

[毕业论文]基于LabVIEW的多功能秒表设计(计时器 倒计时 节拍器 日历 时钟) - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c24nec7pmj54ncj33s2bw8iiwn4795r018af_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top