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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

温度计的设计报告.docx

1、温度计的设计报告温度计的设计一、设计内容和要求本设计主要介绍了用单片机和数字温度传感器DS18B20相结合的方法来实现温度的采集,以单片机AT89C51芯片为核心,辅以温度传感器DS18B20和LED数码管及必要的外围电路,构成了一个单片机数字温度计。其主要研究内容包括两方面,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用C语言实现温度的采集与显示。通过利用数字温度传感器DS18B20进行设计,能够满足实时检测温度的要求,同时通过LED数码管的显示功能,可以实现不间断的温度显示,并带有复位功能。本次设计的主要思路是利用51系列单片机,数字温度传感器DS18

2、B20和LED数码显示器,构成实现温度检测与显示的单片机控制系统,即数字温度计。通过对单片机编写相应的程序,达到能够实时检测周围温度的目的。通过对本课题的设计能够熟悉数字温度计的工作原理及过程,了解各功能器件(单片机、DS18B20、LED)的基本原理与应用,掌握各部分电路的硬件连线与程序编写,最终完成对数字温度计的总体设计。根据实验要求实现测温范围在-55128 oC的LED数码管显示。本次设计的主要要求:(1)根据设计需要,选用AT89C51单片机为核心器件;(2)温度检测器件采用DS18B20数字式温度传感器,利用单总线式连接方式与单片机的串行接口引脚相连;(3)显示电路采用8个LED数

3、码管显示器接P1口并行显示温度值,数码管由P2口选通,动态显示。(4)给出全部电路和源程序。二、课程设计的目的和意义数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。温度计是常用的热工仪表,常用于工业现场作为过程的温度测量。在工业生产过程中,不仅需要了解当前温度读数,而且还希望能了解过程中的温度变化情况。随着工业现代化的发展,对温度测量仪表的要求越来越高,而数字温度表具有结构简单,抗干扰能力强,功耗小,可靠性高,速度快等特点,更加适合于工业过程中以及科学试验中对温度进行在线测量的要求。近年来,数字温度表广泛

4、应用在各个领域,它与模拟式温度表相比较,归纳起来有如下特点。准确度高,测量范围宽、灵敏度高,测量速度快,使用方便、操作简单,抗干扰能力强,自动化程度高,读数清晰、直观方便。数字温度计的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的仪表。数字化是当前计量仪器仪表发展的主要方向之一。而高准确度数字温度计的出现,又使温度计进入了精密标准测量领域。与此相适应,测量的可靠性、准确性显得越来越重要。三、课程设计的总体方案和思路根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示、报警等功能。选用数字温度传感DS18B2

5、0,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用8位共阴LED数码管以动态扫描法实现。检测范围-55摄氏度到128摄氏度。按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。数字温度计总体电路结构框图如图1所示。 图1 数字温度计总体电路结构框图 四、各模块元件功能1、AT89C51介绍单片机AT89C51是一种带4K字节可编

6、程可擦除只读存储器的低电压,高性能CMOS8位微处理器,如图2所示。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51的主要特性介绍:与MCS-51 兼容; 4K字节可编程存储器; 寿命:1000写/擦循环; 数据保留时间:10年; 全静态工作:0Hz-24MHz; 三级程序存储器锁定; 1288位内部RAM;32可编程I/O线;两个16位定时器/计数器;有5个中断源; 可编程串行通道;

7、具有低功耗的闲置和掉电模式; 具有片内振荡器和时钟电路; 图2 AT89C512 、单片机最小系统单片机最小系统是内部时钟接引脚XTAL1和XTAL2,采用18KHz的晶振CRYSTAL,用两个30pF的电容进行稳压,如图3所示:图3 内部时钟电路3、 LED显示电路显示电路采用8位共阴LED数码管,从P0口输出段码,列扫描用口连接两个锁存器来实现,如图4所示。 图4 LED显示电路4、(1)DS18B20温度传感器介绍DS18B20温度传感器是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转

8、化成串行数字信号供处理器处理。DS18B20 的性能特点如下:独特的单线接口方式仅需要一个端口引脚进行通信;多个DS18B20可以并联在唯一的三线上,实现多点组网功能;无需外部器件;可通过数据线供电,电压范围:;测温范围55128;零待机功耗;温度以9或12位数字量读出;用户可定义的非易失性温度报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作DS18B20结构特点。它采用3脚PR35 封装或8脚SOIC封装,其内部结构框图如图5所示: 图5 DS18B20内部结构框图(2)DS18B20测温原理:DS18

9、B20的测温原理如图6所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减

10、法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图6中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。图6 DS18B20测温原理图5 、温度传感器DS18B20与单片机的连接DS18B20的DQ引脚与单片机的口连接,采用外部电源供电方式,如图7所示。P3口是一个带内部上拉电阻的8位双向I/O口,其输出缓冲器可驱动(吸收或输出电流4

11、个TTL逻辑门电路。对该端口写“1”即在指令中安排一条SETB 指令,可通过内部上拉电阻将该端口拉至高电平,此时该端口可做输入口使用。图7 测温电路6、 过温报警电路用2N2222三极管做位驱动,喇叭和红色LED灯作报警提示,如图8。图8 过温报警电路五、软件程序设计1 、温度采集DS18B20部分程序设计分析由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的一般操作过程为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。初始化:单片机将数据线拉低480-960us后释放,等待15-60us,单总线器件即可输出

12、一个持续时间为60-240us的低电平(应答信号),单片机收到此应答后即可进行后续操作;写时序:当主机将数据线的电平从高拉到低时,形成写时序,有写0和写1两种时序。写时序开始后,DS18B20在15-60us期间从数据线上采样,如果采样到低电平,则向DS18B20写0,否则写1,两个独立的时序之间至少需要1us的回复时间按(拉高总线电平);读时序:当主机从DS18B20读取数据时,产生读时序,此时,主机将数据线的电平从高拉到低使读时序被初始化。如果此后15us内,主机在总线上采样到低电平,则从DS18B20读0,否则读1。2 、各部分程序设计及其程序流程图系统程序主要包括主程序,读出温度子程序

13、,温度转换命令子程序,计算温度子程序,报警子程序和显示数据刷新子程序等。(1)主程序:主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的测量温度值。温度测量每1s进行一次。主程序流程图如图9所示。(2)读出温度子程序:读出温度子程的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不能进行温度数据的改写。读出温度子程序流程图如图10所示。(3)温度转换命令子程序:温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间约为750 ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图11所示。(4)计算温度子程

14、序:计算温度子程序将RAM中读取的值进行十进制的转换运算,并进行温度值正负的判断。其流程图如图12所示。(5)显示数据刷新子程序:显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。显示数据刷新子程序流程图如图13所示。图10 读温度子程序 图9 主程序流程图图11 温度转换命令子程序流程图 图12 计算温度子程序图13 显示数据刷新子程序流程图3、源程序设计:#include#include #define DataPort P1 sbit LATCH1=P22; sbit LATCH2=P23; sbit LABA=P20; bit

15、 ReadTempFlag;unsigned char codedofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char code dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; unsigned char TempData8; void Display(unsigned char FirstBit,unsigned char Num); void Init_Timer0(void); void lab() unsigned char i

16、 = 100; unsigned char j = 100; while(j-) while(i-) LABA = LABA;void main (void) unsigned int TempH,TempL,temp;LABA=0;Init_Timer0();while (1) if(ReadTempFlag=1) ReadTempFlag=0; temp=ReadTemperature(); if(temp&0x8000) TempData0=0x40; temp=temp; temp +=1; else TempData0=0; TempH=temp4; TempL=temp&0x0F;

17、 TempL=TempL*6/10; if(TempH/100=0) TempData1=0; else TempData1=dofly_DuanMaTempH/100; if(TempH/100=0)&(TempH%100)/10=0) TempData2=0; else TempData2=dofly_DuanMa(TempH%100)/10; TempData3=dofly_DuanMa(TempH%100)%10|0x80; TempData4=dofly_DuanMaTempL; TempData5=0; TempData6=0x63; TempData7=0x39; if(Temp

18、H32|TempH15) lab(); else LABA=0; void Display(unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort=0; LATCH1=1; LATCH1=0; DataPort=dofly_WeiMai+FirstBit; LATCH2=1; LATCH2=0; DataPort=TempDatai; LATCH1=1; LATCH1=0; i+; if(i=Num) i=0;void Init_Timer0(void) TMOD |= 0x01; 89C时请教子线路设计.实验.测试M.武汉:华中科技大学出版,2000.2郁有文等.传感器原理及工程应用M.西安:西安电子科技大学出版社,2003.3何立民等.单片机实验与实践教程M. 北京:北京航空航天大学出版社,2004.4松井邦彦.传感器实用电路设计与制作M.北京:科学出版社,2005.5彭介华.电子技术课程设计指导M.北京:高等教育出版社,2005.

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

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