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

基于51单片机的温度测量系统 第2页
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串行通信的接口;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度之间直接给七

上一页  [1] [2] [3] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有