ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:141.85KB ,
资源ID:27252598      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27252598.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于温度传感器的数字温度计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于温度传感器的数字温度计.docx

1、基于温度传感器的数字温度计综合设计报告基于温度传感器的数字温度计系别:物理与电子工程学院专业:1011电科姓名: 学号: 一、课题背景及必要性随着电子技术的发展,现在的温度控制系统功能越来越强,可靠性和准确性的要求也越来越高。以前温度控制系统大部分都是基于数字电路组成的,其功能较为单一,使用起来也不够方便,制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。由于近年来单片机发展迅速,逐渐出现用单片机制作的温度显示及控制系统,制作过程简单,而且安装、维护简单。目前,温度控制器产品从模拟、集成温度控制器发展到智能数码温度控制器。智能温控器(数字温控器)是微电子技术、计算机技术和自动测

2、试技术的结合,特点是能输出温度数据及相关的温度控制量,适配各种控制器,并且它是在硬件的基础上通过软件来实现控制功能的,其智能化程度也取决于软件的开发水平,现阶段正朝着高精度高质量的方向发展。在这样的背景下,设计出一种用普遍用于工业和生活中的新型高精度电子温度计,且数字温度计能快速准确的显示读数、携带方便和不会造成环境污染等特点。它在稳定性方面比传统的温度计有着显著的优势,精度要求也能和传统的温度计相媲美。二、方案设计与论证总体方案设计本次设计采用STC89C52单片机为核心,通过一片STC89C52单片机控制外围电路,使得系统实现实时温度测量与显示功能。根据系统要求,本设计可分为三个模块,分别

3、为温度采集模块、STC89C52单片机控制模块、数码管显示模块。2.1温度检测模块的设计及论证方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直

4、接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。2.2显示模块的设计及论证方案一用4位共阳极LED数码管以串口传送数据,实现温度显示,这样的显示模块只能是显示数字,不能显示英文与汉字;而且硬件电路也比较复杂,会增加布线的难度。优点是价格比较便宜,质量轻。方案二用1602液晶显示屏显示,可以显示英文与数字,可以给人比较直观的感觉,而且硬件电路比较简单,质量也比较轻,使用效果比数码管好,在显示要求不高的情况下,但也不能太差的

5、情况下使用。方案三采用12864液晶显示屏来显示,12864液晶显示比较清新,视觉效果比较好,可以显示画面,英文,汉字以及数字,但是质量比较大,价格比较高。综上所述,考虑到我们组显示要求不高以及其他因素,我们选用了方案一。2.3控制器模块的设计及论证单片机是指一个集成在一块电路芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:中央处理单元、存储器和各种接口,目前大部分还会具有外部存储扩展。它使用简洁方便,体积小,结构最为简单,成本低廉,很容易嵌入到各种应用系统中。单片机的选择方案可以有以下两种:方案一 采用STC89C52单片机。它是一种

6、带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8的微处理器。该器件采用高密度非易失存储器技术制造,与工业标准指令集和输出管脚相兼容。属于51单片机系列,是C51单片机向下完全兼容51全部系列产品。该款单片机片内含8k Bytes ISP(I-system programmable)可反复擦写1000次的Flash只读存储器,可以通过串口进行程序的烧写,内带2k Bytes EEPROM存储空间,4个8位的可编程并行I/O口(P0口,P1口,P2口,P3口),一个全双工串口,5个中断源,2级中断优先权,3个16位的定时器/计数器),具有四种工作方式以及特殊功能寄存器(SFR)等。方

7、案二采用AT89S52单片机,AT89S52同样也是一个低功耗,高性能的8位单片机,也具有8k Bytes ISP(I-system programmable)可反复擦写1000次的Flash只读存储器,但是它没有内带EEPROM存储空间,且AT89S52的ISP一般要使用专门的下载器才能跟烧写程序。综合比较方案一与方案二,方案一更优与方案二,因为STC89C52的指令完全兼容AT89S52,程序的烧写方便,STC89C52的其它指令执行周期也比AT89S52的速度快,内部资源和I/O口的设置上比AT89S52更优越,而且STC89C52的价格相对AT89S52的低,故该设计的单片机选择STC

8、89C52。2.4数字温度计总体设计温度计电路设计总体设计方框图如下图所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用数码管实现温度显示。图2-1总体设计方框图三、硬件设计3.1整体电路图图3-1整体电路图3.2主控制器模块电路3.2.1 STC89C52主要功能及引脚介绍单片机STC89C52具有低电压供电高性能COMS8位单片机,片内含有8K bytes 的可反复擦写的Flash只读程序存储器和256bytes 的随机存取数据存储器,在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方

9、案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32位I/O 口线,看门狗定时器,2个数据指针,三个16位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程 Flash。图3-1为STC89C52的引脚图:图3-2 STC89C52引脚图其各引脚介绍如下:

10、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)

11、。此外,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”时,内

12、部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(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”时,内部上拉电阻把端口拉高,此时可

13、以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的 原因,将输出电流(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(外部数据存储器读选通)RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平,则单片机复位。3.

14、2.2 DS18B20数字温度传感器图3-3 DS18B20内部结构图DS18B20是美国DALLAS公司生产的全新单线(1-wire)数字式温度传感器,不需要另外再接A/D转换器。它采用单线技术,与单片机通信只需一个引脚2(地址、命令、数据输入或输出引脚)。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20功能特性:1:GND(地)2:DQ(地址、命令、数据输入或输出)3:VDD(可选的+5V电源)DS18B20的温度检测范围是:55125,固有测温分辨率0.5。在-1085范围内误差为0.5。工作电源: 3.05.5

15、V/DC。测量结果以912位数字量方式串行传送,适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温,温度传感器可编程的分辨率为912位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置。应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。DS18B20的数字温度计提供9至12位可编程设备温度读数。信息从DS18B20 通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一

16、条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。并且同一根信息线上可挂多个DS18B20而互不影响,因为每个DS18B20有惟一的63位序号,该序号存放在各自的ROM里面。工作原理:DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率的不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20温度传感器的低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和

17、温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度的温度值。DS18B20温度传感器中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。3.2.3 STC89C52最小系统的基本电路(1)电源电路芯片引脚VCC一般接上直流稳压电源+5V,引脚GND接电源+5V的负极,电源电压范围在45.5之间,可保证单

18、片机系统能正常工作。为提高电路的抗干扰性能,通常在引脚VCC和GND直接接上一个10F的电解电容和一个0.1F陶片电容,这样可以抑制杂波串扰,从而有效确保电路稳定性。(2)时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。在本设计中时钟采用内部方式产生,晶振振荡频率使用12M

19、HZ。晶振电路如下图所示:图3-4晶振电路(3)显示电路系统采用4个八段数码管对温度进行显示。4个数码管拼接成4位的LED数码管显示器,它们有公共的段选线(a,b,c,d,e,f,g,dp),每一位数码管有各一个位选线,控制该LED显示位的亮与暗。具体的显示电路如图3-1所示。由图可知,4位LED数码管的段选线是由STC89C52的P0口控制,又因为LED显示段码时至少需要20mA,所以在段选线与单片机引脚之间加上拉电阻驱动数码管的段。同时,LED显示器的位选线是由PNP三极管来控制,其中三极管充当的是开关作用,它主要是工作在饱和区和截止区。三极管的基极接到单片机的I/O口,集电极连接数码管的

20、位选端,基极接Vcc。(4)温度采集电路温度传感器DS18B20芯片的数据端连接到单片机的P3_4端,向单片机传送温度信号,它的1引脚接地,3引脚和数据端之间接一个电阻后接电源VCC,这样实现对温度的检测。四、软件设计4.1主程序流程图本系统的功能主要是完成温度的实时显示,在测量温度之前先对系统进行初始化,然后再经过DS18B20温度传感器检测温度,将检测到的温度值进行读取与处理后,最终进行显示温度。其程序流程图如图4-1所示:图4-1主程序流程图4.2温度转换子程序温度转换子程序主要是发出温度过转换开始命令,系统采用12分辨率时转换时间最大为750ms。在本次程序设计中用地延时法等待温度转换

21、的完成,其温转换子程序流程图如图4-2所示: 图4-2温度转换子程序4.3读温度子程序流程图读出温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。(高速暂存器RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。)其程序流程图如图4-3所示:图4-3 读温度子流程图4.4程序#include#define u8 unsigned char#define u16 unsigned intsbit a=P10;sbit b=P11;sbit c=P12;sbit d=P

22、13;sbit DQ=P33;u16 temp;u8 code table10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;u8 code table110=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; void delay(u8 x)while(x-);/*长时间1ms延时函数*/void sdelay(u16 x)u16 i,j;for(i=0;ix;i+)for(j=0;j110;j+); void init_ds18b20()bit flag=1;while (flag)wh

23、ile (flag) DQ = 1;delay(1); DQ = 0; delay(50); / 550us DQ = 1; delay(6); / 66us flag = DQ; delay(45); /延时500usflag = DQ;DQ=1;void write_ds18b20_byte(u8 dat) /write a byte to ds18b20 u16 i; u8 j; bit testb; for(j=1;j1; if(testb) /write 1 DQ=0; i+; i+; DQ=1; i=8; while(i0) i-; else DQ=0; /write 0 i=8;

24、 while(i0) i-; DQ=1; i+; i+; /*18B20读1个字节函数从1-WIRE总线上读取一个字节*/u8 read_ds18b20_byte() /read a byte dateu8 i,j,dat;dat=0;for(i=1;i= 1;DQ = 0;j+;j+;DQ = 1;j+;j+; if (DQ)dat|=0x80;j=8;while(j0) j-;DQ = 1;return(dat);/*从ds18b20读出温度*/u16 read_temp() /get the temperature u8 a,b; init_ds18b20(); write_ds18b2

25、0_byte(0xcc); / 跳过ROM write_ds18b20_byte(0x44); delay(100); init_ds18b20(); / 复位 write_ds18b20_byte(0xcc); / 发Skip ROM命令 write_ds18b20_byte(0xbe); / 发读命令 a=read_ds18b20_byte(); /温度低8位 b=read_ds18b20_byte(); /温度高8位 b4; return b; void display() temp=read_temp(); a=1;b=0;c=0;d=0;P0=tabletemp/10;sdelay(

26、4);a=0;b=1;c=0;d=0;P0=table1temp%10;sdelay(4);a=0;b=0;c=1;d=0;P0=table0;sdelay(4); a=0;b=0;c=0;d=1;P0=0x61; void main() /主程序 P1=0x00;P0=0x00; while(1) display(); 四、调试系统的调试以程序为主。硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。软件调试则可以先编写显示程序并进行硬件的正确行检验,然后分别进行主程序、温度转换子程序、读温度子程序等的编程及调试,由于DS18B20与单片机采用串行数据的传送,因此,对

27、DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。本程序采用单片机C语言编写,用Keil C51编译器编程调试,软件调试直到能够显示温度值,温度正常显示,此时软件调试基本完成。五、总结本次设计主要是实现温度的检测,采用的是数字温度感器DS18B20对温度进行采集,并对温度模拟信号进行处理(即A/D模数转换),然后将数据送入单片机STC89C52,再通过显示电路部分(四位八段数码管)来显示所测得的温度值。对于本次设计工作,收获很多。通过查阅大量的文献资料,较为详细的了解了关于温度传感器的分类、各类温度传感器的特点及原理,在原来的学习Protel 99se硬件电路绘制的基础之上,进一步熟悉了电路原理图的绘制、元器件的制作与封装及PCB印制板的布线。同时,又也掌握了Proteus电路仿真软件的应用。充分认识到单片机的重要性及近年来的发展的迅速,它将会运用到生活、科技领域的各个角落,朝着集成化、智能化的方向发展。这次设计也存在着一些不足之处,如功能设计方面,还可以加入一个继电器,当温度值超出了预设范围后,这时继电器就可以进行控制操作;同时用于报警的报警电路也可以利用一语音芯片来进行报警提示等。希望在以后的学习工作中,不断的完善其功能,使得其功能更加强大。

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

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