用LED数码管和DS18B20设计的温度显示器

合集下载

利用DS18B20做精确数字温度计设计

利用DS18B20做精确数字温度计设计

基于DS18B20的数字温度计设计摘要随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。

传统的温度检测以热敏电阻为温度敏感元件。

热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。

与传统的温度计相比,这次设计的是基于DS18B20的数字温度计,它具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

在本设计中选用AT89C51型单片机作为主控制器件,采用DS18B20数字温度传感器作为测温元件,通过4位共阳极LED数码显示管并行传送数据,实现温度显示。

本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示。

通过DS18B20直接读取被测温度值,送入单片机进行数据处理,之后进行输出显示,最终完成了数字温度计的总体设计。

其系统构成简单,信号采集效果好,数据处理速度快,便于实际检测使用。

关键词:单片机AT89C51;温度传感器DS18B20;LED数码管;数字温度计Design based Digital Thermometer DS18B20AbstractAlong with the present information technology's swift development and traditional industry transformation's gradual realization. Able to work independently of the temperature detection and display system used in many other fields. Traditional temperature examination take thermistor as temperature sensitive unit. Thermistor's cost is low, needs the sur- signal processing electric circuit, moreover the reliability is relatively bad, the temperature measurement accuracy is low, the examination system also has certain error. Compares with the traditional thermometer, what this design is based on the DS18B20 digital thermometer, it has the reading to be convenient, the temperature measurement scope is broad, the temperature measurement is precise, the digit demonstrated that applicable scope wide and so on characteristics.Used in the design AT89C51 MCU as the main control device, digital temperature sensor DS18B20 as the temperature components of the anode through the four LED digital display tube parallel transmission of data, to achieve temperature display. This design's content mainly divides into two parts; first, to system hardware part design, including temperature gathering electric circuit and display circuit; Second, to the system software part's design, realizes temperature gathering and the demonstration using the C language. DS18B20 measured by direct reading temperature values,and transfer Data into MCU,and output to show,this is the design of the Digital Thermometer.Its system constitution is simple, the effect of signal gathering is good, the speed of data processing is quick,at al it is advantageous for the actual examination use.Keywords: MCU AT89S51; Temperature Sensor DS18B20; LED Digital tube Digital Thermometer目录摘要 (I)ABSTRACT (II)第一章绪论 (1)1.1课题背景 (1)1.2课题来源 (2)1.3课题内容及要求 (2)第二章基于DS18B20数字温度计设计的可行性分析 (4)2.1数字温度计设计方案论证 (4)2.1.1方案一 (4)2.1.2方案二 (4)2.2单线技术 (4)第三章系统的硬件选择及设计 (6)3.1核心处理器的设计 (6)3.1.1 AT89C51的简介 (6)3.1.2复位电路的设计 (9)3.1.3晶振电路的设计 (10)3.2温度采集电路的设计 (10)3.2.1 DS18B20的简介 (11)3.2.2 DS18B20内部结构 (13)3.2.3 DS18B20测温原理 (17)3.2.4 温度采集电路 (18)3.3温度显示电路的设计 (18)3.3.1 LED数码管的操作 (18)3.3.2温度显示电路 (20)第四章系统的软件设计 (21)4.1概述 (21)4.2DS18B20的单线协议和命令 (21)4.2.1初始化 (21)4.2.2 ROM操作命令 (21)4.2.3内存操作命令 (22)4.2.4数据处理 (23)4.3温度采集程序的设计 (25)4.3.1程序流程图 (25)4.3.2采集程序 (26)4.4温度显示程序的设计 (31)4.4.1程序流程图 (31)4.4.2显示程序 (31)结论 (33)致谢 (34)参考文献 (35)附录A (36)附录B (37)第一章绪论1.1课题背景单片机自1976年由Intel公司推出MCS-48开始,迄今已有三十多年了。

用LED和数码管设计的温度器

用LED和数码管设计的温度器

单片机课程设计说明书用LED 数码管和DS18B20 设计的温度显示器专业 学生姓名 班级 学号指导教师 完成日期目录摘要 (2)关键词 (2)第一章引言 (2)1.1设计背景 (2)1.2设计任务 (2)1.3电路的工作原理 (3)第二章方案论证及硬件设计 (3)2.1 方案选择 (3)2.2最小系统的设计 (4)2.2.1电源部分 (4)2.2.2时钟电路的设计 (4)2.2.3复位电路的设计 (5)2.3温度传感器 (6)2.3.1 DS18B20 (6)2.3.2 DS18B20的主要特性 (7)2.3.3 DS18B20工作原理 (7)2.3.4 温度格式 (8)2.3.4 DS18B20的外部电源供电方式 (8)2.4 AT89C51特点及特性 (9)2.4.1 管脚功能说明 (10)2.4.2 振荡器特性 (11)2.4.3 芯片擦除 (11)2.5 数码管 (12)2.5.1 LED数码管连接方法 (12)2.5.2数码管显示方式 (12)第三章系统的软件设计 (13)3.1 流程图 (13)结束语 (13)参考文献 (14)附录 (14)附录一系统程序 (14)附录二原理图 (18)附录三 Proteus仿真图 (20)附录四 PCB图 (21)附录五实物图 (22)附录六元器件清单 (23)摘要温度是一个十分重要的物理量,对他的测量与控制有十分重要的意义,随着现代工农业技术的发展及人们对生活环境要求的提高,人们也迫切需要检测与控制温度。

本温度显示器的设计与制作,阐明了该装置进行设计与制作的具体过程及方法。

这种温度显示器结构简单操作性强,应用广泛。

工作时,由传感器检测温度,防止因温度升高而带来的不必要的损失。

本文介绍的是采用温度传感器DS18B20的温度显示器,自动测量当前环境温度由单片机AT89S51控制,并通过四位7段数码管显示。

关键词温度显示;单片机;AT89C51;数字温度传感器;DS18B20第一章引言1.1设计背景温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,随着人们生活水平的不断提高,对生活质量的要求不断提升,自然会更加关注跟人身体健康紧密联系的温度同时在工业生产过程中经常需要实时测量温度,尤其是在高危生产行业,如花炮生产、煤矿行业等。

DS18B20数字温度计的设计与实现

DS18B20数字温度计的设计与实现

DS18B20数字温度计的设计与实现一、实验目的1.了解DS18B20数字式温度传感器的工作原理。

2.利用DS18B20数字式温度传感器和微机实验平台实现数字温度计。

二、实验内容与要求采用数字式温度传感器为检测器件,进行单点温度检测。

用数码管直接显示温度值,微机系统作为数字温度计的控制系统。

1.基本要求:(1)检测的温度范围:0℃~100℃,检测分辨率 0.5℃。

(2)用4位数码管来显示温度值。

(3)超过警戒值(自己定义)要报警提示。

2.提高要求(1)扩展温度范围。

(2)增加检测点的个数,实现多点温度检测。

三、设计报告要求1.设计目的和内容2.总体设计3.硬件设计:原理图(接线图)及简要说明4.软件设计框图及程序清单5.设计结果和体会(包括遇到的问题及解决的方法)四、数字温度传感器DS18B20由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。

它具有体积小,接口方便,传输距离远等特点。

1.DS18B20性能特点DS18B20的性能特点:①采用单总线专用技术,既可通过串行口线,也可通过其它I/O 口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位),②测温范围为-55℃-+125℃,测量分辨率为0.0625℃,③内含64位经过激光修正的只读存储器ROM ,④适配各种单片机或系统机,⑤用户可分别设定各路温度的上、下限,⑥内含寄生电源。

2. DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH 和TL,高速暂存器。

64位光刻ROM 是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。

64位ROM 结构图如图2所示。

不同的器件地址序列号不同。

DS18B20的管脚排列如图1所示。

毕业设计论文温度计LED显示仪_18B20

毕业设计论文温度计LED显示仪_18B20

毕业设计论文温度计LED显示仪_18B20摘要:本文设计了一款基于数字温度传感器18B20的温度计LED显示仪。

该设计使用STM32微控制器作为控制核心,通过18B20数字温度传感器采集环境温度,并将温度以数字形式显示在LED数码管上。

设计采用硬件电路和嵌入式程序相结合的方式,实现了温度采集和显示功能,并具有温度高低报警功能。

实验结果表明,该设计具有较高的温度测量精度和稳定性。

关键词:温度计,LED显示仪,数字温度传感器18B20,STM32微控制器引言温度计是一种用于测量环境温度的仪器,广泛应用于各个领域。

随着科技的发展,温度计的种类也越来越多样化,其中LED显示温度计由于具有数字显示和便于读取的特点,受到了广泛的关注和应用。

本文设计了一款基于数字温度传感器18B20的温度计LED显示仪。

该设计通过18B20传感器采集环境温度,并将温度以数字形式显示在LED数码管上。

同时,设计还具有高低温度报警功能,可以实时监测环境温度是否超过设定的范围。

方法1.硬件设计硬件电路主要包括18B20数字温度传感器、STM32微控制器、LED数码管、温度上下限设置开关等。

其中,18B20传感器负责采集环境温度信号,STM32微控制器负责对温度信号进行处理和显示。

LED数码管用于显示温度数值,温度上下限设置开关用于调整报警温度范围。

2.软件设计软件设计主要包括嵌入式程序编写和功能实现。

程序通过STM32微控制器的GPIO口与18B20传感器和LED数码管进行通信,实现温度数据的采集和显示。

同时,程序还对温度进行判断,当温度超过设定的上下限时,通过蜂鸣器进行报警。

实验与结果为了验证设计的可行性和有效性,本文进行了一系列实验。

实验结果表明,设计的温度计LED显示仪具有较高的温度测量精度和稳定性。

同时,温度报警功能也能够准确地检测到环境温度是否超过设定的范围。

结论本文设计了一款基于18B20数字温度传感器的温度计LED显示仪,通过软硬件相结合的方式,实现了对环境温度的采集和显示。

DS18B20数字温度计毕业设计(毕业设计)详解

DS18B20数字温度计毕业设计(毕业设计)详解

DS18B20数字温度计设计西南大学工程技术学院,重庆 400716摘要:本文介绍了利用美国DALLAS半导体公司最新推出的一种改进型智能温度传感DS18B20和ATMEL公司生产的AT89C2051,结合四位共阳型LED,采用动态显示的方法实现室内温度的检测和读数。

本文设计的数字温度计基于DS18B20单线总线结构,与单片机的接口电路简单无须外部电路,同时由于DS18B20能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,因而使得整体设计思路简单,可以实现-55~+125゜C的温度测量,精度误差在0.1゜C以内。

本文给出了具体的硬件电路和软件设计。

关键词:单片机DS18B20智能温度传感器DS18B20 DIGITAL THERMOMETER DESIGNLI XuejianCollege of Engineering and Technology, Southwest University, Chongqing 400716, ChinaAbstract:This paper presents the method for a digital thermometer design made of DS18B20,a newly-product of advaced Programmable Resolution 1-Wire® Digital Thermometer(DALLAS),and AT89C2051 (ATMEL).This design adopts dynamic dispay method with four LED to measu re room temperature.This digital thermometer is based on the one wire configuration of DS18B 20, and no external circuit is required.Since the measured temperature can be directly read by DS18B20 and 9-12 digits reading can be implemented through simple programming, the overall design concept is simple. Temperature within -55~+125゜C can be measured with an error of +/-0.1゜C. Detailed circuits and softwaredesign are given here.Key Words:single-chip computer DS18B20 smart temperature sensor文献综述自动控制领域中,温度检测与控制占有很重要地位。

DS18B20数字温度计的设计

DS18B20数字温度计的设计

基于DS18B20室内数字温度计日常生活中人们需要测量各种各样的温度。

环境温度对工业、农业、商业都有很大的影响。

传统的测温仪测量费时,准确度也较低,数字温度计与传统的温度计相比,具有读数速度快,测温范围广,其输出温度采用数字显示,便于用户使用。

随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,本设计所介绍的数字温度计使用单片机stc89C51,测温传感器使用DS18B20,用数码管实现温度显示,利用DS18B20和一片stc89C51单片机即可构成一个简洁但功能强大的低电压温度测量控制系统。

一、设计前言1.1 设计目的1.理论联系实际,单片机应用,尝试设计案例程序2.对主要元件功能有所了解3.学会用C语言编写程序4.培养设计项目程序流程图的思想5.掌握项目中所使用到的元器件的硬件原理,并用Proteus软件仿真,并用protell99se画PCB1.2设计内容1.所设计实验装置以MCS-51系列单片机为核心器件,组成一个数字式温度计。

2.所设计实验装置能够利用数码管直接显示出外界温度及温度变化。

3.所设计实验装置测试外界温度误差范围在±0.5℃之间。

4.手机充电器作稳压电源。

1.3设计要求1.独立设计原理图及相应的硬件电路。

2.独立焊接电路板并对电路板调试。

3.针对选择的设计题目,设计系统软件。

软件要做到:操作方便,实用性强,稳定可靠。

4.设计说明书格式规范,层次合理,重点突出。

并附上设计原理图、电路板图及相应的源程序。

二、设计方案2.1方案论证鉴于此设计题目,以下想到两种可能方案:方案一热敏电阻由于此设计是测温电路,所以想到使用热敏电阻,利用它的感温效应,在实验过程中记录在其温度变化时的电压或电流,进行A/D转换后,就可以用单片机进行数据处理,在显示电路上,就可以将被测温度显示出来。

方案二温度传感器此设计利用温度传感器,采用一只温度传感器DS18B20,控制器单片机AT89S51,用液晶显示器显示温度。

用数码管与DS18B20设计温度报警器

用数码管与DS18B20设计温度报警器

#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit DQ=P3^6;sbit BEEP=P3^7;sbit HI_LED=P1^4;sbit LO_LED=P1^5;bit HI_Alarm=0,LO_Alarm=0;bit DS18B20_IS_OK=1;uchar codeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; / /数码管共阴极段码uchar code df_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9}; //温度小数位对照表ucharCurrentT=0;//温度整数部分ucharDisplay_Digit[]={0,0,0,0}; //数码管待显示的各位温度ucharTemp_Value[]={0x00,0x00}; //DS0832读取的温度值uintTime0_Count=0; / / 定时器中断计数char Alarm_Temp_HL[2]={70,-20};/***********延时程序*************/void Delay(uint x){while(--x);}/**********DS18B20初始化********/uchar Init_DS18B20(){uchar status;DQ=1;Delay(8);DQ=0;Delay(90);DQ=1;Delay(8);status=DQ;Delay(100);DQ=1;return status;}/**********DS18B20读字节********/ uchar ReadOneByte(){uchar i,dat=0;DQ=1;_nop_();for(i=0;i<8;i++){DQ=0;dat >>=1;DQ=1;_nop_();_nop_(); if (DQ) dat |=0x80; Delay(30); DQ=1;}return dat;}/**********DS18B20写字节********/void WriteOneByte(uchar dat){uchar i;for(i=0;i<8;i++){DQ=0;DQ=dat & 0x01;Delay(5); DQ=1; dat>>=1; }}/**********从DS18B20读取温度********/void Read_Temperature(){if( Init_DS18B20()==1)DS18B20_IS_OK=0;else{WriteOneByte(0xCC);WriteOneByte(0x44);Init_DS18B20();WriteOneByte(0xCC);WriteOneByte(0xBE);Temp_Value[0]=ReadOneByte();Temp_Value[1]=ReadOneByte();DS18B20_IS_OK=1;}}/**********给DS18B20设置报警值********/void Set_Alarm_Temp_Value(){Init_DS18B20();WriteOneByte(0xcc); //跳过序列号WriteOneByte(0x4e); //将设定的温度报警值写入DS18B20WriteOneByte(Alarm_Temp_HL[0]); //写THWriteOneByte(Alarm_Temp_HL[1]); //写TLWriteOneByte(0x7f); //12位精度Init_DS18B20();WriteOneByte(0xcc); //跳过序列号WriteOneByte(0x48); //将温度报警值存入DS18B20}/**********温度值显示******************/void Display_Temperature() //显示温度{uchar i;uchar t=150; //延时值uchar ng=0,np=0; //负数标示,及负号显示位置char Signed_Current_Temp;if((Temp_Value[1]&0xf8)==0xf8) //如果为负数,取反加1;设置负数标示及负号显示位置{Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_Value[0]+1;if(Temp_Value[0]==0x00)Temp_Value[1]++;ng=1;np=0xfd;}Display_Digit[0]=df_Table[Temp_Value[0]&0x0f]; //查表显示温度小数位CurrentT=((Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0x07)<<4);Signed_Current_Temp=ng? -CurrentT : CurrentT;HI_Alarm= Signed_Current_Temp >= Alarm_Temp_HL[0] ? 1:0;LO_Alarm= Signed_Current_Temp <= Alarm_Temp_HL[1] ? 1:0;Display_Digit[3]=CurrentT/100;Display_Digit[2]=CurrentT%100/10;Display_Digit[1]=CurrentT%10;if(Display_Digit[3]==0) //高位为0,不现实,负号后移{ Display_Digit[3]=10;np=0xfb;if(Display_Digit[2]==0){Display_Digit[2]=10;np=0xf7;}}for(i=0;i<30;i++) //刷新数码管显示温度值{P0=0X39;P2=0X7F;Delay(t);P2=0XFF;P0=0X63;P2=0XBF;Delay(t);P2=0XFF;P0=DSY_CODE[Display_Digit[0]];P2=0XDF;Delay(t);P2=0XFF;P0=(DSY_CODE[Display_Digit[1]])|0X80;P2=0XEF;Delay(t);P2=0XFF;P0=DSY_CODE[Display_Digit[2]];P2=0XF7;Delay(t);P2=0XFF;P0=DSY_CODE[Display_Digit[3]];P2=0XFB;Delay(t);P2=0XFF;if(ng){P0=0X40;P2=np;Delay(t);P2=0XFF;}}}/**********定时器0中断,控制报警声音********/ void T0_INT()interrupt 1{TH0=-1000/256;TL0=-1000%256;BEEP=!BEEP;if(++Time0_Count==400){Time0_Count=0;if(HI_Alarm)HI_LED=~HI_LED;else HI_LED=1;if(LO_Alarm)LO_LED=~LO_LED;else LO_LED=1;}}void main(){IE=0X82;TMOD=0X01; //方式1计数TH0=-1000/256;TL0=-1000%256;TR0=0;HI_LED=1;LO_LED=1;Set_Alarm_Temp_Value();Read_Temperature();Delay(50000); Delay(50000);while(1){Read_Temperature();if(DS18B20_IS_OK){if(HI_Alarm==1||LO_Alarm==1)TR0=1; else TR0=0;Display_Temperature();}else{P0=P2=0X00;}}}。

DS18B20温度检测仪表(数码管显示)doc资料

DS18B20温度检测仪表(数码管显示)doc资料

目录第1章绪论 (1)1.1 选题目的 (1)1.2 设计要求 (1)第2章电路结构及工作原理 (2)2.1 电路方框图 (2)2.1.1 电路图 (2)2.1.2 系统流程 (3)2.2芯片介绍 (5)2.2.1 DS18B20 (5)2.2.1.1 DS18B20的工作原理 (5)2.2.1.2 DS18B20的使用方法 (6)2.2.2 AT89C51 (8)2.2.2.1 AT89C51简介 (8)第3章整机工作原理 (10)第4章系统调试与分析 (12)4.1 系统的调试 (12)4.2系统的分析 (12)结论 (13)收获和体会 (14)致谢 (15)参考文献 (16)附录一元件清单 (17)课程设计任务书年月日第1章绪论1.1 选题目的随着人们生活水平的不断提高,单片机技术已经普及到我们生活,工作,科研等各个领域。

单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本文利用单片机结合传感器技术开发设计,把传感器理论与单片机实际应用有机结合,详细地讲述了利用温度传感器DS18B20测量环境温度,设置上下报警温度,当温度不在设置范围内是,可以报警。

同时51单片机在现代电子产品中广泛应用以及其技术已经非常成熟,DS18B20可以直接读出被测温度值,而且采用一线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。

1.2 设计要求(1)设计题目和设计指标测量温度范围为0-100℃。

并通过数码管显示(2)设计功能利用DS18B20实现温度采集,并用数码管显示第2章 电路结构及工作原理2.1 电路方框图图2-1 电路方框图2.1.1 电路图2.1.2 系统流程图2-3 读DS18B20的子程序图2-4 读转换温度子程序2.2芯片介绍2.2.1 DS18B202.2.1.1 DS18B20的工作原理当DS18B20接收到温度转换命令后,开始启动转换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计说明书用LED 数码管和DS18B20设计的温度显示器专业 电气工程及其自动化学生姓名 管通 班级 B 电气081 学号0810601112 指导教师 张兰红完成日期2011年 6 月 23 日目录1.概述 (1)1.1课题设计背景和意义 (1)1.2课题设计内容 (1)2.课程方案设计 (2)2.1系统总体设计要求 (2)2.2系统模块结构论证 (2)2.2.1方案一 (2)2.2.2方案二 (2)3.系统硬件设计 (5)3.1总体设计 (5)3.2单片机最小运行系统 (5)3.3温度传感器(DS18B20)电路 (6)3.4七段数码管显示电路 (7)3.5驱动电路 (8)4.系统软件设计 (8)4.1程序结构分析 (8)4.2系统程序流图 (9)5.软硬件联调 (12)5.1软硬件调试中出现的问题及解决措施 (12)5.2实物图 (13)5.3调试结果 (14)结束语 (15)参考文献 (16)附录 (17)附录1:基于单片机的温度显示系统设计原理图 (18)附录2:基于单片机的温度显示系统设计PCB图 (19)附录3:proteus仿真图 (20)附录4:基于单片机的温度显示系统设计C语言程序清单 (21)附录5: 基于单片机的温度显示系统设计元器件目录表 (25)1.概述1.1课题设计背景和意义由于现代工艺越来越多的需要对实时温度进行监测和控制,而且需要的精度越来越高。

所以温度控制系统国内外许多有关人员的重视,得到了十分广泛的应用。

温度控制系统发展迅速,而且成果显著。

由于单片微处理器的性能日益提高、价格又不断降低,使其性能价格比的优势非常明显。

“用LED数码管和DS18B20设计的温度显示器”课程设计,主要设计以一个单片机为控制核心的温度自动测量系统,一方面,本次设计是一个单片机系统,对它的设计和制作可以灵活运用在单片机课程中所学的知识,并使之得到巩固和提高。

另一方面,它的测温部分采用了美国Dallas半导体公司的DS18B20一线式数字式温度传感器,DS18B20是最新一代的测温器件,具有许多优点,它正在逐步取代传统的测温元件——热敏电阻和热电偶。

1.2课题设计内容本课题的主要任务是设计并制作用LED数码管和DS18B20设计的温度显示器,即根据温度传感器感受室温,通过数码管显示出来。

它能感受微小的温度误差,灵敏度为0.1摄氏度。

灵活方便,用途广泛。

设计温度显示器的硬件电路与软件控制程序,对硬件电路与软件程序分别进行调试,并进行软硬件联调,要求获得调试成功的实物。

2.课程方案设计2.1系统总体设计要求该系统组要有STC89C51为核心的主控电路测温电路(DS18B20)、LED显示电路。

2.2系统模块结构论证2.2.1方案一针对铂热电阻传感器测量温度,采用普通稳压源桥式电路而产生非线性误差的问题,运用集成运算放大器工作在线性区域的特性,将恒流源原理应用到测温桥式电路中,并采用集成A/D转换技术的单片机Mega16,通过运算消除了非线性误差,实现了对温度的精确测量。

试验结果表明,应用此种测温电路,缩短了单片机计算时间,一定程度上缓解了变送滞后对测量精度的影响,同时降低了误差。

图2-1铂电阻桥式测温电路2.2.2方案二考虑使用数字温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求。

图2-2 DS18B20测温系统框图2.2.3方案比较方案一采用模拟温度传感器,数据处理麻烦,且容易产生信号失真. DS18B20可以直接温度转换为串行数字信号,供单片机进行处理,具有低功耗、高性能、抗干扰能力强等优点。

比较以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计容易实现,故实际设计中拟采用方案二。

在本系统的电路设计方框图如图2-3所示。

图2-3 温度计电路总体设计方案DS18B20是Dallas 公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围-55~+125℃,可编程为9~12位A/D 转换精度,测温分辨率可达0.0625℃,STC89C52 CPUDS18B20温度芯片 LED 显示报警电路电源被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。

3.系统硬件设计3.1总体设计根据第2节设计方案,设计的系统总体电路如附录1所示,下面具体介绍每一部分的设计。

3.2单片机最小运行系统a)晶振晶振为单片机提供时钟信号。

单片机XIAL1和XIAL2分别接30PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路。

C230pF30pFC3图3-1 晶振电路b)复位电路单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。

89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。

当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

单片机系统的复位方式有:手动按钮复位和上电复位。

图3-2 复位电路ALE引脚悬空,复位引脚接到复位电路、VCC接电源、VSS接地、EA接电源3.3温度传感器(DS18B20)电路DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号处理器处理。

DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。

因此,下图电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。

并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。

图3-3温度传感器电路引脚图如图3-2,P3.6引脚接继电器电路的4.7K的限流电阻上。

DS18B20有六条控制命令:温度转换 44H 启动DS18B20进行温度转换读暂存器 BEH 读暂存器9个字节内容写暂存器 4EH 将数据写入暂存器的TH、TL字节复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPUDS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。

另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个三极管来完成对总线的上拉。

本设计采用电源供电方式, P2.2口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个上拉电阻和STC89C52的P2.2来完成对总线的上拉。

当DS18B20处于写存储器操作和温度A/D 变换操作时,总线上必须有强的上拉,上拉开启时间最大为10 μs。

采用寄生电源供电方式是VDD和GND端均接地。

由于单线制只有一根线,因此发送接收口必须是三状态的。

主机控制DS18B20完成温度转换必须经过3个步骤:●初始化。

●ROM操作指令。

●存储器操作指令。

3.4七段数码管显示电路当位选打开时,送入相应的段码,则相应的数码管打开,关掉位选,打开另一个位选,送入相应的段码,则数码管打开,而每次打开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。

图3-4 数码管引脚图考虑到实际室温的温度范围,显示需用五位,硬件中用了2个四位数码管,共8个位选,接到P2口。

3.5驱动电路一般也可以用三极管9012来驱动4位数码管,不仅增加了成本也增加了布线难度,功耗大。

这里用锁存器74LS245来驱动数码管显示。

A02A13A24A35A46A57A68A79B018B117B216B315B414B513B612B711E 19DIR 1VC C 20GND10U374LS24574LS245还具有双向三态功能,既可以输出,也可以输入数据。

当AT89C51单片机的P0口总线负载达到或超过P0口最大负载能力时,必须接入74LS245等总线驱动器。

DIR 为方向控制端。

当E 端为低电平时,DIR=“0”,信号由B 向A 传输(接收); 当DIR=“1”时,信号由A 向B 传输(发送);当E 为高电平时,A 、B 均为高组态。

A 总线端接8位P0口,B 总线端接数码管的a 、b 、c 、d 、e 、f 、g 、dp 引脚。

4.系统软件设计4.1程序结构分析主程序调用了2个子程序,分别是数码管显示程序、温度信号处理程序。

温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。

数码管显示程序:向数码的显示送数,控制系统的显示部分。

4.2系统程序流图系统程序主要包括主程序,读出温度子程序,写入子程序等,按键子程序,串口通信程序,显示子程序。

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。

这样可以在一秒之内测量一次被测温度,其程序流程见图4.2所示。

通过调用读温度子程序把存入内存储中的整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。

图4-1 DS18B20温度流程图uchar Init_DS18B20(){uchar status;DQ=1;Delay(8);DQ=0;Delay(90);DQ=1;Delay(8);status=DQ;Delay(100);DQ=1;return status;}uchar ReadOneByte(){uchar i,dat=0;DQ=1;_nop_();for(i=0;i<8;i++){DQ=0;dat >>=1;DQ=1;_nop_();_nop_();if (DQ ) dat |=0x80; Delay(30); DQ=1;}return dat;}void WriteOneByte(uchar dat){uchar i;for(i=0;i<8;i++){DQ=0;DQ=dat & 0x01;Delay(5); DQ=1; dat>>=1; }}void Read_Temperature(){if( Init_DS18B20()==1)DS18B20_IS_OK=0;else{WriteOneByte(0xCC);WriteOneByte(0x44);Init_DS18B20();WriteOneByte(0xCC); WriteOneByte(0xBE);Temp_Value[0]=ReadOneByte(); Temp_Value[1]=ReadOneByte(); DS18B20_IS_OK=1;}}5.软硬件联调5.1软硬件调试中出现的问题及解决措施第一次上电调试,设置温度上限为35摄氏度,温度下限为28摄氏度。

相关文档
最新文档