基于labview的PC与单片机的串口通信的循环计数设计方法毕业设计(论文).doc_第1页
基于labview的PC与单片机的串口通信的循环计数设计方法毕业设计(论文).doc_第2页
基于labview的PC与单片机的串口通信的循环计数设计方法毕业设计(论文).doc_第3页
基于labview的PC与单片机的串口通信的循环计数设计方法毕业设计(论文).doc_第4页
基于labview的PC与单片机的串口通信的循环计数设计方法毕业设计(论文).doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 设 计(论 文)题 目:(三号楷体)摘 要虚拟仪器是一种利用计算机技术替代传统仪器的全新概念仪器,本质就是利用电脑优越的硬件显示性能替代传统仪器达不到的显示效果,用多种不同的方式显示和存储采集的信号,根据电脑先进的硬件处理设备来处理和分析采集回来的数据,从而实现不同调试功能的pc虚拟仪器系统。本毕设依据labview虚拟仪器实现上位机与下位机之间的高速通讯,并根据labview中的visa功能,将其应用于单片机串口通信中,通过labview发送循环计数的初值,单片机接收并显示在数码管上,从接收到的初值开始计数,同时单片机返回循环计数结果,最后在labview面板内容上动态显示循环计数值。虚拟仪器软件labview的问世,大大提高了开发效率,减编写程序的难度,缩短了研发周期,从而减少研发成本,为我们实际项目研发提高了效率,带来了巨大财富。关键词:labview; stc51单片机; 串口通讯;数码管显示;pc and the microcontroller serial communication and indicating lamp control based on labviewabstractvirtual instrument is a kind of using computer technology to replace traditional instrument instrument of new concept, essence is the use of alternatives to traditional function of superior computer display instrument reach display effect, output measurement results in many different ways, and use the computer a powerful software function implementation evaluation of signal data, analysis and processing, complete all kinds of test functions of a computer instrument system.by using labview virtual instrument was introduced in this paper the tell communication between upper machine and lower machine, using the labview function, applied to the single chip microcomputer serial port communication, sent by labview initial value of the cycle count, microcontroller to receive and display on the digital tube, starting from the received initial count, microcontroller return cycle count results at the same time, the content of the labview panel on dynamic display cycle count. virtual instrument software labview, greatly improves the development efficiency, reduce the difficulty of the program, shorten the development cycle, reducing development costs, for our practical project research and development efficiency, brought huge wealth.keywords:labview; stc51 microcontroller; a serial port communication; digital tube display 目录第1章 绪论1.1 课题的背景和意义61.2 课题实现内容7第2章 软硬件介绍 2.1 虚拟仪器与labview 2.2 虚拟仪器的概述82.2.1 虚拟仪器方案的组成92.2.2 虚拟仪器方案的优势92.2.3 虚拟仪器和传统仪器的区别10 2.2.4 虚拟仪器的发展与现状11 2.2.4 虚拟仪器的应用112.3 labview简介122.4 labview基本特点132.5 stc89c51rc 单片机介绍132.6 单片机编程环境keil和下载软件stc-isp介绍16第三章总体设计方案3.1系统总体方案设计183.2系统硬件的选择183.2.1核心控制器选择183.2.2上位机编程软件的选择193.2.3显示系统选择19第四章labview上位机介绍4.1 上位机程序内容204.2 上位机框图204.2.1 上位机前面板框图204.2.2 上位机创建虚拟仪器过程214.2.3 上位机程序流程图214.3 上位机labview串口通讯的实现22第五章单片机下位机设计5.1 下位机流程图285.2 设计目的和实现方案295.2.1 设计目的295.2.2 实现方案295.3 系统硬件结构295.3.1 系统硬件电路295.3.2 主控系统305.3.3 复位电路305.3.4 串口电路315.3.5 震荡电路315.3.6 led电路325.3.7 数码管显示电路335.5 串行通信34 5.4.1 串行通信的概念和特点35 5.4.2 串行通信的分类355.4.3 串行通信的工作模式365.4.4 单片机内部串口配置38第六章系统整体调试 联机调试40致谢42参考文献42附录43附录1 原理图44附录2 单片机才程序45第一章 绪论1.1 课题的背景和意义labview是一种编译软件,和visual c+和keil累的的开发环境,他是由美国国家仪器(ni)公司研制开发的,但是它与其他高低端计算机语言的明显不同是:labview使用图形化语言编辑程序框图,其以框图的形式通俗易懂和中国的象形文字有异曲同工之妙,用户只需要通过前面板即可操纵程序;其他语言如c语言、c+、c#、vb等语言都学起来要花费大量的时间和精力,并且不容易读懂。 labview内部提供了很多库函数,使得编程就像画画一样过容易。它的人机交互界面实时一大特色,利用图形化界面,在屏幕上显示一起的操作界面,只需要通过鼠标和键盘操控,简单方便,仪器的各种参数选择和控制方式都能通过人性化的界面来实现。 作为现代计算机技术与仪器技术二者结合的一项创新技术,labview传统仪器在人们心中的印象,顺应了现代测控智能化和网络化的发展趋势。目前,labview技术在工业控制、自动控制和实验室建设等领域有着十分广泛的应用前景。 随着信息技术的高速发展,在嵌入式系统设计和计算机系统设计中常常会遇到各个系统之间的通信问题。现在比较常用的数据通信方式有并行通信、串行通信两种方式: 串行通信只能以位为单位进行数据传输,通信速度比较慢,每个字节通常需要被拆分为很多比特位才能进行传输,但串行通信在传输过程只需要一根数据线就可以完成数据流的发送,所以成本较低,因此适用于短距离通信或对传输速度要求不高通信场合。并行通信可以以字节或多字节为单位进行数据通信,因此他的传输速度非常快快,但需用的通讯线多,成本较高,并且不适宜远距离传输通常应用于计算机总线和plc内部总线之间的通信; 本课题运用stc单片机实现嵌入式系统的构建,用图形化编辑软件labview编写上位机控制系统,实现了嵌入式系统与pc机之间的相互通信,并且用人性话的操作界面进行控制。最终达到程序稳定可靠地运行,数据实时稳定的显示,可以通过pc机进行远程监控。本课题涵盖了虚拟仪器技术、数字电路技术、串口通信技术、人机交互界面技术和一定程度上的平面设计技术,这对进一步提高学生的综合素质,培养创新意识,培养学生从事科学、技术研究能力有着重要意义。1.2 课题实现的内容本设计基于labview虚拟仪器编写串口上位机控制系统,同时编写以单片机为核心的数码管动态显示系统,上位机可以控制单片机循环显示的初始数值,下位机将显示的数值实时发回上位机进行显示。上位机上可以设置通信波特率、数据位、停止位,同时设有打开串口按钮、停止运行按钮、清空发送去按钮、清空接收区按钮;还有接收数据显示文本框和发送数据显示文本框,用户通过设置串口通信参数和打开串口按钮即可与下位机进行串口通信,并将下位机发回的数据实时显示到pc机上,同时还可以控制循环的初始值。下位机以stc89c52单片机为主控制器,以8端数码管为显示系统,单片机根据定时器0一秒定时和上位机的控制数据来进行数码管循环计数。同时设计单片机最小控制系统,数码管显示系统电路,串口通讯电路,接收信息分析算法的设计。最后使用keil5软件编程和stc-isp程序烧录软件。第二章软硬件介绍2.1 虚拟仪器与labview2.1 虚拟仪器概述测量仪器从发展到现在,总体上经过四个阶段,分别为模拟仪器、分立元件式仪器、数字化仪器和智能测量仪器。然而随着计算机技术和网络的迅猛发展,新的测试理论、测试方法、测试领域及测试仪器的不断出现,在很多方面早已突破传统仪器的概念,电子测量仪器的功能和作用已经发生质的变化。就在此刻虚拟仪器应运而生。虚拟仪器是在计算机机的高性能硬件平台上,由用户自己设计并定义界面显示和功能的一种计算机仪器系统。虚拟仪器技术就是利用现有的高性能硬件模块,并结合灵活高效的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能够开发出完全符合用户需求和习惯的界面,硬件的集成模块能提高设计的集成度,同时大大缩减开发周期。计算机跟测量仪器的紧密配合是目前测量仪器发展的一个重要方向。计算机与测量仪器的结合大概分为两种方式:一种是将计算机嵌入到测量仪器当中,智能化仪器就是一种典型的表现,比如目前比较流行的嵌入式系统;另外一种方式就是通过标准接口技术将所需的测量设备跟计算机连接,在高效快速的计算机硬件基础上,实现不同的功能。而目前的虚拟仪器就是第二种方式。常见的虚拟仪方案如图1.2所示。数据采集卡数据处理信号调理被测对象虚拟仪器面板图1.2 虚拟仪器方案2.2.1 虚拟仪器方案的组成高效的软件: 虚拟仪器技术中核心的部分就是软件。有了正确高效的软件工具,工程师们可以高效快捷地创建自己的应用及漂亮的人机交互界面。ni公司提供的行业标准图形化编程软件labview,能简单快捷地与各种软硬件进行对接,并且能提供强大的后续数据处理能力,还有设置参数,保存数据的功能,同时显示客户需要的数据。模块化的i/o硬件:计算机与外部外设的通信方式主要通过对外通信接口(如rs232c,gpib,1394等)、信号转换功能(如a/d,d/a,i/o卡等)以及总线通信(如vxi,pxi)等来实现的,ni提供了全方位的软硬件的解决方案。不管使用者是使用pci、pxi、pcmcia、usb,ni都有现成成熟的方案。 以上所述的接口、模块、板卡等硬件与传感器和计算机组成完整的虚拟仪器系统。2.2.2 虚拟仪器方案的特点和优势 虚拟仪器技术有了好的编译环境、标准的接口和集成的软硬件平台这三个重要的组成部分部分,才能充分发挥它的高性能,方便扩展、开发周期短以及集成度高这些优势。1、高性能 因为虚拟仪器是在现代通用计算机的基础之上产生的,所以它完美的继承了计算机技术的高性能,高处理的优点,比如运算速度,文件管理,图像处理,数据分析等很多优点,这些优点是传统仪器望尘莫及的。2、方便扩展 有了虚拟仪器,各种软硬件工程师们就可以从画pcb,电路设计和软件代码的编写中解放出来,因为虚拟仪器的灵活性,用户可以根据项目升级或功能变动二更新计算机系统或替换高效率的硬件模块,这就极大地降低了成产成本和维护成本,大大的缩短了开发周期,加速产品的上市时间。3、研发周期短 在研发项目的过程中虚拟仪器把计算机技术、测量仪器和模块之间的通信这些最新技术结合在一起。这些成熟的技术极大地为研发者节省时间,研发者就有更多的精力去想怎样结合这些优良的技术使得自己的产品更具有竞争力。4、系统的开放性强现在强大的云服务,网络的高速发展使得我们可以足不出户即可得知天下事,同样虚拟仪器是在计算机基础上发展而来,因此他也具有与其他设备进行远程检测和管理的优越性,并且基于网络平台,他可以和其他高档外设通过网络通信,应用领域明显扩大。2.2.3 虚拟仪器pk传统仪器 虚拟仪器有软件和硬件两方面组成,软件有图形化界面编辑出虚拟操作平台,功能可以随以根据功能进行编写,非常灵活,同时它还兼容各种设备驱动,也就是说兼容传统仪器,使用面广, 传统仪器都是按需制的,功能单一,价格昂贵,兼容性不太好具体空下表中看出。虚拟仪器传统仪器用户自己设计功能厂家定义各种功能与外设连接简单只能与特定仪器连接研发周期较短仪器研发需要时间较长一起研发成本低仪器研成本高升级软硬件功能简单改变功能复杂重复利用简单重复利用困难无限扩展存储空间有限的存储空间研发主要是软件设计研发主要是硬件设计表1.1虚拟仪器与传统仪器的区别2.2.4 虚拟仪器的发展与现状 虚拟仪器还没有问世的时候,传统仪器设备占据着各大市场领域。每一种仪器都具有特定的功能,有时候研发一个项目需要购置大批的测量仪器,并且每一种仪器都需要人工亲自完成,随着计算机技术的发展,虚拟仪器的发展大致经历了以下几个历程。 第一个历程是利用用计算机的先进功能功能来提高传统测量仪器的性能。因为计算机的快速发展和一系列标准的通信接口,使得电脑可以很随意的与各种高精度的一起之间进行通信,我们只需要把需要的测量仪器通过一定转接技术与电脑连接上,工程师们就可以通过熟悉的电脑界面进行对测量仪器进行不间断地监控。 第二个历程是一种常见的接口和开放式的硬件。随着科技进步和信息化的发展,各种测量仪器出现了质的飞跃:数据采集卡和一系列标准总线结构的确立。这些新的标准就使得不同测量仪器之间的通信阻碍减小。 第三个历程虚拟仪器生成了一种编程标准,通信协议,总线通信,和硬件接口都有了统一的执行标准,因此工程师们九个以把精力放在程序的编写和功能上面的扩展上就不需要考虑各种通信协议的问题,大大节约了研发时间。上述经理的历程当中,我们可以发现虚拟仪器的发展有两个重要的标志:一是总线标准的确立和应用;二是使用了图像化编程语言,用户可以很容易的根据要求编写特定功能,提高了研发的效率,减少了研发的成本。2.2.5 虚拟仪器的应用1 监控方面通过虚拟仪器,我们可以远离一些危险的场所,只需要放置一些高灵敏的传感器,并将传感器采集到的数据远程发回给上位机。2 教育教学方面由于虚拟仪器的快速发展,目前已扩展至各个领域,教育方面也不例外,引起简介的编程方式和高效率的研发过程使得教学部门也使用该软件编写教学管理系统,使得教学方法更加的灵活。3 嵌入式系统因为虚拟仪器中有很多通信接口就来自与嵌入式系统,我们可以通过虚拟仪器编写上位机监控系统实时控制下位机的的状态。可以说虚拟仪器应用设计各个行业领域,尤其是在工业控制领域,他的问世也是嵌入式技术的一次革新。2.3 labview简介labview的简称是实验室虚拟仪器集成环境,器英文全称为laboratory virtual instrument engineering workbench,美国国家仪器公司(nationai instruments,简称ni)是labview的生产者。 labview为研发者提供了一种快速设计自己的测试控制系统的方法,用图形化编辑语言进行设计,高效,快速准确。计算机快速的运算能力与专一硬件的采集和传输能力结合在一起,极大地缩小了研发时间和研发成本。labview技术移植伴随着计算机技术的发展而跟着提高,同时他还能通过网络与旁路设备进行互相联机通信,我们只需要添加或减少一部分框图内容即可改变测量两功能,扩展性非常强,并且这十分简单。labview和visual c+等一样也是一种常用的编程工具,它内部有很多成熟稳定的库函数,用户只需要调用相应的函数即可实现自己想要的共能,浙西二库函数有数据分析,数据处理,穿行通信,联网通信,保存数据等功能。labview也可以实现仿真调试,和c语言一样能够单步连续的执行程序,进行一步一步分析自己程序的可靠性。另外labview还有实时监控程序运行的功能,可以设置断点和检测探头来实时监控程序。使得开发起来更加有效、快捷方便。labview的编程语言和传统的语言不同,它采用了图形语言g语言,这种语言直观通俗易懂,编起程序来高效快速。同时他还方便其他读者阅读程序,方便移植和理解。图形化语言随着虚拟仪器的告诉发展将来定会成为一种编程标准。2.4 labview的基本特点1 具有良好的图形用户界面:labview 编写出来的程序大方美观,有着和传统仪器一样的操作面板,各种人性化的控制按钮,表盘显示,图表波形显示,更加美观漂亮。2 编写方式:labview采用的图形化编程方式比其他语言都简单,并且阅读起来也很方便的。3 模块化和层次分明:labview编写的vi面板可作为用户层程序来使用,我们还可以将vi制作为子vi共其他程序调用,因此模块化程度很高。4 调试方便:当labview编好程序后,我们怎样验证自己程序的可行性呢,如果直接放到项目工程中进行测试肯定不现实,那么我们就可以一部一部让程序执行,通过观察每一块程序的结果来验证程序执行有没有问题。2.5 stc89c51rc 单片机介绍单片机最先是有intel的8031单片机发展而来的,随着flash技术的迅速发展,51单片机横空出世,遍布各个电子控制行业,他是目前市面上最普遍的8位单片机,后来由于其广泛的应用,很多大的公司看上了他的发展前景,纷纷推出以51为内核的8位单片机,像atmel公司的at89系列单片机,被应用到共坑测量领域。intel的80c31、80c51、87c51、80c32、等系列:philips、华邦dallas等公司的许多产品都是基于51内核的。国内盛行的51单片机主要是宏晶公司推出的stc系列单片机,由于其价格便宜,能耗低,并且很稳定,国内很多地方都还在使用旗下的51单片机。stc单片机发展历程从stc899010111215系列,分别各有特点。stc89系列是传统的单片机和at89系列单片机之间相互通用,这一系列单片机为12t单片机。在89系列上直接发展起来的是90系列,10和11系列单片机是比较廉价的1t单片机,内部设有硬件pwm和eeprom功能,但都没有数模转换功能。12系列是增强型功能的1t单片机,具有a|d转换功能。因为其功能强大,价格低廉所以是市场上的主流产品。15系列是为了去掉外接晶振,防止因环境变化引起的频率飘逸问题,内部集成高精度rc震荡电路,因此完全不需要外界晶振即可工作。下图分别为51单片机的应引脚图和内部结构框图。图2.1 51芯片引脚分布51单片机分为贴片式和直插式,贴片体积小便于集成,直插式体积大但是方便焊接。上图为直插式40引脚原理图。图2.2 c51单片机p0、p1、p2、p3共4组32个io输入输出口;内部有111条指令,大部分为单字节指令21个专用寄存器2个可编程定时/计数器,5个中断源,2个优先级(52有6个)一个全双工串行通信口外部数据存储器寻址空间为64kb外部程序存储器寻址空间为64kb逻辑操作位寻址功能一个+5v电源供电cpu由运算器和控制器,同时还包括中断系统和部分外部特殊功能寄存器;ram(读写存储器)存放程序运行过程中产生的中间过程变量和一些临时变量;rom(制度存储器)用以存放程序、一些原始数据;i/o口:输入输出口,可读可写。两个多功能计数器模块,可设为定时器模式或计数器模式:五个中断源的中断控制系统;一个全双工uart(通用异步接收发送器)的串行i/o口,用于实现单片机之间或单片机与微机之间的串行通信;2.6 单片机编程环境keil和下载软件stc-isp介绍keil是arm公司发布的,它包含编译器、调试工具实现了与单片机编程的完美工具。提高研发人员的编程效率,该版本增加了很多常用的功能,切实的照顾到了编程人员的编程习惯。keil是用来编译c语言的编程环境如下图所示图2.3 keil5-logo图2.4 keil5-编译界面keil工程的建立过程:编 辑 c文 件选 择 器 件新 建 项 目编 译生成hex文件stc-isp下载软件程序烧录过程点 击 下 载 按 钮打 开 文件选 择 波 特 率选 择 器 件 型 号第三章系统方案设计3.1系统总体方案设计下位机以stc89c52单片机为主控制器,以8端数码管为显示系统,单片机根据定时器0一秒定时和上位机的控制数据来进行数码管循环计数。同时,利用labview2012软件,编写一个串口上位机通信界面。通过这个上位机界面能够控制单片机循环计数的初值,并且接收单片机返回的实时计数值显示在上位机上。数码管显示ch340 usb转串口stc89c51rclabview上位机图3.1总体设计3.2 系统硬件的选择3.2.1核心控制器选择方案一:arm一般用于高性能高进度场合,优势是能耗低,精度高。但是成本高,不容易上手,操作麻烦,对于步进电机来说有点大材小用。方案二:avr价格稍贵,性价比高,自制下载线方便,存储空间较大,c编译器有多种。技术成熟,资料多,上手容易,性价比是它的优势。方案三:stc89系列单片机便宜功耗低,操作简单,速度不太好,但是资料成熟,上手容易。经三方比较,stc89c52rc实惠,资料成熟且其前,并且满足本设计需要,容易学习,所以选择该单片机小系统。3.2.2上位机编程软件的选择方案一:visual 2013用fmc语言编写windows窗体控件,里面也有串口控件,需要学习c+语言。方案二:用c#语言需要学习java语言,java程序学习比较困难。方案三:用labview编写上位机,可视化的编程环境,图形化的编程语言,方便快捷并且容易简单。通过对比这些,我们选择用labview来编写本次上位机。由于其编程方便,开发周期短,语言容易学习。3.2.3显示系统选择 方案一:利用1602液晶显示屏,1602可以显示英文和数字,并有成熟的文档资料,程序编写起来稍微复杂点,价格也较贵。方案二:利用诺基亚5110lcd液晶显示屏模块显示。可以显示英文汉字,相对比较便宜。方案三:用数码管显示,数码管编写程序简单,价格低廉,资料齐全,电路设计比较简单,只能显示数字。因为我们此次设计只需要显示循环变动的数字,所以我们选择数码管显示电路。第四章 labview上位机设计4.1上位机程序内容上位机上可以设置通信波特率、数据位、停止位,同时设有打开串口按钮、停止运行按钮、清空发送去按钮、清空接收区按钮;还有接收数据显示文本框和发送数据显示文本框,用户通过设置串口通信参数和打开串口按钮即可与下位机进行串口通信,并将下位机发回的数据实时显示到pc机上,同时还可以控制循环的初始值。上位机通过编写串口通讯程序,在labview中是visa,包括visa参数配置包括波特率,数据位,停止位,校验位等。通过write visa发送串口信息,通过read visa读取串口信息,并显示出来。4.2上位机框图4.2.1上位机前面板框图:接收区打开串口发送数据发送区清空接收区清空发送区4.2.2上位机创建虚拟仪器过程运行和调试程序创建框图程序创建前面板建立vi4.2.3程序流程图:开始打开串口串口初始化清空缓存区发送数据发送串口数据清空发送缓存区发送数据发送循环初值4.3 上位机labview串口通讯的实现本上位机主要用到串口通信模块,visa是本设计的重点所在,也是一个重要枢纽。程序外层用一个循环结构加枚举变量,同时在循环结构上添加以个移位寄存器,使得程序先初始化,再进入到接收和发送函数。visa子vi如下图图4.2子vi 4.3 子vi前面板通过前面板就可以设置波特率为9600,数据位为8位,无奇偶校验,1个停止位。 4.4 上位机主程序框图主程序有一个循环结构,和若干个条件结构和一个事件触发结构构成。 程序设计的步骤如下:1建立新vi程序 打开labview应用程序,点击新建按钮,然后选择vi从而创建一个新的vi程序。2程序前面板设计 在新建的前面板设计区右击鼠标右键,有一个工具选择块,我们可一点击左上角将其锁定到前面板。(1)添加一个字符串输入控件:点击控件-express-字符串输入控件,双击将其添加到前面板上,并将标签改为“发送循环数据(十六进制)”,将鼠标移动到该控件上并点击鼠标右键,选择“十六进制显示”。(2)添加一个字符串显示控件:点击控件-express-字符串输入控件,双击将其添加到前面板上,并将标签改为“接收缓冲区”,将鼠标移动到该控件上并点击鼠标右键,选择“正常显示”。(3)添加一个串口资源检测控件:控件-新式-i/o-visa资源名称; (4)添加一个确定按钮控件:控件-express-按钮与开关-ok按钮,将标题改为“打开串口”。(5)添加一个停止按钮控件:控件-express-按钮与开关-ok按钮,将标题改为“停止运行”。(6)添加一个清空接收区按钮控件:控件-express-按钮与开关-ok按钮,将标题改为“清空接收区”。(7)添加一个停止按钮控件:控件-express-按钮与开关-ok按钮,将标题改为“清空发送区”。(8)添加一个停止按钮控件:控件-express-按钮与开关-ok按钮,将标题改为“发送字符”。(9)点击接收区,右击鼠标选择自动换行。上位机面板如图4.5所示。图4.5上位机控制程序前面板3框图程序设计添加函数并连线 在前面板点击窗口,选择显示到程序框图,或者用快捷键ctrl+e。(1)添加一个枚举常量:编程-数值-枚举常量。(2)添加4个数值常量:编程-数值-数值常量,值分别为9600(波特率)、8(数据位)、0(校验位,无)、1(停止位)。(3)添加一个while循环结构:编程-结构-while循环。(4)在while循环结构上右击创建移位寄存器。(5)关闭串口函数:编程-仪器i/o-串口(serial)-visa关闭。(6)读取串口函数:编程-仪器i/o-串口(serial)-visa读取。(7)写入串口函数:编程-仪器i/o-串口(serial)-visa写入。(8)在前面板添加一个字符串组合框:新式-字符串-组合切换到框图面板修改标签为端口号。(9)在端口号后面添加一个条件结构,点击条件结构在下拉菜单,选择在后面添加分支,总共有3个分支0、1、2、3、4,。(10)在条件结构分支0中加入visa资源名称修改名字为asrl1:instr。同样在1和4中添加asrl2:instr和asrl3:instr一直到asrl5:instr(11)添加一个波特率选择组合框,在前面板添加一个字符串组合框:新式-字符串-组合切换到框图面板修改标签为波特率。:(12)在波特率号后面添加一个条件结构,点击条件结构在下拉菜单,选择在后面添加分支,总共有3个分支0、1、2,。(13)分别在0 1 2 分支中计入数字常量,2400 9600 和115200。(14)右键选择循环结构的条件端子,设置为“真时停止”,图标变为。并点击创建常量f就是一直在里面循环,我们的退出是用关闭程序的stop。(15)编辑对话框错误输出:编辑-对话框与用户程序-建议错误处理器并将其和visa资源配置设置的错误输出连接。(15)添加一个条件结构,真和假两个分支,?连接到错误代码端子。(16)在真分支中添加但按钮对话框,输入为(串口不存在或一打开)。(17)将visa串口字节数函数的输出端口visa资源名称与visa读取函数的输入端口visa资源名称相连。(18)添加一个条件结构,并在里面添加两个条件结构,里面的分别为发送数据的条件结构和接收数据的条件结构。(19)在最外层的条件结构也添加两个条件结构,一个为清空发送区另一个为清空接收区。(20)将打开串口按钮连接到第二层条件结构的?好上。在第二层内添加一个定时器控件,并创建一个20的常量。(21)按要求连接各个控件。 连接好的程序框图如图5.11所示。图4.6 pc与单片机串口通信程序框图(22)在while循环外部再建一个事件结构:编程-结构-事件结构。(23)将第一个分支改变为“停止”值改变。(24)在外面添加一个停止程序控件:编程-应用程序控件-停止,(25)在内部将停止按钮拖拽进来,并将各个按钮的状态恢复到默认值,并将串口关闭。图4.6 停止程序事件框图4调试运行程序当编辑好程序框图后及时点击保存按钮。在使用串口线与单片机相连,并确定通信状态正常后,单击快捷工具栏中的“连续运行”按钮,运行程序。程序运行界面如图5.12所示。图5.12 程序运行界面操作步骤: 1、点击坐上角连续运行按钮。 2、根据电脑设备管理的com口选择com口。3、设置波特率为9600。4、点击打开按钮,指示灯亮表示正常。5、停止运行为退出vi程序。在发送循环数据框内输入16进制数,单片机收到后会以此数值为初值进行循环计数,并将结果义字符串的形式返回给上位机。第五章 单片机下位机设计5.1 下位机流程图程序流程图:开始定时器0、串口、数码管初始化定时器中断y循环计数值加1n退出中断串口中断 ynum_count = sbuf; n 退出中断 数码管实时显示循环计数值 5.2 设计目的和实现方案5.2.1 设计目的本课题主要设计单片机串口通信,以labview作为上位机,以串行通信为媒介实现嵌入式和电脑上之间进行通信。串型通信方式是是电子信息领用和工业控制里面常用的交流信息的方式,因为其特点的限制适用于对传送数据速度不高的场合,但是串口通信成本低廉通信方式简单。用labview编辑出的人性化的上位机界面,是缩短了了研发的时间,并使得不同设备的相互通信变得非常简单。5.2.2 实现方案本设计基于labview虚拟仪器编写串口上位机控制系统,同时编写以单片机为核心的数码管动态显示系统,上位机可以控制单片机循环显示的初始数值,下位机将显示的数值实时发回上位机进行显示。5.3 下位机硬件设计5.3.1 系统总硬件电路在该论文设计的串口通信控制系统中,硬件电路有主控制电路、数码管显示电路、led显示电路、电源指示电路、复位电路、始终电路、数码管驱动电路、ch340 usb转串口电路。组成如下图5.1所示图5.1系统原理图5.3.2 主控制系统主控电路负责循环数的计时显示,和跟上位机的通信,因为p0口没有驱动电路所以需要加上拉电阻。图5.2主控电路5.3.3复位电路单片机在发生异常时可以通过复位按钮来恢复系统正常工作,51单片机的复位信号为高电平,因此可以通过外部电路实现自动复位、手动复位或看门狗复位。因为我们用的是stc89c52rc没有内部看门狗复位所以我们设计手动复位电路,电路如图5.3所示,刚开始电容充电,在陶瓷电容的阳极充满电,当复位按钮按下时电容会放电并保持一段时加大到单片机复位的效果。复位电路路比较简单,是电阻和电容组合二实现的。图5.3复位电路5.3.4串口电路串口电路是本设计的的关键技术,主要用到了串口转usb通信,实现单片机与电脑之间的通信。本电路的串口通信使用usb转串口芯片ch340是一个usb总线的转接芯片,该芯片支持5v电压或3.3v电压,其电路图如下图3.4图5.4 串口电路5.3.5震荡电路 单片机要想正常工作就必须有一个时钟电路,就像生命需要心脏跳动一样,80c51内部有高增益反响放大器,输入输出分别为xtal1,输出引脚为xtal2,从而构成一个稳定的自激振荡器。外部时钟电路为单片机的工作提供一个时间基准,51单片机右两种方式提供这种震荡频率,因为我们用的89c52rc没有内部震荡源,所以我们选择用外部震荡元电路为单片机提供时钟电路。图5.5晶振电路5.3.6led指示电路led为发光二极管,具有单向导电性,大约通过5ma左右的电流就能被点亮了,如果电流太大的话就会烧毁二极管,二极管的压降约为1.7v,为导通压降。发光二极管分为直插式和贴片式。点亮二极管可分为共阳极或共阴极电路,我们的电路采用共阴极电路如下图所示:图5.6 led输出电路5.3.7数码管显示电路数码管显示原理其实就是点亮二极管来发光的,每个数码管里面有8个小的发光二极管,最后还有一个公共端。根据公共端的不同分为共阳极和共阴极数码管,要想对数码管点亮,就需要对需要显示的数据进行编码,编完码后在经io口输出就可以显示相应的数字。数码管显示分为动态显示和静态显示,静态显示比较简单,直接发送断码进行显示,二动态显示其实是扫描显示,可以显示不同的数据。图5.7数码管显示电路74hc573是数据锁存器,当使能端le为高电平时输出端口的数据才能根据输入的数据变化而变化,想要锁存住数据,就要把le制高,其真值表如下图图5.8 74hc573真值表5.4串行通信5.4.1串行通信的概念和特点串行通讯只需要一根线即可完成两个设备之间的互相通讯,但必须要求两边设置一样的波特率,在传输的过程中呢,每一次只发送其中的一位。串口通讯发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。如图3.1所示。图5.9串行通信串行通信的特点是:通信只需一根数据线节约资源,控制简单,先对来说传输速度可以满足大多场合下的通信速度。5.4.2 串行通信的分类串行通信按发送是两端是否使用同一时钟线,将通信分为同步串行通信和一部串行方式两大类,按发送的方式分为并行通信方式和穿行通信方式。下面就根据这四种不同的分类注意说明。1 同步通信同步通信顾名思义两边通信要同步,何为同步呢?同步就是二者一句同一时钟进行工作的方式叫做同步通信。通信时,需要对发送方和接收方的适中进行严格的控制,这样才能是两边的通信达到真正意义的同步。特点:发送者和接受者因为在同一个时钟下工作,因此通信不容易出错,并且高效稳定。图5.9串行通信2 异步通信异步串行通信时发送方和接收方使用不同的时钟,为了使传输的数据正确有效就必须是两端的时钟尽可能一致。异步通信是有字节为单位传输的,允许字节之间有间隔,但在同一字节内部各位之间的距离均为“位间隔”的整数倍。异步通信的数据有4部分组成,起始位 数据位 奇偶校验位和停止位。特点:不要求收发双方时钟严格一致,容易实现,成本低,但传输效率不高,传输局里相对较远。 图5.10串行通信3 并行通信用多条数据线同时传送的通信方式成为并行通信,如下图所示,8位数据的通信系统,一次就需要8跟数据线,还有其他的控制线,所以这种方式仅适合与短距离的数据传输。特点:并行通信控制简单、相对传输速度快,但由于传输线太多,远距离传送成本高。图5.11串行通信5 串行通信串行通信时将数据拆分为一个位一个位进行传输,就要一根电线就中了,另在加少许控制线路。由于一次只发一个位,所以传输效率比较低,只能通过提高贝特率提高其速度。如下图所示特点传输线少,节约成本,传输距离相对较远,但是比并行通信要复杂点。图5.12串行通信5.5.3 串行通信的工作模式串行通讯的工作模式分为:单工、半双工、全双工。(1)单工形式:早期的电流环单工是通信时,数据是单向的,仅限于接收或发送二者不能同时存在,如图3.2所示。图4.2单工形式(2) 半双工形式:rs-485半双工是两边可以互相通讯,但是必须是分时间断的,不能同时及发送有接收。如图3.3所示。图4.3半双工形式(3) 全双工形式:rs-232全双工通讯是接收方和发送方你同时通信互不影响,我发的同时也可以接收信息,接收的时候还可以发送信息。如图3.4所示。图4.4全双工形式本次设计采用的全双工方式,高效快捷,传输速度高。5.4.4 单片机内部串口配置51单片机内部有一个全双工的串行通信接口,有一个接收和发送缓存区sbuf,可以读也可以写,接口有两个分别为p3.0和p3.1,。51内部串口结构如下图由上面框图可以看出,串行通信需要一个以为时钟信号来解析发送或接收数据,根据串口接收中断,并将接收到的数据通过系统总线保存至接收sbuf中,当发送数据是过程相反,cpu将数据写进sbuf,精油系统总线将数据分解为以为一位在发送出去。串行通信控制寄存器介绍:接下来我们一一介绍:(1).sm0、sm1:串行口工作方式控制位。sm0,sm1工作方式00方式001方式110方式211方式3(2).sm2:多机通信控制位。工作于方式0时,sm2必须为0。(3).ren:允许接收位。接收使能为:1 语序接收;0 禁止接收;默认为为0,所以需要软件置1.(4).tb8:发送接收数据位8。在方式2和方式3中,tb8是要发送的即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,tb8=0为数据,tb8=1时为地址。(5).rb8:接收数据位8。设置数据位为8位。(6).ti:发送中断标志位。发送完成标志,当一个字节发送完成后此标志位会自动置1.用户可根据此标志位检测发送是否完成,提高通信的准确性。(7).ri:接收中断标志位。此位为接收标志

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论