ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:782.53KB ,
资源ID:19163387      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19163387.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(远程温度检测系统设计文档文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

远程温度检测系统设计文档文档格式.docx

1、随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生产的自动控制系统开始进入了人们的生活,以单片机为核心的温度采集系统就是其中之一。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。 测量温度的关键是温度传感器,温度传感器的发

2、展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。 远程监测的关键是人机界面,软件设计的虚拟器界面也越来越友好,苹果公司的Macintosh开发了G语言,这些为功能强大的专业虚拟仪器软件的出现提供了必要基础。不久,NI为基于计算机的测量和自动化开发出了LABVIEW软件包。 LABVIEW的功能不断丰富和强大。LABVIEW用来进来数据采集和控制、数据分析和数据表达,使工程师和科学家能充分利用PC的功能,快速简便地完成自己的工作。经过多年的不断充实,LABVIEW成为丰富、强大的实用工具软件包,内部配有GPIB、VXI、串口和插入式DAQ板的库函数以及全球几百家

3、厂商的仪器驱动程序。围绕这些核心软件还陆续开发出多种附件。二、硬件设计远程温度监控系统是由上位机和温度测量单元组成。上位机即计算机,实现对温度测量单元控制,通过串口程序发送命令、接收测量数据,对测量数据处理显示。温度测量单元,接收上位机命令,按照命令进行温度测量和数据传输等操作。三、系统设计 3.1系统设计方案 本设计以两个独立通道进行设计,从传感器来的模拟输入信号,经过信号调理后,输入到DS18B20数据采集卡,然后经过串口总线送入PC机,由软件进行数据处理,包括采样波形的实时显示,并进行历史数据保存,边采集边保存,还有实时报警并记录处理等功能。 实现单点温度测量,采用如图3-1所示测控系统

4、。上位机和温度测量单元采用RS232串行通信标准。图中上位机发送的信息可以被温度测量单元所接收,温度测量单元发送的信息也可以被上位机接收。 图3-1 3.2下位机组成 该部分主要包括数据采集技术概述,传感器,输入信号的分析、调理以及测量系统的选择。采用数字温度传感器DS18B20,利用DS18B20不需要A/D转换,课直接进行温度采集显示,报警的数字温度计设计。包括传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。 系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。系统框图如图3-2所示:图3-2 系统基本方框图1. 主控制器单片

5、机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。图 3-2-1 最小系统图2. 显示电路显示电路采用LED液晶显示数码管,显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p0口的发送和接收,四只数码管采用74LS164右移寄存器驱动,显示比较清晰。 图3-2-23. 温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直

6、接与计算机连接。用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。 图3-2-3 DS18B20和单片机的接口连接四、上位机labview设计 4.1结构框图 结构主要四个部分,为数据采集、波形显示、数据显示和警报系统框图如图4-1所示: 图4-14.2 系统工作原理 本次设计是简易的温度采集,思路是“采集-显示-统计-报警”,由一个随机选作为温度的产生,由波形图示显示温度的变化,设定限定值,用比较器件比较,超出

7、设定值时报警。4.2.1 单元设计模块1)串口通信 温度的采集由串口传输所得,需要进行串口通信。 图4-2 2)温度显示 温度显示有三个器件:波形显示、温度计、温度显示。 图4-2-1 3)限定温度报警 由比较器来比较实时温度,大于限定温度时报警。 图4-2-2 4.2.2 单元模块的链接 图4-2-34.3 上位机界面五、下位机程序设计DSl8B20的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上

8、寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。图9为读取数据流程图。图6-1 读取数据的流程图读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5的话,向个位进1;小于0.5的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最

9、低温度只能为-55,所以可以将整数部分的最高位换成一个“-”,表示为负数。图10为温度数据处理程序的流程图。图6-1-1 温度数据处理流程图六、系统调试6.1上位机界面测试6.2系统运行以及分析整个系统能正常运行,能显示实时温度、计算平均值,当温度超过温度上限时,上限报警器会显示红色报警。 截图实时温度是33.2。6.3下位机仿真运行参考文献 【1】张桐、陈国顺、王正林,精通LabVIEW程序设计北京:电子工业出版社,2008.12. 【2】张毅刚、彭喜元,单片机原理与应用设计北京:电子工业出版社,2008.4. 【3】唐国民、沈尔云,C语言程序设计:中国铁道出版社,2006.9. 附录D:

10、全部程序清单#include#includeds1302.hds18b20.h#define GPIO_DIG P0/-重定义关键词-/#define uchar unsigned char#define uint unsigned intsbit LSA=P20;sbit LSB=P21;sbit LSC=P22;sbit key1=P32;sbit P27=P27;uchar data temp_data2=0x00,0x00;/读出温度暂放/uchar data display3=0x01,0x02,0x00; /显示单元数据,共4个数据,一个运算暂存用unsigned char t;u

11、nsigned char dis;unsigned char mode=0;unsigned char wendu=50;unsigned char PuZh2 =中;#ifndef _DS18B20_H_#define _DS18B20_H_uchar code READ_RTC_ADDR7 = 0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d;uchar code WRITE_RTC_ADDR7 = 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c;/-DS1302时钟初始化2013年1月1日星期二12点00分00秒。-/-存

12、储顺序是秒分时日月周年,存储格式是用BCD码-/uchar TIME7 = 0, 0, 0x12, 0x01, 0x01, 0x02, 0x13;/-定义ds1302使用的IO口-/sbit DQ=P37; extern uchar data temp_data2; /加入全局变量 /unsigned char s;/-定义全局变量-/unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、

13、A、b、C、d、E、F的显示码unsigned char DisplayData6;/用来存放要显示的8位数的值/-声明全局变量-/void DigDisplay();void work_temp();void UsartConfiguration();/* 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 :*/void main() unsigned char receiveData,cont=0; TMOD=0x01; ET0=1; IT0=0; EX0=1; EA=1; TR0=1; UsartConfiguration(); /串口通信初始化 ow_res

14、et(); /开机先转化一次 write_byte(0xCC); /发出Skip ROM命令 write_byte(0x44); /发转换命令 Ds1302Init(); SBUF = PuZh0; while(1) read_temp(); / 读出DS18B20的温度数据 work_temp(); / 处理温度数据 Ds1302ReadTime(); DisplayData0 = DIG_CODETIME2/16; /时 DisplayData1 = DIG_CODETIME2&0x0f; DisplayData2 = DIG_CODETIME1/16; /分 DisplayData3 =

15、 DIG_CODETIME1& /DisplayData4 = DIG_CODEdis%10000/1000; / DisplayData5 = DIG_CODEdis% 1000 / 100 | 0x80; /DisplayData4 = DIG_CODETIME0/16; /秒 / DisplayData5 = DIG_CODETIME0& DigDisplay(); /* for(s=0; s2; s+) SBUF = PuZhs; /将要发送的数据放入到发送寄存器 while(!TI); /等待发送数据完成 TI=0; /清除发送完成标志位 */ if(RI = 1) /查看是否接收到

16、数据 cont+; if(cont3) receiveData = SBUF; /读取数据 RI = 0; /清除标志位 TIMEcont = receiveData; else cont=0; wendu= receiveData; DigDisplay 使用数码管显示void DigDisplay() unsigned char i; unsigned int j; for(i=0;i6;i+) switch(i) /位选,选择点亮的数码管, case(0): LSA=0;LSB=0;LSC=0; break;/显示第0位 case(1): LSA=1;/显示第1位 case(2):LSB

17、=1;/显示第2位 case(3):/显示第3位 case(4):LSC=1;/显示第4位 case(5):/显示第5位 / case(6): / LSA=0;/显示第6位 / case(7): / LSA=1;/显示第7位 GPIO_DIG=DisplayDatai;/发送段码 j=1000; /扫描间隔时间设定 while(j-); GPIO_DIG=0x00;/消隐void work_temp() float tp; dis=temp_data1; dis=8; dis=dis|temp_data0;/ tt=dis*0.0625; /dis= tt*100+0.5; if(diswen

18、du) P27=0; else P27=1;/* DisplayData1 = DIG_CODEtemp / 10000; DisplayData2 = DIG_CODEtemp % 10000 / 1000; DisplayData3 = DIG_CODEtemp % 1000 / 100 | 0x80; DisplayData4 = DIG_CODEtemp % 100 / 10; DisplayData5 = DIG_CODEtemp % 10;*/ /扫描显示 void UsartConfiguration() SCON=0X50; /设置为工作方式1 TMOD=0X20; /设置计数

19、器工作方式2 PCON=0X80; /波特率加倍 TH1=0XF3; /计数器初始值设置,注意波特率是4800的 TL1=0XF3;/ ES=1; /打开接收中断 /EA=1; /打开总中断 TR1=1; /打开计数器void ti(void) interrupt 0 using 0 EX0=0; EX0=0; if(mode0;t-);/DS18B20复位函数void ow_reset(void) char presence=1; while(presence) DQ=1; _nop_(); DQ=0; delay(50); /550us delay(6); /66us presence=DQ; delay(45); /延时500us presence=DQ; /DS18B20写命令函数

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1