版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要随着时代的发展、社会的进步、科学技术的不断提高,对温度测量的范围要求不断增大,同时对温度测量的精度要求也不断提高。因此,对如何方便、精确、实时的测量温度的研究也成为一个重要的研究课题。本设计以STC89S52单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、PC机与单片机串口通讯电路和一些接口电路 。单片机通过对信号进行相应处理,从而实现温度控制的目的。 89C52单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,
2、用其作为温湿度控制系统的实例也很多。使用8052单片机能够实现温湿度全程的自动控制,而且8052单片机易于学习、掌握,性价比高。使用8052型单片机设计温度控制系统,可以及时、精确的反映室内的温度的变化。本文主要使用C语言进行程序编写,通过程序与硬件仿真的配合,最终可以实现具有正常监测,报警上下限设置、报警和显示等功能的多路温度检测系统设计。关键字 :STC89C52,DS18B20,四位七段数码管,报警,延时,keil,proteus,C语言,多路温度检测 Abstract STC89S52 single-chip microcomputer as the core of the desig
3、n of temperature control system working principle and design method. By temperature chip DS18B20 temperature signal acquisition and digital signal transmitted to the microcontroller. This paper introduces the hardware part of the control system, including: temperature detection circuit, temperature
4、control circuit, PC and single-chip microcomputer serial port communication circuit and some interface circuit. SCM through the signal is processed to achieve the purpose of temperature control.Chip 89 c52 is often used to control, control in the intelligent instruments and meters, industrial testin
5、g, the respect such as mechanical and electrical integration made remarkable achievements, used as an example of temperature and humidity control system is very much also. Using 8052 microcontroller to achieve temperature and humidity automatic control of the distance, and 8052 single-chip computer
6、is easy to learn and master, cost-effective. Using 8052 single chip microcomputer temperature control system design, can be timely and accurately reflect the change of indoor temperature.This paper mainly using C language for programming, through the program and hardware simulation, finally can real
7、ize having normal monitoring, alarm threshold setting, alarm and display functions such as multi-channel temperature detection system design.Key words: STC89C52, DS18B20, seven segment digital tube, alarm, latency, keil, proteus, 目录 前言51.1、课题背景51.2、课题分析61.3、目的和意义6一、 总体设计61、 多点温度控制设计框图62、 总体功能7二、 详细设
8、计71、硬件设计71)电路原理图72)实物图83)元器件清单84)电路说明92、 软件设计111)、软件流程图112)、关键代码描述12三、系统测试171、硬件测试172、软件测试18四、总结19五、参考文献20前言1.1、课题背景 随着社会经济的高速发展,电子技术在国民经济的建设生产中占有相当重要的地位,无论同人民生活,经济建设,还是国防建设和科学研究都有着紧密的关系。加强电子科学技术的研究,对于提高产品质量,改进工艺,实现标准化、系列化、自动化;对于保障安全生产、提高生产效率,降低能源消耗;对于企业生产自动化、科学化、提高科研水平,增加经济效益都具有非常重要的作用。利用电子技术对温度进行测
9、量,在社会经济发展的各个领域中都十分重要。人们的日常生活、工农业生产和科学技术试验等很多方面都与温度测量有着非常重要的关系。温度做为一个非常重要的物理量,是社会生产过程中最普遍也是最重要的测量参数之一。随着时代的进步、社会的发展、科技的不断更新,对温度测量范围的要求不断扩大,同时对温度测量的准确性要求不断增高。对温度监测的环境要求越来越广泛,测量的范围也越来越大,对温度监测的技术要求也越来越高。因而,对温度的监控和温度监控技术的研究也成为了一个十分重要的研究课题。 单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济,数字化。一线总线独特而且经济的特点,使用户可轻
10、松地组建传感器网络,为测量系统的构建引入全新概念。适合于各种环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。DS18B20可以程序设定912位的分辨率,分辨率设定,及可以设定的报警温度存储在 EEPROM中,掉电后依然保存。DS18B20使电压,特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。并且应用电路电但便于设计。1.2、课题分析 近年来随着单片机的发展和传感器技术的革新,温度检测领域也完成了从模拟信号到数字信号的转变。DS18b20温度传感器的广泛应用更是推动了这一领域的发展。另外显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点在各类仪表和
11、显示系统中得到越来越多的应用,现在也是单片机应用设计中最常用的信息显示模块。综合以上产品的发展特点,希望温度检测系统在未来的发展中有更广阔的应用空间并且具有更好的现场测量优越性。 本文将介绍数字温度传感器DS18B20的结构特征及控制方法,并对以此传感器,89c52单片机为控制器构成的数字温度控制装置的工作原理及程序设计作了详细的介绍。其具有读数方便,方便控制,输出温度采用数字显示,本系统可以应用在大型工业及民用常温多点监测场合。1.3、目的和意义 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实例也很多。使用80
12、51单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习、掌握,性价比高。本设计是心STC89C52为单片机作为控制核心,提出了一种基于DS18B20的单总线多点温度测控系统,多个温度传感节点通过单总线与单片机相联形成分布式系统。单片机通过实时监控温度的变化,通过数码管显示各节点温度的数值,当温度值超出所设定的值时,报警器开始报警,从而远程实现对整个温度系统的管理和控制。这种分布式温度测量系统具有成本低廉、传感精度高、系统稳定、易于管理等优点。1、 总体设计1、 多点温度控制设计框图单片机Stc89c52DS18B20 温度芯片1数码管显示两个温度DS18B20 温度芯片2报警电路,
13、蜂鸣器和LED灯2、 总体功能本设计的总体设计方案是一个基于STC89C52单片机为主控芯片,DS18B20为温度传感器的职能多路监控检测系统,并加以复位电路,电源电路、LED指示电路和报警电路共同构成了本设计,其主要功能和指标如下:1、利用温度传感器DS18B20测量2点温度;2、温度测量范围:0100;3、测温误差根据传感器误差范围小于±0.5;4、设置温度报警的上下限,具有报警功能;当达到上限时蜂鸣器发出声音,并且有对应的LED指示灯亮。5、采用数码管显示,分别用两个四位七段数码管显示两个温度传感器的温度。2、 详细设计 1、硬件设计1) 、电路原理图2) 实物图3)元器件清单
14、名称型号数量万能板3单片机STC89C521四位七段数码管HSN5642S2三极管90129电阻2.7K,560欧8,20排线杜邦线无数蜂鸣器无源1led4瓷片电容1032电解电容47u1晶振11.05921开关1按钮1排针无数温度传感器DS18B2024)电路说明上图所给电路时仿真电路图,电路元器件不齐全。比如单片机最小系统没有,数码管的段选端没有加上限流电阻,位选端没有加驱动三极管9012,LED也没有加限流电阻。 (1)报警电路 在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或
15、记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。硬件电路如下图所示: (2)DS18B20温度测量模块介绍 DS18b20是美国DALLAS公司推出的单总线数字化测温集成电路,它具有独特的单线接口方式,将非电模拟量温度值转换为数字信号串行输出仅需占用1位I/O端口,能够直接读取被测现场的温度值。它体积小,电压适用范围宽(3v5v),且可通过编程实现912位的温度读数,即具有可调的温度分辨率,因此实用性和可靠性较高,应用广泛。以下是DS18b20的内部结构图。DS18B20有4个主要的
16、数据部件:1)、64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。2)、温度灵敏元件。3)、非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。4)、配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值 DS18B20的测温范围为-55+125,在-10+85范围内,精度为±0.5。在电压低于3.4v时精度误差较大。在本系统中使用了两个DS18b20温度传感器,测温范围为0100,另外根据器件稳定工作的特点,考虑到驱动能力的不足,采用外加5V电
17、源以满足传感器精度高的要求。 根据其时序特点以下是DS18B20与STC89C52单片机构成的温度监测系统如下: 图2-6 DS18b20的典型应用本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但实际应用中发现,如果挂接8个以上的DS18B20就会产生功耗问题。另外单总线长度也不宜超过0.5M,否则会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在本电路板的设计中考虑到初步实践的准确性,暂使用2个DS18B20分别连接单片机的p1.0 和p1.1口。2、 软件设计本系统采用C语言编
18、写,主程序主要由四部分构成,系统通电后首先初始化系统,依次完成温度采集、温度处理、数据显示、报警处理等四项功能。温度采集部分主要完成2个温度测试点的温度数据采集任务;温度处理部分主要是将采集到的温度数据储存并且转换了可以在数码管上显示;数据显示部分主要实现温度数据的显示,显示方式根据设计要求2个温度测试点的固定显示;报警处理部分主要是将采集到的温度数据与用户设定的各点上下限温度值进行比较处理,并判断是否超出设定的上下限值,如果超出则蜂鸣器报警。1)、软件流程图开始系统初始化温度采集温度处理数据显示报警处理读温度初始化温度传感器扫描键盘选定所需芯片选定所需芯片进行温度转换读取温度调试显示子程序子
19、程序返回 总流程图 DS18B20操作流程图2)、关键代码描述#include<reg52.h>#define uchar unsigned char #define uint unsigned int sbit DQ=P10; /温度数据口sbit DQ1=P11;sbit wx1=P20; /位选1sbit wx2=P21; /位选2sbit wx3=P22; /位选3sbit wx4=P23; /位选4sbit wx5=P24; /位选1sbit wx6=P25; /位选3sbit wx8=P27; /位选2sbit wx7=P26; /位选4sbit beep=P13;sb
20、it led=P14;sbit led1=P15;unsigned int temp, temp1,temp2,xs;unsigned int temp3,temp4,temp5,xs1;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99, /共阳数码管 0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6;/*延时程序*/ void delay(unsigned int m) /温度延时程序 while(m-);void delay1(unsigned int m) unsigned int i,j; for(i=m;i>0;i
21、-) for(j=110;j>0;j-); void Init_DS18B20() unsigned char x=0;DQ = 1; /DQ复位 ds18b20通信端口 delay(8); /稍做延时DQ = 0; /单片机将DQ拉低delay(80); /精确延时 大于 480usDQ = 1; /拉高总线 delay(4);x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);/*ds18b20读一个字节*/uchar ReadOneChar()unsigned char i=0;unsigned char dat = 0;for (i=8;i&g
22、t;0;i-)DQ = 0; / 高电平拉成低电平时读周期开始 dat>>=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; / delay(4); return(dat);/*ds18b20写一个字节*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ = 0; /从高电平拉至低电平时,写周期的开始 DQ = dat&0x01; /数据的最低位先写入 delay(5); /60us到120us延时 DQ = 1; dat>>=
23、1; /从最低位到最高位传入/*读取ds18b20当前温度*/void ReadTemperature() unsigned char a=0; unsigned b=0; unsigned t=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳过读序号列号的操作/ WriteOneChar(0x44); / 启动温度转换 delay(5); / this message is wery important Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等
24、(共可读9个寄存器) 前两个就是温度/ delay(5); a=ReadOneChar(); /读取温度值低位 / b=ReadOneChar(); /读取温度值高位 / temp1=b<<4; /高8位中后三位数的值 temp1+=(a&0xf0)>>4; /低8位中的高4位值加上高8位中后三位数的值 temp1室温整数值 temp2=a&0x0f; /小数的值 temp=(b*256+a)>>4); /当前采集温度值除16得 实际温度值 zhengshu xs=temp2*0.0625*10; /小数位,若为0.5则算为5来显示 xs小数
25、 xiaoshu void wenduxianshi() wx1=0; P0=tabletemp/10; /显示十位 delay1(1); wx1=1; wx2=0; P0=tabletemp%10+0x80; /显示个位 加上0x80就显示小数点了。 delay1(1); wx2=1; wx3=0; P0=tablexs%10; /显示小数位 delay1(1); wx3=1; wx4=0; P0=table12; /显示 C 字符 delay1(1); wx4=1; void Init_DS18B201() unsigned char x1=0;DQ1 = 1; /DQ复位 ds18b20
26、通信端口 delay(8); /稍做延时DQ1 = 0; /单片机将DQ拉低delay(80); /精确延时 大于 480usDQ1 = 1; /拉高总线 delay(4);x1=DQ1; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);/*ds18b20读一个字节*/uchar ReadOneChar1()unsigned char i=0;unsigned char dat1 = 0;for (i=8;i>0;i-)DQ1 = 0; / 高电平拉成低电平时读周期开始 dat1>>=1; DQ1 = 1; / 给脉冲信号 if(DQ1) dat1
27、|=0x80; / delay(4); return(dat1);/*ds18b20写一个字节*/void WriteOneChar1(unsigned char dat1)unsigned char i=0; for (i=8; i>0; i-) DQ1 = 0; /从高电平拉至低电平时,写周期的开始 DQ1 = dat1&0x01; /数据的最低位先写入 delay(5); /60us到120us延时 DQ1 = 1; dat1>>=1; /从最低位到最高位传入/*读取ds18b20当前温度*/void ReadTemperature1() unsigned ch
28、ar a1=0; unsigned b1=0; unsigned t1=0; Init_DS18B201(); WriteOneChar1(0xCC); / 跳过读序号列号的操作/ WriteOneChar1(0x44); / 启动温度转换 delay(5); / this message is wery important Init_DS18B201(); WriteOneChar1(0xCC); /跳过读序号列号的操作 WriteOneChar1(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度/ delay(5); a1=ReadOneChar1(); /读取温度值低
29、位 / b1=ReadOneChar1(); /读取温度值高位 / temp4=b1<<4; /高8位中后三位数的值 temp4+=(a1&0xf0)>>4; /低8位中的高4位值加上高8位中后三位数的值 temp1室温整数值 temp5=a1&0x0f; /小数的值 temp3=(b1*256+a1)>>4); /当前采集温度值除16得 实际温度值 zhengshu xs1=temp5*0.0625*10; /小数位,若为0.5则算为5来显示 xs小数 xiaoshu void wenduxianshi1() wx5=0; P0=table
30、temp3/10; /显示十位 delay1(1); wx5=1; wx6=0; P0=tabletemp3%10+0x80; /显示个位 加上0x80就显示小数点了。 delay1(1); wx6=1; wx7=0; P0=tablexs1%10; /显示小数位 delay1(1); wx7=1; wx8=0; P0=table12; /显示 C 字符 delay1(1); wx8=1; void fm() uint m; for(m=500;m>0;m-) beep=beep; delay(10); void baojing() if(temp>=30) led=led; fm
31、(); if(temp3>=30) led1=led1; fm(); void main() uint i; i=0; while(1) i+; led=1; ReadTemperature(); wenduxianshi(); ReadTemperature1(); wenduxianshi1(); if(i=20) baojing(); i=0; 三、系统测试1、硬件测试(1)在安装元件前要先认识和检测元件,一些常见元件的认识与检测如下:电容:电容在这里用到的是瓷片电容和电解电容,其外围上面都有标记,我们只需检测其好坏。在利用万用表检测时要注意如果为电解电容红表笔应接负极,黑表笔接正
32、极。 色环电阻:我们在此使用的是五个色环标志的电阻。此类电阻前三环表示有效数字,第四环表示倍率,与前四环距离较大的第五环表示允许偏差。 二极管:在此装置中要用到发光二极管,对于发光二极管一般引脚长的那端为正极,引脚短的那端为负极。这是粟老师教给我的简便方法。三极管:在此装置中,我们用到9012型号三极管,在使用三极管前我们首先要确定它的c、e和b极。(2)安装元件时的问题: 装配时,应该先安装那些需要机械固定元器件,在此装置中如中心芯片插座。为避免因元器件发热而减弱铜箔对基板的附着力,并防止元器件的裸露部分同印制导线短路。光洁整齐的外观,良好的焊点要求焊料用量恰到好处,外表有金属光泽,没有粒尖
33、,桥接等现象,并且不伤及导线的绝缘层及相邻元器件。足够的机械强度,焊接不仅起到电气连接的作用,同时也是固定元器件,保证机械强度连接的手段。可靠的电气连接,焊接是电子线路从物理上实现电气连接的主要手段,锡焊连接不是靠压力而是靠焊接过程形成的牢固连接的合金层达到电气连接的目的。(3)在焊接完成最小系统之后,还应该对单片机最小系统进行测试,连接上电脑,看是否可以下载程序到单片机,并准确运行所写程序。2、软件测试 软件调试是通过对程序的汇编(或者C语言)、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程,查看程序是否有逻辑的错误。在对硬件调试后再对软件进行,因为先对硬件检查没问题的情
34、况下再对软件进行调试,编译软件可以通过编译去检查程序上的语法错误,然后可以在它的基础上在对它进行一些修改达到没有错误为止,然后将软件拿到硬件上去运行。在这次课程设计中,我在写程序时出现下列错误:1) 、延时程序,在报警程序时,延时程序延时时间过短,导致数码管显示闪烁不停,更本无法看清数码管显示的数字,后经过更改延时才让数码管显示正常。2) 、IO口写重复。3) 、温度显示处理没写对,小数位一开始显示乱码,后边经过查资料更改。 P0=tabletemp3/10; /显示十位 delay1(1); wx5=1; wx6=0; P0=tabletemp3%10+0x80; /显示个位 加上0x80就显示小数点了。 delay1(1); wx6=1; wx7=0; P0=tablexs1%10; /显示小数位 delay1(1); wx7=1; wx8=0; P0=table12; /显示 C 字符 delay1(1); wx8=1; 4) 、报警程序,在判断上下限时写错,后边经过更改才正确报警。5) 、主程序中忘记写报警程序,出现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医护理:艾灸疗法在疾病康复中的作用
- 中医护理对慢性病的管理
- 医院感染消毒隔离技术
- 儿科护理研究新趋势
- 2026年山东省泰安岱岳区六校联考初三年级期末质量调查英语试题含解析
- 上海杨浦区重点名校2026届初三下学期第二次联合考试语文试题试卷含解析
- 浙江省杭州市临安区达标名校2025-2026学年初三下学期第一次诊断性考试数学试题含解析
- 山西省吕梁市交城县2026届普通高中毕业班第二次质量检查物理试题含解析
- 工业机器人试卷及解析
- 产品淘宝营销方案(3篇)
- 银屑病的全英文
- 统计局能源培训
- 铝电解工(铝电解操作工)职业资格(技师)考试题库-下(多选、判断题)
- 香料基础理论知识单选题100道及答案解析
- 市场营销合同范本
- NB-T10636-2021光伏发电站逆变器及汇流箱技术监督规程
- QCT1067.5-2023汽车电线束和电器设备用连接器第5部分:设备连接器(插座)的型式和尺寸
- 列宁人物课件
- 初三三角函数复习教案-
- 社会稳定风险评估业务档案管理制度
- 2016-2023年郑州信息科技职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
评论
0/150
提交评论