研究生实验报告模板

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

重庆大学研究生院制实验课程名称:虚拟仪器实验实验指导教师:文静学院:光电工程学院专业及类别:专业(学术、专业)学号:20140813076姓名:王大洋实验日期:2014年12月到2015年01月成绩:实验名称:计算器设计实验时间:2014年12月一、实验目的(1)掌握LabVIEW软件编程方法;(2)掌握虚器仪器实验室硬件的应用;(3)培养综合应用所学知识来指导实践的能力。二、实验仪器设备PC机一台三、实验原理该设计采用模块化编程思想,从而使整个项目更加的简洁明了,直观大方有利于阅读。总体上可分为以下几个模块:(1)数值输入模块:主要实现的功能就是数值的键入,主要是数字键以及表示进制转换时的进制数的键入。(2)按键模块:这个模块包括2个部分,输入数按键,运算符按键。(3)数值显示模块:该模块主要功能就是数值的键入显示以及数值的输出显示。(4)清除返回模块:该模块主要的功能就是当用户发现输入错误数据时,使用该功能就能改正错误,从而节约了时间,提高了计算效率。四、实验内容利用所学虚拟仪器知识,应用LabVIEW软件设计一个能实现加减乘除以及开方、取倒、取反功能的计算器。五、数据处理及结果分析5.1键入感应首先建立一个簇,然后在簇中建立23个布尔量,其中包括0--9十个数字键,1个小数点键,4个“+、-、*、/”运算键,1个等号键,1个开方键,1个符号转换键,1个倒数键,1个求百分数键,1个清零键,1个退格键,1个退出键。如下图所示:然后通过将簇中元素按产生的顺序组成一个一维数组,这样就实现了每个键与数字(1--23)之间的对应。每次按下一个键时,通过查找出对应的键并把其后对应的数字连接到一个case结构,然后执行对应case结构中的程序,至此就完成了对一个键的感应过程。如下图所示:5.2运算变量的初始化在运行程序之前,首先对需要用到的变量进行初始化,如图所示5.3无操作时的默认输出当键盘上的键没有任何一个按下时,系统默认输出,其中等待时间为250ms。5.4数字1--9的输入以数字“1”为例,当第一次输入数字“1”后,波尔量为真,进入case结构,将1输出到display中,波尔量变为假。(图1.4.1)若再次输入1,为避免出现01这样的字符串,先判断之前显示的数据是否为0,若为0,则直接输出1,(图1.4.2)若不为0,则将这两次输入的数据通过连接字符串连接到一起,在display中输出。数字2到9也是同样的道理。(图1.4.3)(图1.4.1)(图1.4.2)(图1.4.3)5.5数字0的输入当第一次输入0时,与上述真的情况相同,现在就零输入时的多零问题进行设计。虽然以多个零开头不影响输出的结果,但考虑到显示形式的正确性,只在小数点前显示一个零。当数据输入后,通过连接字符与00比较,若不等,则将数据直接输出(图1.5.1)。若相等,则直接输出0(图1.5.2)。(图1.5.1)(图1.5.2)5.6小数点的输入在小数点的输入时,最多只能显示出一个。若直接点击小数点,则以“0.”输出(图1.6.1)。若之前已输入数据,此时再输入小数点首先利用判断已输入的数据中是否含有小数点,若不含有,则后输出T,执行程序“真”(图1.6.2);若含有小数点,则输出F,执行程序“假”(图1.6.3)(图1.6.1)(图1.6.2)(图1.6.3)5.7结果去零操作在进行“+、-、*、/”运算及取负,取百分数,去倒数,开放运算之后程序默认为以保留6位小数的形式输出。而为了显示结果的简便,将末位不影响结果的零及小数点进行省略。利用层叠式顺序结构,首先将得出的结果经过N-1位的偏移后与零进行比较,若相等,则进行去零操作,运用while循环结构,直至末位数字不为零,循环结束(图1.7.1------上图表示末位为零,下图表示末位不为零)(图1.7.1)在进行去零操作之后,进行层叠式顺序结构的第二层,对无关的小数点进行清除。(图1.7.2------上图表示末位为小数点,下图表示末位不是小数点)(图1.7.2)5.8“+/-”键的设计首先进行扫描字符串,将字符串数据转换为数值数据,经过取负数后再转换为字符串形式输出。如下图所示其中的顺序结构为去末尾零和去无关小数点的操作。5.9“+、-、*、/”四则运算以加法为例,当簇中输出的数据表示进行加法运算时,程序进入五层的层叠式顺序结构,首先将字符串进行扫描,转换为数值变量(图1.9.1),之后,对之前的数据进行运算,以保证连续运算时得到正确的结果:当第一次输入时,默认进行firstrun条件下的程序(图1.9.2),若以前已有运算,以减法为例,先将之前的两个数进行相减运算,并进行去零操作,之后再将本次的运算符号送入“运算符号”的局部变量,以便于进行下次运算(图1.9.3)。(图1.9.1)(图1.9.2)(图1.9.3)5.10等号键实现最终的运算结果,将结果进行去零操作后输出到display中,同时将代表运算符号的移位寄存器置为空字符串。以加法为例。5.11百分数运算将字符串转换为数值输出后除以100即可得到百分数输出,并对其进行去零。(顺序结构的后两层为去零操作)5.12开方运算将字符串转换为数值后进行开放运算,再转换为字符串输出,并进行去零操作。(顺序结构的后两层为去零操作)5.13取倒数运算原理与上述开方运算相同。(顺序结构的后两层为去零操作)5.14退格键的设计在点击退格键时,要实现从末位开始的依次退格,直至输出为0。首先,将整数部分与小数部分进行分离,运用实现此功能。连接方式如图1.14.1(图1.14.1)分离后,将小数部分的字符串长度与0进行比较,若大于0,则进入到条件结构的“真”,将字符串长度减1后与整数部分连接,得到新的display输出。(图1.14.2)(图1.14.2)若原字符串只有整数部分或者小数部分已经过退格键清除,则进入到条件结构的“假”。、若整数部分的字符串长度大于1,则进入到子条件结构的“假”,将整数的字符串长度减一后输出(图1.14.3)(图1.14.3)若整数部分的长度不大于1,即小于等于1时,则进入到子条件结构的“真”,直接输出0.(图1.14.4)(图1.14.4)5.15清零键将程序中所有用到的变量均进行复位,达到清零复位的目的。5.16停止键程序结束,将T输入到while循环的停止键上。整体程序框图如下所示前面板的设计排版六、实验小结经过调试,此计算器可以实现基本的四则运算,开放,取负数,取百分数,取倒数的运算。同时,它还可以实现四则运算的连续运算,并输出正确结果;对结果进行报错(对0取倒数,报错Inf;对负数开放,报错NaN);对结果进行修正(第一位为零或多零,多小数点,结果末位不影响结论的零)。具体操作与功能与WINDOWS自带的计算器类似。

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功