admin 管理员组文章数量: 887021
2024年2月19日发(作者:bean是干什么的)
虚拟仪器实验--简易计算器设计
一、实验目的
1 .熟悉LabVIEW的编程环境,了解其特点。
2 .学会用LabVIEW实现简单的程序设计,了解图形化编程的方法和步骤。
3 .掌握数据对象类型、数组、簇的概念和其他基本函数,以及它们之间如何进行相互转化。
4 .掌握LabVIEW中一些函数和结构的用法。
二、实验要求
编写标准计算器,实现基本的加、减、乘、除等功能,能进行简单的计算,完成源程序的编写和功能测试。
三、实验设备
安装LabVIEW的计算机。
四、实验内容
4.1
计算器功能介绍
1.
可以实现加、减、乘、除、求倒、开根、正弦等运算。
2.
可以实现连续运算。
3.
对错误输入可以借助Backspace键进行删除;运算完成后可以借助C键释放内存。
4.
对误操作进行屏蔽,如在一个数中只可能输入一个小数点。
5.
运算结果可以精确到小数点后第6位。
4.2
程序变量设置及说明
进入主程序,首先判断输入是数字、运算符、等号还是撤销(或清除)。
1.
输入为数字。将输入数字转换为字符并连接到原数据后显示组合后的字符串,保存该字符串。
2.
输入为运算符。判断运算符的类型,当运算符为“+”、“-”、“*”、“/”时,调用上一运算符,并保存此次输入的运算符,同时显示运算结果并保存相应的结果数据;当运算符为“/x”、“sqrt”、“sin”时,直接对此时输入的数据进行相应的倒数、开方、正弦运算。
3.
输入为等号。执行之前保存的运算符,显示运算结果,同时结束该运算,返回初始状态。
4.
输入为Backspace或C键。Backspace键可以删除前一输入数据或运算符;C键可以清除数据并释放内存。
简易计算器程序设计框图见图1。
图1程序设计框图
4.2.1主要程序编写及说明:
1 .输入0处理显示程序模块
判断Display是否是0,如果是则显示“0”,如果不是则用连接字符串函数输出显示,并相应的赋给inputl或input2。
2 .小数点处理显示程序模块
1
利用全局变量(布尔型)zeroflag作为小数点指示标志,默认为F。当有小数点输入时,将zeroflag置为T,当再次有小数点键入时不执行操作,由此可以避免小数点的重复错误输入。
图2小数点处理显示程序
3 .四则运算程序模块
对于连续运算,当运算符按下时,先根据输入数来判断当前输入的是numl还是num2,当是numl时,表明现在只是输入了第一个被操作数,还没有输入任何运算符号,所以不作任何处理;当输入是num2时表明前面有运算符号输入此时进行相应的加减乘除等运算,每次运算结束将结果赋给numl。
7二吓V
re启fi的
图3四则运算程序
4 .等号运算程序模块
当有等号按下时利用一维数组搜索函数Search1DAarry返回索引值“18”,进行运算结果显示;当有加减乘除运算符号按下时,返回相应的索引值,判断input2是否为空,若为空的话则表明display中显示的数是运算结果或者是输入的1
被操作数,此时不作运算,将输入数置1,操作符号赋值;当num2不为空表示display中显示的是操作数,已有一个运算符号被按下,但没有按“=”号,所以不进行运算,此时先执行前一步运算,然后再给操作符号赋新值。
图4等号运算程序
5 .开方、倒数及三角函数运算程序模块
这两个程序模块都是对当前输入数进行的处理,直接对display中的数进行运算,然后通过判断input2是否为空,将结果赋给inputl或input2显示便可。
6 .Backspace键运算程序模块
利用字符串长度(stringlenghth)函数求出当前输入数的长度,然后减去一位,将得到的子字符串赋给inputl或input2显示。
1
display
display
numlflag
numl
图5Backspace运算程序
7.C运算程序模块
C键就是“Clear",程序初始化,把空字符串赋给numl和num2,各判断标
志置位。
zeiFQflag
numl
nunriiltflag
mLmri2
曲rtflzg
signflag
display
图6C运算程序
8.运算结果小数点后零的处理子模块
首先将显示的数字转换成F-格式字符串,将字符串取反,用SearchSplitstring取小数点前面的字符,然后通过While循环判断小数点后无效的0的个数,最后
通过stringsubset得到去零后的数。
五、功能测试
在LabVIEW上编写计算器程序,可以实现以下功能。
1.显示功能测试
能正确显示数字,如输入23.9,计算器显示正常。
1
Backspaceimm
图7显示数字
ace、C功能测试
测试Backspace.C键功能。Backspace键可实现撤销功能,C键可实现程序复位。
3 .基本功能测试
测试"+”、“一”、“X”、“/”等运算功能,能正确显示结果。
4 .小数点处理程序测试
测试按下多个小数点时只显示第一个小数点,其他小数点不会被显示。
5 .Sqrt、1/x与sin功能测试
测试“sqrt”、“1/x”、“sin”功能。当负数求sqrt时或0求1/x时,显示“输入错误”,其他值时能正确显示结果。测试sin函数功能时,输入弧度值,显示结果正确。
6 .连续运算测试
通过测试,计算器可以实现连续运算。如按下10+10+10时,可以正确显示结果30。
7 .去零程序测试
通过测试,功能正常,未显示整数和小数点后多余的零。
8 .其他功能测试
开方与求倒均是针对屏幕上的内容进行;对于反复按下运算符,计算器将对屏幕上的内容反复进行计算。
计算器前面板如下图所示:
1
[HSEOEIE±]
EZE)回口回
pziaaB
Bm.k与p一比||-匚_||-]
图8计算器前面板
六、总结
通过实验课的学习,熟悉了LabVIEW编程环境,掌握了数据对象的类型与操作、数组和簇的概念与使用,以及LabVIEW中一些数学函数及结构的用法,切实体会到基于LabVIEW平台编程方法的优点,图形化的编程方式更是简单易学,易于上手。
通过LabVIEW平台可以进行简单的程序设计,如跑马灯的实现。此次设计了简易计算器,由于时间紧迫,对LabVIEW模块功能的理解还不够深刻,掌握的还不够熟练,设计出的计算器功能还有很多不足。如:程序运行时只能对首次输入的数据进行运算,否则运算结果会不正确;进行混合运算时没有优先级;编写的程序有些繁琐等。
1
版权声明:本文标题:LabVIEW实验简易计算器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1708326890h519876.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论