您现在正在浏览:首页 > 职教文章 > 职教论文 > 基于51单片机的温度测量系统

基于51单片机的温度测量系统

日期: 2010/8/7 浏览: 35 来源: 学海网收集整理 作者: 佚名









中 文 核 心 期 刊《微 计 算 机 信 息 》(嵌 入 式 与 SOC)2007 年 第 23 卷 第 1-2 期

360元 / 年 邮局订阅号: 82-946 《 现场总线技术应用 200 例》

单 片 机 开 发 与 应 用

基于 51 单片机的温度测量系统

Tem perature Measure System Base on 51 Single chip

(西南石油大学)赵 娜 赵 刚 于珍珠 郭守清

ZHAO NA ZHAO GANG YU ZHENZHU GUO SHOUQING

摘要:单片 机 在 检 测 和 控 制 系 统 中 得 到 广 泛 的 应 用, 温 度 则 是 系 统 常 需 要 测 量 、控 制 和 保 持 的 一 个 量 。本 文 从 硬 件 和 软 件 两

方面 介 绍 了 AT89C2051 单 片 机 温 度 控 制 系 统 的 设 计 , 对 硬 件 原 理 图 和 程 序 框 图 作 了 简 洁 的 描 述 。

关键词:单片机 AT89C2051;温度传感器 DS18B20;温度;测量

中图分类号:TP277 文献标识码:B

Abstract:The single chip microcomputer be required extensively in measurement and control systems, and the temperature need to be

surveyed, controlled and maintained by a system frequently. The design of singlechip' s temperature control system is introduced

from hardware and software. The hardware principle and software case fig are described.

Keywords:single chip microcomputerAT89C2051,temperature sensor DS18B20,temperature,examined

文章编号:1008- 0570(2007)01- 2- 0146- 03

引言

单片机在电子产品中的应用已经越来越广泛, 并且在很多

电子产品中也将其用到温度检测和温度控制。为此在本文中作

者设计了基于 atmel 公司的 AT89C2051 的温度测量系统。这是

一种低成本的利用单片机多余 I/O 口实现的温度检测电路, 该

电路非常简单, 易于实现, 并且适用于几乎所有类型的单片机。

1 系统硬件设计

系统的硬件结构如图 1 所示。

图 1 系统硬盘件结构图

1.1 数据采集

数据采集电路如图 2 所示, 由温度传感器 DS18B20 采集被

控对象的实时温度, 提供给 AT89C2051 的 P3.2 口作为数据输

入。在本次设计中我们所控的对象为所处室温。当然作为改进

我们可以把传感器与电路板分离, 由数据线相连进行通讯, 便于

测量多种对象。

DS18B20 是 DALLAS 公司生产的一线式数字温度传感器,

具有 3 引脚 TO- 92 小体积封装形式; 温度测量范围为- 55℃~+

125℃, 可编程为 9 位~12 位 A/D 转换精度, 测温分辨率可达

0.0625℃, 被测温度用符号扩展的 16 位数字量方式串行输出, 支

持 3V~5.5V 的电压范围, 使系统设计更灵活、方便; 其工作电源

既可在远端引入, 也可采用寄生电源方式产生; 多个 DS18B20 可

以并联到 3 根 或 2 根 线 上 , CPU 只 需 一 根 端 口 线 就 能 与 诸 多

DS18B20 通信, 占用微处理器的端口较少, 可节省大量的引线和

逻辑电路。以上特点使 DS18B20 非常适用于远距离多点温度检

测系统。分辨率设定, 及用户设定的报警温度存储在 EEPROM

中, 掉电后依然保存。DS18B20 使电压、特性有更多的选择, 让我

们可以构建适合自己的经济的测温系统。如图 2 所示 DS18B20

的 2 脚 DQ 为数字信号输入/输出端; 1 脚 GND 为电源地; 3 脚

VDD 为外接供电电源输入端。

AT89C2051( 以下简称 2051) 是一枚 8051 兼容的单片机微控

器, 与 Intel 的 MCS- 51 完全兼容, 内藏 2K 的可程序化 Flash 存储

体, 内部有 128B 字节的数据存储器空间, 可直接推动 LED, 与

8051 完全相同, 有 15 个可程序化的 I/O 点, 分别是 P1 端口与 P3

端口(少了 P3.6)。

1.2 接口电路

接口电路由 ATMEL 公司的 2051 单片机、ULN2003 达林顿

芯片、4511BCD 译码器、串行 EEPROM24C16( 保存系统参数) 、

MAX232、数码管及外围电路构成, 单片机以并行通信方式从

P1.0~P1.7 口输出控制信号,通过 4511BCD 译码器译码, 用 2 个

共阴极 LED 静态显示温度的十位、个位。

串行 EEPROM24C16 是标准 I2C 规格且只要两根引脚就能

读写。由于单片机 2051 的 P1 是一个双向的 I/O 端口, 所以在我

们在设计中将 P1 端口当成输出端口用。由图 2 可知, P1.7 作为

串性的时钟输出信号与 24C16 的第 6 脚相接, P1.6 则作为串行

数据输出接到 24C16 的第 5 脚。P1. 4 和 P1.5 则作为两个数码

管的位选信号控制, 在 P1.4=1 时, 选中第一个数码管( 个位) ;

P1.5=1 时, 选中第二个数码管( 十位) 。P1.0~P1.3 的输出信号接

到译码器 4511 上作为数码管的显示。此外, 由于单片机 2051 的

P3 端口有特殊的功能, P3.0( RXD) 串行输入端口, P3.1( TXD) 串

行输出端口, P3.2 ( INTO) 外部中断 0, P3.3 ( INT1) 外部中断

1P3.4, ( T0) 外部定时/计数输入点, P3.5( T1) 外部定时/计数输入

点。由图 2 可知, P3.0 和 P3.1 作为与 MAX232 串行通信的接口;

赵娜: 硕士研究生

国家十五科技攻关项目(编号:2004BA616A- 1- 01)

146- -

邮局订阅号: 82-946 360 元 / 年









单 片 机 开 发 与 应 用

《 PLC 技术应用 200 例》

您 的 论 文 得 到 两 院 院 士 关 注

P3.2 和 P3.3 作为中断信号接口; P3.4 和 P3.5 作为外部定时/记

数输入点。P3.7 作为一个脉冲输出, 控制发光二极管的亮灭。

图 2 单片机 2051 与温度传感器 DS18B20 的连接图

由于在电路中采用的共阴极的 LED 数码管, 所以在设计电

路时加了一个达林顿电路 ULN2003 对信号进行放大, 产生足够

大的电流驱动数码管显示。由于 4511 只能进行 BCD 十进制译

码, 只能译到 0 至 9, 所以在这里我们利用 4511 译码输出我们所

需要的温度。

图 3 温度在七段数码管上显示连接图

1.3 报警电路简介

本文中所设计的报警电路较为简单, 由一个自我震荡型的蜂

鸣器( 只要在蜂鸣器两端加上超过 3V 的电压, 蜂鸣器就会叫个不

停)和一个发光二极管组成(如图 3 所示)。在这次设计中蜂鸣器是

通过 ULN2003 电流放大 IC 来控制。在我们所要求的温度达到一

定的上界或者下界时( 在文中我们设置的上界温度是 45℃, 下界温

度是 5℃), 报警电路开始工作, 主要程序设计如下:

main()//主函数

{unsigned char i=0;

unsigned int m,n;

while(1)

{i=ReadTemperature();//读温度}

if(i>0 && i<=10) //如果温度在 0 到 10 度之间直接给七

段数码管赋值

{P1=designP1[i];}

else//如果温度大于 10 度

{m=i%10;//先给第一个七段数码管赋值

D1=1;

D2=0;

P1=designP1[m];

n=i/10;//再给第二个七段数码管赋值

D1=0;

D2=1;

P1=designP1[n];

if(n>=4&&m>=5)%%(m<=5)//判断温度的取值范围, 如果大

于 45 或小于 5 度, 则蜂鸣器叫, 发光二极管闪烁

{ int a,b;

Q1=1;//蜂鸣器叫

for(a=0;a<1000;a++)//发光二极管闪烁

for(b=0;b<1000;b++)

Q2=1;

for(a=0;a<1000;a++)

for(b=0;b<1000;b++)

Q2=0;}}}

2 系统软件设计

2.1 系统程序流程图

系统程序流程图如图 4 所示。

图 4 系统程序流程图

2.2 温度部分软件设计

DS18B20 的一线工作协议流程是: 初始化→ROM 操作指

令→存储器操作指令→数据传输。其工作时序包括初始化时序、

写时序和读时序。故主机控制 DS18B20 完成温度转换必须经过三

个步骤: 每一次读写之前都要对 DS18B20 进行复位, 复位成功后

发送一条 ROM 指令, 最后发送 RAM 指令, 这样才能对 DS18B20

进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒, 然后

释放, DS18B20 收到信号后等待 16~60 微秒左右, 后发出 60~240

微秒的存在低脉冲, 主 CPU 收到此信号表示复位成功。程序主要

函数部分如下:

( 1) 初始化函数

147- -









中 文 核 心 期 刊《微 计 算 机 信 息 》(嵌 入 式 与 SOC)2007 年 第 23 卷 第 1-2 期

360元 / 年 邮局订阅号: 82-946 《 现场总线技术应用 200 例》

单 片 机 开 发 与 应 用

//读一个字节函数

ReadOneChar(void)

{unsigned char i=0;

unsigned char dat = 0;

for (i=8;i>0;i- - )

{ DQ = 0; // 给脉冲信号

dat>>=1;

DQ = 1; // 给脉冲信号

if(DQ)

dat|=0x80;

delay(4);}

return(dat);}

//写一个字节函数

WriteOneChar(unsigned char dat)

{unsigned char i=0;

for (i=8; i>0; i- - )

{DQ = 0;

DQ = dat&0x01;

delay(5);

DQ = 1;

dat>>=1;}}

( 2) 读取温度并计算函数

ReadTemperature(void)

{unsigned char a=0;

unsigned char b=0;

unsigned int t=0;

float tt=0;

Init_DS18B20();

WriteOneChar(0xCC); // 跳过读序号列号的操作

WriteOneChar(0x44); // 启动温度转换

Init_DS18B20();

WriteOneChar(0xCC); //跳过读序号列号的操作

WriteOneChar(0xBE); //读取温度寄存器等( 共 可 读 9 个 寄

存器) 前两个就是温度

a=ReadOneChar();

b=ReadOneChar();

t=b;

t<<=8;

t=t|a;

tt=t*0.0625;

t= tt*10+0.5; //放大 10 倍输出并四舍五入- - - 此行没用

( 3) 主程序部分见前

return(t);}

3 结束语

AT89C2051 单片机体积小、重量轻、抗干扰能力强、对环境

要求不高、价格低廉、可靠性高、灵活性好。即使是非电子计算

机专业人员, 通过学习一些专业基础知识以后也能依靠自己的

技术力量来开发所希望的单片机应用系统。 本文的温度控制

系统只是单片机广泛应用于各行各业中的一例, 相信读者会依

靠自己的聪明才智使单片机的应用更加广泛化。另外对本例子

可以作一些扩展, 单片机的应用越来越广泛,由于单片机的运算

功能较差,往往需要借助计算机系统,因此单片机和 PC 机进行

远程通信更具有实际意义。目前此设计已成功应用于钻井模拟

器实验室室温控制。

本文作者创新观点: 采用的单片机 AT89C2051 性价比高,

而且温度传感器 DS18B20 转化温度的方法非常简洁且精度高、

测试范围较广。

参考文献:

[1]林伸茂.8051 单片机彻底研究基础篇 北京:人民邮电出版社

2004

[2]范风强等.单片机语言 C51 应用实战集锦 北京:电子工业出

版社 2005

[3]谭浩强.C 语言程序设计(第二版)北京:清华大学出版社 1999

[4]夏路易等.电路原理图与电路板设计教程 北京:北京希望电

子出版社 2002

[5]赵晶.Protel99 高级应用 北京:人民邮电出版社 2000

[6]聂毅.单片机定时器中断时间误差的分析及补偿[J].微计算机

信息,2002,4:37- 38

作者简介:赵娜,女,1982 年 10 月生,汉族,西南石油大学计算机

应 用 研 究 室 硕 士 研 究 生. 研 究 方 向 : 嵌 入 式 系 统.E- mail:xi-

aoyu1982100141@shou.com;作者简介:赵刚,男,1966 年 生,汉 族,

西南石油大学计算机科学学院副教授.研究方向: 嵌入式系统;于

珍珠,男,西南石油大学计算机应用研究室硕士研究生.研究方向:

嵌入式系统;郭守清,男,西南石油大学计算机实验室高级实验员.

研究方向:嵌入式系统。

Biography:Zhao Na,female,born in Dec.1982,the Han nationali-

ty, graduate student of SWPI computer application laboratory.

Major in embed system.

(610500 四川成都 西南石油大学)赵娜 赵刚 于珍珠 郭守清

(Southwest Petroleum University,Chengdu,610500,China)Zhao

Na Zhaogang Yu Zhenzhu Guo Shouqing

通讯地址:(610500 西南石油大学新都校区硕 04 级 5 班)赵刚

(收稿日期:2006.6.27)(修稿日期:2006.7.25)

(上接第 172 页)

[3]深圳亿道电子有限公司.XSBase255 WINCE 使用手册 V2.1

[4]Intel.http://www.intel.com/design/pca/prodbref/252780.htm

[EB/OL]

[5]邓成中,黄维公,万松峰.基于嵌入式 ARM & WinCE 的小型监

控系统的设计[J].微计算机信息,2005,8- 2:47- 49

作者简介:郑冰( 1968- ) 男,副教授,硕士生导师,主要研究方向:

信号处理及水下探测系统;王艳娜( 1981- ) 女,硕士研究生,主要

研究方向:嵌入式系统;程占昕( 1981- ) ,男,助理工程师,主要研究

方向:雷达探测。

Biography:Zheng Bing,male,assistant professor,master teacher,

signal process and detect system under water.

(266071 山东青岛 中国海洋大学信息学院电子系)郑冰 王艳娜

(116018 辽宁大连 大连舰艇学院作战指控系)程占昕

(266071 山东青岛 中国石油化工股份有限公司山东青岛石油

分公司)赵立木

通 讯 地 址:(266071 山 东 青 岛 中 国 海 洋 大 学 香 港 东 路 23 号

2004 级电子系研究生)王艳娜

(收稿日期:2006.9.26)(修稿日期:2006.10.23)

148- -


基于51单片机的温度测量系统.pdf

返回顶部