温度测量仪的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
温度测量仪的设计
电信1302
刘志威
0121309340310
[摘要]本系统采用单片机AT89S51作为温度测量系统的检测核心,按键输入由单片机控制采用不同的方式,实现对不同方式的温度测量。本系统采用四种方法进行测量:1.采用高精度温度芯片DS18B20进行测量;2.采用温敏电阻进行A/D测量,得出电压与电阻的关系,然后根据对应的阻值查找相应的温度值;3.采用NE555与温敏电阻组成多谐振荡器,当温敏电阻的阻值随温度变化时,振荡器的输出频率也随之变化;4.采用标称电阻与温敏电阻对电容进行充放电时间的对比,得出温敏电阻的阻值进行查找温度。
[关键字]温度测量不同方法18B20 NE555 多谐振荡 A/D采集充放电
一、系统整体设计方案
1.1系统整体功能
本系统采用单片机AT89S51作为温度测量系统的检测核心,按键输入由单片机控制采用不同的方式,实现对不同方式的温度测量。本系统采用四种方法进行测量:1.采用高精度温度芯片DS18B20进行测量, DS18B20具有很多优点,它支持“一线总线”接口,体积小,无需外围软件,使系统设计更灵活、方便,只需一个引脚与单片机通讯即可;
2.采用温敏电阻进行A/D测量,得出电压与电阻的关系,然后根据对应的阻值查找相应的温度值;
3.采用NE555与温敏电阻组成多谐振荡器,当温敏电阻的阻值随温度变化时,振荡器的输出频率也随之变化;
4.采用标称电阻与温敏电阻对电容进行充放电时间的对比,得出温敏电阻的阻值进行查找温度。
1.2 系统实现框图
图1 系统总体框架图
二、各功能模块电路设计与分析
2.1单片机小系统设计:
AT89S51是一个低功耗,高性能8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。单片机小系统硬件原理图(见图2)。
图2 单片机小系统硬件原理图
2.2 DS18B20设计:
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便,测量温度范围在-55。C到+125。C之间,测量精度高。(见图3)
图3 DS18B20模块电路
2.3 A/D采集模块的设计:
A/D采集模块采用OP07运算放大器和ADC0832串行模数转换器组成。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。(见图4)
图4 A/D模数转换模块电路
2.4 NE555多谐振荡器模块设计:
555 定时器是一种模拟和数字功能相结合的中规模集成器件,555 定时器的电源电压范围宽,可在 4.5V~16V 工作,输出驱动电流约为 200mA,因而其输出可与 TTL、CMOS 或者模拟电路电平兼容。
图5 NE555芯片内部图
NE555(见图5)定时器的功能主要由两个比较器决定。两个比较器的输出电压控制RS 触发器和放电管的状态。在电源与地之间加上电压,当 5 脚悬空时,则电压比较器 A1 的反相输入端的电压为 2VCC /3,A2 的同相输入端的电压为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 A2 的输出为 1,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 A1 的输出为 1,A2 的输出为 0,可将 RS 触发器置 0,使输出为 0 电平。
由上可设计出多谐振荡器。(见图6)
图6 多谐振荡器模块
2.5电容充放电电路模块设计:
采用标称电阻和温敏电阻对电容充放电。通过单片机测量他们的充放电时间,通过对比得到温敏电阻当前温度的阻值,进而确定当前温度值。电路如图7。
图7 电容充放电电路
2.6显示电路模块设计:
采用LED数码管显示所测温度(见图8)。在本设计中需要用到4只LED数码管进行动态显示可以达到要求。采用LED的优点是亮度高,醒目,价格便宜,寿命长;显示0~9的数字和字符。
图8 显示电路
2.7报警电路模块设计:
报警电路使用三极管8050和蜂鸣器组成。当温度超过或者低于设定温度值,单片机就驱动8050使蜂鸣器发出响声,进行报警提示。电路如图9。
图9 报警电路
2.8 系统PCB设计
图10 PCB TopLayer
图11 PCB BottomLayer
三、系统的软件设计
整个系统的主要任务是应用不同的方法对温度进行测量。通过按键可以在DS18B20、A/D电压采集、NE555多谐振荡器、电容充放电四种温度测量方式进行任意切换测量并显示。系统上电默认进行DS18B20测温,并显示。
3.1 读ADC0832程序
/************读ADC0832函数************/
unsigned int Adc0832(unsigned char channel) //采集并返回
{
uchar i=0;
uchar j;
uint dat=0;
uchar ndat=0;
if(channel==0)channel=2;
if(channel==1)channel=3;
ADDI=1;
_nop_();_nop_();
ADCS=0;//拉低CS端
_nop_();_nop_();
ADCLK=1;//拉高CLK端
_nop_();_nop_();