基于51单片机的多点温度测量系统设计.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于51单片机的多点温度测量系统设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的多点温度测量系统设计.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录第一章 摘要2第二章 引言2第三章 DS18B20温度传感器相关介绍33.1 DS18B20的特点33.2 DS18B20工作过程及时序3 3.3 DS18B20结构图5第四章 LED数码管介绍8第五章 硬件的设计 10 5.1温度采集模块11 5.2温度显示模块11第六章 软件的设计12 6.1读18B20的ROM系列号程序.126.2温度的转换与读取程序176.3温度在数码管显示的程序23第七章 心得体会26 参考资料27第一章 摘要本次课程设通过基于MCS-51系列单片机SST80C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,LED数码管的使用,汇编语言
2、的设计;并且把我们这一年所学的数字和模拟电子技术、检测技来掌握相关知识。第二章 引言在人类的生活环境中,温度扮演着极其重要的角色。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业开展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的开展。进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及平安性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速开展。在工农业生产中,温度检测及其控制占有举足轻重的地位,
3、随着现代信息技术的飞速开展和传统工业改造的逐步实现 ,能够独立工作的温度检测和显示系统已经应用于诸多领域。要到达较高的测量精度需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂化。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。采用单片机对温度采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。第三章 DS18B20温度传感器相关介绍3.1 DS18B20的特点:1独特
4、的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。2在使用中不需要任何外围元件。3可用数据线供电,电压范围:+3.0 +5.5 V。4测温范围:-55 - +125 。固有测温分辨率为0.5 。5通过编程可实现9-12位的数字读数方式。6用户可自设定非易失性的报警上下限值。7支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温.8负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。3.2 DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频
5、率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,计数器1预置的是与-55相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度存放器存放值增加1计数器所需要的计数个数。DS18B20内部的比拟器以四舍五入的量化方式确定温度存放器的最低有效位。在计数器2停止计数后,比拟器将计数器1中的计数剩余值转换为温度值后与0.25进行比拟,假设低于0.25,温度存放器的最低位就置0;假设高于0.25,最低位
6、就置1;假设高于0.75时,温度存放器的最低位就进位然后置0。这样,经过比拟后所得的温度存放器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为1/2LSB,即0.25。温度存放器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器那么将被测温度转换成频率信号。当计数门翻开时,DS18B20进行计数,计数门开通时间由高
7、温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度存放器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据 初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由附属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。 ROM操作命令一旦总线主机检测到附属器件的存在,它便可以发出器件ROM操作命令之一。所有ROM操作命令均为8位长。这些命令列表如下:Read ROM(读ROM)
8、33h 此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下可以使用。如果总线上存在多于一个的附属器件,那么当所有从片企图同时发送时将发生数据冲突的现象漏极开路会产生线与的结果。Match ROM( 符合ROM)55h 此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。Skip ROM( 跳过RO
9、M )CCh 在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的附属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突漏极开路下拉会产生线与的效果。Search ROM( 搜索ROM)F0h 当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。Alarm Search(告警搜索)ECh 此命令的流程与搜索ROM命令相同。但是,仅在最近一次温度测量出现告警的情况下,DS18B20才
10、对此命令作出响应。告警的条件定义为温度高于TH 或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPROM内的触发器值用于告警。存储器操作命令 Write Scratchpad写暂存存储器4Eh 这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。Read Scratchpad读暂存存储器BEh 这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9字节8,CRC
11、字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。Convert T温度变换44h 这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0,假设温度转换完成,那么输出“1。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。处理数据: DS18B20的高速暂存存储器由9个字节组成,其分配如图3所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个
12、字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。 DS18B20温度数据表上表是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。温度转换计算方法举例: 例如当DS18B20采集到+125的实际温度后,输出为07D0H,那么:实际温度=07D0H0.0625=20000.0625=1250C。例如当DS18B20采集到-55的实际温度后,
13、输出为FC90H,那么应先将11位数据位取反加1得370H符号位不变,也不作为计算,那么:实际温度=370H0.0625=8800.0625=550C。3.3 DS18B20结构图 图1管脚排列图 在TO-92和SO-8的封装中引脚有所不同,具体差异请查阅PDF手册,在TO-92封装中引脚分配如下: 1GND:地2DQ:单线运用的数据输入输出引脚3VDD:可选的电源引脚 第四章 LED数码管的介绍LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮。一般情况下,单个发光二极
14、管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 图2 数码管引脚定义图八段LED数码显示管原理和结构:数码管分为共阳型和共阴型,共阳极型就是发光管的正极都连在一起 ,作为一条引线,负极分开。八段数码发光管就是8个发光二极管组成的,在空间排列成为8字型带个小数点,只要将电压加在阳极和阴极之间相应的笔画就会发光。8个发光二极管的阳极并接在一起,8个阴极分开,因此称为共阳八段数码管。相反那
15、么为共阴八段数码管。共阴极八段译码管显码表:输入为sp、g、f、e、d、c、b、a输入输出输入输出3FH07FH806H16FH95BH277HA4FH37CHB66H439HC6DH55EHD7DH679HE07H771HF动态显示驱动:数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制。当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制
16、,所以我们只要将需要显示的数码管的选通控制翻开,该位元就显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。第五章 硬件的设计温度采集系统的硬件局部主要是由温度采集模块、MSC51处理模块、温度显示模块组成:图3系统硬件框图5.1温度采集模块:图4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 多点 温度 测量 系统 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内