电子专业-毕业论文-实时温度采集系统(毕业设计课程设计)_第1页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计)_第2页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计)_第3页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计)_第4页
电子专业-毕业论文-实时温度采集系统(毕业设计课程设计)_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

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

文档简介

I本课题主要介绍了基于DS18B20和串口通信技术的分布式远程温度监片机的一个I\0引脚,并且可以直接输出数字信号,而且精确度很高,所本课题采用单片机与计算机串口通信的方式来实现远程采集与控制的工作。通信采用RS485传输协议,并在计算机端将其转化为RS232从而度,然后将读取到的温度通过串行口发送给计算机,计算机通过用VisualBasic6编写的软件读取到温度值后通过显示器显示出来,用户可以操作软件绘制温度曲线和温度列表,并能够将其保存到电脑硬盘上,还可以操作软件选择测温通道和测量分辨率等。ThesubjectbasedonttheMCU.TransferProtocolusingRS485communicationsanditwillbemakethecurveandthetemperatuKeywordsSerialCommunication;DistributedT I I 1.1课题背景 1.1.1传统测温的介绍 1.2本章小结 第2章系统硬件结构 2.151系列单片机系统简介 32.2测温器件DS18B20介绍 3 5 52.3.2器件MAX232介绍 2.3.3器件MAX485介绍 2.4显示系统的硬件原理 2.4.1串行寄存器74LS164功能 2.4.2数码管原理 2.4.3数字串行显示的实现 2.5本章小结 第3章系统软件设计 3.1总体程序设计思路 3.1.1制定通信协议 3.1.2下位机的程序设计思路 3.1.3上位机软件的程序功能 3.2下位机程序分块介绍 3.2.1DS18B20的程序介绍 3.3上位机程序分块介绍 3.3.2界面设计 3.3.4绘图程序 3.4本章小结 第4章仿真与调试 4.2原理图的输入 4.2.1工作界面 4.2.2绘制原理图 4.2.3编辑对象 4.4本章小结 5.2原理图输入 5.3PCB板的制作 5.3.2PCB布局 5.5本章小结 结论 参考文献 附录1 I附录2 附录3硬件原理图 附录9VB源程序 附录10单片机程序 V 致谢 1第1章绪论随着时代的发展,科技的进步,各种复杂的场合对温度的了不同的要求,在某些场合要求能够实时监控温度值,并且能够将大量的温度数据保存起来,并进行集中处理,计算机的出现使得大量温度数据的保存及处理成为了可能,但是传统的酒精或煤油温度计等却无法将温度数据传递给计算机,所以便出现了各式各样的电子温度传感器,而现在大量热电偶的质量可能会受影响;由于水是溶解物质所以也可能会引起问题。1.1.2计算机控制技术的发展计算机控制系统是随着现代大型工业生产自动化的不断兴起而应运产2生的综合控制系统,它紧密依赖于最新发展的计算机技术、网络通信技术本课题所研究的实时温度采集系统相对传统的测温方式有很大的优32.2测温器件DS18B20介绍4图2-1是DS10B20的方框图。ND辅强的上拉。如图2所示,通过一MOSFET把I/O线直接拉到电源即可达到V5GNDDQVpo2.3串口通信技术的硬件基础而制定的。目前,计算机与终端或外设之间的近距离连接,很多都采用的规定。由于RS-232在微机系统中的广泛使用,加上51系列单片机内部6图2-4所示。表2-1是各管脚的说明:表2-1RS232管脚说明名称名称连到机器的接地线数据输出线数据输入线要求发送数据回应对方发送的RTS的发送许可告知本机在待命状态告知数据终端处于待命状态载波检出信号线的接地线针的基础再进行简化,只用其中的2、3、5三个管脚进行通信。这三个管算机和外部通讯的接线方法如图2-5。图中2、3两脚是交叉互联的,因为7图2-5计算机与外部通信电路图双绞线传输信号,若最大传输速率为10Mb/s,传输距离为15m;在最大100kb/s的传输速率下,可以传输1200m;如果最大传输速率为9600b/s,则传输距离可达1500m。于工业控制领域进行分布式管理、联网检测控件等,目前得到了很广泛的2.3.2器件MAX232介绍电平转换芯片MAX232是美信公司设计专用于进行将TTL电平转换成RS-232电平的芯片。片内有泵电源,能将+5V电压在芯片内提高到RS-232电平所需的+10V或-10V电平,转换电路如用金属钽电容,并且安装时尽量靠近芯片。信号传输8JJR-OUT1RR-IN1CAP1-759073849CAP2-8124605362.3.3器件MAX485介绍目前常用的与TTL的电平接口的RS-485传输线发送(驱动)器和接收MAX485的1脚RO为接收器输出,接TTL电平RXD信号,4脚DI为发发送器和接收器的+VT,接传输线;3脚DE为发送使能端,接+5V;2脚2.4显示系统的硬件原理2.4.1串行寄存器74LS164功能沿前的电平。表2-2为74LS164的真值表。9表2-274LS164的真值表输入输出L×××LLLLHL××HHHHHL×LH×LL常用的数码管有7段、8段和“米”字段之分。并分为共阴极和共阳极两种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极接高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阴极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极代码是通过各段的亮与灭来为显示不同字型的,因此称之为段码。各字符与段码的对应关系如表2-3所示。数码管常用的显示方式有两种:静态显示方式和动态显示方式。数码管工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线分别与一个8位的锁存器输出相连。所以I/O线控制,实现各位的分时选通。表2-3共阴极数码管字符段码对照表显示字符共阴极共阳极显示字符共阴极共阳极0C1d2E3F4P5U6T7Y8H9LA“灭”b本课题的LED显示部分采用串行移位寄存器74LS164驱动共阴极数码管实数据的静态显示。电路图如图2-7所示。最靠近数据输入方向的数码管用于显示温度通道。其他四个用于显示温度数值,当温度为负数时,第二个数码管用于显示温度的符号。最后一图2-7数码管显示电路本章主要介绍了整个系统的硬件电路的设计,包括单片机的介绍、件结构简单、连线方便,并通过RS485协议传输,能够传输很远的距离,现正确的通信,完成正确的数据收发过程。由于本课题通信的数据和控制//发送:(4字符)//1/3.发送整数原码(8位)////4.发送小数原码(8位)1/1/接收:(1字符)//3,4,5位为温度通道图3-1通信协议首先是复位操作,复位成功后才能继续执行相应的ROM操作,由于温度需要一段时间,所以再发送出转换温度命令后必须进行延时,等待器温度,读取完毕即可通过单片机发送给电脑以进行下一步的处理。图3-2开始开始成功跳过ROM转换温度匹配ROMCRC校验正确错误失败失败图3-2多点温度采集程序框图上位机软件采用VisualBasic6.0编写,主要用于实时地显示采集的温度和进行数据处理,并能够有效地进行远程控制。因此上位机软件应具有显示温度、选择测温通道、调整温度精度、绘制温度曲线以及记录温度等功能。以下是该软件功能的详细介绍。件上的显示部分将温度值显示出来,用户单击主界面上的小显示窗口后会弹出一个单独的大的温度显示窗口,这使得用户能够很方便的观察温度值。本软件还具有一定的数据处理功能,可以单击“绘制曲线”按钮绘制温度曲线或单击“采集温度”按钮制作温度列表并将其保存到电脑上,同时还可以调整采集的间隔和时长。本软件还具有报警功能,当温度值超出设定好的上下限范围后便会启动报警,同时绘制的温度曲线将会以红色显示。计算机通过该工具接收后会分析单片机发送过来的数据,然后将ROM值提3.2下位机程序分块介绍应该包括对DS18B20的读写操作、串行口的收发以及数码管显示三个部分。用串行传输的方式,并且需严格按照规定的流程进行数据的读取和命令的发送等操作,所以程序编写要相对复杂许多。下面是DS18B20的常用操作。主机通过拉低单线480us以上,产生复位脉冲,在主机释放总线后产生一个上升沿,单线器件DS18B20检测到该上升沿后,延时15~60us,通过拉低总线60~240us来产生应答脉冲,主机接收到应答脉冲后,说明有单读取数据时,把数据线从高电平拉至低电平,低电平保持最少lus,来必须持续60us,两时隙之间最少保持lus的回复时间。三.写操作表3-1DS18B20的写操作命令指令名称代码功能写存储器主机向存储器中写数据读存储器主机连续读0~8存储器内容复制存储器复制Tn.TL等存储器的内容到EEPROM中温度转换启动温度转换重新调出从EEPROM调出TH.TL等数据到存储器中读电源器件向主机传送它的供电方式64位光刻ROM记录了器件的识别信息。每一个DS18B20包括一个唯一的64位的光刻ROM。开始的8位是单线产品系列编码。接着的48位是唯一的系列号。最后的8位是开始56位的CRC校验数据。主机通过发出匹配ROM命令后,可向其发出特定的操作指令。ROM操作指令如表3-2表3-2DS18B20的ROM操作命令指令名称代码功能读ROM在口线上接一个器件时读其ROM码找出某个指定的ROM码的器件对口线上所有器件的操作口线上有多个器件时,找出每个器件的ROM码搜索报警找出各器件是否超限读ROM命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象。在使用匹配ROM命令后,继续发送64位的ROM数据系列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存储器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。跳过ROM命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多个DS18B20时,由于以后的操作是对所有器件有效的,所以在执行完跳过ROM命令后,多个器件同时发送数据时会在总线上发生数据冲突,而当确实是想要对所有器件进行操作或只DS18B20的存储器由9个字节组成,如图3-3。图3-3DS18B20的存储器结构图31byte0用于存储温度的高字节,byte1用于存储温度的低字节,其存储格式如图3-4所示。2222-'222SSSSS222告警标志将置位。每次温度测量更新次标志。只要告警标志位置位,在ROM的高8位和存储器的第九个字节存储了8位的CRC校验数据,七.分辨率的调整DS18B20提供了四种分辨率的调整,如图3-5,通过设置配位寄存器0111表3-3DS18B20的分辨率与寄存器对照表分辨率转换时间000110113.2.2串行口收发程序设计5位用于选择测温通道,本课题共有5个测温通道,单片机将通LED显示模块采用5个移位寄存器74LS164控制5个共阴极数码管实3.3上位机程序分块介绍MSComm控件是VisualBasic6.0中用于计算Control6.0”,点击确定后就会在左边的控件栏里显示出一个电话样式的图MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的或者CarrierDetect(CD)捷。在程序的每个关键功能之后,可以通过检查CommEvent属性的值来一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”3.3.2界面设计Label控件和两个TextBox控件实现的;精度控制部分使用的是一个Frame控件、一个Label控件和三个CommandButton控件。温度采集系统温度采集系统菜单()工具T)关于(A)告警温度下限图3-6上位机程序主界面可通过单击温度显示部分弹出,如图3-7;另一个是读取ROM窗口,可通过菜单栏的“工具-读取ROM”弹出,如图3-8。图3-7温度显示窗口正在读取,请稍后清空关闭图3-7读ROM窗口成从1到16的任何数(缺省值为1)。但是如果用PortOpen属性打开一个并不存在的端口时,MSComm控件会产生错误68(设备无效)。本软件默认设置为1。SThreshold属性:设置或返回引发发送事件的字节数,默认为0,即不引发发送事件。本软件设置为1,即1个字节就引发发送时间。RThreshold属性:设置或返回引发接收事件的字节数,默认为0,即不引发接收事件。本软件设置为1,即接收到一个字节就引发接收事件。由于波特率越大,最大通信距离越短,所以考虑到本课题的应用范围比较大,故设置波特率为110bit/s;奇偶校验设置为n,即不需要奇偶校验;数据位设置位8,即一个字节;停止位设置为1。InputMode属性:用于设置数据取回的方式,设置为0(默认)时,以文本方式取回数据,设置为1时,以二进制方式取回数据。该程序用于在PictureBox控件中绘制坐标函数和温度曲线。并可以通过调整采集时长来调整横坐标的刻度,通过调整阈值中的上下限来调整温度曲线的颜色。坐标效果如图3-8所示。3.4本章小结本章主要介绍了整个系统的软件部分,包括用C语言编写单片机程序是用于接收单片机发送到的数据并进行相应的处理,对数据的处理工作主要是绘制温度曲线和制作温度列表,此外该软件还具有对单片机工作的一些控制功能,能够对单片机发送精度选择命令和通道选择命令,再通过单编译和调试环境,如KeilC51uVision2等软件。④具有强大的原理图绘4.2.1工作界面ProteusISIS的工作界面是一种标准的Windows界面,如图4-1所示。公花公花绘图工具栏标准工具栏状态栏1.画导线2.画总线3.画总线分支线用鼠标单击连线工具条中图标或者执行Place/NetLabel菜单命令,这时光标变成十字形并且将有一虚线框在工作区内移动,再按一下键盘上的单击[0K],将设置好的网络标号放在第一步放置的短导线上,单击鼠标左将十字光标移至要连接的总线分支处单击鼠标左键,系统弹出十字形光标4.放置线路节点如果在交叉点有电路节点,则认为两条导线在电气上是相连的,否则相连,只有手工放置节点了。点击工具箱的节点放置按钮+,当把鼠标指针移到编辑窗口,指向一条导线的时候,会出现一个“×”号,点击左键就许多对象具有图形或文本属性,这些属性可以通过一个对话框进行编1.选择MainMode图标,再选择InstantEdit图标;1.指向对象对于文本脚本来说,这将启动外部的文本编辑器。如果鼠标没有指向确定后将会弹出该项目中任何元件的编辑对话框,并非只限于当前1.选择MainMode图标,再选择InstantEdit图标。可以参照指南中EditingLocalStyles这一节得到编辑local文本类型的经常使用Proteus进行程序的仿真。本课题的仿真结果如图4-2所示,使用AT89S52单片机对测温器件DS18B20进行操作,其中DS18B20的温度值设置为25.0℃,单片机通过加载的程序读取器件DS18B20的温度,然后将温度值传送给数码管显示出来。最左边的数码管显示的是温度的通道,右边四个显示温度数值。本章主要介绍了单片机仿真软件Proteus的使用方法及本课题的仿真。Proteus是一个完整的嵌入式系统软、硬件设计仿真平台,通过Proteus能够带程序仿真单片机,并可以与Keil联调,其强大的原理图输入功能为用户提供了方便的输入方式,大大缩减了设计周期,并能节省大量的硬件Protel2004是一种EDA设计软件,主要用于电路设计、电路仿真和制作印刷电路板,同时还提供了超高速集成电路硬件描述语言的设计工具,Protel2004中引入了集成库的概念,附带了68000多个元件的设计库,Protel2004不仅提供了部分电路的混合模拟,而且提供了PCB和原理与电路图编辑的无缝集成,使得在设计时就可以直接从电路图进行模拟和全面的分析,包括AC、小信号、瞬态过程、噪声和DC转换等,用来测试目文件建立后,即可建立原理图文件。也可以不建立项目文件,利用原理元件的位置放置准确,连线直观,既能够观察整体布局,也可以查看局部上,地线在下且与电源平行,左边是输入端,右边是输出端,按信号流向电源和地线、放置端口及网络接口,修改元件属性,统一序号。在绘图的晰流畅。所以,在绘图的后期,要加入必要的文本注释,增强图纸的可读5.3PCB板的制作PCB电路板的结构可以分为单面板PCB、双面板PCB和多层板PCB3线,这一层也称作焊接面,另外一面则称为元件面。单面板都可以布线。通常情况下元件一般处于顶层一侧,顶层和底层的电5.3.2PCB布局行时,会对周围环境辐射电磁波,从而干扰周围环境中电子作。它产生的主要原因是电路工作频率太高以及布局布线不合理。目前已件设置又很困难,这将直接影响仿真结果的准确性和实用性。最通常的做和PCB板的制作,其中原理图见附录1,PCB板图见附录)本课题的研究成果主要分为两部分:下位机部分的软硬件设计和上位机的下位机端的主要功能是通过编写相应的程序让单片机读取测温器件够通过计算机串口接收单片机发送过来的数据并进行各种处理,可以绘制信距离远、易于集中式控制、温度数据处理能力强、便于存储大量数据、实时控制和及时报警等。而且本系统的适用范围比较广,如冰箱产品线、N.J.:PrenticeHall,1999,15-805林志琦.基于Proteus的单片机可视化软硬件仿真.北京:北京航空航天大学出版6曹国华.高速嵌入式单片机原理与接口技术.北京:国防工业出版社,2004,1-2107于永.51单片机C8林伸茂.8051单片机彻底研究.北京:中国电力出版社,2007,1-9810张萌.单片机应用系统开发综合实例.北京-清华大学出版社,2007,1-5111周峰.VisualBasic案例开发集锦.北京:电子工业出版社,2008,1-9012刘彬彬.Visual13范逸之.Visual14高春艳.VisualBasic应用开发完全手册.北京:人民邮电出版社,2006,40-20015姚巍编.WindowsAPI函数在VisualBasic中的应用实例.北京:人民邮电出版16肖玲妮.Protel2004电路设计.北京:清华大学出版社,2006,45-7819黄书伟.印制电路板的可靠性设计.北京:国防工业出版社,2004,56-8920江思敏.PCB和电磁兼容设计.北京:机械工业出版社,2006,12-7924张粤,倪伟,DS18B20在分布式测温系统中的应用.淮阴工学院学报.2002,第25陈跃东.DS18B20集成温度传感器原理及其应用.安徽机电学院学报.2002,第17卷第4期26农静,郑宗亚,刘志杰.单总线数字温度传感器DS18B20原理及应用.贵州师范大学学报(自然科学版).2007,第25卷第3期:1-3第30卷第11期:1-328刘卫,刘定良.基于DS18B20设计的多点测温系统.长沙民政职业技术学院学报.2007,第14卷第2期29甘勇,宋春来,宋寅卯.数字温度传感器DS18B20在多点测温系统中的应用.河南农业大学学报.2001,第35卷第4期30徐文进,张阿卜.智能温度传感器Ds18b20在多路测温中的应用.现代电子技术.2002,第22期I本科毕业设计(论文)开题报告学院(系):信息科学与工程学院年级:04级1班2008年3月25日况,而且利用电子装置自动采集温度不太方便,也有一些电子测温采用的时温敏电阻加A\D转换的方法,采集温度虽然方便,但是精度不够,本课把温度值通过串口传送到电脑上,通过用VisualBasi151单片机C语言常用模块与综合系统设计实例精讲,电子工业出版社,20072单片机原理及应用—C51编程技术西南交通大学出版社,2004351系列单片机开发宝典电子工业出版社,20074VisualBasic串口通信与测控应用技术实战详解人民邮电出版社,20076VisualBasic与RS-232串行通信控制:最新版清华大学出版社,20027Protel99SE高级应用人民邮电出版社,20078电子电路设计技术国防工业出版社,20079PCB和电磁兼容设计机械工业出版社,200610基于Proteus的单片机可视化软硬件仿真北京航空航天大学出版社,2006指导教师(签字) 负责人(签字):本科毕业设计(论文)文献综述学院(系):信息科学与工程学院年级:04级1班2008年3月25日V成温度曲线的绘制,高低温报警,实时采集等功能,并可以控制单片机控用于各种不同的工作环境,尤其是在恶劣的环境里,更需要传感器能够稳定地工作,所以对温度传感器的工作稳定性和测量范围的要求也越来越高。单片机温度采集程序的编写,数码管显示,串口通信协议的制定,151单片机C语言常用模块与综合系统设计实例精讲电子工业出版社,20072单片机原理及应用—C51编程技术西南交通大学出版社,2004351系列单片机开发宝典电子工业出版社,20077Protel99SE高级应用人民邮电出版社,20078电子电路设计技术国防工业出版社,20079PCB和电磁兼容设计机械工业出版社,200610基于Proteus的单片机可视化软硬件仿真北京航空航天大学出版社,200616基于Proteus的单片机可视化软硬件仿真北京航空航天大学出版社200617PCB和电磁兼容设计机械工业出版社2006附录3硬件原理图p100FK3附录4硬件RS485-232转换(上位机端)PCB图:测温部分(下位机端)PCB图:附录5实物照片X125℃时的仿真截图:附录7电脑软件界面温度采集系统温度采集系统0采集精度℃分秒间隔关闭“关于”窗口:关于版本1.0.0确定附录8电脑软件运行截图温度采集系统温度采集系统菜单F)工具T)关于(A)温度0精度间隔:2秒C0.25℃09:12:45温度:30精度:0.0625开始采集软件运行时的温度显示窗口:IfcblTem_Channel.ListIndex=0ThbytControl=bytControlOptBrel(0).BackColor=vbButtonFaceElseIfcblTem_Channel.ListIndex=1ThenbytControl=bytControlAnbytControl=bytControlAnd239ElseIfcblTemChannel.ListIndex=2ThenbytControl=bytControlAnd239ElseIfcblTem_Channel.ListIndex=3ThenbytControl=bytControlAnd247bytControl=bytControlAnd251ElseIfcblTem_Channel.ListIndex=4ThenbytControl=bytControlAnd247CallChange_Color(24EndIfForml.BackColor=RGB(r,g,b)Frame3.BackColor=RGB(r,g,b)OptBre1(0).BackColor=RGB(r,g,b)txtClear.BackColor=RGB(r,g,b)OnErrorResumeNextsngX_Axes=txt_ImgLength.Text*60+10picTemCurve.Scale(-sngX_Axes/20,70)-(19*sngX_Axes/20,-30)picTemCurve.Line(-4/100*sngX_Axes,O)picTemCurve.CurrentX=92/100*sngX-_picTemCurve.CurrentX=3/100*sngX_AxespicTemCurve.CurrentY=65:picTemCurpicTemCurve.CurrentX=i:picTemCurve.CpicTemCurve.CurrentX=i-2/100*sngX_AxepicTemCurve.CurrentY=-3:picTemCurve.PrintipicTemCurve.CurrentX=-3/100*sngX_AxespicTemCurve.CurrentY=0:picTemCurve.PrintOEndIfNextipicTemCurve.CurrentX=-4/100*sngXpicTemCurve.CurrentY=i+2:picTemCurve.PrintipicTemCurve.CurrentX=1/100*sngX_AxespicTemCurve.CurrentY=i:picTemCurve.Line-(0,i)EndIfNextiXXIpicTemCurve.Line(94/100*sngX_Axes,0)-(92/100*sngX_picTemCurve.Line(94/100*sngX_Axes,O)-(92/100*sngX_ApicTemCurve.Line(0,68picTemCurve.Line(0,68)-(1/100*sngX_Axes,65)sngX_Axes=txt_ImgLengpicTemCurve.CurrentX=65/100*(sngX_Axes)picTemCurve.CurrentY=67:picTemCurve.PrintNowpicTemCurve.CurrentX=65/100*(sngX_Axes)picTemCurve.CurrentY=62:picTemCurve.PrintcblTem_Channel.TextIfComml.PortOpen=TrueThenEndIfDimintTem_decAsInIfTemLen=1ThenElseIfTemLen=2ThenEndIfintTem_dec=Round((Tem-intTem)*100)IfTemLen=1ThenCallsigTem_display(intTem_dec,3)ElseIfTemLen=2ThenCallsigTem_display(Mid(strTemEndIfIfintSign=0ThenEndIfLoadPicture(App.Path&"\displayLoadPicture(App.Path&"\displayLoadPicture(App.Path&"\displayLoadPicture(App.Path&"\displayLoadPicture(App.Path&"\display\Od.jpg")LoadPicture(App.Path&"\display\ld.jpg")LoadPicture(App.Path&"\display\LoadPicture(App.Path&"\display\LoadPicture(App.Path&LoadPicture(App.Path&LoadPicture(App.Path&LoadPicture(App.Path&"\display\7d.jpg")LoadPicture(App.Path&LoadPicture(App.Path&IfintAlarmSign=1ThenEndIfEndIftxtInterval.Text=2IfstrBuf="S"ThenElseIfintDataOrder=1ThenElselfintDataOrder=2ThenEndIfIf(sngTemAnd4)<>0ThenEndIfEndIfEndIfIfsngTem>txtTem_MOrsngTem<txtTem_LThenEndIfIfintSign=0ThenEndIfEndIfIfComml.PortOpen=TrueThenEndIfIfintAlarmSign=1ThenimaAlarm(0).Picture=LoadPicture(App.Path&"\Alarm_Disable.gif")ElselfintAlarmSign=0ThenEndIfIfComm1.PortOpen=TrueThenElseIfComm1.PortOpen=FalseThenimaPort(0).Picture=LoadPicture(App.Path&"\Port_Enable.gif")EndIfEndIfPrivateSubmmcAlarm_Done(bytControl=bytControlAnd253bytControl=bytControlAnd254CommonDialog1.DefaultExt="bmp"FileName=CommonDialog1.FileNameSavePictureMe.picTemCurve.Image,FileNameTimer_Curve.IntervasngXCurve_Axes=txt_ImgLength.Text*60+IfsngTem_2>txtTem_M.TepicTemCurve.ForeColor=vbRedpicTemCurve.ForeColor=RGBEndIfpicTemCurve.Scale(-sngXCurve_Axes/20,70picTemCurve.PSet(intX,sngTem_2)IfintX<>0ThenpicTemCurve.Line(intEndIfpicTemCurve.ForeColor=IfintX>=txt_ImgLength.Text*60ThenMsgBox"曲线绘制完成!"EndIftxtTem.Text=txtTem.Text&"通道:"&cblTem_Channel.Text&_"日期:"&Now&""&"温度:"&sngTem&""&_"精度:"&sngPrecision&Chr(13)&Chr(10)PrivateSubtxt_ImgInterval_Keypress(KeyAsciiAsIfKeyAscii<48OrKeyAscii>57ThenMsgBox"请输入数字!!!"EndIfPrivateSubtxt_ImgLength_KeyPress(KeyAsciiAsInteger)IfKeyAscii<48EndIfNext"txtTem.Text=""OnErrorResumIftxt_ImgInterval.Text<1Ortxt_ImgInterval.Text>60ThenMsgBox"采集间隔只能在1~60秒。"EndIfPrivateSubtxtInterval_Change()OnErrorResumeNextTimer_txt.Interval=IfTemLen=1ThenForm2.imaTem(0).Picture=LoadElseIfTemLen=2ThenEndIfintTem_dec=Round((Tem-intTem)*100)IfTemLen=1ThenForm2.imaTem(2).Picture=LoadPicture(App.Path&"\display\0.jpg")CallForm2.sigTem_display(intTem_dec,3)ElseIfTemLen=2ThenEndIfIfintSign=0ThenForm2.imaTem(4).Picture=LoadPictuForm2.imaTem(4).Picture=LoadPicture(App.Path&"\display\neg.jpg")EndIfimaTem(intImg_Index).PictuimaTem(intImg_Index).Picture=LoimaTem(intImg_Index).Picture=LoadPicture(App.Path&imaTem(intImg_Index).PicturimaTem(intImg_Index).PicturimaTem(intImg_Index).Picture=LoadPicture(App.Path&imaTem(intImg_Index).Picture=LoadPicturimaTem(intImg_Index).PictuDimintRomTemp2(0ToDimintRomTemp3(0ToDimintRomTemp4(0ToDimintRomOrder(0To7)Fori=LBound(buffer)ToUBound(buffer)txtResult.Text=txtResult.Text&buffer(i)&""NextiIfintDelay>=10ThenEndIfElseIfintTimer=2AndintDelay>=10AndiElseIfintTimer=3AndintDelay>=10AndiElseIfintTimer=4AndintDelay>=10AndiEndIfIfintRomIndex>=8ThenIfintSuml=0ThenNextiElseIfintSum2=0ThenElselfintSum3=0ThenEndIfElseIfintSum4=0ThenEndIfEndIf1blState.Caption="读取完毕!"NextiEndIfForml.imaPort(0).PicEndIfIfForm1.Comm1.PortOpen=FalseThenEndIfIfComm2.PortOpen=FalForml.imaPort(0).Picture=LoadPicture(App.Path&EndIf附录10单片机程序#defineuintunsignedint#defineSKIPROM#defineCONVERTTEM0x44//转换温度sbitLED=P1^0;//LED串行显示的数据输出端sbitDEC=P1^2;//小数点ucharRom[8];//读ROM时用于存储读取的8个字节的ROMucharTemPrecision=0x60;//温度精度,默认为12位ucharcodeRoml[8]={40,221,106,57,1,0,0,76};0x40/*负号*/};66,28,254,160,225,191,224,2,92,223,129,99,61,124,34,19243,112,46,204,146,211,141,111,49,21,75,169,247,182,232,10,84,215,voiddelay_ms(uintt)//延时)}{uchartemp,i,j,k;if(temp%10==0)&&(temM/100==0))LEDData[2]=LED_code[10];{if(n==0)LEDData[3]=LED_code}{LEDData[4]=LED_code[Romlndex];//温度通道{}ucharCRC_Check()//CRC))~{}}/**************************************水****************/{}//ROM发送L{~~}复位函数*************************///单线器件DS18B20检测到该上升沿后,延时//拉低约600us{))写函数*************************///实现过程:主机将数据线从高电平拉至低电平时产生写时ucharj;{ nop();i=15;}{#ifWORK_MODE==0//判断单片机工作模式,若为0则SkipRomWR_byte(SKIPROM);//SkipROM{if(RomIndex==1)WR_byte(Roml[i]);//在读时隙下降沿之后15us内有效,所有读时隙//最短必须持续60us,两时隙之间最少保持lus{ nop();//保持最少lus_nop_(); _nop_();_nop_();}~bitj=0;for(i=0;i<8;i++)//读取8位信息,赋值给bytData{j=RDbit();}}{}#ifWORK_MODE==0#elifWORK_MODE==2//判断单片机工作模式,若为0则SkipRom//SkipROM//若为2则MatchRom{if(

温馨提示

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

评论

0/150

提交评论