基于单片机的数字温度计
摘要:本文介绍一种基于AT89C2051单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围-55℃-~+125℃,使用4位LED模块显示,能通过键盘设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C2051单片机功能和应用。该电路设计新颖、功能强大、结构简单。
关键词:温度测量,DS18B20
如图3.1所示,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到LED中显示。
3.1 输入电路
图3.1.1量程切换开关 图3.1.2衰减输入电路
输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。智能化数字温度计所采用的单片双积分型ADC芯片ICL7135,它要求输入电压0-±2V。本仪表设计是0-1000V电压,灵敏度高所以可以不加前置放大器,只需衰减器,如图3.1.2所示9M、900K、90K、和10K电阻构成1/10、1/100、1/1000的衰减器。衰减输入电路可由开关来选择不同的衰减率,从而切换档位。为了能让CPU自动识别档位,还要有图3.1.1的硬件连接。
3.2 A/D 转换电路
A/D 转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。本设计采用双积A/D 转换器,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。
3.2.1双积A/D 转换器的工作原理
如图所示:对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进行积分,将其变换成与输入模拟电压成正比的时间间隔 T1,再利用计数器测出此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。在常用的A/D转换芯片(如ADC -0809、ICL7135、ICL7109等)中,ICL7135与其余几种有所不同,它是一种四位半的双积分A/D转换器,具有精度高(精度相当于14位二进制数)、价格低廉、抗干扰能力强等优点。本文介绍用单片机并行方式采集ICL7135的数据以实现单片机温度计和小型智能仪表的设计方案。
3.2.1 7135的应用
7135是采用CMOS工艺制作的单片4位半A/D转换器,其所转换的数字值以多工扫描的方式输出,只要附加译码器,数码显示器,驱动器及电阻电容等元件,就可组成一个满量程为2V的数字温度计。
㈠7135主要特点如下:
①双积型A/D转换器,转换速度慢。
②在每次A/D转换前,内部电路都自动进行调零操作,可保证零点在常温下的长期稳定。在20000字(2V满量程)范围内,保证转换精度1字相当于14bitA/D转换器。
③具有自动极性转换功能。能在但极性参考电压下对双极性模拟输入电压进行A/D转换,模拟电压的范围为0~±1.9999V。。
④模拟出入可以是差动信号,输入电阻极高,输入电流典型值1PA。
⑤所有输出端和TTL电路相容。
⑥有过量程(OR)和欠量程(UR)标志信号输出,可用作自动量程转换的控制信号。
⑦输出为动态扫描BCD码。
⑧对外提供六个输入,输出控制信号(R/H,BUSH,ST,POL,OR,UR),因此除用于数字温度计外,还能与异步接收 /发送器,微处理器或其它控制电路连接使用。
⑨采用28外引线双列直插式封装,外引线功能端排列如图所示。
㈡7135数字部分
数字部分主要由计数器、锁存器、多路开关及控制逻辑电路等组成。7135一次A/D转换周期分为四个阶段:
1、自动调零(AZ);
2、被测电压积分(INT);
3、基准电压反积分(DE);
4、积分回零(ZI)。
具体内部转换过程这里不做祥细介绍,主要介绍引脚的使用。
3.4液晶显示部分
显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个16×1的字符型液晶显示模块,
点阵图形式液晶由 M 行×N 列个显示单元组成,假设 LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,即每行由 16 字节,共 16×8=128个点组成,屏上 64×16 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由 6×8 或 8×8点阵组成,即要找到和屏上某几个位置对应的显示 RAM区的 8 个字节,并且要使每个字节的不同的位为‘1’,其它的为‘0’,为‘1’的点亮,为‘0’的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
3.4.1 1601使用说明