资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于单片机的数字温度计设计摘要:本文设计了一种基于单片机控制的数字温本设计度计,本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温围广,输出温度采用数字显示。该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用共阳极LED数码管显示,能够准确到达要求。 温度计电路设计控制器采用单片机AT89S51,具有低电压供电和体积小等特点,温度传感器采用DS18B20,DS18B20温度传感器是美国最新推出的一种温度传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现读数方式,仅需要一个端口引脚进展通信,部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM.显示电路采用LED动态显示方式。关键词:单片机 ;DS18B20 ;超限报警;LED显示; 前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否认的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向开展。温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。测量温度的根本方法是使用温度计直接读取温度。最常见到得测量温度的工具是各种各样的温度计,例如:水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。它们常常以刻度的形式表示温度的上下,人们必须通过读取刻度值的多少来测量温度。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。1 总体方案设计1.1设计方案论证针对本课题的设计任务,进展分析得到:本次设计用温度传感器进展温度的测量,转化了的温度信号由传感器直接得到了数字信号。该数字温度计的设计,在总体上大致可分为以下几个局部组成:1.单片机控制电路;2.温度传感器;3.开关控制电路;4.LED显示电路。方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进展A/D转换后,就可以用单片机进展数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比拟麻烦。方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进展转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比拟简单,软件设计也比拟简单,故采用了方案二。系统原理框图如图1所示。主 控 制 器LED显 示温 度 传 感 器单片机复位时钟振荡报警点按键调整图1 系统原理框图1.2 硬件构成1.21 主控制器AT89C51具有以下标准功能:8K字节FLASH,256字节RAM,32位I/O总线,看门狗定时器2个数据指针,3个16位定时器、计数器,一个6向量2级中断构造,全双工串行口,片晶振及时钟电路。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0口写“1时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0也被作为低8位地址/数据使用。在这种模式下,P0具有部上拉电阻。在FLASH编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入口使用时,被外部拉低的引脚由于部电阻的原因,将输出电流。P2口:P2口是一个具有部上拉电阻的8位双向I/O口,P2口输出缓冲器驱动4个TTL逻辑电平。对P2端口写1时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入口使用时,被外部拉低的引脚由于部电阻的原因,将输出电流。1.22 数码管显示显示电路采用共阳LED数码管,从P3口RXD,TXD串口输出段码。1.23 温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下:a独特的单线接口仅需要一个端口引脚进展通信;b多个DS18B20可以并联在惟一的三线上,实现多点组网功能;c无须外部器件;d可通过数据线供电,电压围为3.05.5;e零待机功耗;f温度以或位数字;g用户可定义报警设置;h报警搜索命令识别并标志超过程序限定温度温度报警条件的器件;i负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20温度传感器的部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的构造为字节的存储器,构造如图3所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置存放器,它的容用于确定温度值的数字转换分辨率。DS18B20工作时存放器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置存放器保存保存保存CRC图2 DS18B20字节定义DS18B20温度转换的时间比拟长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保存未用,表现为全逻辑。第字节读出前面所有字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开场启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一局部温度值对应的二进制温度数据。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、T字节容作比拟。假设TH或TTL,那么将该器件的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进展报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码CRC。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比拟,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门翻开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进展计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度存放器中,计数器和温度存放器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进展减法计数,当减法计数器的预置值减到时,温度存放器的值将加,减法计数器的预置将重新被装入,减法计数器重新开场对低温度系数晶振产生的脉冲信号进展计数,如此循环直到减法计数器计数到时,停顿温度存放器的累加,此时温度存放器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度存放器值大致被测温度值。2 硬件电路设计2.1 主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89C51是一种低功耗,高性能的8位微控制器,具有8K在系统可编程FLASH存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上FLASH允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程FLASH,使得AT89S52为众多嵌入式控制应用系统提供高灵活,超有效的解决方案。图3 主控制器电路2.2 显示电路显示电路采用集成的数码管,为共阳极构造,采用动态显示,P1口作为输出编码端,P2.0到P2.7作为位选控制端,其中P1做输出端口需要上拉电阻,通过设置不同的段码可以显示温度,可以对温度进展实时检测。图4 显示电路2.3 数据采集电路DS18B20的部构造主要包括:寄生电源,温度传感器,64位激光ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值得TH和TL触发器,存储和逻辑控制,8位循环冗余码发生器等七局部。DS18B20测量温度时使用特有的温度测量技术,将被测温度转换成数值信号,测量结果将存入温度存放器中。图5 数据采集电路2.4 报警电路当温度超过设定的上下限温度时,蜂鸣器会发出声响,下列图为报警电路。图6 报警电路3 软件设计3.1 主程序设计系统的主程序主要用来初始化一些参数,对DS18B20的配置数据进展一系列的设定。另外对DS18B20的状态不断的查询,以读取当前的温度值,并对温度进展处理,温度值的BCD码处理后,将其段码送显示缓冲区,以备定时扫描效劳程序处理。调用显示子程序读取温度 转换温度初始化 温度显示 温度比拟 检测返回图7 主程序流程图3.2 温度转换程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进展CRC校验,校验有错时不进展温度数据的改写。其程序流程图如下所示。发DS18B20复位命令发跳过ROM命令发温度转换开场命令 完毕图8 温度转换流程图3.3 温度显示程序和报警电路程序此程序是将采集到得数据用LED数码管显示,然后将实际温度与设置的报警上下限进展比拟,决定是否发出报警信号。由于T为实际温度的绝对值,TH,TL也是温度的绝对值,因此判断大小关系时,要通过正负号来确定。开场 数据采集接收数据 温度转换LED显示图9温度显示流程图 开场T=0TH=0T=0报警 报警 完毕T=TL完毕T=TLTL=0T=THTH=0NN
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号