单片机课报告程设计-温度数据无线传输和实时监控系统.doc_第1页
单片机课报告程设计-温度数据无线传输和实时监控系统.doc_第2页
单片机课报告程设计-温度数据无线传输和实时监控系统.doc_第3页
单片机课报告程设计-温度数据无线传输和实时监控系统.doc_第4页
单片机课报告程设计-温度数据无线传输和实时监控系统.doc_第5页
已阅读5页,还剩45页未读, 继续免费阅读

下载本文档

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

文档简介

温度数据无线传输和实时监控系统 单片机课程设计报告题目:温度数据无线传输和实时监控系统专业班级:自动化0704班完成时间: 2010年7月7日目录1.绪论32.设计思想和目的33.整体电路设计方框图44.单元模块设计44.1 51单片机44.2 LED实时显示电路44.3 DS18B20温度采集单元54.3.1 DS18B20的原理54.3.2 DS18B20 应用问题64.4 nRF905无线收发模块74.4.1 nRF905原理74.4.2 发送模块104.4.3 接收模块114.5 上位机模块114.5.1串口连接114.5.2上位机数据处理115.系统软件设计125.1 DS18B20温度采集流程125.2 nRF905收发模块的控制135.2.1 初始化的配置135.2.2发送模块流程图145.2.3 接收模块流程图175.3 上位机模块185.3.1串口控制185.3.2显示界面186.调试过程、问题处理和结论257.参考文献278.设计心得体会289.致谢32附录33附录1 系统实物图33附录2 程序清单34温度数据的无线传输和实时监控系统摘要: 无线通信在野外机动设备或人们不方便到达现场的地方得到了越来越广泛的应用,如高空或边远地区的无人气象探测、交通运输管理、野战军事装备、野外无人值守的采油井等都是其典型应用。本次设计由廉价单片机51(实验室制作)、DS18B20数字温度传感器和一对NRF905无线数据传输模块组成的温度数据无线传输系统,再将接收单片机与上位机PC通过串口RS232相连,将数据发给上位机,上位机使用VB编写的应用程序来处理这些数据,同时将温度数据显示在上位机屏幕上供用户察看,这样构成一个温度实时监控系统。它具有功率低、误码率低、工作稳定等一系列优点。若将数据采集部分稍加改进,构成一点对多点双向数据传输通道,便可广泛应用于环境监测、无线抄表等领域中,具有很好的推广价值。关键词: 无线传输 温度数据 实时监控 上位机 VB 曲线图 1. 绪论无线通信在野外机动设备或人们不方便到达现场的地方得到了越来越广泛的应用,如高空或边远地区的无人气象探测、交通运输管理、野战军事装备、野外无人值守的采油井等都是其典型应用。其中的微功率短距离无线通信技术,近几年来更得到了迅速发展。有很多厂商推出了各种专用的单芯片射频收发器,再加上微控制器和少量外围器件就可以构成专用或通用的无线通信模块。通常射频芯片采用GFSK(高斯频移键控)调制方式,工作于ISM(工业、科学和医疗)频段,通信模块包含简单透明的数据传输协议或使用简单的加密协议,这样,用户不必对无线通性原理和工作机制有较深的了解,只要依据命令字进行操作即可实现基本的数据无线传输功能。因为无线通信模块具有功率小,开发简单快速的优点,从而在工业和民用等领域得到了广泛应用。本次设计由廉价单片机51(西安科技大学电控学院科技创新实验室制作)、DS18B20数字温度传感器和一对nRF905无线数据传输模块组成的温度数据无线传输系统,再将接收单片机与上位机PC通过串口RS232相连,将数据发给上位机,上位机使用VB编写的应用程序来处理这些数据,同时将温度数据显示和曲线图在上位机屏幕上供用户察看,这样构成一个温度实时监控系统。nRF905无线数据传输模块,它具有功率低、误码率低、工作稳定等一系列优点。若将数据采集部分稍加改进,构成一点对多点双向数据传输通道,便可广泛应用于环境监测、无线抄表等领域中,具有很好的推广价值。2. 设计思想和目的1系统的总体设计思想和目的:(1)系统能够对所传输的温度数据进行自动采集、测量、格式转换、现场实时显示和无线传输。(2)通过LED 数码管实时在现场显示。(3)通过串口RS232和上位机PC机相连,将无线接收到的数据上传给上位机,在上位机上通过数据处理,形成温度数据实时报表,绘制温度实时曲线,同时将温度数据存储起来,以便查询。(4)能够实现一定距离内的数据无线传输2基于以上的想法和目的,所设计的系统应该具有以下几个模块(1)温度传感器单元(2)实时温度显示单元(3)温度数据发送单元(4)温度数据接收单元(5)串口通信和上位机监控单元3按照以上的模块进行设计。3. 整体电路设计方框图按照上述的思想,整体的设计方框图如下:DS18B20单片机1数传模块数传模块单片机2PC实时显示模块VB编程显示界面图1 系统整体设计电路方框图图1 中的DS18B20是DALLAS 公司的数字温度传感器,将它测量的温度数据直接通过单总线通讯系统传到单片机1中,再由单片机通过SPI通信传给nRF905无线数据传输模块,数据经调制后被发送出去。与之对应的另外一套nRF905无线数据传输模块接收到信号后,将经过解调得到环境温度的数据传给单片机2,该单片机通过串口将数据再上传给上位机,最后经过数据处理,将处理后的温度数据连同日期,时间和采集点等相关的信息被自动保存并实时显示在电脑屏幕上,同时绘制出温度数据的实时曲线图。4. 单元模块设计4.1 51单片机在以前的电子实训时,我们自己动手焊接了51板,可以说是单片机的一个广义的最小系统,我们对他的基本原理都比较了解,此次设计就是利用其4个I/O 口来进行扩展。对于其原理,此处不做详细说明。本次的设计系统中有无线数据收发两个模块用到了两个由西安科技大学电控学院科技创新实验室制作的51单片机,以及其电池盒。4.2 LED实时显示电路在DS18B20温度采集单元将温度采集并读到数据发送单元的控制单片机1里,在数据发送的过程中,同时在本地实时显示当前的温度值,以便于采取一定的相应措施(考虑到工程应用中的实际情况)。这个单元比较简单,是利用P0口的8位输出端和P2口的部分输出端来驱动4个共阳的数码管以此来显示温度,显示百位,十位,个位和小数位,还有小数点。设计时,用4个PNP三极管和4个1K电阻组成4个数码管的段选驱动电路,然后P0口的8个端口和abcdefgh相连,用来驱动各个代码段显示相应的数字。P2口的高四位经过三极管基极和1K电阻相连组成的驱动电路和ABCD相连,4个PNP三极管的发射极都接到+5v,集电极分别与ABCD四个端子相连。4.3 DS18B20温度采集单元4.3.1 DS18B20的原理1.DS18B20是DALLAS半导体公司推出的单总线数字测温IC芯片,仅需一根数据线即可实现与未处理器之间的通信。每个DS18B20在出厂时都有一个唯一的64位的光刻序列号,可支持多节点测温,使设计大为简化;测温时无须任何外部元件,测温范围是55+125,温度测量数据在10+85范围内,测温精度为0.5。其接线简单,可采用直接供电或寄生供电方式;分辨率较高;但对时序的要求非常严格。DS18B20通过数据线实现寄生供电,从而省掉了外部电源。每个DS18B20都具有一个唯一的64位器件识别码,这样可使多个DS18B20挂在同一条单总线系统上,并由一个微处理来控制这些分布在一个较大区域内的很多DS18B20。以此,它可用于诸如才暖风通风空调环境控制系统,建筑物内部、设备或机器的温度监测系统以及过程。它系统内部自带A/D转换器,通过内部的温度采集、A/D转换一系列过程,最后将温度以规定的模式转换为16位数据并输出,用户可以通过一些简单的算法,将数据还原为温度值。关于初始化和ROM命令功能的作用:1、启动温度转换命令(Convert T) 该命令启动一次温度转换,随后转换结果被存入中间结果暂存器的两个字节温度寄存器中,然后DS18B20又返回到其低功耗的休闲状态。如果DS18B20是由外部供电,那么主机就可以在该命令之后进入读时隙,DS18B20能根据转换完成与否做出反应,若转换尚在进行之中则给主机发0,若转换已完成则发1。但是,在寄生供电模式则无此功能,因为此时总线被强制拉高。2、读中间结果暂存器命令(Read Scratchpad)该命令让主机读出DS18B20中间结果暂存器内的9个字节,由最低字节(即字节0)开始一直读到第9字节(即字节8,也就是CRC校验位)。如果只需要部分数据,则主机可在读取过程中的任何时间发初始化命令,使该命令被终止。3、写中间结果暂存器命令(Write Scratchpad)该命令让主机写3个命令到DS18B20,第1个字节被写入TH寄存器(中间结果暂存器的字节2),第2个字节被写入TL(中间结果暂存器的字节3),第3个字节被写入配置寄存器(中间结果暂存器的字节4)。发送时字节数据的最低位先发。4、复制中间结果暂存器命令(Copy Scratchpad)复制中间结果暂存器的TH、TL和配置寄存器数据(字节2,3和4)到EEPROM。若采用寄生供电方式,则主机在发出命令之后最长10us内必须使总线至少保持10ms的高电平状态。5、回传EEPROM内容命令(Recall E2) 该命令执行由EEPROM回传TH,TL和配置寄存器数据到中间结果暂存器的第2,3,4字节。跟随Recall E2命令之后,主机进入读时隙。与启动温度转换命令类似,DS18B20也能根据回传完成与否做出反应,若回传尚在进行之中则给主机发0,若回传已完成则发1 DS18B20在上电时会自动进行回传EEPROM内容的操作,以便器件在通电之后使中间结果暂存器中的数据立即生效。6、读电源类型命令(Read Power Supply)主机在发出该命令后可以紧跟一个读时隙,以便判断在总线上是否有寄生供电的器件。在读时隙期间,寄生供电的DS18B20会拉低总线,外部供电的DS18B20会继续保持总线高电平。图3 DS18B20的两种封装形式2.相关的命令代码指 令 约定代码 操 作 说 明 温度转换 44H 启动DS18B20进行温度转换 读暂存器 BEH 读暂存器9个字节内容 写暂存器 4EH 将数据写入暂存器的TH、TL字节 复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中 重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU4.3.2 DS18B20 应用问题1.DS18B20对时序的要求非常严格2.DS18B20采用一线通信接口。因为一线通信接口,必须先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。在进行温度读出时,一定要按照上面的顺序来写命令。 4.4 nRF905无线收发模块4.4.1 nRF905原理1 nRF905概述nRF905是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9-3.6V,32引脚QFN封装(5mm5mm),工作于433/868/915MHz3个ISM频道(工业,科学和医疗)。nRF905可以自动完成处理字头和CRC(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI(SPI:是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口高速同步串行口,是一种标准的四线同步双向串行总线,)接口与微控制器通信,配置非常方便,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,在接收模式时电流为12.5mA。 nRF905单片无线收发器工作由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器组成。ShockBurst 工作模式的特点是自动产生前导码和CRC,可以很容易通过SPI接口进行编程配置。(2)、工作模式nRF905采用Nordic公司的VLSI ShockBurst 技术。ShockBurst 技术使nRF905能够提供高速的数据传输,而不需要昂贵的高速MCU来进行数据处理/时钟覆盖。通过将与RF协议有关的高速信号处理放到芯片内,nRF905提供给应用的微控制器一个SPI接口,速率由微控制器自己设定的接口速度决定。nRF905通过ShockBurst 工作模式在RF以最大速率进行连接时降低数字应用部分的速度来降低在应用中的平均电流消耗。在ShockBurst RX模式中,地址匹配AM和数据准备就绪DR信号通知MCU一个有效的地址和数据包已经各自接收完成。在ShockBurst TX模式中,nRF905自动产生前导码和CRC校验码,数据准备就绪DR信号通知MCU数据传输已经完成。总之,这意味着降低MCU的存储器需求也就是说降低MCU成本,又同时缩短软件开发时间。图4 nRF905的内部结构1)、典型ShockBurst TX模式:、当应用MCU有遥控数据节点时,接收节点的地址TX-address和有效数据TX-payload通过SPI接口传送给nRF905应用协议或MCU设置接口速度;、MCU设置TRX_CE、TX_EN为高来激活nRF905 ShockBurst 传输;、nRF905 ShockBurst :l 无线系统自动上电l 数据包完成(加前导码和CRC校验码)l 数据包发送(100kbps,GFSK,曼切斯特编码)、如果AUTO_RETRAN被设置为高,nRF905将连续地发送数据包直到TRX_CE被设置为低;、当TRX_CE被设置为低时,nRF905结束数据传输并自动进入standby模式。2)、典型ShockBurst RX模式、通过设置TRX_CE高,TX_EN低来选择ShockBurst 模式;、650us以后,nRF905监测空中的信息;、当nRF905发现和接收频率相同的载波时,载波检测CD被置高;、当nRF905接收到有效的地址时,地址匹配AM被置高;、当nRF905接收到有效的数据包(CRC校验正确)时,nRF905去掉前导码、地址和CRC位,数据准备就绪(DR)被置高;、MCU设置TRX_CE低,进入standby模式低电流模式;、MCU可以以合适的速率通过SPI接口读出有效数据;、当所有的有效数据被读出后,nRF905将AM和DR置低;、nRF905将准备进入ShockBurst RX、ShockBurst TX或Powerdown模式。3)、掉电模式在掉电模式中,nRF905被禁止,电流消耗最小,典型值低于2.5uA。当进入这种模式时,nRF905是不活动的状态。这时候平均电流消耗最小,电池使用寿命最长。在掉电模式中,配置字的内容保持不变。4)、STANDBY模式Standby模式在保持电流消耗最小的同时保证最短的ShockBurst RX、ShockBurst TX的启动时间。当进入这种模式时,一部分晶体振荡器是活动的。电流消耗取决于晶体振荡器频率,如:当频率为4MHZ时,IDD=12uA;当频率为20MHZ 时,IDD=46uA。如果uPCLK(Pin3)被使能,电流消耗将增加。并且取决于负载电容和频率。在此模式中,配置字的内容保持不变。(3)、器件配置nRF905的所有配置都通过SPI接口进行。SPI接口由5个寄存器组成,一条SPI指令用来决定进行什么操作。SPI接口只有在掉电模式和Standby模式是激活的。1)、状态寄存器(Status-Register)寄存器包含数据就绪DR和地址匹配AM状态。2)、RF配置寄存器(RF-Configuration Register)寄存器包含收发器的频率、输出功率等配置信息。3)、发送地址(TX-Address)寄存器包含目标器件地址,字节长度由配置寄存器设置。4)、发送有效数据(TX-Payload)寄存器包含发送的有效ShockBurst 数据包数据,字节长度由配置寄存器设置。5)、接收有效数据(TX-Payload)寄存器包含接收到的有效ShockBurst 数据包数据,字节长度由配置寄存器设置。在寄存器中的有效数据由数据准备就绪DR指示。(4)接口1)、模式控制接口:该接口由 PWR 、TRX_CE、TX_EN组成控制由nRF905组成的高频头的四种工作模式:掉电和 SPI 编程模式;待机和SPI编程模式 ;发射模式;接收模式。2)、SPI接口:SPI 接口由 CSN、SCK、MOSI以及MISO组成。在配置模式下单片机通过SPI接口配置高频头的工作参数;在发射/接收模式下单片机SPI接口发送和接收数据。3)、状态输出接口:提供载波检测输出CD,地址匹配输出AM,数据就绪输出DR。NRF905无线传输的相关内容:传输帧的格式;数据包地址有效数据数据打包”前导码地址有效数据CRC图5 nRF905的发送流程图6 nRF905的接收流程4.4.2 发送模块无线的发送模块由51单片机和一个NRF905模块组成,NRF905的模式控制信号(CEENPWR)、SPI接口信号(SCKMISOMOSICSN)、状态输出信号(ADDR)分别和51单片机的P1口和部分P3口连接,然后对NRF 905进行初始化,配置,数据传输。图5 发射模块的实物接线图4.4.3 接收模块接收模块和发送模块基本上一样,接收模块还有和上位机通过串口相连。4.5 上位机模块4.5.1串口连接用1米的9针串口通信线,将接收机与上位机相连,设置一定的波特率。根据所用上位PC机的串口COM号,设定串口端口号,此次的波特率设置为19200,4.5.2上位机数据处理用VB语言编写一个显示的界面,能够实时显示温度值和时间,并且绘制温度随时间变化的曲线图,还可以利用串口和无线通信的双向性,通过上位机来控制一些东西,如现场的温度报警上下线等,这个上位机的设计还有待于进一步完善。VB应用程序的用户界面如下图:图6 上位机的监控VB界面应用程序窗口主要包括一个MSComm串口通信控件、几个命令按钮和文本框,还有几个标签。5. 系统软件设计5.1 DS18B20温度采集流程访问一个DS18B20必须经过初始化、ROM命令和功能命令这三个步骤,而且缺一不可,否则DS18B20不会想要主机的任何命令。 由于系统中只有一个DS18B20,并且采用外部供电,因此别称比较简单。初始化后,如果DS18B20有应答,就可发出SKIP ROM命令,接着在发CONVENT(44H) 温度转换功能命令启动温度转换,启动转换后,单片机就可通过读时隙来判断温度转换时否结束,DS18B20会,做出响应。我们用的是延时读取。读温度子程序:/读温度数据uint Read_Temp(void) uint temp; uchar data temp_data2=0x00,0x00; reset(); /总线复位delayUs(200);write_byte(0xcc); /发命令write_byte(0x44); /发转换命令reset(); delayUs(1);write_byte(0xcc); /发命令write_byte(0xbe);temp_data0=read_byte(); /读温度值的第字节temp_data1=read_byte(); /读温度值的高字节temp_data1&=0x0f;temp=temp_data1;temp=4; dis_buf0=tx/100; dis_buf1=(tx%100)/10; dis_buf2=(tx%100)%10;5.2 nRF905收发模块的控制5.2.1 初始化的配置NRF905内部的SPI接口有5个寄存器分布是状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器。只有适当的配置,它才能正常工作。我们的系统中的配置为:频段433.2MHZ 输出功率是10dBm,不重发,节电为正常模式,发送地址为4字节(0 xE7, 0 xE7, 0 xE7, 0 xE7) 发送的有效数据长度为4字节,允许CRC校验。配置相关程序:49unsigned char idata RFConf11= 0x00, 0x6C, 0x0C, 0x44, 0x04,0x04, 0xE7,0xE7,0xE7,0xE7, 0xDE,void Ini_System(void) uchar i; CSN=1; SCK=0; PWR=1; TRX_CE=0; TXEN=0; _nop_(); CSN=0; for(i=0;i11;i+) SpiWrite(RFConfi); 5.2.2发送模块流程图发送模块包含两部分:(1)温度实时显示(2)温度数据的无线发送图7 发送流程(1) 温度实时显示子函数void Display_Temperature() uchar bai,shi,ge,qian; P23=1; P0=tabledis_buf3; /显示小数 Delay(5); /延时约2ms P23=0; P22=1; P0=table1dis_buf2; /显示个位 Delay(3); P22=0; P21=1; P0=tabledis_buf1; /显示十位 Delay(3); P21=0; P20=1; P0=tabledis_buf0; /显示百位 Delay(3); P20=0; (2)温度数据的无线发送/发送子程序void TxPacket(void) Display_Temperature(); TXEN=1; CSN=0; SpiWrite(0x22); /写发送地址 SpiWrite(0xE7); SpiWrite(0xE7); SpiWrite(0xE7); SpiWrite(0xE7); CSN=1; _nop_();_nop_();Display_Temperature(); CSN=0; SpiWrite(0x20); /写发送数据命令 SpiWrite(dis_buf0); SpiWrite(dis_buf1); SpiWrite(dis_buf2); SpiWrite(dis_buf3); CSN=1; _nop_();_nop_();Display_Temperature(); TRX_CE=1; Delay(50); TRX_CE=0; while(!DR); LED1=0; Display_Temperature(); 。 /发送完成LED亮一秒 LED1=1;(3)发送模块的主函数void main(void) DelayMs(100); LED1=0; DelayMs(1000); LED1=1; Do_Temp(); LED2=0; DelayMs(1000); LED2=1; Ini_System(); while(1) uint i; Do_Temp(); Display_Temperature(); TxPacket(); for(i=0;i200;i+) /2秒定时发送数据 DelayMs(10); Display_Temperature(); 5.2.3 接收模块流程图图8 接收流程接收部分子函数:void Wait_Rec_Packet(void) TXEN=0; TRX_CE=1; while(1) if(DR) TRX_CE=0; CSN=0; SpiWrite(0x24); RxPacket(); CSN=1; LED2=0; DelayMs(200); LED2=1; break; 5.3 上位机模块5.3.1串口控制With MSComm1 .CommPort = 6 .Settings = 19200,N,8,1 .InputMode = comInputModeBinary .InBufferSize = 4096 .InBufferCount = 0 .RThreshold = 1 On Error Resume Next Err.Clear End With5.3.2显示界面应用程序窗口主要包括一个MSComm串口通信控件和一个MSCchart绘图控件,还有一些命令按钮和文本框和标签,文本框用来显示日期、时间、温度和个数。具体的部分见下图:图9 上位机应用程序窗口布局图10 上位机应用程序界面程序主要包括,命令按钮的处理程序、窗口的载入和退出以及串口通信中断处理函数MSComm1_OnComm()。在窗口载入时,首先设置MSComm控件的一些相关属性,其中最重要的的是设置.RThreshold = 1,这样,当接收缓冲区收到每一个字符时都会使MSComm 控件产生OnComm()事件。函数MSComm1_OnComm()用来处理OnComm()事件,当串口通信中断时(驱动事件发送时),该函数检查.CommEvent属性的值,程序片段如下:Select Case MSComm1.CommEvent Case comEvReceive MSComm1.RThreshold = 0 n = MSComm1.InBufferCount ReDim RB(n) rvar = RB MSComm1.InputLen = n rvar = MSComm1.Input RB = rvar如果.CommEvent属性返回值为comEvReceive,则说明发送了驱动事件,收到.RThreshold个字节,程序将输入缓冲区收到的数据保存到字节数据类型数组中。接着是温度数据的处理:结合日期和时间显示在文本框中Text2.Text = Text2.Text & sbuf & vbCrLf绘制曲线图写数据到文本文件存储:Open App.Path & 温度数据无线传输和实时监控系统数据记录.txt For Append As #1 Print #1, + CStr(Madate) + + CStr(Time) + + Left(ss, 3) + . + Right(ss, 1) + 度 Close #1完整的用VB语言程序:Dim MyData(60, 1) As VariantDim DataT(60, 1) As VariantDim intC As IntegerDim dblStep As DoubleDim w As IntegerPrivate Sub Form_Load() MsgBox 欢迎进入温度数据无线传输和实时监控系统! With MSComm1 .CommPort = 6 .Settings = 19200,N,8,1 .InputMode = comInputModeBinary .InBufferSize = 4096 .InBufferCount = 0 .RThreshold = 1 On Error Resume Next Err.Clear End With Timer2.Enabled = True Label16.Caption = 开始测量时间: . Label17.Caption = 停止测量时间: . Label18.Caption = 持续时间: . Command2.Enabled = True Open App.Path & 温度数据无线传输和实时监控系统数据记录.txt For Append As #1 Print #1, Print #1, 温度数据无线传输和实时监控系统数据记录.txt Print #1, & Date$ & 高阳东 王超 张兴- Print #1, Print #1, & 日期 & & 时间 & & 温度 Close #1 Label23.Visible = False Label23.Enabled = False Label23.ForeColor = &HC0C0C0 w = 0 Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = Text6.Text = Text7.Text = Text8.Text = Text9.Text = Text10.Text = Text11.Text = Text11.Text = Text12.Text = Text13.Text = Text14.Text = Text15.Text = Text16.Text = 欢迎来到这里! With MSComm1 On Error Resume Next Err.Clear End With Dim I As Integer -x轴坐标值-Y轴坐标值- For I = 0 To 36 MyData(I, 0) = I MyData(I, 1) = 0 Next I 波形图外观设置 With MSChart1 .TitleText = 实时温度 设置图线的外观 .Plot.SeriesCollection(1).Pen.Width = 35 .Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid 设置XY轴 .Plot.Axis(VtChAxisIdX).ValueScale.Auto = False .Plot.Axis(VtChAxisIdY).ValueScale.Auto = False / 设置最大值 .Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 36 .Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 40 / 设置最小值 .Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 20 .Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0 / .Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 36 X轴主要网格数量 .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 20 Y轴主要网格数量 .Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 X轴次要网格数量 .Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 Y轴次要网格数量 .Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted .Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDotted MSChart1.Plot.AutoLayout = False MSChart1.Plot.UniformAxis = False MSChart1.chartType = VtChChartType2dXY 设置图形为二维散点图 MSChart1.ChartData = MyData 数据 End WithEnd SubPrivate Sub Command1_Click() With MSComm1 If .PortOpen = False Then .PortOpen = True t1 = Time$ Label16.Caption = 开始测量时间: & t1 Command1.Caption = 停止 If Err Then MsgBox 串口通信无效 Exit Sub End If Else Timer1.Enabled = False Command1.Caption = 重新开始 t2 = Time$ Label17.Caption = 停止测量时间: & t2 t_d = DateDiff(S, t1, t2) Label18.Caption = 持续时间: & CStr(t_d) & 秒 Command1.Caption = 接收 Label23.Enabled = True Label23.ForeColor = vbRed MsgBox 温度数据记录成功储存! .PortOpen = False End If End With End SubPrivate Sub Command2_Click() With MSComm1 If .PortOpen = True Then .PortOpen = False End If End With End End SubPrivate Sub Command3_Click() If MSComm1.PortOpen = False Then Command3.Caption = 关闭串口 Shape1.FillColor = vbRed Label26.Caption = COM & Text4.Text & is open! Label26.ForeColor = vbRed Else MSComm1.PortOpen = False Command3.Caption = 打开串口 Shape1.FillColor = &HFFFFFF Label26.Caption = No port is open! Label26.ForeColor = vbBlack End IfEnd SubPrivate Sub Label23_Click()Shell notepad.exe 温度数据无线传输和实时监控系统数据记录.txt, vbNormalFocusLabel23.Visible = TrueLabel23.Enabled = FalseLabel23.ForeColor = vbRedEnd Sub Private Sub MSComm1_OnComm() Dim RB() As Byte Dim ss As String Dim sbuf As String Dim n As Integer Dim Madate w = w + 1 Text3.Text = CStr(w) Select Case MSComm1.CommEvent Case comEvReceive MSComm1.RThreshold = 0 n = MSComm1.InBufferCount ReDim RB(n) rvar = RB MSComm1.InputLen = n rvar = MSComm1.Input RB = rvar For I = 0 To n - 1 sbuf = Hex(RB(I) ss = ss + sbuf Next I sbuf = Madate = Date sbuf = + CStr(Madate) + + CStr(Time) + + Left(ss, 3) + . + Right(ss, 1) + 度 Timer1.Enabled = True MyData(36, 1) = Left(ss, 3) + . + Right(ss, 1) Text1.Text = MyData(36, 1) Text2.Text = Text2.Text & sb

温馨提示

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

评论

0/150

提交评论