文档库 最新最全的文档下载
当前位置:文档库 › 基于单片机和LM35的温度测量系统

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

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

一、设计目的与意义和任务分析

1、设计目的与意义

《测控电路》课程设计是测控电路课程体系的一个重要环节,是按照《控电路设计与实践》教学大纲要求所进行的重要实践教学内容,是引导学生把基础理论与实际应用相结合的一个必不可少的中间环节。通过本设计,要求学生利用所学的基础理论,从设计步骤、设计表达、实际电路调试等方面,全面掌握相关温度测量显示电路的设计与调试技术,培养学生综合运用所学知识进行工程设计的能力,包括动手能力,独立思考能力,以及分析和解决工程实际问题等能力。

2、任务分析

本次设计的主要任务是完成一个温度范围为0-50 0C的温度测量显示电路的设计与制作。考虑到时间紧和学生兴趣不同,将任务分为设计为主和制作为主的为两个重点内容不同的模块,由同学根据自己兴趣选择。

二、设计概述

1、传感器确定

1)热敏电阻

价格比较便宜、灵敏度比较好,在实际应用的时候线性度较差,另外调试比较

困难。不适合使用。故不使用热敏电阻。

2)AD590

AD590拥有良好的线性关系,灵敏度较高、使用简单方便。但是这种传感器的

价格比其他的两种都贵很多。故不选用。

3)温度传感器LM35

LM35是NS 公司生产的LM35 ,他具有很高的工作精度和摄氏温度线性成比例,且无需外部校准或微调,可以提供

±1/ 4 ℃的常用的室温精度。LM35 的输出电压与摄氏温度的线形关系可用下面公式表示V OU T LM35 ( T) = 10 mV / ℃×T ℃,0 ℃时输出为0 V ,每升高1 ℃,输出电压增加10 mV。其电源供应模式有单电源与正负双电源两种,其接法如图3 与图4 所示。正负双电源的供电模式可提供负温度的测量,单电源模式在25 ℃下电流约为50 mA ,非常省电。本系统采用的是单电源模式。

图3 单电源模式图4 双电源模式

考虑到成本,性能等方面的因素,所以在AD590、温度传感器LM35和热敏电

阻中选择了温度传感器LM35。

2、系统方案设计、比较及选定

1)方案一:ICL7107 A/D转换&译码方案常见A/D转换器的转换方式有非积分式和积分式两类,如逐次逼近比较式A/D 转换、斜坡电压式A/D转换等属于非积分式,其特点是转换速度快,但抗干扰能力差。电压反馈型V-F变换、双积分式A/D转换则属于积分式,其特点是抗干扰能力强、测量精度高,但转换速度低,在转换速度要求不太高的情况下,获得广泛应用。

工作方框图:

电路原理图:

2)方案二: AVR单片机方案

该电路上利用AVR单片机对输入信号进行模数转换输出数字信号控制数码管显示温度值。并且可以通过编写程序对输入信号进行分段线性化处理,使得测量精度大大提高,而且该电路无须外接译码器,结构简单

工作方框图

电路原理图:

该方案比较合理,但是限于对AVR单片机不是很娴熟,只得舍弃。

3)方案三:8052单片机方案(实际使用的方案)

由于我们的温度传感器是选择LM35,显然用低成本高可靠性的51单片机是最

佳的方案,故我们选择该方案

三、系统工作原理分析

本系统由温度传感器LM35、微处理器、显示电路、软件构成。LM35输出的是就是表示摄氏温度的模拟量,经A/D TLC1549C转换成数字量,再用8052单片机进行数据处理、译码、动态扫描显示等,下面的系统的总的框图:

1、微控制器原理

本系统采用STC公司的STC89C52作为微控制器.STC89C52处理芯片

主要性能:

与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、 1000次擦写周期、全静态操作:0Hz~33Hz 、三级加密程序存储器、 32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。

功能特性描述:

STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k 字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对

P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI(在线系统编程用)

P1.6 MISO(在线系统编程用)

P1.7 SCK(在线系统编程用)

P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INTO(外中断0)

P3.3 INT1(外中断1)

P3.4 TO(定时/计数器0)

P3.5 T1(定时/计数器1)

P3.6 WR(外部数据存储器写选通)

P3.7 RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

这里讲一下动态扫描显示原理:

一般的LED器七段数码管显示是用静态显示,所谓就是任意时刻内的数码管都是亮的,这样系统要提供很多引线出来,功耗又大,单片机的资源很少,一般采用动态扫描的方式显示,所谓动态扫描就是在一个时刻内只亮一个管,利用我们人眼的视觉暂留就可以显示类似静态显示的效果,要求扫描的速度要快,一般是毫秒级。优点是省下了大量的IO口,功耗小,但是显示位数不能过多,扫描是占用CPU一定

的时间。

2、传感器原理

经过比较,我们选择了NC公司的温度传感器LM35.

1)LM35简介

在自动控制、机电整合的应用中,温度的测量为常见的需求,感测温度的產品有多种型态,依特性可概分为膨胀变化型、颜色变化型、电阻变化型、电流变化型、电压变化型、频率变化型…等,常见的电压变化型的温度传感器有LM35、LM335,其不同点为LM35 之输出电压是与摄氏温标呈线性关係,而LM335 则是与凯氏温标呈线性关系。由於摄氏温标较常使用,因此本文将针对LM35做介绍。

1. 温度传感器LM35

LM35是由National Semiconductor所生产的温度感测器,其输出电压与摄氏温标呈线性关係,转换公式如式(1),0°C时输出

为0V,每升高1°C,输出电压增加10mV。

(1)

LM35 有多种不同封装型式,外观如图1 所示。在常温下,LM35 不需要额外的校准处理即可达到± °1/4C的准确率。其电源供应模式有单电源与正负双电源两种,其引脚如图2 所示,正负双电源的供电模式可提供负温度的量测;两种接法的静默电流-温度关係如图3所示,单电源模式在25°C下静默电流约50μA,非常省电。

图1:LM35封装及引脚排列

图2:LM35接线图

图3

2.

我们最终确定使用OP07运算放大器。

Op07是一种低噪声,非斩波稳零的双极性运算放大器。由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。

宽的输入电压范围(最少±13V)与高达110dB(OP07A)的共模抑制比和高输入阻抗的结合,在同相电路阻态中提供了很高的精度,即使在很高的闭环增益下,也能保持极好的线性和增益精度。

失调和增益对时间或温度变化的稳定性也是极好的。不加外调零措施的OP07的精度和稳定性,即使在高增益下也能使OP07成为一种新的仪器用和军用的工业标准。

OP07A和OP07适用于在-55℃到+125℃的整个军用范围内,

特点:

·超低失调电压10uV·超低失调电压漂移0.2uV/OC

·有长期的稳定性0.2uV/月·宽共模输入范围±14.0V

·宽的电源电压范围±3V~±18V ·不需要外部元件调整

封装外形图(管脚朝下)

绝对最大额定值:(TA=25℃)

电源电压: (22)

内部功耗(注1):……………………. ………. 500mW

差模输入电压:………………………………… …±30 V

输入电压(注3): (22)

输出短路持续时间:………………………………….不限

工作温度范围(OP07A、OP07):……. -55℃~+125℃

储存温度范围:…………………………. -65℃~+150℃

引线温度范围(焊接,60s):……………………. 300℃

4、A/D的选择。

TLC1549是美国德州仪器公司生产的10位模数转换器。它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰,可按比例量程校准转换范围,总不可调整误差达到±1LSB Max(4.8mV)等特点。

TLC1549的工作温度范围内(自然通风)极限参数如下:

电源电压范围: -0.5~6.5V

输入电压范围: -0.3~VCC+0.3V

输出电压范围: -0.3~VCC+0.3V

正基准电压: VCC+0.1V

负基准电压: -0.1V

峰值输入电流(任何输入端):±20mA

峰值总输入电流(所有输入端):±30mA

工作温度范围(自然通风):

TLC1549C 0~70℃

TLC1549I -40~80℃

TLC1549M -65~125℃

二、工作原理

在芯片选择(CS)无效情况下,I/O CLOCK 最初被禁止且DATA OUT 处于高阻状态。当串行接口把CS拉至有效时,转换时序开始允许I/O CLOCK 工作并使DATA OUT 脱离高阻状态。串行接口然后把I/O CLOCK 序列提供给I/O CLOCK 并从DATA OUT 接收前次转换结果。I/O CLOCK 从主机串行接口接收长度在10和16个时钟之间的输入序列。开始10个I/O 时钟提供采样模拟输入的控制时序。

在CS的下降沿,前次转换的MSB出现在DATA OUT端。10位数据通过DATA OUT 被发送到主机串行接口。为了开始转换,最少需要10个时钟脉冲。如果I/O CLOCK 传送大于10个时钟长度,那么在的10个时钟的下降沿,内部逻辑把DATA OUT 拉至低电平以确保其余位的值为零。在正常进行的转换周期内,规定时间内CS端高电平至低电平的跳变可终止该周期,器件返回初始状态(输出数据寄存器的内容保持为前次转换结果)。由于可能破坏输出数据,所以在接近转换完成时要小心防止CS

被拉至低电平。时序图如图2。

三、应用介绍

3.1 TLC1549的理想转换特性如图3所示。

(1) 此曲线基于下列假设:VREF+和VREF-已被调整以便从数字0至1跳变的电压

(VZT)为0.0024V,满度跳变电压(VFT)为4.908V。1LSB=4.8mV。

(2) 满度值(VFS)是指其额定中点(midstep)值具有最高的绝对值的那级台

阶。零度值(VZS)是指其额定中点(midstep)值等于零的那级台阶。

四、电路的制作、调试

1、硬件制作

硬件电路主要有单片机最小系统、LM35为核心的传感器电路、动态扫描显示电

路、和供电电路组成。

单片机最小系统:控制A/D转换并读取数据,然后对数据进行处理后得到温度

的数值,最后将温度值送到LCD显示。

LM35传感器电路:该传感器电路把温度大小变为模拟量输出。

动态扫描显示电路:用的是四位共阳LED数码显示管,用的PNP型三极管8550

的开关特性实现动态扫描

A/D转换电路:为了节省IO口,本电路采用串行A/D转换芯片TLC1549,它不但具有单数据线通信的特点,而且还不需要提供额外的工作时钟信号。

运算放大电路:由于LM35输出的电压值较小,因此需要将其放大。本电路采用

高精度、低漂移的运算放大器OP07。

供电电路:利用7805组成线性稳压电源为整个系统供电

测试LM35及运放:

对LM35进行测试时使用单电源模式,並且将输出以非反相放大器放大十倍,如图4的电路。以10Hz 的频率记录放大后的电压值,得到如图5的温度-时间图。

图4

图5

具体电路连接见附图SCH电路原理图,硬件接线正确,单片机能构正常工作,

硬件调试成功

2、软件调试

这是整个设计制作的关键要写好软件,首先要了解A/D TLC1549的时序图,TLC1549有严格的时序要求的要求.其时序图如下:

软件流程图:

源程序:

#include

#define uint unsigned int

#define uchar unsigned char

sbit cs=P1^5;

sbit out=P1^6;

sbit cl=P1^7;

void DelayMS(unsigned int T)

{

for(;T>0;T--);

}

uchar code

table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

uint a1,a2,a3,a4,a5,a6,a7,a8,b1,b2,c1,c2,c3,c4,n;

float sum,dsum;

void delay(uint z) //子函数

{

uint x,y;

for(x=z;x>0;x--)

for(y=100;y>0;y--);

}

void main()

{

cs= 1;

cl= 0;

out= 1;

cs= 0;

DelayMS(500);

while(1)

{

cl=0;

a8=out;

cl=1;

cl=0;

a7=out;

cl=1;

cl=0;

a6=out;

cl=1;

cl=0;

a5=out;

cl=1;

cl=0;

a4=out;

cl=1;

cl=0;

a3=out;

cl=1;

cl=0;

a2=out;

cl=1;

cl=0;

a1=out;

cl=1;

cl=0;

b1=out;

cl=1;

cl=0;

b2=out;

cl=1;

cl=0;

cs=0;

sum=(a8*128+a7*64+a6*32+a5*16+a4*8+a3*4+a2*2+a1);

dsum=(sum/256)*1000;

c1=(int)(dsum/100);

c2=(int)((dsum-c1*100)/10);

c3=(int)(dsum-c1*100-c2*10);

c4=(int)((dsum-c1*100-c2*10-c3)*10);

for(n=0;n<=5;n++)

{

P2=0xfe;

P0=table[c1];

delay(10);

P2=0xfd;

P0=table[c2];

delay(10);

P2=0xfb;

P0=table[c3];

delay(10);

P2=0xf7;

P0=table[c4];

delay(10);

P2=0xff;

}

}

}

五、参考文献

1、《测控电路》第三版,张国雄主编,机械工业出版社,2008.1

2、《现代传感器集成电路》赵负图主编,,人民邮电出版社,2000.1

3、《测控电路设计型实验任务书》,自编

4、《单片机C程序设计应用实例》胡伟季晓衡主编,人民邮电出版社,2004.4

附录

心得

这次测控电路的课程设计令自己学到的很多东西!涉及了很多自己还没有了解到的领域!例如在传感器,单片机等等!

经过了几天的努力终于把作品做出来了!真的很感谢各位队友!在制作过程中遇到了一些困难,如显示乱码等。在各位队友的合作下,通过查资料,讨论。最后还经过了努力,还是把作品做出来了!这几天的辛苦都是值得的!在测试之前,大家的心情多么的紧张的,成功的之后大家的心情是多么的兴奋!

在这次的设计中,我了解到单片机的功能的强大!对它产生了兴趣!我想这次的课程设计对我日后每个方面都有着很好的帮助的

相关文档