基于LabVIEW的数字电子实验平台的设计.docx
《基于LabVIEW的数字电子实验平台的设计.docx》由会员分享,可在线阅读,更多相关《基于LabVIEW的数字电子实验平台的设计.docx(22页珍藏版)》请在冰点文库上搜索。
基于LabVIEW的数字电子实验平台的设计
唐山学院
毕业设计
设计题目:
基于LabVIEW的数字电子实验平台的设计
系别:
信息工程系
班级:
09电气自动化技术
(1)班
姓 名:
韩然
指导教师:
曹秀爽
2012年5月25日
基于LabVIEW的数字电子实验平台的设计
摘要
数字电路作为电子类专业的重要专业基础课程之一,需要每个学生在实验室自己动手操作,但由于硬件条件的约束,不能完全满足要求。
为更好的实验教学,设计了一个基于LabVIEW的数字电子实验平台。
该平台利用虚拟仪器软件开发平台,在计算机上通过对前面板和后面板的编写来完成实验室及电子课程实验教学中所涉及的数字电路的制作,实现数字电路的模拟仿真,在实验教学中有重要意义。
且该教学平台能与配套实验课程对应,为实验教学提供一种现代化的教学手段,进一步促进高校开放性实验室的建立。
关键词:
数字电路LabVIEW虚拟仪器实验平台
DesignofplatformbasedonLabVIEWdigitalcircuitexperiment
Abstract
Digitalcircuitisanimportantcourseinelectronics.Inthiscourse,thethestudentsplayaveryimportantrole,theyshouldplaybythemselfintheexperimentalteaching.Becauseofthede-viceproblems,traditionalexperimentalteachingcannotdemonstratethecourselivelytothestudent.Inthispaper,wedesignanexperimentalteachingplantformusingLabVIEW.throughcompletesthelaboratoryandtheelectroniccurriculumonthecomputertothefrontpanelandrearpanel'scompilationtestsdigitalcircuit'smanufacturewhichintheteachinginvolves,realizesdigitalcircuit'slogicalfunctionanalogsimulation,intestsintheteachingprocesstohavethepracticalsignificance.Thisplantformcanalsoprovideanewteachingmethodforexperimentteachingandanewmethodtobuildanopenlaboratoryinuniversity.
Keywords:
digitalcircuit;LabVIEW;virtualinstruments;platform
目录
1引言1
2工具LabVIEW2
2.1LabVIEW的简介2
2.2LabVlEW程序设计的一般过程2
3总体设计4
3.1组合逻辑电路实验的设计4
3.1.1编码器实验的设计4
3.1.2门电路实验的设计5
3.1.3译码器实验的设计6
3.2时序逻辑电路实验的设计7
3.2.1D触发器实验的设计8
3.2.2J-K触发器实验的设计10
3.2.3计数器实验的设计11
3.3综合实验(病房呼叫器实验)的设计12
3.3.1优先编码器子VI的设计12
3.3.2译码器子VI的设计12
3.3.3病房呼叫器实验的设计13
3.4数字电子实验平台的构建14
4总结16
谢辞17
参考文献18
1引言
随着低成本高性能的计算机资源的普及运用,数字化仪器平台逐渐取代传统仪器已成为一种趋势。
在理工科院校中,实验是一种重要的教学手段。
学生通过做实验,可以加深对所学知识的理解,增强学习的兴趣,提高动手能力,锻炼在实践中发现问题、分析问题和解决问题的能力。
数字电路作为电子类专业的专业基础课程,实验教学尤为重要。
数字电子作为电子类专业基础课程,实验教学尤为重要。
但随着高校招生规模的扩大,实验仪器﹑设备的紧缺问题越来越严重,购置新的仪器设备的巨大投入经费,一般学校难以承受,从而造成实验室设备过时陈旧,严重影响实验教学。
因此在实验室引入虚拟仪器,不仅可以解决仪器紧缺问题,而且还能节约大笔资金。
本文利用LabVIEW技术开发数字电子实验平台。
该平台能够充分利用现有资源,使学生摆脱功能相对单一且固定的现成仪器束缚,提高学生的积极性和创造性[1]。
传统数字电路实验课程,主要由组合逻辑电路和时序逻辑电路两部分构成。
本实验平台中除了包含这两部分的实验,还有综合实验“病房呼叫器”。
本文就从组合逻辑电路﹑时序逻辑电路和综合实验三部分的实验对数字电路实验教学平台的设计进行阐述。
2工具LabVIEW
2.1LabVIEW的简介
虚拟仪器是基于计算机的软件仪器,是仪器系统与计算机技术相结合的结果,通过运行一些程序可以实现某些硬件的物理功能。
从仪器角度来看,这些程序被称为虚拟仪器。
在虚拟仪器使用过程中,可以通过修改仪器的属性提高虚拟仪器的性能,不断扩展仪器的功能。
目前,用来开发虚拟仪器最流行的软件是LABVIEW。
LABVIEW是实验室虚拟仪器集成环境(laboratoryvirtualinstru-mentengineeringworkbench)的简称,是美国国家仪器公司(NationalInstruments)的创新产品[2]。
是目前应用最广、发展最快、功能最强大的图形化软件开发集成环境。
LabVIEW本身是功能较完整的软件开发环境,它是作为替代常规的Basic或C语言而设计的。
LABVIEW开发软件是一个图形化编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。
图形化编程开发平台的特点是基于通用计算机等标准软硬件资源平台,实现构建灵活、层次体系明晰、功能强大且人机界面友好的测控系统,因此在国内外许多测控应用中被广泛采用[7]。
利用它可以创建不同的虚拟仪器(又称VI控件)。
每个虚拟仪器包括两个界面,即前面板和程序框图。
前者为用户提供各种输入控件和显示控件;后者为开发者提供各种程序控件。
当运行创建的虚拟仪器时,该仪器程序框图控制它的前面板的相应控件进行工作。
当操作者在前面板上点击输入控件,显示控件会产生相应的状态。
用LabVIEW设计的虚拟仪器可以脱离LabVIEW开发环境,最终呈现在用户面前的是和实际的硬件仪器相似的操作面板[3]。
虚拟仪器LabVIEW具有典型的图形化语言风格,其程序的编制过程就是将不同的图标(VI)进行选择、组合并连线的过程。
其不同图标(VI)相当于具有不同功能的“子程序”,图标间的连线指定了数据的流向,相当于代码语言的“赋值”语句。
在LabVIEW的函数选板中,既包含了大量专用的信号处理、信号运算等VI图标,也包含了各种数值运算、逻辑运算的基本VI图标。
其中的逻辑运算VI,其图标就是标准的逻辑运算符号。
LabVIEW的控件模板中不仅提供了仿真度较高的各种仪器面板、按钮、开关、指示灯、波形显示器等电路器件,还提供了易使用的绘图工具,教学辅助模板中又提供了各种波形信号发生器的仿真程序,在LabVIEW功能模板的布尔运算子模板中,包含着功能齐全的逻辑运算功能,因此可很容易地利用其制作数字电路仿真演示实验。
2.2LabVlEW程序设计的一般过程
LabVIEW程序设计主要包括前面板的设计、后面板的设计和程序的调试。
(1)首先创建前面板。
前面板中主要由输入控制器和输出显示器组成。
利用工具模板来添加输入控制器和输出显示器(添加后会在框图程序中出现对应的指示器和控制器框图)。
控制器允许用户输入数据到程序,指示器用来显示程序运行的结果。
(2)后面板的设计即程序框图的设计,相当于源代码的设计。
对框图程序设计主要是对节点、数据端口和连线的设计。
节点是LabVIEW程序运行的要素,包括4种类型:
函数、LabVIEW子程序、结构和代码。
(3)程序的调试。
当前面板和框图程序设计好以后,程序的执行过程中可能会遇到很多的错误。
如果程序不能执行,运行按钮会出现一个折断的箭头。
点击断箭的运行按钮会出现错误清单。
调试的主要方法有:
设置执行程序为高亮方式、单步执行和探针。
3总体设计
3.1组合逻辑电路实验的设计
在数字电子技术中的组合逻辑电路是由门电路构成,不含记忆单元,只存在从输入到输出的通路,没有反馈回路。
在数字逻辑电路中,高电平和低电平(1和0,或+5v和GND))用来分别代表布尔量的两种逻辑状态,也可以用LabVIEW提供的逻辑量真值(Ture)和假值(False)来表示这两种逻辑状态[4]组合逻辑电路实验可分为加法器、编码器、译码器和数据选择器四部分[5]。
本次设计的试验平台中包括门电路实验、编码器实验、译码器实验等组合逻辑电路。
此次只详细介绍编码器实验的具体设计,其它实验简略介绍。
3.1.1编码器实验的设计
为了区分一系列不同的事物,将其中的每个事物用一个二值代码表示,这就是编码的含意。
在二值逻辑电路中,信号都是以高﹑低电平给出的。
因此,编码器(Encoder)的逻辑功能就是将输入的每一个高﹑低电平信号编成一个对应的二进制代码。
目前常用的编码器有普通编码器和优先编码器两类。
在普通编码器中,任何时刻只允许输入一个编码信号,否则输出将发生混乱。
在优先编码器(priorityencoder)电路中,允许同时输入两个以上的编码信号。
不过在设计优先编码器时已经将所有的输入信号按优先顺序排了队,当几个输入信号同时出现时,只对其中优先权最高的一个进行编码。
本文介绍的是优先编码器,设计此实验主要分三步,首先设计前面板即用户界面,再设计后面板即编写程序框图,最后调试。
前面板的设计要美观且要与实际的试验台上的芯片及实验连接相似,其主要实现控件及实验结果的显示,下图为编码器实验的前面板。
图3-1编码器试验前面板
为了扩展电路的功能和增加使用的灵活性,在逻辑电路中附加了由门电路组成的控制电路。
其中
为选通端,只有在
=0的条件下,编码器才能正常工作。
而在
=1时,所有的输出端都被封锁在高电平。
选通输出端
和扩展端
用于扩展编码功能。
的低电平输出信号表示“电路工作,但无编码输入”,
的低电平输出信号表示“电路工作,而且有编码输入”。
它的输入与输出均以低电平作为有效信号。
后面板的设计要尽量简洁清晰,编写的程序框图实际为编码器的逻辑图,其主要是使设计的编码器能实现其功能,下图为编码器实验的后面板。
图3-2编码器实验后面板
程序框图中用到了门电路中的与门﹑非门﹑与非门﹑或门﹑复合运算等。
由这些门电路搭建出编码器的工作原理图。
这里要注意复合运算的使用,插入复合运算时要根据需要改变其模式﹑逆操作及输入端的个数。
当前面板和框图程序设计好以后,程序的执行过程中可能会遇到很多的错误。
如果程序不能执行,运行按钮会出现一个折断的箭头。
点击断箭的运行按钮会出现错误清单。
通过设置执行程序为高亮方式查出错误并改正。
在前面板操作时,首先点“连续运行”再根据实验要求相应的拨动布尔开关,实验结果就会在布尔指示灯上显示出来。
3.1.2门电路实验的设计
门电路实验包括与门实验、或门实验、与非门实验、四输入与非门实验,所需芯片分别为74LS08(功能:
Q=A·B)、74LS32(功能:
Q=A+B)、74LS00(功能:
)、74LS20(功能:
)。
此实验主要目的是验证常用TTL集成门电路功能,掌握各种门电路的逻辑符号及了解集成电路的外引线排列极其使用方法。
其前面板和程序框图如下图所示。
其中程序框图中的与、或、非等布尔数值在每个实验程序框图的搭建连接中均有使用。
图3-3门电路实验前面板
图3-4门电路实验程序框图
3.1.3译码器实验的设计
本实验平台中的译码器实验有3-8线译码器实验和BCD七段显示译码器实验,因在病床呼叫器实验中介绍BCD七段显示译码器实验,在此将不做介绍,只介绍3-8线译码器实验的设计。
此设计的是3线-8线译码器74LS138,其中A2、A1、A0为地址输入端,
~
为译码输出端,S1、
、
为使能端。
其功能为:
当S1=1,
+
=0时,器件使能,地址码所指定的输出端有信号(为0)输出,其它所有输出端均无信号(全为1)输出。
当S1=0,
+
=X时,或S1=X,
+
=1时,译码器被禁止,所有输出同时为1。
其前面板和程序框图如下图所示。
图3-53-8线译码器实验前面板
图3-63-8线译码器实验程序框图
3.2时序逻辑电路实验的设计
在各种复杂的数字电路中,不但需要对二值信号进行算术运算和逻辑运算,还经常需要将这些信号和运算结果保存起来。
为此,需要使用具有记忆功能的基本逻辑单元。
能够存储1位二值信号的基本单元电路统称为触发器(Flip-Flip)。
时序电路是由组合逻辑电路部分和存储电路(触发器)部分组成,通常存储电路在时钟CP的有效边沿动作。
任何一个时序逻辑电路都可以看做一个处理时序问题的机器,通常称为时序机,时序机用驱动方程、状态方程和输出方程描述实际问题。
组成存储电路(触发器)的关键是有一个时钟脉冲,在时钟脉冲信号的作用下,输出相应的信号。
在基本触发器中CP是直接加到输入端的,基本触发器是组成其他类触发器的基础。
同步触发器中,输入信号是经过控制门输入的,而管理控制门的则是叫做时钟脉冲的CP信号,只有在CP信号到来时,输入信号才能进入触发器,否则就会被拒之门外,对电路不起作用。
边沿触发器是只有在时钟脉冲的上升或下降沿时刻,输入信号才能被接受,虽然边沿触发器有好几种不同的电路结构,但边沿控制却是它们的共同特点。
由于采用的电路结构形式不同,触发信号的触发方式也不一样。
触发方式分为电平触发﹑脉冲触发和边沿触发三种。
本实验平台中设计的D触发器和J-K触发器的触发方式就是边沿触发。
本实验平台的时序逻辑电路实验中有J-K触发器实验﹑D触发器实验和计数器实验,下面以D触发器实验为例详细介绍其设计过程,其它实验简略介绍。
3.2.1D触发器实验的设计
(1)时钟脉冲子VI的设计。
由于是用边沿触发方式的D触发器,所以先要设计一个触发时钟脉冲,并且按照要求时钟频率和占空比都是可调的,因此时钟脉冲子VI的前面板和程序框图的设计如下图所示。
图3-7时钟脉冲子VI的前面板
图3-8时钟脉冲子VI的程序框图
时间脉冲是高低电平,所以用LABVIEW中的布尔量定时循环取反可以得到一系列的时钟触发脉冲。
这里关键是要会用等待函数和条件结构来实现频率和占空比的可调。
(2)D触发器VI的设计。
调用时钟脉冲子VI,在调用时一定要确认时钟脉冲子VI能正确运行。
D触发器实验的前面板和后面板如下图所示。
图3-9D触发器实验的前面板
图3-10D触发器实验的后面板
在程序框图中要注意局部变量的使用,写入局部变量相当于传递数据至其它接线端。
但是,局部变量还可向输入控件写入数据和从显示控件读取数据。
通过局部变量,前面板对象既可作为输入访问也可作为输出访问。
D触发器VI采用数字波形图和2个布尔圆形指示灯来显示跟随的结果。
在程序框图中使用了While循环结构和条件结构。
注意创建数组、数组转换和框架通道的索引属性的设置。
D触发器的功能是跟随,其逻辑功能用
n+1=Dn表示,即每来一个CP脉冲,触发器的状态
等于CP脉冲来以前输入D的状态。
其状态表如下表所示。
表3-1D触发器状态表
Dn
n+1
0
0
1
1
在前面板和后面板都设计好后,程序的执行过程中可能会遇到很多的错误。
如果程序不能执行,运行按钮会出现一个折断的箭头。
点击断箭的运行按钮会出现错误清单。
设置执行程序为高亮方式或者单步执行来查出错误,再改正。
如此反复操作直到运行正确。
在前面板操作时,首先要设置好时钟脉冲的时钟频率计占空比,再点“连续运行”,拨动输入端的D布尔开关,Q输出端的结果就会在布尔指示灯上显示出来,然后按两次停止按钮,采集两次停止按钮的间隔时间内波形的变化,观察其输出波形。
如果采集的波形不满意,可以重新拨动D布尔开关,按两次停止按钮,再次观察输出波形,如此反复操作直到采集到令你满意的波形。
3.2.2J-K触发器实验的设计
J-K触发器的设计同D触发器的设计过程相似,同样调用了时钟脉冲子VI,其实现了数字电路J-K触发器的功能,可完成相应保持、置位、复位、计数的功能的验证。
其前面板和程序框图的设计如下图所示。
图3-11J-K触发器的前面板
图3-12J-K触发器的程序框图
编写J-K触发器虚拟仿真过程的程序时调用了上面的时钟程序和触发器的仿真程序,在上图中显示为下标有数字的图形而且运用了LabVIEW中的While循环,添加While循环可重复执行内部的子程序框图,直到条件接线端接收到特定的布尔值。
将布尔值连接至While循环的条件接线端,右键单击条件接线端,从快捷菜单中选择真(T)时停止或真(T)时继续。
上图中条件接线端连接了一输入控件,选择真(T)时停止,但是此输入控件作为局部变量写入一假常量中,所以此循环可以连续执行。
程序框图中上面的两个箭头为While循环中的移位寄存器,移位寄存器可用于将上一次循环的值传递至下一次循环,右侧接线端含有一个向上的箭头,用于存储每次循环结束时的数据。
LabVIEW将数据从移位寄存器右侧接线端传递到左侧接线端。
循环将使用左侧接线端的数据作为下一次循环的初始值。
右键单击循环的左侧或右侧边框,并从快捷菜单中选择添加移位寄存器可以创建一个移位寄存器。
上图中使用移位寄存器创建了连续的时钟脉冲。
运行时连续点击两次停止,系统采集相应一段时间相应的脉冲数。
3.2.2计数器实验的设计
此实验所设计的是中规模集成的4位同步二进制计数器74LS161,其除了具有二进制加法计数功能外,还有预置数、保持和异步置零等功能。
表3-2是74LS161的功能表。
它给出了EP和ET为不同取值时电路的工作状态。
为预置数控制端,D0-D3为数据输入端,C为进位输出端,
为异步置零端,EP和ET为工作状态控制端。
表3-274LS161的功能表
CLK
RD
LD
EPET
工作状态
×
0
×
××
置零
↑
1
0
××
预置数
×
1
1
01
保持
×
1
1
×0
保持(但C=0)
↑
1
1
11
计数
其前面板和程序框图如图3-13、图3-14所示。
图3-13计数器前面板
图3-14计数器程序框图
3.3综合实验(病床呼叫器实验)的设计
本设计中包括一个综合实验即“病房呼叫器实验”,它是优先编码器与译码器的综合,下面做详细介绍。
用组合逻辑电路实现病床呼叫器的功能,用两片优先编码器(74LS148)实现10个病床的优先呼叫,并且用七段显示译码器显示正在呼叫的床位,以便医护人员及时诊治。
具体实现的功能是当一号病床的按钮按下时,无论其他病床的按钮是否按下,只有一号灯亮;当一号的病床按钮没有按下而二号的病床的按钮按下时,无论三四病床的按钮是否按下,则只有二号灯亮;以此类推。
此实验需要子VI的调用,先创建优先编码器子VI和显示译码器子VI再根据需要调用,下面介绍其设计过程。
3.3.1优先编码器子VI的设计
在本文的3.1节中已经介绍了编码器的设计,在此只介绍生成子VI的调用。
在完成的“编码器实验”的后面板,工具栏中点“编辑”,再点“创建子VI”,就生成了一个子VI,在设计病房呼叫器实验的后面板时,可以直接调用“编码器子VI”,使后面板看起来简洁明了。
3.3.2译码器子VI的设计
译码器(Decoder)的逻辑功能是将每个输入的二进制代码译成对应的输出高低电平信号或另外一个代码。
因此译码是编码的反操作。
常用的译码器电路有二进制译码器﹑二-十进制译码器和显示译码器三类。
本次设计的译码器是显示译码器中的BCD-七段显示译码器。
译码器的设计思路与编码器大致相同,即分三步,首先设计前面板即用户界面,再设计后面板即编写程序框图,最后调试。
在病房呼叫器实验中,它只是作为一个子VI来调用。
所以在设计好译码器时,要同编码器一样生成子VI,以便调用。
译码器子VI的前面板与后面板的设计如下图所示。
图3-7译码器子VI的前面板
图3-8译码器子VI的后面板
3.3.3病房呼叫器实验的设计
设计前面板,再根据原理图编写程序框图,调用编码器子VI和译码器子VI,最后调试。
前面板与程序框图的设计如下图所示。
图3-9病房呼叫器的前面板
图3-10病房呼叫器的程序框图
其程序框图的设计主要是编码器子VI和译码器子VI的调用,再通过门电路中的与门﹑非门等电路将其联系起来。
病房呼叫器的原理就是用两片优先编码器实现10个病床的优先呼叫,再用显示译码器译码并且显示正在呼叫的床位。
3.4数字电子实验平台的构建
各个基础实验的设计思路及过程大致相同,以相同的步骤完成其他实验(在此就不再多做介绍),再将各个实验模块整合到一个平台中,使用时只需点击选择实验按钮,就能调用其实验模块。
就可以非常方便地使用和查看各个实验模块的功能。
这样在实验教学中这就构成一个数字电路仿真实验平台,其前面板和后面板如下图所示。
图3-11实验平台的前面板
图3-12实验平台的后面板
后面板的设计主要是各个实验的链接即VI引用,其程序框图中涉及到了While循环结构,条件结构,打开VI引用,创建VI引用的方法,产生前面板,创建常量,浏览路径等。
要注意浏览路径在创建后就不要再将保存的VI换存储位置,否则不能在实验平台的前面板调用。
4总结
本文简要介绍了用LabVIEW软件来实现数字电子实验平台,并给出了部分实验的具体设计实例。
通过做基于labview的数字电子实验平台,对于虚拟仪器和LABVIEW这款软件有了更加深刻认识。
复习了学习期间所学的数字电子技术知识,学会运用LABVIEW这款软件来做一些小项目。
由于LABVIEW使用图形化编程语言,用起来比较容易上手,如果要做深入了解,需要通过以后的学习和科研项目来巩固。
在做这次的数字电子实验平台的设计时,通过在网上查找资料和查阅相关资料书初步学会了如何使用LABVIEW编程,参考已经编写好的例子边看边学。
通过本次设计,学会了怎样做子VI和调用子VI,如何使用循环结构、全局变量、数字波形图、创建数组、数组转换和框架通道的索引属性的设置。
所用到的这些知识点都只是很小的一部分。
LABVIEW功能强大,要学好这款软件还需花时间。
用虚拟仪器开发平台开发各种不带相关功能硬件的“虚拟实验平台”,不但简单易行,且交互性、可操作性和真实感与实际的实验仪器基本相同.由他们组成一个虚拟试验平台,可以让学生在虚拟实验平台对实验进行模拟操作,并为实际使用仪器设备和后续的课程设计打下较好的基础,还可降低教师的劳动强度,减少仪器设备的损耗,又可以提高实验教学质量与效果.现有技术资源,降低实验成本,有利于实