




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘 要1Abstract21 绪 论11.1 课题意义11.2 系统开发的相关研究动态21.2.1 虚拟仪器软件LabVIEW编程技术21.2.2 STC89C51单片机与PC机串口通讯技术72 设计方案的论证82.1 整体方案的论证82.2单片机与PC机通信方案的论证103 系统硬件电路的设计113.1 单片机控制电路113.1.1 STC89C51功能特性的描述113.1.2 电路的分析说明123.2 单片机与PC机串行通信的设计133.2.1 RS-232接口的介绍143.2.2 MAX232芯片介绍15 3.3 DS18b20温度采集模块的设计.16 3.31 DS18b20传感器
2、简介.164 软件程序的设计184.1 单片机与PC机串口通信程序的设计19 4.11波特率的选择.20 4.12 通信协议的使用.214.13 温度信号的处理.224.2 PC机LabVIEW程序设计244.2.1 LabVIEW串口通信程序的设计254.2.2 LabVIEW波形显示程序的设计294.2.3 LabVIEW数据储存程序设计31结 论34参考文献36附录 部分程序清单38致 谢47 47基于LabVIEW的恒温水域智能控制系统的界面设计摘 要在实验室中的一些精密仪器,对环境的要求是比较苛刻的,例如粘度仪等。而精密仪器对环境的要求大部分则是体现在对温度的严格要求。因此,对精密仪
3、器环境温度进行恒温控制十分必要。现有的一些温度控制设备,如 HA168 型的温度控制棒,结构比较简单,当测量温度低于设定温度时进行加热,其结果是仪器水域内温度不均,控温效果不理想,控制界面也不美观和人性化。目前,国外也开发出了一些基于单片式计算机的温度控制设备,但是价格比较高,且目前其操作系统均为英文,普及性不强。而为了让恒温控制界面好看美观,为了更好的满足用户操作,实现更友好的人机界面,通常可以采用PC与单片机之间的串行通信,通过单片机采集数据,然后用异步串行通讯方式传给PC机。所以本设计着重用虚拟仪器软件Labview编程实现。LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研
4、制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW软件具有面向对象的设计方法,友好的用户界面等优点,本设计重点在于实现在LabVIEW软件环境下来实现PC机与STC89S51单片机之间串口通讯。关键词:恒温控制;串口通信;LabVIEW界面设计。AbstractIn the laboratory some of the precision instruments, environmental requirements are
5、 more demanding, such as viscosity instrument. The requirements of precision instruments on the environment is reflected in most of the strict temperature requirements. Therefore, precision instruments, the ambient temperature is necessary for temperature control. Some of the existing temperature co
6、ntrol equipment, such as the HA168-type temperature control rod, the structure is relatively simple, when the measured temperature is below the set temperature for heating, the result is uneven temperatures within the waters of equipment, temperature control is not satisfactory, the control interfac
7、e Not beautiful and humane. At present, some foreign countries have also developed computer-based monolithic temperature control equipment, but the price is relatively high, and its operating systems are currently in English, popularity is not strong. The temperature control interface to make good-l
8、ooking appearance, in order to better meet the user to achieve a more friendly interface, usually used between the PC and the microcontroller serial communication, data collection through the microcontroller, and then use asynchronous serial communications Passed to PC. Therefore, this design focuse
9、s on using virtual instrument software Labview programming. LabVIEW is a program development environment, from National Instruments (NI) Development of the company, similar to C and BASIC development environment, LabVIEW with other computer languages, but a significant difference: the other computer
10、 languages are generated based on the language of the text Code, while LabVIEW is a graphical editor using the G programming language, the resulting program is a block diagram form. LabVIEW software with object-oriented design methods, user-friendly interface, etc., the design focus is to achieve im
11、plementation in the LabVIEW software environment down the PC, serial communication between MCU and STC89S51.Keywords: temperature control; serial communication; LabVIEW interface design.1 绪 论1.1 课题意义现代信息技术的三大基础是信息采集控制(即温度控制器技术)、信息传输(通信技术)和信息处理(计算机技术)。温度的控制无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,工业生产生活中,温度的测量
12、及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。随着我国电子温度控制市场的迅猛发展,与之相关的核心生产技术应用和研发将会成为业内企业关注的焦点。同时了解国内外电子温度控制器生产核心技术的研发动向、工艺设备、技术应用及其趋势对于企业提升产品技术规格,提高市场竞争力至关重要。然而随着生活质量的提高,随着社会的发展,人们对温度的控制要求越来越高,特别是在精密的实验仪器上。 在实验室中的一些精密仪器,对环境的要求是比较苛刻的,例如粘度仪等。而精密仪器对环境的要求大部分则是体现在对温度的严格要求。因此,对精密仪器环境温度进行恒温控制十分必要。现有的一些温度控
13、制设备,如 HA168 型的温度控制棒,结构比较简单,当测量温度低于设定温度时进行加热,其结果是仪器水域内温度不均,控温效果不理想,控制界面也不美观和人性化。目前,国外也开发出了一些基于单片式计算机的温度控制设备,但是价格比较高,且目前其操作系统均为英文,普及性不强。而为了让恒温控制界面好看美观,为了更好的满足用户操作,实现更友好的人机界面,通常可以采用PC与单片机之间的串行通信,通过单片机采集数据,然后用异步串行通讯方式传给PC机。所以本设计着重用虚拟仪器软件Labview编程实现。LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是La
14、bVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW软件具有面向对象的设计方法,友好的用户界面等优点,本设计重点在于实现在LabVIEW软件环境下来实现PC机与STC89S51单片机之间串口通讯。1.2 系统开发的相关研究动态1.2.1虚拟仪器软件LabVIEW编程技术虚拟仪器 (VI) 的概念虚拟仪器(virtual instrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例
15、子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。上面的框图反映了常见的虚拟仪器方案。虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国 NI 公司的 LabVIEW。 虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算
16、机化成为可能,甚至在 Microsof t公司的 Windows 诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0 以前的版本。对虚拟仪器和 LabVIEW 长期、系统、有效的研究开发使得该公司成为业界公认的权威。目前LabVIEW 的最新版本为 LabVIEW2009,LabVIEW 2009 为多线程功能添加了更多特性,这种特性在 1998 年的版本 5 中被初次引入。使用 LabVIEW 软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEW Real-Time 工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是
17、进行并行编程的首选。 LabVIEW 的概念与 C 和 BASIC 一样,LabVIEW也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而 La
18、bVIEW则采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是 LabVIEW的程序模块。LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在 LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。LabVIEW广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW 集成了与满足 GPIB、VXI、RS-232 和 RS
19、-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX 等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。利用 LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。 1.2.2 STC89C51单片机与PC机串口通讯技术随着计算机技术发展,特别是单片机技术的发展,在各种单片机应用系统的设计中,如智能仪器仪表、各类手持设备、GPS接收器等,常
20、常遇到计算机与外界的信息交换,即通讯。串行通信是指按照逐位顺序传递数据的通信方式,由于仅需三根传输线传送信息且通信距离相对较远,所以在控制领域的现场监测、分布控制等场合有着重要的应用价值8。鉴于PC机具有强大的监控和管理功能,单片机则具有快速以及容易控制的特点,在数据量不大、传输要求不高的情况下,一般都采用给PC机配置的RS-232标准串行接口COM1、COM2等相连接来实现应用系统与PC机之间的数据交换。将PC串行接口与经过转换的符合RS-232电气标准的单片机串行接口连接即可实现二者之间的异步串行通信。单片机串行接口有一个全双工串行接口,采用TTL逻辑电平,经过MAX-232芯片可方便地转
21、换成RS-232电气标准。Labview软件中提供的VISA控件串口具有完善的串口数据的发送和接收功能。通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。2 设计方案的论证本章主要介绍几种设计方案,再通过比较和论证,最终,选出本设计的最佳方案。2.1 整体方案的论证方案一:在单片机方面,采用软件模拟温度采集信号,通过RS232串口与PC机通信;在PC机方面,采用Excel表格文件的形式储存数据,并从Excel表格中读取历史数据。其原理如图2.1所示。此方案硬件电路结构简单,但温度数据不真实,且数据保存方面对软件编程要求较高,编程繁琐,且需要购买LabVIEW
22、相应的Microsoft的功能模块,成本较高。故不采用此方案。 图2.1 方案一原理框图 方案二:在单片机方面,依旧采用软件模拟温度采集信号,通过RS232串口与PC机通信;在PC机方面,建立一个数据库,LabVIEW利用DataBase功能模块与数据库连接。并且历史数据查询模块能够从数据库中读取数据。其原理如图2.2所示。此方案硬件电路简单,但温度数据不真实,且需要建立和调用数据库,方法繁琐。另外,需要购买LabVIEW相应的DataBase功能模块,成本较高。故不采用此方案。图2.2 方案二原理框图方案三:在单片机方面,采用DS18b20温度传感器采集温度信号,送入单片机,再通过RS232
23、串口与PC机通信;在PC机方面,将温度数据保存在系列二进制文件中,并且历史数据查询模块能从二进制文件中读取数据。其原理如图2.3所示。此方案需增加温度传感器部分硬件电路,温度数据真实可靠。在数据保存方面,数据保存至二进制文件中编程简单,方法简便,且不需要购买LabVIEW其他功能模块,成本低。经实验测试表明,系统工作稳定。故本设计采用之。 图2.3 方案三原理框图 2.2单片机与PC机通信方案的论证方案:单片机与PC机通信采用RS232模式,利用单片机的串口,经MAX232实现电平转换,直接与PC机串口通信。电路简单,通信协议简单。故采用之。3 系统硬件电路的设计本章主要介绍系统的硬件电路部分
24、的设计,主要完成数据采集功能以及与PC机串口通信功能。主要包括:单片机主控电路、DS18b20温度传感器温度采集电路、单片机与PC机串口通信电路。 3.1 单片机控制电路本设计是采用STC89C51单片机作为系统的控制芯片,用来控制和处理系统各个部分的协调工作,是本设计的一个核心部分。 3.1.1 STC89C51功能特性的描述 STC89C51单片机是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器。STC89C51单片机具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中
25、断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。STC98C51单片机应用电路如图3.1所示。图3.1 STC89C51最小系统工作电路3.1.2 电路的分析说明STC89S51单片机工作电路图如图3.1所示。下面对图3.1进行简单的分析说明:第40脚为芯片电源脚(VCC),本设计是在5V的直流电源下工作;第20脚为地脚(GND)。第31脚是EA/Vpp脚。片内,片外程序存储器选择端。为高电平时,单片机复位后访问片内程序存储器的
26、程序,当程序计数PC的值超过8K时,会自动访问片外程序存储器的程序。本设计将次脚与电源相接,从片内开始访问。第9脚为复位脚,RST复位信号输入高电平有效。至少要两个机器周期以上的高电平才能将单片机复位,一般在设计时要保证有10ms的高电平。本设计中采用了10pF的电容和1K的电阻组成了复位电路如图3.1所示。利用RC充电/放电原理,充电初电容视为短路,RET脚为高电平,充电完毕电容视为断路,RET脚低电平。本设计可以使单片机正确复位。第18脚,19脚为晶振脚,18脚为振荡输入,19脚为振荡输出。图3.1所示,C1、C2、XTAL为晶振的外围电路与18,19脚相接通构成了单片机的时钟电路(即是自
27、激振荡器)。其中XTAL为石英晶振,本设计采用11.0592MHz;C1、C2为电容,本设计采用30PF,在振荡电路中起微调作用。第10脚,11脚分别为串行输入、输出端口,在本设计中用来实现单片机与计算机串行通信的端口。P3.6口(16脚)在本设计中是用来读取DS18b20的温度信号,连接DS18b20的DQ口。单片机要正常工作,时钟电路、复位电路、电源、地和程序存储器选择脚都必须要设计好,缺一不可。3.2 单片机与PC机串行通信的设计在本设计单片机应用系统中,数据通信主要采用异步串行通信方式。在设计通信接口时,必须根据需要选择标准接口,并考虑传输介质、电平转换等问题。本设计采用专用串行接口芯
28、片MAX232进行电平转换,实现STC89S52单片机和PC机采用RS-232协议,利用串口与PC进行通信。具体工作原理图如图3.2所示。图3.2 串口通信原理图3.2.1 RS-232接口的介绍RS-232是美国电子工业协会(EIA)1969年公布的10,是在异步串行通信中应用最广的总线标准。它包括了按位串行传输的电器和机械方面的规定,适合于短距离或带调制解调器的通信场合。为了提高数据传输率和通信距离,EIA又公布了RS-422和RE-485串行总线接口标准。RS-232是目前最常见的串行接口标准,用来实现计算机与计算机之间、计算机与外设之间的数据通信。RS-232串行接口总线使用于之间的通
29、信距离不大于15m,传输速率最高位19.2kb/s的场合。RS-232属单端信号发送,存在共地噪音和不能抑制的共模干扰等问题,因此一般用于短距离通信。RS-232引脚及功能说明:TXD(pin 3):串口数据输出RXD(pin 2):串口数据输入RTS(pin 7):发送数据请求CTS(pin 8):清除发送DSR(pin 6):数据发送就绪DCD(pin 1):数据载波检测DTR(pin 4):数据终端就绪GND(pin 5):地线RI(pin 9):铃声指示对于TxD和RxD上的数据信号,采用负逻辑。用-3-25V(通常为-3-15V)表示逻辑“1”,用+3+25V(通常为+3+15V)表
30、示逻辑“0”。对于DTR,DSR,RTS,CTS,CD等控制信号,规定:-3-25V表示信号无效,即断开(OFF),+3+25V表示信号有效,即接通(ON)显然,采用RS 232C标准电平与计算机连接时,它与计算机采用的TTL电平不兼容。TTL是标准正逻辑,用5V表示逻辑“1”,用0V表示逻辑“0”。因此,RS 232C的EIA电平与CPU的TTL电平连接时,必须进行电平转换。3.2.2 MAX232芯片介绍电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简
31、单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如附件图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接即能很方便地是实现PC机与单片机的通信。3.3 DS18b20温度采集模块的设计在本设计单片机应用系统中,温度数据来源于DS18b20温度传感器采集所得。在设计温度采集电路时,必须注意DS18b20传感器的电路接法与工作方式的选择。本设计采用的是DS18b20的默认工作方式,数据线接在单片机的P3.6口
32、。具体工作原理图如图3.3所示。 图3.3 温度采集原理图3.31 DS18b20传感器简介温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。DS18B20的主要特征:全数字温度转换及输出;先进的单总线数据通信;最高12位分辨率,精度可达土0.5摄氏度; 12位分辨率时的最大工作周期为750毫秒;可选择寄生工作方式;检测温度范围为55°C +125°C (67°F +257°F);内置EEPROM
33、,限温报警功能。DS18B20芯片封装结构:DS18B20引脚功能:·GND 电压地 ·DQ 单数据总线 ·VDD 电源电压 ·NC 空引脚DS18B20工作原理及应用:DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以
34、上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和
35、校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。 4 软件程序的设计本章主要介绍软件电路的设计,主要包括:单片机与PC机通信、PC机的显示界面。单片机部分用C语言编程实现,PC机部分用LabVIEW软件的G语言编写实现。4.1单片机与PC 机通信程序的设计 单片机主程序主要用来实现温度采集功能,以及实现与PC机的串行通信,具体工作流程如图4.1所示。图4.1 单片机主程序流程图串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。本设计采用
36、4800波特率,8位数据位,无校验位,1位停止位的串口通信方式。4.11波特率的选择波特率(Boud Rate)就是在串口通信中每秒能够发送的位数(bits/second)。单片机串行端口在四种工作模式下有不同的波特率计算方法。其中,模式0和模式2波特率计算很简单,模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。在此模式下波特率计算公式为:波特率=(1+SMOD)*晶振频率/(384*(256-TH1), 其中,SMOD寄存器PCON的第7位,称为
37、波特率倍增位。TH1定时器的重载值。在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。因此,在通信中,最好选用波特率为1200,2400,4800中的一个,本设计选的是4800。下面是部分程序,可以看到单片机的工作模式和波特率的选择。TMOD=0x20;/model 2,T1TH1=0xfa;/baud rate is 4800,11.0592HZTL1=0xfa;4.12 通信协议的使用通信协议是
38、通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。在本设计中,我们约定只要上位机发送0x11至单片机,单片机就源源不断的通过串口发送温度数据。串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:1)、确定T1的工作方式(编程TMOD寄存器)。2)、计算T1的初值,装载TH1、TL1。3)、启动T1(编程TCON中的TR1位)。4)、确定串行口控制(编程SCON寄存器)。部分初始化程序(产生波特率,串行口控制):TMOD=0x20;/model 2,T1TH1=0xfa;/baud rate i
39、s 4800,11.0592HZTL1=0xfa;/TCON=0x40;/start T1SCON=0x50;/receive permissionPCON=0x00;SBUF=' '/IE=0x99;/enable EA,ES,ET1,EX0 ES=1; EA=1;TR1=1;中断控制程序:void s_int(void) interrupt 4 /单片机串口中断 RI=0; /清中断标志 ES=0; cpubbs_pc_command=SBUF;/将接收到的PC机指令存入pc_command变量中 ES=1;4.13 温度信号的处理读取温度程序:uint ReadTempe
40、rature(void)/读取温度unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存 a=ReadOneChar(); 器) 前两个就是温度b=ReadOneChar();t=b;t<<=8;t
41、=t|a;tt=t*0.0625;return(t);温度格式转换程序:void data_convert(uint data_to_convert)/把数据折开成四字节,为了方便发送data_conver0=(uchar)(data_to_convert&0xf000)>>12);data_conver1=(uchar)(data_to_convert&0x0f00)>>8);data_conver2=(uchar)(data_to_convert&0x00f0)>>4);data_conver3=(uchar)(data_to_c
42、onvert&0x000f);负温度的判断程序:if(data_conver0)/判断是不是负温度cpubbs_temp_data=data_conver0;/为了在下面的转换中不至于数据丢失cpubbs_temp=cpubbs_temp+1;/是的话进行按位取反再加1,这是这种温度转换芯片的计算温度的方法data_convert(cpubbs_temp);/判断是的话之后然后再进行一次转换data_conver0=cpubbs_temp_data;/符号位仍然放回去原来的地方,给计算机识别是负温度还是正温度4.2 PC机LabVIEW程序设计在本设计中,上位机的LabVIEW编程主要
43、实现串口通信、数据显示、数据保存等功能。图4.2 欢迎界面 图4.3 上位机界面菜单选项 图4.4 退出界面4.2.1 LabVIEW串口通信程序的设计本程序将实现在PC机上按下“开始采集”按钮,将发送数据“0x11”到单片机,单片机接收到数据后,根据通信协议,取相应的温度波形数据,再发送给PC机,PC机接收数据后,再在LabVIEW界面上用波形显示出来。在LabVIEW中有一个名为Visual Instrument Software Architecture(简称VISA)的通讯控件。我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。1、 VISA控件的主要属性和结
44、构特点VISA就是虚拟仪器软件架构,VISA是对包含GPIB、VXI、PXI、串口(RS232/485)、以太网、USB和IEEE 1394接口的仪器系统进行配置、编程和故障排除的标准。 (1)VISA的结构特点 正式VISA在结构模型中采用了金字塔式,因此使得虚拟仪器对不同厂家生产的仪器有良好的兼容性。另外VISA给用户列出了丰富的函数,用户只需轻松的调用这些函数,就能很好的对串口接口的控制。另外,VISA生成的驱动程序,很好的在其他计算机或微处理系统中应用,具有良好的通用性。最后,用户设计的VISA程序和使用环境无关,能在MAC、Linux等系统应用,只需做很小的修改即可。 (2)VISA
45、编程用到的函数VISA中常有函数有VISA配置串口函数、VISA写入函数、VISA设置I/O缓冲区大小函数、VISA读取函数、VISA关闭函数等,常有VISA的流程方式是:开始打开设备资源,之后向设备中写相关命令,随后,在设备缓存中读取数值,最后控制关闭设备资源。在本系统中主要利用了以上函数,下面对这些函数作简单介绍。图4.5 VISA配置串口函数 图4.6 VISA写入函数 图4.7 VISA设置I/O缓冲区大小函数 图4.8 VISA读取函数图4.9 VISA关闭函数二、串口通信程序图4.10 串口通讯程序1图4.11 串口通讯程序2图4.12 串口通讯界面4.2.2 LabVIEW波形显
46、示程序的设计 1、 LabVIEW温度波形显示控件1.波形图 图4.13 波形图标控件2.警示灯 图4.14 警示灯控件3. 数据表格显示图4.15 数据表格控件2、 波形显示界面图4.16 界面一图4.16 界面二3、 波形显示程序 图4.17 显示程序图4.2.3 LabVIEW数据储存程序设计1、 数据储存函数图4.18 读取测量函数 图4.19 创建表格函数2、 数据储存界面图4.20 储存界面3、 数据储存程序图4.21 储存程序结 论本文设计了基于LabVIEW的恒温水域温度管理系统的界面设计,其主要包括单片机与PC机串口通信设计以及PC机界面设计。本设计的重点是实现PC机于单片机
47、通信,通过自学LabVIEW语言来实现单片机与PC机的通讯,并做一个人机界面;难点是实现PC与单片机串口通信以及温度数据的储存。在设计过程中,本人严格要求自己力争高效率地完成本设计。通过一段时间的LabVIEW语言的学习,掌握了LabVIEW的基本编程思路,以及一些重要控件和函数的应用。最终完成了单片机与PC机的串口通信,并用LabVIEW语言做了一个实现数据波形的人机界面。遗憾的是,由于时间的有限,个人知识水平的有限,对串口通信知识没有足够的了解,因此,单片机与PC的通信部分完成得较缓慢。由于本人之前没有接触过LabVIEW语言,所以在本次设计中,也遇到了很多的问题。做PC界面时,要实现串口
48、通讯需要用到VISA串口通讯控件,但是,本人安装的精简版的LabVIEW8.5软件却无法找到VISA控件,经过在网络上的寻找,终于找到了免费的VISA模块。在界面设计完之后,运行时却老是出错误,经过反复的检查和网络收索才解决,VISA控件的一些属性的设计非常重要。其次,设计中遇到的最严重的问题是PC机显示的波形失真,总有温度数据突变到很高(常温下100多度)或很低(常温下0下几度)。反复查证不是硬件的问题,串口通信程序也没有错,百思不得其解。后来经过多方咨询及帮助,知道了是波特率的缘故。本人将波特率设定过高(9600),数据采集太快,数据容易出现偏差。后来将波特率调低(4800),波形数据显示
49、正常。总而言之,通过本设计,我的专业技术有了较大的提高,对理论知识有了更深的理解,动手技术得到了锻炼,特别是学习了一门编程语言,为以后的专业学习积累了宝贵的经验与方法。参考文献1 阮奇桢.我和LabVIEW:一个NI工程师的十年编程经验M. 北京:航空航天大学出版社, 2009: 20-23. 2 刘章发、衣法臻. LabVIEW编程样式M. 北京:电子工业出版社, 2009:45-483 王志宏. 单片机与PC机串口通信J. 现代电子技术, 2000, (12):68-69.4 李存志. 单片机与PC机串行通讯的实现与应用J. 中国高新技术企业,2007,(11):36-45.5 白云、高育
50、鹏、胡小江. 21高等学校信息工程类专业规划教材基于LabVIEW的数据采集与处理技术M. 西安:西安电子科技大学出版社,2009:32-35.6 胥保春. 单片机AT89C51与PC机的串行通信J.大众科技, 2005, (8):1108-1151.7 李华. 单片机通用接口技术M. 北京:北京航空航天大学出版社, 1999: 32-34.8 郭成林. AT89系列单片机与PC机之间的串行通信接口设计J. 山西电子技术, 2008, (01):31-36.9 王兆宇,王巍,袁贛南.串口的调试和软件实现J. 森林工程,2003, 19(1): 61-64.附录 部分程序清单1、 LabVIEW
51、部分主程序二、单片机部分主程序#include <AT89X55.H>#include <stdio.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ =P36; /定义通信端口/pc机通知下位机发数据的标指令uchar cpubbs_pc_command;/只要PC有发过来0x11过来就算是 告诉单片机启动发送指令uchar data_conver4; /定义变量数组,用于存放转换完成后的数据unsigned int cpubbs_temp;/保
52、存临时温度值void delay(unsigned int i)/延时函数while(i-);void Init_DS18B20(void)/初始化函数unsigned char x=0;DQ = 1; /DQ复位delay(8); /稍做延时DQ = 0; /单片机将DQ拉低delay(80); /精确延时 大于 480usDQ = 1; /拉高总线delay(14);x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);uchar ReadOneChar(void)/读一个字节unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0; / 给脉冲信号dat>>=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;delay(4);return(dat);void WriteOneChar(unsigned char dat)/写一个字节unsigned char i;for (i=8; i>0; i-)DQ = 0;DQ = dat&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度黑龙江省高校教师资格证之高等教育法规押题练习试题B卷含答案
- 消防设施操作员综合复习试题及答案
- 语文学习的历史与未来发展趋势试题及答案
- 柑橘栽培新技术培训经典
- 新课标汇报课件模板范文
- 教育帮扶课件模板范文
- 2025年住宅房屋买卖协议标准版
- 精炼技巧:CPSM考试试题及答案
- 江苏省高邮市2024-2025学年高三下学期第一次联考数学试题含答案
- 2025年度模特经纪公司艺人合约管理与培训协议
- 毕业设计振动筛式花生收获机
- 大数据可视化知到章节答案智慧树2023年浙江大学
- 2023年(第九届)全国大学生统计建模大赛 论文模板及说明
- 大学成绩单(大专)
- 龋病的治疗 深龋的治疗
- 微山湖风景区进行旅游项目策划方案
- JJF 1367-2012烘干法水分测定仪型式评价大纲
- 医院麻醉药品、精神药品考试试题及答案
- GB/T 31586.1-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第1部分:拉开法试验
- GB/T 18337.3-2001生态公益林建设技术规程
- 增量房交易税收申报表
评论
0/150
提交评论