版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设基于单片机的LABVIEW信号发生器摘要虚拟仪器是将仪器技术、计算机技术、总线技术和软件技术紧密的融合在一起,利用计算机强大的数字处理能力实现仪器的大部分功能,打破了传统仪器的框架,形成的一种新的仪器模式。本课设利用串行通信将单片机和Labview用于信号发生器的设计,该信号发生器具有产生多种基本波形的功能。本文介绍了设计背景及意义、Labview的概念及简介和发展现状、总体方案的分析、单片机的程序以及Labview中小模块的用法和整体框图、Labview的编程模式等设计中所涉及到的硬件和技术。本设计是虚拟仪器模拟真实仪器的尝试。实践证明虚拟仪器是一种优秀的解决方案,能够实现各种硬件可以完成的任务.一.设计背景及意义测量要求。在我国,传统仪器技术还比较落后,目前有大批陈旧的测试仪器等待更新。靠国外进口,每年都消耗国家大量外汇。然而,花大量资金购买的仪器,可能我们只需要其中的一部分功能,同时有些其他应用的功能要求,该仪器却满足不了。这些情况无疑是大大浪费了投资。设想要是能将仪器稍微改动以实现更大的使用范围该多好。但是这对于传统仪器来说是非常困难的。虚拟仪器的出现,将彻底改变这种局面。应用的一种通用仪器。目前高精度、具有数据存储能力的信号发生器,生产工艺复杂,价格昂贵。所以虚拟数字存储信号发生器的设计有一定的经济价值;虚拟信号发生器能充分发挥虚拟仪器结构简单、功能丰富、价格低廉、能重复开发、可用户自定义的优势。设计的虚拟数字存储信号发生器,可同时显示、记录和存储多通道输入的波形,并且可以对波形进行数据分析和处理,具有一定的研究意义二.Labview的发展与现状Labview是美国国家仪器公司(NationalInstru-ment)开发的一种虚拟仪器平台,他是一种用图标代码来代替文本式编程语言创建应用程序的开发工具。Labview功能强大,提供了丰富的数据采集、分析和存储库函数以及包括DAQ,GPIB,PXI,VXI,RS232/485在内的各种仪器通信总线标准的所有功能函数。利用Labview设计的数据采集系统,可模拟采集各种信号,但是配备NI公司的数据采集板卡比较贵,在实际开发中可选用单片机小系统对数据进行采集。虚拟仪器(virtualinstrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。LabVIEW(LaboratoryVirtualinstrumentEngineeringWorkbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的),不断完善中。三.中央处理单元——STC89C52本设计选用的中央处理单元是STC89C52单片机,STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandEras-ableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容[2]。其优点有三:(1)低功耗、低价;(2)高速、高可靠;(3)抗静电、干扰能力强;STC89C52标识分别解释如下:STC—表示芯片为STC公司生产的的产品。8—表示该芯片为8051内核芯片。9—标示内部含FalshE2PROM存储器。C—标示该器件为COMS产品。5—固定不变。2—表示该芯片内部程序存储空间大小,1为4KB。2为8KB,3为12KB。四.设计目的基于本学期的两门课程单片机和Labview设计信号发生器,单片机用于产生信号并通过串口发送给上位机,Labview用于上位机中信号的显示,以此方式实现了Labview和单片机的连接,达到了信号发送和接收的,达到学以致用理论联系实际的目的。五.总体方案分析与设计本系统由Labview和STC89C52单片机以及MAX232组成。由单片机组成的小系统实现波形的产生然后通过RS232串口通讯将数据送给计算机,在Labview开发平台下,由PC机显示单片器所产生的信号波形。六.具体模块的分析与设计(1)单片机程序设计模块:#include<reg52.h> #defineucharunsignedchar#defineuintunsignedintsbitS0=P3^4;//波形选择,每次按下将产生不同的波形unsignedcharflag,m=0,i;ucharcodeSinTab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80};voiddelayms(uintxms) { uinti,j; for(i=xms;i>0;i--) //i=xms即延时约xms毫秒 for(j=110;j>0;j--);}voidfangbo()//方波{for(i=0xff;i>0;i--){SBUF=0xff;while(!TI);delayms(10);TI=0;} for(i=0xff;i>0;i--) {SBUF=0x00;delayms(10);while(!TI);TI=0; } ES=1; flag=0;}voidjuchi()//锯齿波{for(i=0xff;i>0;i--){SBUF=i;while(!TI);TI=0;}ES=1; flag=0;}voidsin()//正弦波{for(i=0;i<255;i++){SBUF=SinTab[i];while(!TI);TI=0;ES=1; flag=0;}}voidinit(){ TMOD=0x20;//设置定时器工作方式 TH1=0xfd; TL1=0xfd;//启动定时器 TR1=1; REN=1;//允许串行接入 SM0=0; SM1=1; EA=1;//开全局中断允许位 ES=1; //开串口中断允许位}voidmain(){ init(); while(1) { if(flag==1) //说明已收到数据 { ES=0; //关串口中断允许位 if(S0==0){delayms(10);//按键消抖if(S0==0) m++; if(m>2) m=0;while(!S0);//松手检测}switch(m) //选择波形{case0:fangbo();//方波break;case1:juchi();//锯齿波break;case2:sin();//正弦波break;default:sin();}}}}voidser()interrupt4{ RI=0; flag=1;}(2)硬件模块设计一.电路连接详解图1串行通信实验电路图下面就对图1所示电路进行详细说明:可以看到,在电路图中,有TXD和RXD两个接收和发送指示状态灯,此外用了一个叫MAX3232的芯片,那它是用来实现什么的呢?首先我们要知道计算机上的串口是具RS-232标准的串行接口,而RS-232的标准中定义了其电气特性:高电平“1”信号电压的范围为-15V~-3V,低电平“0”信号电压的范围为+3V~+15V。可能有些读者会问,它为什么要以这样的电气特性呢?这是因为高低电平用相反的电压表示,至少有6V的压差,非常好的提高了数据传输的可靠性。由于单片机的管脚电平为TTL,单片机与RS-232标准的串行口进行通信时,首先要解决的便是电平转换的问题。一般来说,可以选择一些专业的集成电路芯片,如图中的MAX3232。MAX3232芯片内部集成了电压倍增电路,单电源供电即可完成电平转换,而且工作电压宽,3V~5.5V间均能正常工作。其典型应用如图中所示,其外围所接的电容对传输速率有影响,在试验套件中采用的是0.1μF。值得一提的是MAX3232芯片拥有两对电平转换线路,图中只用了一路,因此浪费了另一路,在一些场合可以将两路并联以获得较强的驱动抗干扰能力。此外,我们有必要了解图中与计算机相连的DB-9型RS-232的引脚结构(见图2)。图2DB-9连接器接口图其各管脚定义如下(见表4)。表4DB-9型接口管脚定义1、与单片机串口相关的寄存器SBUF寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。串行口控制寄存器SCON(见表1)。表1SCON寄存器表中各位(从左至右为从高位到低位)含义如下。SM0和SM1:串行口工作方式控制位,其定义如表2所示。表2串行口工作方式控制位其中,fOSC为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。SM2:多机通信控制位。该仅用于方式2和方式3的多机通信。其中发送机SM2=1(需要程序控制设置)。接收机的串行口工作于方式2或3,SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都将数据送入SBUF,并置位RI发出中断申请。工作于方式0时,SM2必须为0。REN:串行接收允许位:REN=0时,禁止接收;REN=1时,允许接收。TB8:在方式2、3中,TB8是发送机要发送的第9位数据。在多机通信中它代表传输的地址或数据,TB8=0为数据,TB8=1时为地址。RB8:在方式2、3中,RB8是接收机接收到的第9位数据,该数据正好来自发送机的TB8,从而识别接收到的数据特征。TI:串行口发送中断请求标志。当CPU发送完一串行数据后,此时SBUF寄存器为空,硬件使TI置1,请求中断。CPU响应中断后,由软件对TI清零。RI:串行口接收中断请求标志。当串行口接收完一帧串行数据时,此时SBUF寄存器为满,硬件使RI置1,请求中断。CPU响应中断后,用软件对RI清零。电源控制寄存器PCON(见表3)。表3PCON寄存器表中各位(从左至右为从高位到低位)含义如下。SMOD:波特率加倍位。SMOD=1,当串行口工作于方式1、2、3时,波特率加倍。SMOD=0,波特率不变。GF1、GF0:通用标志位。PD(PCON.1):掉电方式位。当PD=1时,进入掉电方式。IDL(PCON.0):待机方式位。当IDL=1时,进入待机方式。另外与串行口相关的寄存器有前面文章叙述的定时器相关寄存器和中断寄存器。定时器寄存器用来设定波特率。中断允许寄存器IE中的ES位也用来作为串行I/O中断允许位。当ES=1,允许串行I/O中断;当ES=0,禁止串行I/O中断。中断优先级寄存器IP的PS位则用作串行I/O中断优先级控制位。当PS=1,设定为高优先级;当PS=0,设定为低优先级。波特率计算:在了解了串行口相关的寄存器之后,我们可得出其通信波特率的一些结论:①方式0和方式2的波特率是固定的。在方式0中,波特率为时钟频率的1/12,即fOSC/12,固定不变。在方式2中,波特率取决于PCON中的SMOD值,即波特率为:当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。②方式1和方式3的波特率可变,由定时器1的溢出率决定。当定时器T1用作波特率发生器时,通常选用定时初值自动重装的工作方式2(注意:不要把定时器的工作方式与串行口的工作方式搞混淆了)。其计数结构为8位,假定计数初值为Count,单片机的机器周期为T,则定时时间为(256?Count)×T。从而在1s内发生溢出的次数(即溢出率)可由公式(1)所示:从而波特率的计算公式由公式(2)所示:在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值,因此式(2)又可写为:本系统以STC89C52为中央处理单元,利用预先写入单片机的程序长生所需要的信号波形,通过串口通信发送到上位机实现波形的显示。(2)软件模块设计Labview显示模块VISA是虚拟仪器软件体系结构的缩写(即VirtualInstrumentsSoftwareArchitecture),实质上是一个I/O口软件库及其规范的总称。VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪器。它还支持多平台工作、多接口控制,是一个多类型的函数库。在LabVIEW中编写的VISA接口程序,当外部设备变更时,只需要更换几个程序模块即可使用,简单方便而且开发效率高。在LabVIEW中利用VISA节点进行串行通信编程。为了方便用户使用,LabVIEW将这些VISA节点单独组成一个子模块,共包含8个节点,分别实现初始化串口、串口写、串口读、中断以及关闭串口等功能。一、基本步骤在LabVIEW中,进行串口通信的基本步骤分为3步:第一:串口初始化,利用ⅥSAConfigureSerial
Port.vi节点设定串口的端口号、波特率、停止位、校验位、数据位。第二:读写串口,利用VISARead节点和VISA
Write节点对串口进行读写。第三:关闭串口,停止所有读写操作。二、VISA串口的主要节点及其功能介绍:1、串口配置该节点主要用于串口的初始化,如图1所示。
图1串口配置节点将VISA资源名称指定的串口按特定设置初始化。VISA资源名称:指PC的串口名,例:COMl,COM2等。波特率:串口速率,默认为9600bps。数据比特:一帧信息中的位数,LabVIEW中允许5~8位数据,默认为8。奇偶:奇偶校验位,可选为无校验、奇校验或偶校验,默认为无校验。停止位:一帧信息中的停止位的位数,可选为1位、1.5位或2位。流控制:设置传输机制使用的控制类型,可选为None、XON/XOFF软件流控或RTS/CTS硬件流控,默认为None。终止符:设置一帧数据的结束符,即当接收串口数据时,当收到终止符时,软件自动结束一帧数据接收。2、串口写入该节点主要用于写入串口数据,如图2所示。 图2串口写入节点将写入缓冲区的数据写入VISA资源名称指定的设备或接口中。3、串口读取该节点主要用于读取串口中的数据,如图3所示。图3串口读取节点从VISA资源名称指定的设备或接口中读取指定数量的字节,并将数据返回至读取缓冲区字节总数:要读取的字节数量。读取缓冲区:PC串口收到的数据。返回数:实际读取的字节数,字节总数应大于或等于返回数,否则会丢数。4、串口关闭该节点主要用于关闭已打开的串口,释放串口资源,以便串口被其他程序所调用,如图4所示。关闭VISA资源名称指定的设备会话句柄或事件对象。图4串口关闭节点三、串口程序框图:信号发生器包含:3个按钮:开始写入、波形产生和停止、总开关。1个波形图表用于单片机信号的接收和显示。波特率、数据比特、奇偶、停止位、流程控制、读取延时设置等。程序框图后面板七.实时调试方波、锯齿波、正弦波信号如下图所示。致谢本课题在选题及进行过程中得到晏老师的悉心指导。尤其实在课设开始时晏老师给了我巨大的帮助,让我打开了思路。晏老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。再多华丽的言语也显苍白。在此,谨向晏老师致以诚挚的谢意和崇高的敬意。感谢我的合作人侯鹏同学,我们一起经历过的喜悲,一起动手做出了我们的信号发生器。九.结论与总结通过此次课程设计,使我更加扎实的掌握了有关高频电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年药房上半年药品管理工作总结
- 公司品牌推广专员2026年上半年品牌曝光推广总结
- 学校汛期校园安全隐患排查课件
- 2026年秋季高中开学第一课 理想信念 追光而行
- Unit 6 Our animal friends 课件(内嵌视频)2026-2027学年Join in 外研剑桥英语四年级上册
- 4.2.1 共面直线 课件-2026-2027学年高二上学期高教版中职数学拓展模块一
- 2026年北师大版小学二年级数学上册第5单元《表内乘法二》课时教案
- 亚低温治疗的应用
- 泌尿系结核康复指导
- 儿童心肌炎的护理课件
- 2026福建厦门市市政园林局补充非在编工作人员招聘1人笔试参考题库及答案详解
- 心血管系统超说明书用药总结2026
- 2026年湖南有色黄沙坪矿业有限公司招聘80人笔试参考题库及答案详解
- GA/T 1999.3-2025道路交通事故车辆速度鉴定方法第3部分:基于视频图像
- 《养生保健》课件-5.上肢部保健按摩
- 2026年浙江省大学生乡村医生专项计划招聘考试历年参考题库含答案详解
- 建设电工劳务分包合同
- (2026年)女性避孕方法临床应用的中国专家共识(2026年扩展版)
- 2026年党员应知应会基础知识试题(附答案)
- 修订一单一库质量手册和程序文件参考文件
- 2026年卫健系统公开遴选公务员笔试试题及答案解析(卫健类)
评论
0/150
提交评论