LM35技术文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
温度检测电路(LM35)
一.设计部分电路
(一)设计部分电路图
(二)设计部分电路分析
该设计电路是通过运算放大器,将LM35温度传感器测得的温度信号放大。LM35每升高1摄氏度,电压升高10mV。运用
反相放大器,将信号放大,放大倍数Au=R3/R2+1,本设计放
大倍数为10倍。
AD0809是一个八位二进制数模转换芯片,其基准电压为5V,转换精度为20mV,当温度升高,每升高一度U0升高100mV,大于其最小精度20mV,测量最小温度0度。放大输出后的电
压等于5V时为测量的最大温度,最大温度为50度。0~50℃输
出0~5V电压。
二、ad0809工作原理以及元件参数分析
AD0809本设计的模数转换模块主要是用adc0809芯片进行转换,将lm35读回的模拟信号通过adc0809的转换变成数字信号输送到单片机,将其基准电压设定到设计的最高温度是输出的电压,也就是其基准电压为5V,通过环境变化读出不同的数据输送到单片机。
三、流程图
四、源程序
#include
sbit ST=P3^7;
sbit EOC=P3^6;
sbit OE=P2^7;
sbit CLK=P2^6;//以上为AD
sbit CLK1=P3^1;
sbit SD=P3^0; //以上为164
sbit D1=P3^2;
sbit D2=P3^3;
sbit D3=P3^4;
sbit D4=P3^5; //以上为数码管
uint temp;
uchar code dis[]=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x39
};
/****************************** * 初始化
******************************/ void init()
{
TMOD=0x02;
TH0=0x14;
TL0=0x00;
EA=1;
ET0=1;
TR0=1;
}
/***************************** * 显示部分
*****************************/ void spend(uchar x)
{
uchar i;
CLK1=0;
for(i=0;i<8;i++)
{
x=x<<1;
SD=CY;
CLK1=1;
_nop_();_nop_();
CLK1=0;
}
}
void display(uint y)
{
uchar x1,x2,x3;
x1=y/1000;
x2=y%1000/100;
x3=y%100/10;
D1=0;
spend(dis[x1]);
delay_ms(1);
D1=1;
D2=0;
spend(dis[x2]);
delay_ms(1);
D2=1;
D3=0;
spend(dis[x3]);
delay_ms(1);
D3=1;
D4=0;
spend(dis[10]);
delay_ms(1);
D4=1;
}
/****************************** * 转换部分
******************************/ void AD0809()
{
ST=0;
_nop_();
_nop_();
ST=1;
_nop_();
_nop_();
ST=0;
while(!EOC)
display(temp*2);
OE=1;
temp=P1;
OE=0;
}
/********************************
* 主函数
********************************/
void main()
{
init();
while(1)
{
AD0809();
display(temp*2);
}
}
void timer() interrupt 1
{
CLK=~CLK;
}
五.使用说明书
本设计基于AT89c52芯片控制,将LM35测温芯片采集到的环境温度,通过多级放大电路及ADC0809的模数转换,最终通过数码管显示出当前温度。
本设计电源部分用9V交流电源供电,通过电源部分的整流,滤波,稳压之后输出稳定的5V电压对整个电路供电。