基于单片机的DS18B20温度测量
基于DS18B20的测温电路说明
基于DS18B20D的温度测量电路
主要由三部分组成:
AT89C51单片机,DS18B20温度传感器,以及LCD显示模块。
DS18B20的工作电压为3~5V,测温范围为-55~+125摄氏度。它具有三个引脚,当采用外部电源供电时,GND脚接地,VCC接电源,DQ脚作为信号端接单片机IO口,电源脚和DQ脚间还需要外接一个约4.7K的上拉电阻,保证总线闲置时其状态为高电平。DS18B20可以将所采集到的温度转化为数字信号,然后通过DQ传送至单片机,单片机从而启动程序存储器中的控制程序,驱动数码管显示温度值。
单片机对DS18B20的访问流程
先对DS18B20初始化,在进行ROM操作指令,然后发送存储器操作指令,一个存储器操作指令结束后将进行指令执行或数据的读写。
根据DS18B20的通讯协议,温度测量需要经三个步骤;每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令并置标志位,根据标志位来判断是否初始化成功,最后发送RAM指令开始转换,再读出温度转换值,读取的温度值高位字节送27H 单元,低位字节送26H单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
数码管显示程序采用动态扫描的方法,其中P2.0~P2.3是位选控制端,P0口控制段选。向P2.0~P2.3各位选端轮流输出扫描信号,使每一瞬间只有一个数码管被选通,然后向P0口送出相应的字型码,便可使得各位数码管轮流点亮显示各自的字形。
课程设计(论文)-基于C51单片机的DS18B20简易测温系统模板
1设计要求
1.1具体要求
本次课程设计采用的是基于C51单片机的DS18B20简易测温系统,电路图中主要包含51单片机,DS18B20和数码管显示。
1.2技术指标
实验要求测温显示精度为:1℃
测量范围为:-55℃-+125℃
2设计方案与论证
2.1方案选择
方案一:采用热敏电阻可满足测温要求,但热敏电阻精度低,重复性和可靠性较差,对于精度要求较高的测温不适用,而且采用热敏电阻要求复杂的电路和算法,增加了设计复杂度。
方案二:采用专用的集成温度传感器(如AD590、LM35/LM45)和数字化温度传感器(DS18B20、DS1620)测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。DS18B20是DALLAS公司的最新单线数字温度传感器,它是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,它的测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃,现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等,DS18B20支持3~5.5V的电压范围,使系统设计更灵活、更方便、更便宜、体积更小。DS18B20可以程序设定9~12位的分辨率,精度为±0.0625℃,分辨率设定及用户设定的报警温度存储在E2PROM中,掉电后依然保存。因此,本方案选用DS18B20作为温度测量传感器。
2.2.1单片机系统
目前比较流行51系列单片机和凌阳单片机。 AT89C51单片机需要用仿真器来实现软硬件的调试,较为繁琐; AT89S52八位单片机除具有AT89C51单片机所有的优点外,具有更大的程序存储空间,可在线仿真的功能,方便调试。凌阳十六位单片机虽然可以更好的完成控制功能,但较AT89S52八位单片机价格昂贵,而且编程以及外围功能电路的设计都不及AT89S52成熟。因此,选用AT89S52八位单片机作为温度采集的控部分。
基于单片机温度控制系统的设计DS18B20
基于单片机温度控制系统的设计DS18B20
设计步骤如下:
1.硬件设计:
a.使用DS18B20温度传感器进行温度测量。将DS18B20的VCC引脚连
接到5V电源,GND引脚连接到地,以及数据引脚连接到单片机的一些
GPIO口。
b.设计一个控制电路,可通过单片机的输出控制继电器或者电阻电路
对温度进行调节。根据具体需求,可以使用继电器进行开关控制,也可以
使用调节电阻来实现温度控制。
c.将单片机的GPIO口与控制电路的输入端连接,以便通过电平控制
控制电路的工作状态。
2.软件设计:
a.在单片机的开发环境中,编写硬件驱动程序,以实现与DS18B20传
感器的通信。这包括初始化传感器、发送读取温度命令、接收并解析温度
数据。
b.使用单片机的模拟/数字转换功能,将测量到的温度值转换为数字
数据,并存储在单片机的内存中。
c.编写控制算法,根据所需的温度范围和精度,设置控制电路的工作
状态。这可以通过设置GPIO口的电平来实现。
d.设置一个循环,不断读取温度传感器的数据,与目标温度进行比较,并根据需要,调节控制电路的工作状态以实现温度控制。
3.系统测试:
b.测试传感器的功能,确保能够准确读取到温度值。
c.设置一个合适的目标温度,并观察控制电路的工作状态,以确保能够实现温度控制。
d.通过改变目标温度,并观察系统的响应,调整控制算法,以优化温度控制的性能。
基于单片机温度控制系统的设计主要依赖于DS18B20温度传感器和单片机的硬件和软件设计。通过适当地设计传感器和控制电路,以及编写合适的控制算法,可以实现对环境温度的精确控制。设计完成后,可以应用于各种需要温度控制的场景,如恒温箱、温室等。
DS18B20温度检测
目录
1引言 (1)
2系统描述 (2)
2.1系统功能 (2)
2.2系统设计指标 (2)
3系统的主要元件 (3)
3.1单片机 (3)
3.2温度传感元件 (4)
3.3LCD显示屏 (6)
4硬件电路 (7)
4.1系统整体原理图 (7)
4.2单片机晶振电路 (7)
4.3温度传感器连接电路 (8)
4.4LCD电路 (9)
4.5报警和外部中断电路 (10)
5结论 (11)
温度监测系统硬件设计
摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可
以简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。同时提高了系统能够的抗干扰性,使系统更灵活、方
便。本系统主要实现温度的检测、显示以及高低温的报警。也可以通过单总线挂载
多个DS18B20实现多点温度的分布式监测。
关键词: DS18B20,单总线,温度,单片机
1引言
在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。而单片机的发展和应用是其中的重要一方面。单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。其中,单片机在工业生产中的应用尤其广泛。
单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D 转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。
单片机设计 温度测量 ds18b20 C51 源程序
/*********************************************************************/
//
// DS18B20温度计C程序
/*********************************************************************/
//使用AT89C2051单片机,12MHZ晶振,用共阳LED数码管
//P1口输出段码,P3口扫描
//#pragma src(d:\aa.asm)
#include "reg51.h"
#include "intrins.h" //_nop_();延时函数用
#define Disdata P1 //段码输出口
#define discan P3 //扫描口
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^7; //温度输入口
sbit DIN=P1^7; //LED小数点控制
uint h;
//
//
//*******温度小数部分用查表法**********//
uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x 09};
//
uchar code dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};
基于DS18B20--+89C52单片机的数字温度计设计)
基于DS18B20+89C52单片机的数字温度计设计
简介
数字温度计是现代生活中常见的电子设备之一,其广泛应用于医疗、环境监测、生产制造等领域。本文介绍基于DS18B20+89C52单片机的数字温度计设计。
DS18B20是一款高精度数字温度传感器,能够实现0.5℃的温度测量精度,同时具备防水、防腐等特性。89C52是一款高性能单片机,具备高速计算、高稳定性等
特点。本文将分析DS18B20的原理及使用方法,并结合89C52单片机设计出一款
数字温度计。
DS18B20工作原理
DS18B20是一种数字温度传感器,内置了AD转换器、数字信号处理器等。其
工作原理为利用其内部的温度传感器测量物体的温度,将温度转换为增量数字量输出,输出端为单总线,同时具备多级地址识别能力,因此可进行多个传感器测温。
DS18B20使用方法
1.按照DS18B20的引脚标识将其连接至单总线上;
2.DS18B20提供了ROM查询指令,用于查询DS18B20的唯一地址;
3.测温需要通过读取DS18B20的EEPROM寄存器得到,读取指令由主
控制器发出,DS18B20在收到读取指令后进行温度转换,然后将转换后的温
度值存储至EEPROM中;
4.读取温度值需要使用读温度命令,该命令由主控制器发出,DS18B20
回送温度值。
89C52单片机使用方法
89C52是一款AT89C系列单片机,具备丰富的I/O端口、高速时钟、EEPROM等特点。在使用89C52进行数字温度计设计时,需要进行以下操作: 1.
通过端口设定进行DS18B20的唤醒和读温度操作; 2. 通过定时器进行延时操作,
51单片机控制DS18B20测温的PID温控程序
51单片机控制DS18B20测温的PID温控程
序
#include;
#include;
#include;
#include;
struct PID {
unsigned int SetPoint; // 设定目标 Desired Value unsigned int Proportion; // 比例常数 Proportional Const
unsigned int Integral; // 积分常数 Integral Const unsigned int Derivative; // 微分常数 Derivative Const
unsigned int LastError; // Error[-1]
unsigned int PrevError; // Error[-2]
unsigned int SumError; // Sums of Errors
};
struct PID spid; // PID Control Structure unsigned int rout; // PID Response (Output) unsigned int rin; // PID Feedback (Input)
sbit data1=P1^0;
sbit clk=P1^1;
sbit plus=P2^0;
sbit subs=P2^1;
sbit stop=P2^2;
sbit output=P3^4;
sbit DQ=P3^3;
unsigned char flag,flag_1=0;
unsigned char high_time,low_time,count=0;//占空比调节参数
基于51单片机的DS18B20温度检测_设计报告
课程名称:微机原理课程设计题目:温度检测课程设计
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度检测仪。本设计使用简便,功能丰富。可以实现温度采集,温度报警,重设上下限温度值等功能。
在现代化的工业生产中,需要对周围环境的温度进行检测和控制。本设计对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过数码管显示的系统。该系统使用STC89C51单片机,同时运用单线数字温度传感器DS18B20,四位共阴数码管显示,按键控制等模块可实现温度的检测与设置。课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。本作品使用四位共阴数码管显示,可以清晰地显示当前的报警温度,一定程度避免使用者使用时出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,实用性很高。
关键字:温度报警器 STC89C51单片机数码管 DS18B20
一、课程设计目的和要求 (1)
1.1 设计目的 (1)
1.2 设计要求 (1)
二、总体设计方案 (1)
三、硬件设计 (2)
3.1 DS18B20传感器 (2)
3.2 STC89C51功能介绍 (6)
3.3 时钟电路 (8)
3.4 复位电路 (8)
3.5 LED显示系统电路 (9)
3.6 按键控制电路 (11)
3.7 蜂鸣器电路 (11)
3.8 总体电路设计 (12)
四、软件设计 (14)
4.1 keil软件 (14)
4.2 系统主程序设计 (14)
4.3 系统子程序设计 (15)
基于ds18b20的温度计设计代码
基于DS18B20的温度计设计代码
一、介绍DS18B20温度计
DS18B20是一种数字温度传感器,由美国达拉斯半导体公司生产。它采用单总线通信协议,并可以通过单总线接口进行多级串联。
DS18B20具有精度高、稳定性好、响应速度快等特点,因此在各种温度测量应用中被广泛使用。
二、DS18B20温度计设计代码
在使用DS18B20温度传感器时,我们通常需要编写相应的代码来读取传感器的数据并进行温度计算。以下是基于Arduino评台的
DS18B20温度计设计代码:
```c
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // 设置DS18B20数据线连接的Arduino 引脚
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin();
}
void loop() {
sensors.requestTemperatures(); // 发送获取温度命令
float temperatureC = sensors.getTempCByIndex(0); // 获取温度值(摄氏度)
float temperatureF = sensors.toFahrenheit(temperatureC); // 转换为华氏度
Serial.print("Temperature: ");
51单片机DS18B20温度传感器原理及实验
51单片机DS18B20温度传感器原理及实验
一、引言
温度传感器是一种常用的传感器器件,它的作用是将物体的温度变化
转换为电信号输出,以实现温度的监测和控制。DS18B20是一种数字温度
传感器,采用数字信号输出,具有体积小、精度高、线性度好等特点,被
广泛应用于各种温度控制系统中。本文将介绍DS18B20的工作原理及实验
方法。
二、DS18B20的工作原理
DS18B20是一种基于一线传输协议的数字温度传感器,其工作原理如下:
1.接口电路:DS18B20具有三个引脚,分别是VDD、DQ和GND。其中,VDD是供电引脚,DQ是数据引脚,GND是地引脚。
2.传感器原理:DS18B20内部包含一个温度传感器和一个数字转换器。温度传感器采用热敏电阻的原理,通过测量热敏电阻的电阻值来反映物体
的温度变化。数字转换器将传感器测得的电阻值转换为数字信号输出。
三、实验流程
以下是使用51单片机对DS18B20温度传感器进行实验的详细流程:1.硬件准备:
-将DS18B20的VDD引脚连接到单片机的VCC引脚,DQ引脚连接到单
片机的任意IO引脚,GND引脚连接到单片机的GND引脚。
-确保DS18B20的供电电压和单片机的工作电压一致。
2.初始化:
-在程序中定义DS18B20的DQ引脚所对应的单片机的IO引脚。
-初始化DS18B20,即发送初始化指令给DS18B20。
3.温度转换:
-发送温度转换指令给DS18B20,DS18B20开始测量温度。
-等待一定的延时,确保DS18B20完成温度转换。
4.读取温度:
-发送读取温度指令给DS18B20,DS18B20将温度的原始数据发送给单片机。
单片机DS18B20温度传感器C语言程序含CRC校验
单片机中使用DS18B20温度传感器C语言程序(参考1)
/******************************************************************************** DS18B20 测温程序
硬件:AT89S52
(1)单线ds18b20接 P2.2
(2)七段数码管接P0口
(3)使用外部电源给ds18b20供电,没有使用寄生电源
软件:Kei uVision 3
**********************************************************************************/ #include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit ds=P2^2;
sbit dula=P2^6;
sbit wela=P2^7;
uchar flag ;
uint temp; //参数temp一定要声明为 int 型
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //不带小数点数字编码
uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
0x87,0xff,0xef}; //带小数点数字编码
基于51单片机DS18B20温度采集器详解
一核心器件的基本构成及特性
1.1 AT89S51功能特性
89C51是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于80C51基础型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能。89C51内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C51还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU 而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。89C51有PDIP(40pin)和PLCC(44pin)两种封装形式。
1.2 AT89S51管脚介绍
AT89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、并行I/O口(4个8位I/O口)、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是微处理器(CPU)加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式,以实现不同的功能。
温湿度测量系统--基于单片机和温度传感器DS18B20、HS1101是电容式空气湿度传感器
摘要
此温湿度测量系统是基于单线式温度传感器DS18B20、电容式湿度传感器单片机STC89C52 对温度湿度分别测量并通过液晶显示屏1602经行显示。温度传感器DS18B20是单线式,体积超小,硬件开消超低,抗干扰能力强,精度高,附加功能强的理想单片机温度传感器,可实时根据指令给出温度数据,可读性高。HS1101是电容式空气湿度传感器,在不同的湿度环境下呈现出不同的电容值,0%~100%RH湿度范围内,电容从162PF变化到200PF,误差误差为2%RH。可见其精度非常高,为了反映出其电容的变化,本系统采用555多谐震荡电路产生不同的频率,用于检测湿度。单片机采集到两个传感器给出的数据进行处理与计算,得出当前的温度与湿度并送给液晶屏显示。本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。
关键词:温湿度测量系统精度高速度快体积小
Abstract: The temperature and humidity measurement system is based on singleline type temperature sensor DS18B20, capacitive moisture sensorSCM STC89C52 for temperature humidity measurement and respectively by LCD display. The line 1602 Temperature sensor DS18B20 is singleline type, volume super-small, hardware KaiXiao ultra-low, strong anti-jamming capability, high precision, additional features strong ideal single-chip microcomputer temperature sensor, real-time temperature data, depending on the directive given readable. HS1101 is capacitive sensor, air humidity in different humidity presents different capacitance, 0% ~ 100% RH humidity, within the scope of capacitance change to 200PF, from 162PF error for 2% RH error. e can see its precision is very high, in order to reflect the capacitance change, the system USES the 555 more harmonic concussion circuits produce different frequency, which is used to detect humidity. SCM acquisition to two sensor gives data processing and calculated, the current temperature and humidity and give the display on the LCD panel. This system has a readable, high stability, reaction speed, measured values exact characteristic.
stm32基于ds18b20的温度测量实例 实验原理
stm32基于ds18b20的温度测量实例实验原理
DS18B20是一款数字温度传感器,其测温范围为-55℃到+125℃,在-10℃到+85℃范围内误差为±°。主机和从机通信使用单总线,即使用单线进行数据的发送和接收,在使用中不需要任何外围元件,独立芯片即可完成工作。每个DS18B20都有独立唯一的64位-ID,此特性决定了它可以将任意多的DS18b20挂载到一根总线上,通过ROM搜索读取相应DS18B20的温度值。
单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。
One-Wire总线利用一根线实现双向通信,其协议对时序的要求较严格,如应答等时序都有明确的时间要求。基本的时序包括复位及应答时序,写一位时序,读一位时序。在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读回或写出数据。
DS18B20的原理是基于以上这些特性的。如果需要更详细的实验原理,可
以查阅相关资料或咨询专业人士获取帮助。
DS18B20温度测试程序(51单片机数码管显示)+电路图
DS18B20温度测试程序(51单片机数码管显示)+电路图•下面是电路图采用4位数码管显示程序一共有2个文件:
/****************************************************************************** *****************************************
ds18b20.h 头文件
******************************************************************************* ****************************************/
#ifndef _DS18B20_H_
#define _DS18B20_H_
#include <reg51.h>
#define led P1
#define ledw P2
extern unsigned char f;
extern void ds18b20_reset();
extern void dela(unsigned char i);
extern void ds18b20_write(unsigned char dat);
extern unsigned char ds18b20_read();
extern unsigned char ds18b20_temp();
extern unsigned char ledtab[];
#endif
/****************************************************************************** **************************************
基于DS18B20的多点式无线温度测量仪的设计与实现
基于DS18B20的多点式无线温度测量仪的设计与实现
基于DS18B20的多点式无线温度测量仪的设计与实现
一、绪论
近年来,随着物联网和无线通信技术的迅猛发展,温度测量仪器的无线化越来越受到人们的关注。因为温度是很多领域中必须监测的关键参数,例如工业生产、农业、医疗和环境监测等领域。本文基于DS18B20传感器,设计并实现了一种多点式无线温度测量仪,具备高精度、远距离传输和多节点测量的特点。
二、设计方案
1. 系统框图
本文的多点式无线温度测量仪由多个测量节点、中心控制器和无线通信模块组成。每个测量节点都装配有DS18B20传感器,用于采集温度数据,然后通过无线通信模块发送给中心控制器。中心控制器负责接收并处理所有测量节点的数据,并将数据通过无线通信模块发送到上位机上进行显示和记录。
2. 硬件设计
每个测量节点的硬件设计主要包括DS18B20传感器、单片机和无线通信模块。DS18B20传感器是一款数字温度传感器,具有
高精度和抗干扰能力。单片机作为控制核心,负责采集传感器数据并进行无线通信模块的控制。无线通信模块选择了低功耗蓝牙模块,以满足长距离传输和低功耗的要求。
3. 软件设计
软件设计主要包括单片机程序和上位机程序的编写。单片机程序通过配置DS18B20传感器的工作模式,并读取传感器的温度数据。然后,将温度数据通过无线通信模块进行传输。上位机程序负责与中心控制器进行通信,接收并解析传感器的数据,
并将数据以图表和数据表的形式进行显示和记录。
三、实现过程
1. 硬件实现
首先,搭建硬件平台,包括连接DS18B20传感器、单片机和无线通信模块。然后,根据硬件接口进行连接,并对DS18B20传感器进行合适的引脚设置和供电。最后,完成硬件平台的搭建和连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于DS18B20的温度测量系统
组员:计佳辰11221120
组员:徐文杰11221110
1.课题要求
测量环境中的温度,以BCD码的形式在LED上显示
2. 设计背景
随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。本设计选用A T89C51单片机作为主控制器件,DS18B20作为测温传感器,通过LM016L 实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
3.设计方案
3.1总体设计思路方案与系统框图
采用数字温度芯片DS18B20测量温度,输出信号全数字化。采用了单总线的数据传输,由数字温度计DS18B20和AT89C51单片机构成的温度测量装置,DS18B20的DQ与AT89C51的P3.7口相连,与它直接输出温度的数字信号,采用AT89C51单片机控制,温度显示由四位八段LED显示屏完成,LED的D0~D7为8位双向数据端,与AT89C51的P1口相连,系统框图如下图所示。
3.2 DS18B20芯片介绍
DS18B20引脚定义:
(1)DQ为数字信号输入输出端
(2)GND为电源地
(3)VDD为外接供电电源输入端温度寄存器(0和1字节)
AT89C51
时钟电路复位电路
DS18B20数
字温度传感器
测温物体
图1
显示电路
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
DS18B20 的温度操作是使用16 位,也就是说分辨率是0.0625。BIT15~BIT11 是符号位,为了就是表示转换的值是正数还是负数。
3.3 LED显示屏(共阴)介绍
A,B,C,D,E,F,G,DP管脚是段选引脚,1,2,3,4是位选引脚(低电平有效),字形码如下:
3.4.AT89C51芯片
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
3.5硬件电路图