《数字温度计课程设计报告.pdf》由会员分享,可在线阅读,更多相关《数字温度计课程设计报告.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、v1.0 可编辑可修改一数字温度计的总体方案设计一数字温度计的总体方案设计根据系统设计的功能,本时钟温度系统的设计必须采用单片机软件系统实现,用单片机的自动控制能力来测量、显示温度数值。初步确定设计系统由单片机主控模块、测温模块、显示模块共 3 个模块组成,电路系统框图如图所示。图 系统基本方框图对于单片机的选择,如果用8051系列,由于它没有内部RAM,系统又需要一定的内存存储数据。AT89S52是一个低功耗、高性能CMOS 8位的单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,兼容标准MCS-51指令系统及80C51引脚结构,功能强大的AT89S52
2、可为许多嵌入式控制应用系统提供高性价比的解决方案。而AT89S52与AT89C51相比,外型管脚完全相同,AT89C51的HEX程序无须任何转换可直接在AT89S52运行,且AT89S52比AT89C51新增了一些功能,相比较后,在本设计中选用AT89S52更能很好的实现温度计控制功能。测温电路可以使用热敏电阻之类的器件,利用其感温效应,将被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据处理。但是这种感温电路比较复杂,且采用热敏电阻精度低,重复性、可靠性都比较差。如果采用温度传感器 DS18B20 可以减少外部硬件电路,而且可以很容易直接读取被测温度值,进而转换,
3、且成本低、易使用,可以很好的满足设计要求。所以本文采用传感器 DS18B20 代替传统的测温电路。11v1.0 可编辑可修改温度的显示可以采用 LED 数码管来显示,LED 亮度高、醒目,但是电路复杂,占用资源多且信息量小。而采用液晶显示器有明显的优点:工作电流比 LED小几个数量级,功耗低;尺寸小,厚度约为 LED 的 1/3;字迹清晰、美观、使人舒服;寿命长,使用方便,可得性强。故本设计采用 LCD 来显示温度。二、系统器件的具体选择二、系统器件的具体选择单片机的选择单片机的选择本次设计采用的是单片机 AT89C52。AT89C52 是一个低电压,高性能 CMOS 8位单片机,片内含 8k
4、 bytes的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用8 位中央处理器和 Flash 存储单元,AT89C52 单片机在电子行业中有着广泛的应用。图 PDIP 封装的 AT89C52 引脚图AT89C52 为 8 位通用微处理器,采用工业标准的C51 内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的22初始化,会聚调整控制,会聚测
5、试图控制,红外遥控信号IR 的接收解码及与主板 CPU 通信等。主要管脚有:XTAL1(19 脚)和 XTAL2(18 脚)为振荡器输入输出端口,外接 12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和 VSS(20 脚)为供电端口,分别接+5V 电源的正负端。P0P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为 N1 功能控制端口,分别与N1 的相应功能管脚相连接,13 脚定义为 IR 输入端,10 脚和 11 脚定义为 I2C 总线控制端口,分别连接N1 的 SDAS(18 脚)和
6、SCLS(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。温度传感器的选择温度传感器的选择 DS18B20 DS18B20 的简单介绍的简单介绍DS18B20 温度传感器是一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912 位的数字值读数方式。DS18B20 的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个 DS18B20 可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为;零
7、待机功耗;温度以或位数字;负电压特性,电极接反时,温度计不会因发热而烧毁,只是不能正常工作。DS18B20 DS18B20 的外形和内部结构的外形和内部结构DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列、各种封装形式如图所示,DQ 为数据输入/输出引脚。33v1.0 可编辑可修改开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND 为地信号;VDD 为可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。图外部封装形式图 DS18B20 的电路DS18B20 采用
8、 3 脚 PR35 封装或 8 脚 SOIC 封装,其内部结构框图如图 2-4所示。I/O64位存储器与控制逻温度传感器高温触发器 TH低温触发器 TLCROM和单高速缓存配置寄存器8 位 CRC 发生器Vdd图 2-4 DS18B20 内部结构64 位 ROM 的结构开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进行通信的原因。44DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM。高速暂存RAM 的结构为 9 字节的存储器
9、。头2 个字节包含测得的温度信息,第 3 和第 4 字节 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第 5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。低5 位一直为 1,TM 是工作模式位,用于设置 DS18B20 在工作模式还是在测试模式,DS18B20出厂时该位被设置为 0,用户要去改动,R1 和 R0 决定温度转换的精度位数,来设置分辨率。DS18B20 DS18B20 的测温原理的测温原理DS18B20 的温度值的位数因分辨率不同而不同,温度转换时的最大延时为750ms。DS18B20 测
10、温原理如图所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输
11、出用于修正计数器 1 的预置值。55v1.0 可编辑可修改图 DS18B20 测温原理 DS18B2 DS18B2 的外部电路图的外部电路图根据设计要求,传感器的硬件电路图如图所示。图 DS18B20 外部电路图三程序流程三程序流程66图 DS18B20 温度计主程序流程图v1.0 可编辑可修改图 读出温度子程序流程图77图计算温度子程序图显示数据刷新子程序流程图四四ProteusProteus仿真调试结果及分析仿真调试结果及分析温度计电路设计原理图如图所示,控制器使用单片机AT89C2052,温度计传感器使用DS18B20,用液晶实现温度显示。本温度计大体分三个工作过程。首先,由DS1882
12、0温度传感器芯片测量当前的温度,并将结果送入单片机。然后,通过89C2052单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块。最后,SMC1602A芯片将送来的值显示于显示屏上。由图可看到,本电路主要由DSl8820温度传感器芯片、SMCl602A液晶显示模88v1.0 可编辑可修改块芯片和89C2052单片机芯片组成。其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。图温度计电路设计仿真图五硬件调试结果及分析五硬件调试结果及分析软件调试软件调试根据流程图编写程序软件。本次设计系统的调试以程序的调试为主
13、。程序的调试我们采用eil C51Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。系统调试系统调试软硬件分别调试完成以后,将程序下载入单片机中,电路板接上电源,按刷新按钮 LCD 显示当前温度。用手去碰触温度传感器,按刷新按钮,温度显示值出现变化,显示当前手的温度值。完成了我们预期的要求。六设计感受与见解六设计感受与见解99本次综合实训是针对 MCS-51 系列的单片机芯片 STC89C52 来设计一个数字温度计,该设计充分利用了温度传感器 DS18B20 功能强大的优点,如 DS18B20
14、可以直接读出被测温度值,进行转换;而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点,大大简化了硬件电路,也使得该数字温度计不仅具有结构简单、成本低廉、精确度较高、反应速度较快、数字化显示和不易损坏等特点,而且性能稳定,适用范围广,因此特别适用于对测温要求比较准确的场所。在这次设计中,熟悉了制作一个产品的总体流程,能熟练使用一些必要的设计工具和仿真工具等。通过选认元件,连线,调试检测等过程,锻炼自己的理论联系实际的能力和实际操作能力,从而综合性地巩固所学的知识,为将来的工作做一次实战演习。经过将近 2 周的综合实训,终于完成了我的数字温度计的设计,虽然没有完全达到设计要
15、求,但从心底里说,还是高兴的,从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次实训中的最大收获。七附件一:元器件清单七附件一:元器件清单STC89C51 1个温度传感器DS18B20 1个插针 1排LCD1602 1个40脚插座 1个12MHZ晶振 1个电容 30PF 2个 22UF 1个1010电阻 10K 2个 1个附件二:源程序附件二:源程序#include#define uchar unsigned char#define uint unsigned i
16、ntsbit DQ=P37;/ds18b20 与单片机连接口sbit RS=P30;sbit RW=P31;sbit EN=P32;unsigned char code str1=temperature:;unsigned char code str2=;uchar data disdata5;uint tvalue;/温度值uchar tflag;/温度正负标志/*lcd1602 程序*/void delay1ms(unsigned int ms)/延时 1 毫秒(不够精确的)unsigned int i,j;for(i=0;ims;i+)for(j=0;j0;i-)DQ=0;/给脉冲信号
17、dat=1;DQ=1;/给脉冲信号 if(DQ)dat|=0 x80;delay_18B20(10);return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0;for(i=8;i0;i-)DQ=0;DQ=wdata&0 x01;1414 delay_18B20(10);DQ=1;wdata=1;read_temp()/*读取温度值并转换*/uchar a,b;ds1820rst();ds1820wr(0 xcc);/*跳过读序列号*/ds1820wr(0 x44);/*启动温度转换*/ds1820rst();ds1820wr(
18、0 xcc);/*跳过读序列号*/ds1820wr(0 xbe);/*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0 x0fff)tflag=0;else tvalue=tvalue+1;tflag=1;tvalue=tvalue*;/温度值扩大 10 倍,精确到 1 位小数return(tvalue);1515/*/void ds1820disp()/温度值显示 uchar flagdat;disdata0=tvalue/1000+0 x30;/百位数 disdata1=tvalue%1
19、000/100+0 x30;/十位数 disdata2=tvalue%100/10+0 x30;/个位数 disdata3=tvalue%10+0 x30;/小数位 if(tflag=0)flagdat=0 x20;/正温度不显示符号 else flagdat=0 x2d;/负温度显示负号:-if(disdata0=0 x30)disdata0=0 x20;/如果百位为 0,不显示 if(disdata1=0 x30)disdata1=0 x20;/如果百位为 0,十位为 0 也不显示 wr_com(0 xc0);wr_dat(flagdat);/显示符号位 wr_com(0 xc1);wr_
20、dat(disdata0);/显示百位 wr_com(0 xc2);wr_dat(disdata1);/显示十位 wr_com(0 xc3);wr_dat(disdata2);/显示个位 wr_com(0 xc4);1616 wr_dat(0 x2e);/显示小数点 wr_com(0 xc5);wr_dat(disdata3);/显示小数位 /*主程序*/void main()init_play();/初始化显示 while(1)read_temp();/读取温度 ds1820disp();/显示九附录三:实物图及使用说明九附录三:实物图及使用说明说明:按键刷新温度说明:按键刷新温度1717v1.0 可编辑可修改1818