基于LM35简易温度测控系统设计.docx
- 文档编号:30646145
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:11
- 大小:114.03KB
基于LM35简易温度测控系统设计.docx
《基于LM35简易温度测控系统设计.docx》由会员分享,可在线阅读,更多相关《基于LM35简易温度测控系统设计.docx(11页珍藏版)》请在冰豆网上搜索。
基于LM35简易温度测控系统设计
基于LM35简易温度测控系统设计
教学系名称
信息工程系
专业名称
电子信息工程
学生学号
2610
学生
吴凯亮泳宇
制作日期
2013年9月18日
摘要
现代社会科学技术的发展可以说是突飞猛进,很多传统的东西都被成本更低、功能更多、使用更方便的电子产品所替代,尤其是单片机等集成电路的发展使很多电子产品都能比较容易的实现数字化智能化控制。
本课程设计是一个以AT89C51单片机为核心温度传感器采用LM35的环境温度简易测控系统,用于替代传统的低精度、不易读数的温度计。
本系统采用三位数码显示,直观方便。
显示精度为1℃,可检测温度围0~150℃,完全能够满足生活以及普通生产中环境
温度的测控需求,并且拥有响应速度快、省电等优点。
关键词
单片机;LM35;数码管
第1章硬件设计4
1.1系统的实现方案4
1.2硬件原理4
1.2.1工作原理4
1.2.2单元电路5
第2章软件设计8
2.1软件流程8
2.2软件程序8
第3章修正措施及结论12
3.1修正方案12
3.2结论说明12
第1章硬件设计
1.1系统的实现方案
本设计系统由温度传感器电路、信号放大电路、A/D转换电路、单片机系统、显示电路构成,框图如图1.1所示。
其实现方式是:
ADC0808转换来自0通道的经过放大的传感器输出信号。
AT89C51的P0口与ADC0808的输出相连用于读取转换结果,同时P2.0~P2.6作为控制总线,向ADC0808发送锁存、启动等控制信息,并查询EOC状态。
ALE经分频后给ADC0808提供时钟信号。
P1口用于向显示电路输出段码,P3.5~P3.7用于数码管的位选。
图1.1温度测控系统原理框图
1.2硬件原理
1.2.1工作原理
系统原理图如图1.2所示,它的工作原理是:
单片机AT89C51通过P2口的I/O线向ADC0808发送锁存地址以及复位、启动转换等信号,并查询转换状态。
ADC0808启动转换后,将0通道输入的电压信号转换成相应的数字量,供AT89C51读取使用,并且将EOC置1供单片机查询转换状态。
而温度传感器负责将温度信号转换成电压信号,但信号较弱,需先送到放大电路进行放大后再送ADC0808的0通道。
当单片机查询到转换结束的信号后读取数据并按照显示的需要进行二进制转BCD码等处理,最后控制显示电路显示出数字。
图1.2温度测控系统电路原理图
1.2.2单元电路
1.LM35电源电路
LM35有单电源和双电源两种接法,正负双电源的供电模式可提供负温度的测量,单电源模式在25℃下电流约为50mA,非常省电,本设计采用的是单电源的接法。
如图1.3所示。
单电源模式下,LM35的电压与温度的关系是:
Vout(T)=10mV/℃×T℃
图1.3LM35单电源电路
2.信号放大电路
本系统所采用的LM35输出电压为0~1.5V虽然在ADC0808的输入电压允许围,但电压信号较弱,直接进行A/D转换会导致数字量太小、精度低等不足。
所以在转换前先进行信号放大,放大电路如图1.4所示,因为0808的量程为0~+5V,而LM35的单电源模式输出电压为0~1.5V,所以放大倍数不能超过5倍。
ADC0808的分辨率为5V/28=0.0195V=20mV而LM35每增加1℃输出电压增加10mV即放大倍数不能小于2倍。
0808的最大输出为28=255。
如假设温度为T℃,0808输出数为X,当放大2倍时有20mV×T/5V=X/255,即T=250×X/255≈T=X,可直接把0808输出数值作为实际温度值。
然而当放大3倍时,则需要在软件程序中进行相应换算才能得到T而且精确度也不高,故放大电路选择放大2倍。
图1.4信号放大电路
3.数码管显示电路
本设计采用3位数码管分别用来显示温度的百位、十位和个位,显示电路如图1.5所示。
本系统采用共阳极静态扫描的方式连接。
数码管的段码数据由AT89C51的P1口送出,AT89C51的P3.5~P3.7输出位选信号,只有被选中的那位数码管才会显示段码信息。
图1.5数码管显示电路
第2章软件设计
2.1软件流程
1.主程序
软件有主程序、二进制转BCD、数码管显示三部分,主程序主要负责这只转换通道、启动转换以及查询转换状态和调用子程序。
2.二进制转BCD码
由于在硬件电路的信号放大器中采用2倍放大,0808转换结果无需换算直接分解成百位、十位、个位后存放在不同的存储器中即可。
3.数码管显示
因采用3位数码管作为显示,在显示中需要查表获取段码,并选择正确的数码管位来显示.
2.2软件程序
本软件程序采用查询的方式确定是否转换完成,程序如下:
#include
#include
sbitad_cs=P3^5;
sbitad_wr=P3^6;
sbitad_rd=P3^7;
sbitls1=P3^3;
sbitls2=P3^4;
#defineucharunsignedchar
#defineuintunsignedint
#defineucharunsignedchar
unsignedcharj,k,adval;
ucharad_data;
ucharm,j,k,i,a,A1,A2,A3,second;
ucharcodedis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};
//*************************************************************************
//延时函数
//*************************************************************************
voiddelay(uchari)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
voiddelay2(uchark)
{
for(k=3;k>0;k--);
}
//*************************************************************************
//AD启动显示函数
//*************************************************************************
voidad_start()
{
ad_cs=1;
ad_cs=0;
ad_wr=1;
delay2();
ad_wr=0;
delay();
ad_wr=1;
}
//*************************************************************************
//AD读数据函数
//*************************************************************************
ucharad_read()
{
P1=0xff;
ad_cs=1;
ad_rd=1;
delay2();
ad_cs=0;
delay2();
ad_rd=0;
ad_data=P1;
ad_rd=1;
ad_cs=1;
}
//*************************************************************************
//AD数据处理函数
//*************************************************************************
uchardata_do(ucharad_dat)
{
ucharA2t;
uchartemp;
uchartmp;
ucharb4;
ucharb2t,b3t;
temp=ad_data/2.56;
tmp=ad_data*10/2.56;
b2t=temp%1000;
b3t=b2t%100;
b4=b3t%10;
if(b4>=5)
temp=temp+1;
A1=temp/100;//分出百,十,和个位
A2t=temp%100;
A2=A2t/10;
A3=A2t%10;
}
voiddisplay1()
{
ls2=1;
ls1=0;
P2=dis[A2];
delay(4);
}
voiddisplay2()
{
ls1=1;
ls2=0;
P2=dis[A3];
}
//*************************************************************************
//主程序
//*************************************************************************
voidmain()
{
while
(1)
{
ad_start();
ad_read();
data_do(ad_data);
display1();
display2();
}
}
第3章修正措施及结论
3.1修正方案
在实验中由于数码管选用错误,导致温度量程设置为0-99℃,从而引起放大倍数修正为5倍;在试验进行调试的过程中,发现温度显示精度不高,修正方案为在程序中应用了四舍五入的方案设计,而提高了精度。
3.2结论说明
这次课程设计将单片机与传感器进行了结合,更进一步的向我展示了单片机强大功能。
此外还接触了模数转换器件,只要采用不同的传感器,使用不同的A/D转换器件,就能实现不同的功能,许多传统的模拟器件都能很容易的被数字化,这大大增强了我的学习兴趣。
同时在调试中遇到的仿真环境里ALE无效的情况也使我意识到,学习单片机不能过于依赖仿真软件等工具,基本硬件原理应熟练掌握。
要善于将学到的知识联系起来以利于发现问题和解决问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 LM35 简易 温度 测控 系统 设计