基于单片机的数字温度计.docx

上传人:b****1 文档编号:1344951 上传时间:2022-10-21 格式:DOCX 页数:16 大小:482.46KB
下载 相关 举报
基于单片机的数字温度计.docx_第1页
第1页 / 共16页
基于单片机的数字温度计.docx_第2页
第2页 / 共16页
基于单片机的数字温度计.docx_第3页
第3页 / 共16页
基于单片机的数字温度计.docx_第4页
第4页 / 共16页
基于单片机的数字温度计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于单片机的数字温度计.docx

《基于单片机的数字温度计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计.docx(16页珍藏版)》请在冰豆网上搜索。

基于单片机的数字温度计.docx

基于单片机的数字温度计

数字温度计设计

一、设计任务与要求

1.1设计容:

数字温度计的设计要能实现温度的实时采集与显示,以AT89S51单片机为核心芯片,使用DS18B20数字温度传感器或使用热敏电阻之类的器件,利用其感温效应采集环境温度,并通过一组4位共阴极数码管将温度显示出来,也可用LM1602液晶显示屏。

1.2设计基本要求:

(1)温度设定围:

温度为00℃—99℃

(2)温度精度为0.1℃;

(3)可以设置报警温度,发出报警信息,可以用声或光表示。

二、方案设计与论证

本设计以检测温度并显示温度,以与提供上下限报警和设定某一个报警温度为目的。

按照系统设计功能的要求,对于温度的采集可以使用温度传感器、热敏电阻或热电偶等等;将采集到的温度传到单片机,利用软件编程对温度进行处理;温度围和精度由软硬件决定;报警采用声音和灯光相结合,由蜂鸣器和LED灯组成;报警温度的设置由键盘的up和down来设定。

方案一

由于本设计实现的是测温电路,首先我们可以使用热敏电阻之类的器件,利用其感温效应,将其随被测温度变化的电压或电流值采集过来,进行A/D转换后,就可以用单片机进行数据的处理,通过显示电路就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。

因此,我们引出第二种方案。

方案二

我们可以采用技术成熟、操作简单、精确度高的温度传感器,在此,可以选用数字温度传感器DS18B20,根据它的特点和测温原理,很容易就能直接读取被测温度值并进行转换,这样就可以满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故在本设计中采用了方案二。

以下为利用DS18B20温度传感器的硬件构成图:

图2.1数字温度计设计总体硬件构成图

三、硬件电路设计

3.1、硬件设计总图见图3.1

图3.1硬件设计仿真总图

 

3.2最小系统的电路设计

单片机晶振电路、外部按键电路和复位电路的设计如图3.2所示。

XTAL1(X1)为反向振荡放大器的输入与部时钟工作电路的输入。

XTAL2(X2)是来自反向振荡器的输出。

在此使用的是12MHz的晶振;复位电路采用手动复位与上电复位相结合的方式。

当按下按键S1时,VCC通过R1电阻给复位输入端口一个高电平,实现复位功能,即手动复位。

上电复位就是VCC通过电阻R2和电容C3构成回路,该回路是一个对电容C充电和放电的电路,所以复位端口得到一个周期性变化的电压值,并且有一定时间的电压值高于CPU复位电压,实现上电复位功能;以与外部按键电路通过UP和DOWN按键将I/O口直接与地相连,当按键按下时I/O口将检测到低电平。

图3.2最小系统的设计电路

3.3温度采集电路的设计

(1)、数字温度传感器DS18B20

它是一种新型的”一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。

DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持”一线总线”接口的温度传感器。

温度测量围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以与用户设定的报警温度存储在EEPROM中,掉电后依然保存。

被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

DS18B20的性能特点如下:

▲独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条总线即可实现微处理器与DS18B20的双向通讯;

▲DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;

▲DS18B20在使用中不需要任何外围元件,全部传感元件与转换电路集成在形如一只三极管的集成电路;

▲适应电压围更宽,电压围:

3.0~5.5V,在寄生电源方式下可由数据线供电;

▲测温围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;

▲零待机功耗;

▲可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;

▲在9位分辨率时最多在93.75ms把温度转换为数字,12位分辨率时最多在750ms把温度值转换为数字,速度较慢;

▲用户可定义报警设置;

▲测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;

▲负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

(2)、工作原理如下

器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。

其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

它有严格的时序概念,初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

 

(3)、部构造和硬件仿真图如下

 

 

图3.3DS18B20温度采集仿真图

 

3.4数码管温度显示电路设计

LED数码管,也叫LED数码显示器,由于它具有很高的性能价格比、显示清晰、亮度高、使用方便、电路简单、寿命长等诸多优点,长期以来一直在各类电子产品和工程控制中得到非常广泛的应用。

在单片机控制系统中,因为单片机的硬件简单、灵活等特点,非常适合使用LED数码管作为其输出设备,这样既满足了控制系统硬件简单,又能如实地显示被控系统的温度、压力、流量、高度等一些单片机的处理结果。

本设计的显示电路采用4个共阴极LED数码管,从P0口并行输出温度段码,用P2.0~P2.3四个端口输出位选,控制数码管的点亮。

其工作过程如下:

1、并行数据由P1口送至4个数码管。

2、这时P3.0、P3.1、P3.2、P3.3轮流输出低电平,LED数码管依次被点亮,显示P1传送来的数据。

由于数码管余辉效应和人眼的视觉延迟,当数码管每秒点亮50次时,就会出现静止显示的温度值。

硬件图如图3.4所示:

图3.4数码管温度显示电路

 

3.5声光报警电路设计

报警电路采用蜂鸣器和LED灯相结合的办法,通过两个NPN三极管来驱动,如图3.5所示。

当三极管基极为低电平时,蜂鸣器和LED灯都关闭;当基极由低电平变为高电平时,三极管导通,这时蜂鸣器响,LED灯亮,达到声光报警的目的。

图3.5声光报警电路

 

四、温度传感器程序设计

4.1程序设计流程框图

4.2主要程序代码与说明

/****延时函数****/

/****DS18B20初始化以与对它读写的程序****/

voiddsreset(void)

{

uinti;

ds=0;i=100;

while(i>0)i--;

ds=1;i=4;

while(i>0)i--;

}

bittempreadbit(void)//读1位数据函数

{

uinti=0;

bitdat;

ds=0;i++;//i++起延时作用

ds=1;i++;i++;

dat=ds;

i=8;while(i>0)i--;

return(dat);

}

uchartempread(void)//读1个字节的数据

{

uchari,j,dat;

dat=0;

for(i=1;i<=8;i++)

{

j=tempreadbit();

dat=(j<<7)|(dat>>1);

}

return(dat);

}

voidtempwritebyte(uchardat)//向DS18B20写一个字节数据

{

uinti,j;

bittestb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb)//写1

{

ds=0;

i++;i++;

ds=1;

i=8;while(i>0)i--;

}

else//写0

{

ds=0;

i=8;while(i>0)i--;

ds=1;

i++;i++;

}

}

}

/***向DS18B20发送转换指令*****/

/***将转换后的数字温度转换为模拟温度*****/

/***将模拟温度通过数码管显示*****/

/***按键输入部分用来改变报警温度初值*****/

/****对报警温度进行判断并声光提示****/

/****主函数体****/

五、仿真过程与仿真结果

将硬件设计原理图和程序相结合进行软件仿真,首先,将设计好的数字温度传感器程序输入到Proteus中保存、编译生成HEX文件,将该HEX文件下载到仿真原理图,其仿真结果如下图5.1。

程序默认报警温度为25℃,DS18B20的模拟温度可以任意设置如图中设置为26.31度,通过DOWN键可以减小报警温度初值,UP键可以增大报警温度初值,并且当有按键按下时,有声光提示,数码管回显报警值。

现在通过按UP键使报警初值加1变为26℃,由于26约等于DS18B20的当前温度26.31(报警误差最大为0.5℃),所以蜂鸣器响起,LED灯闪烁。

再次按下UP后报警初值变为27℃,声光报警也都关闭。

图5.1仿真结果

六、安装与调试

6.1、电路的安装

在制作好电路板以后,就进入了电路的安装过程。

安装中要严格按照原理图和PCB图中元件的位置与参数来焊接,焊接时要注意不能让焊锡短路电路,注意元件的正负极,同时还要把握好对温度敏感元件的焊接时间。

防止元器件和线路因为高温而烧毁。

依据仿真图画出原理图和PCB图如下图6.1所示

6.2、电路的调试

焊接好电路以后,对电路的调试是一步很重要的过程,关系到各功能的实现问题与最终的成败问题。

系统板上硬件连线

(1).把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“动态数码显示”区域中的ABCDEFGH端子上。

(2).把“单片机系统”区域中的P2.0-P2.3用8芯排线连接到“动态数码显示”区域中的Y0Y1Y2Y3端子上。

(3).把DS18B20芯片插入“三路单总线”区域中的一个插座中,注意电源与地信号不要接反。

(4).把“三路单总线”区域中的对应的DQ端子连接到“单片机系统”区域中的P3.7/RD端子上。

(5).蜂鸣器接“单片机系统”区域中的P1.5端子上。

严格按照仿真原理图正确连接各线路,检查无误后上电,然后看看各功能模块是否正常。

七、结论与心得

温度的检测和控制是一个经典的课题,生活中的各个领域里经常需要检测和控制某一特定环境的温度,使之能够稳定在一定的温度围之。

这就要求系统对温度的检测

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1