




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京理工大学温度采集系统开发实践报告 学院:电光院 专业: 姓名: 学号: 指导老师: 摘要:温度检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起重要作用。本次实践采用数字式温度传感器DS18B20采集外界温度,核心器件单片机AT89C52用于温度的接收、转换、存储和传送,最终数据传至PC,由PC中用于串口通信的MFC对话框来显示实时温度,并显示温度变化的折线图。关键词:温度采集、DS18B20、AT89C52、串口通信目录1. 绪论.4 1.1 背景及意义.4 1.2 目的和内容.42. 主要器件介绍.4 2.1 数字式温度传感器DS18B20.42.1.1 概述.42.1.2 工作原理.42.1.3 内部结构及引脚.62.1.4 控制命令.82.1.5 性能特点.92.1.6 应用范围.9 2.2 单片机AT89C52.92.2.1 概述.92.2.2 内部结构.102.2.3 工作原理.112.2.4 性能特点.123. 硬件设计.12 3.1 设计要求.12 3.2 温度采集电路.12 3.3 串口通信电路.124. 软件设计.13 4.1 RS232串口显示实时温度数据,ds18b20模块.13 4.2 串口通信程序.175. 过程分析及调试.206. 结论与收获.247. 参考文献.241. 绪论1.1背景及意义温度是一种最基本的环境参数,日常生活和工农业生产中都需要时常检测与采集温度。传统的靠人工控制的温度采集系统,多用热电偶或热电阻,其外围电路较为复杂、测量精度较低、分辨力不高,因此越来越不适应社会和市场的要求。随着科技的发展,由单片集成电路构成的温度传感器种类越来越多,其功能越来越强大,凭借其方便和成本低等优势得到广泛应用。其中,DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制等多个领域。1.2 目的和内容本次实践的目的是将数字式温度传感器DS18B20作为前端,采集到的温度经过单片机AT89C52处理,再采用串口通信,把实时温度显示在PC中的MFC对话框界面上,并通过折线图显示温度的变化情况。2. 主要器件介绍2.1 数字式温度传感器DS18B202.1.1概述DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。2.1.2 工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。测温原理如图2-1所示,高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 图2-1 DS18B20测温原理图由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。2.1.3 内部结构及引脚 DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器,如图2-2所示: 图2-2 内部结构图DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数字的完整性。高速暂存器RAM是由8个字节的存储器组成;。用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。64位光刻ROM的前8位是DS18B20的自身代码,接下来的48位为连续的数字代码,最后的8位是对前56位的CRC校验。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。配置寄存器是配置不同的位数来确定温度和数字的转化。温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位,如图2-3所示。 图2-3 DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FE6FH,-55的数字输出为FC90H 。 图2-4 温度转化表 DS18B20的外形及管脚排列如下图1: 图2-5 引脚图DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。2.1.4 控制命令DS18B20有六条控制命令: 根据 DS18B20 的协议规定,微控制器控制 DS18B20 完成温度的转换必须经过以下 3个步骤 :(1)每次读写前对 DS18B20 进行复位初始化。复位要求主 CPU 将数据线下拉 500us ,然后释放, DS18B20 收到信号后等待 16us60us 左右,然后发出60us240us 的存在低脉冲,主 CPU 收到此信号后表示复位成功。(2)发送一条 ROM 指令(3) 发送存储器指令2.1.5 性能特点 (1)独特的单线接口仅需要一个端口引脚进行通信; (2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能; (3)无须外部器件; (4)可通过数据线供电,电压范围为3.05.5; (5)零待机功耗; (6)温度以或位数字; (7)用户可定义报警设置; (8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; (9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B02可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。2.1.6 应用范围该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域;轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制;汽车空调、冰箱、冷柜、以及中低温干燥箱等;供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制等。2.2 单片机AT89C522.2.1 概述AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。2.2.2 内部结构图2-6是单片机AT89C52的内部结构总框图。它可以划分为CPU、存储器、并行口、串行口、定时器/计数器和中断逻辑几个部分。 图2-6 内部结构总框图 26个特殊功能寄存器不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):MCS51单片机的特殊功能寄存器符号地址功能介绍BF0HB寄存器ACCE0H累加器PSW D0H程序状态字TH2*CDH定时器/计数器2(高8位)TL2*CCH定时器/计数器2(低8位)RCAP2H*CBH外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位RCAP2L*CAH外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位T2CON*C8HT2定时器/计数器控制寄存器IPB8H中断优先级控制寄存器P3B0HP3口锁存器IEA8H中断允许控制寄存器P2A0HP2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190HP1口锁存器TH1 8DH定时器/计数器1(高8位)TH08CH定时器/计数器1(低8位)TL18BH定时器/计数器0(高8位)TL0 8AH定时器/计数器0(低8位)TMOD89HT0、T1定时器/计数器方式控制寄存器TCON88HT0、T1定时器/计数器控制寄存器DPH 83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080HP0口锁存器PCON87H电源控制寄存器2.2.3 工作原理AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。2.2.4 性能特点 AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个IO口线,3个16位定时计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要工作特性是: 片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次; 片内数据存储器内含256字节的RAM; 具有32根可编程I/O口线; 具有3个可编程定时器; 中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构; 串行口是具有一个全双工的可编程串行通信口; 具有一个数据指针DPTR; 低功耗工作模式有空闲模式和掉电模式; 具有可编程的3级程序锁定位; AT89C52工作电源电压为5(1+0.2)V,且典型值为5V; AT89C52最高工作频率为24MHz。3. 硬件设计3.1 设计要求 本次设计要求DS18B20温度传感器作为前段,检测到的温度经过单片机AT89C52处理,完成温度数据的采集、存储、数据转换,再通过串口通信发送数据,把实时温度显示在PC中的MFC对话框界面上,并通过折线图显示温度的变化情况。3.2 温度采集电路温度采集电路通过温度传感器DS18B20采集被控对象的实时温度,提供给AT89S52的P3.3口作为数据的输入,要想使DS18B20能够进行精确的温度转换,I/O线必须在转换期间保证供电。DS18B20与AT89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。3.3 串口通信电路串行通信是计算机与外部设备进行数据交换的重要方式。由于它效率高、可靠性强、实现及使用成本低、通讯标准统一,因此得到了广泛的应用。Microsoft 公司的VC + + 是一种高级编程语言,其基础类库封装了Win32API 中的标准通信函数,可方便地支持串口通信。RS-232是PC机与通信工业中应用最广泛的一种串行接口,RS-232标准协议适用于数据传输速率在020000bit/s范围内的通信,已成为数据终端设备DTE与计算机和数据通信设备DCE的接口标准。对于数据:逻辑“1”的电平低于-3V,逻辑“0”的电平高于+3V;对于控制信号:接通状态即信号有效的电平高于+3V,断开状态即信号无效的电平低于-3V,在实际工作中应保证电平在(315)V。其针脚功能如表3-1所示。 表3-1 针RS_232串行口的针脚功能RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5V+15V,负电平在-5V-15V。当无数据传输时,线上为TTL电平,从开始数据传输到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的电平在+3V+12V与-3V-12V。由于发送电平与接收电平的差仅为23V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传输距离最大约为15m,最高速率为20bkps。RS-232是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同,因此,为了能够同PC机接口或终端的TTL器件连接,必须在RS-232与TTL电路之间进行电平和逻辑关系的变换,实现这种变换的方法可以用分立元件,也可以用集成电路芯片。考虑到数据的双向传递性,本系统采用MAX232芯片,可以完成TTL到RS-232双向电平转换。4. 软件设计4.1 RS232串口显示实时温度数据,ds18b20模块流程图如下所示: 图3-2 流程图 程序代码:4.2 串口通信程序用Win32API函数实现串口通信,其步骤如下:(1)打开串口 Win32 系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API 函数CreateFile 来打开或创建的。该函数的原型为:HANDLE CreateFile( LPCTSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile);(2) 配置串口 在打开通讯设备句柄后,常需要对串口进行一些初始化配置工作。这需要通过一个DCB 结构来进行。DCB 结构包含了诸如波特率、数据位数、奇偶校验和停止位数等信息。在查询或配置串口的属性时,都要用DCB 结构来作为缓冲区。一般用CreateFile ()打开串口后,可以调用GetCommState ()函数来获取串口的初始配置。要修改串口的配置,应该先修改DCB 结构,然后再调用SetCommState ()函数设置串口。(3) 串行口读、写操作 在用ReadFile ()和WriteFile ()读写串口时,既可以同步执行,也可以重叠执行。在同步执行时,函数直到操作完成后才返回。这意味着同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,这两个函数也会立即返回,费时的I/O 操作在后台进行。ReadFile ()和WriteFile ()函数是同步还是异步由CreateFile ()函数决定,如果在调用CreateFile ()创建句柄时指定了FILE_FLAG_OVERLAPPED 标志,那么调用ReadFile ()和WriteFile ()对该句柄进行的操作就应该是重叠的;如果未指定重叠标志,则读写操作应该是同步的。ReadFile ()和WriteFile ()函数的同步或者异步应该和CreateFile ()函数相一致。(4) 关闭串口 串行口是非共享资源,应用程序打开串行口后,其它应用程序无法访问,因此在完成通信后必须关闭通信端口,将设备的控制权交还给操作系统。关闭串口函数为CloseHandle ,其函数声明如下:BOOL CloseHandle( HANDLE hObject); 其参数hObject 为CreatFile ()函数返回的端口句柄。基本的串口通信界面做好之后,因为要实现绘制折线图功能,所以在VC界面的资源编辑器中,在对话框中放置一个Picture控件,并把CChart的五个库文件Chart.h、PlotDll_d.lib、PlotDll_d.dll、PlotDll.lib、PlotDll.dll拷贝到工程文件夹中;在VC中打开SerialComDlg.h文件,在其头部加入CChart头文件和库文件的引用;如下所示: 在SerialComDlg.h文件中给CSerialComDlg类添加一个CChartWnd类型的成员变量;如下所示: 利用ClassWizard给CSer
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考内科护理学(一)-儿童发展理论参考题库含答案解析(5卷)
- 2025年学历类自考公共政策学-文学概论参考题库含答案解析(5卷)
- 2025年学历类自考公共关系案例-公务员制度参考题库含答案解析(5卷)
- 2025年教师招聘之《小学教师招聘》预测试题附参考答案详解【考试直接用】
- 2025年学历类自考儿科护理学(二)-工商行政管理学概论参考题库含答案解析(5卷)
- 2025年学历类自考传播学概论-学前教育学参考题库含答案解析(5卷)
- 2025年教师招聘之《小学教师招聘》考试题库(研优卷)附答案详解
- 2025年学历类自考中国现代文学史-企业经营战略概论参考题库含答案解析(5卷)
- 2025年学历类自考中国法律思想史-比较教育参考题库含答案解析(5卷)
- 代办营业执照合同(标准版)
- 挂篮检查验收记录表
- 专业技术职务资格申报材料真实性承诺书
- 脓毒症指南课件
- 生产副总经理岗位职责标准版本(五篇)
- 对颈椎概念和命名的再认识
- 华为信息安全宣传
- 物业管理供方管理程序
- GB/T 37642-2019聚己内酯(PCL)
- GB/T 3730.2-1996道路车辆质量词汇和代码
- GB 25585-2010食品安全国家标准食品添加剂氯化钾
- 设计文件审核记录表(模本)
评论
0/150
提交评论