《基于51单片机数字温度计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机数字温度计毕业设计.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于51单片机数字温度计毕业设计数字测温计设计 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。在工业生产中温度是常用的被控参数,而采纳单片机来对这些被控参数进行限制已成为当今的主流。本文介绍了基于AT89S51单片机的测温系统,描述了利用DS18B20开发测温系统的过程,对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详实的分析,对各部分的电路也逐一进行了介绍,该系统敏捷的实现了温度采集和显示,且可设定上下限报警温度,运用起来非常便利,适合于我们日常生活和生产中的温度测量,该系统结构相对简洁,抗干扰实力较强,适合于不同
2、环境下温度测量,有着广袤的应用前景。 关键词:AT89S51单片机 DS18B20 温度测量 Abstract:With the progress and development of era,microcontroller technology has become popular in our life,in the work,the scientific research and various fields,has become a relatively mature technology.The temperature measurement method and device of
3、 the highlights is very important.Posed by the single chip temperature sensor and temperature measurement system can be widely applied in many fields. 书目 第1章 绪论 1 1.2 选题的目的和意义 2 1.2.1选题的目的 2 1.2.2选题的意义 2 第2章 数字温度计的设计方案 4 2.1 设计方案的确立及论证 4 2.1.1 温度传感器DS18B20的选择 4 2.1.2 显示器的选择 5 2.1.3 单片机STC89C52的选择 5
4、第3章 系统硬件电路的设计 7 3.1 主限制器 7 3.1.1 AT89S51的介绍 7 3.1.2 DS18B20的介绍 9 3.1.3 DS18B20运用的留意事项 16 3.2 单片机最小系统设计 17 3.2.1 时钟电路 17 3.2.2 复位电路 18 3.2.3 最小系统 19 3.3 DS18B20与单片机接口电路的设计 20 3.4 显示电路的设计 20 3.4.1 数码管简介 20 第4章 系统程序的设计 24 4.1 系统设计内容 24 4.1.1 主程序 24 4.1.2 读出温度子程序 24 4.1.3 温度转换吩咐子程序 25 4.1.4 计算温度子程序 25 4
5、.1.5 温度数据的计算处理方法 26 4.2 源程序 27 4.2.1 DS18B20的各条ROM吩咐 27 第5章 调试及性能分析 29 5.1 系统的调试 29 5.2 性能分析 30 结论 31 社会经济效益分析 32 致谢 33 参考文献 34 附录1 35 附录2 错误!未定义书签。 附录3 36 附录4 37 第1章 绪论 1.1选题的目的和意义 1.1.1选题的目的 运用单片机AT89S51和DS18B20设计一个温度计,能够测量25 99之间的温度值,显示在LCD液晶屏上。温度计的测量精度为0.1。通过这次设计能够更加了解数字温度计的工作原理和熟识单片机的发展和应用,巩固所学
6、的学问。1.1.2选题的意义 随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有性能稳定、灵敏度高、抗干扰实力强、运用便利等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和限制。又随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的便利;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本。本课题探讨的重要意义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的精确度和精确度的要求都有了几何级的增长,而如何精确而又快速的获得这些参数,就须要受制于现代信息基础的发展水平。在三大信息信息采集
7、(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的特别广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度休戚相关。 第2章 数字温度计的设计方案 2.1 设计方案的确立及论证 基本功能要求: (1)温度测量范围:20100度 (2)测量精度:0.5度 (3)显示方式:四位显示 (4)能够运用Protues仿真 扩展功能要求: (1)做出实物并调试胜利 (2)多点测试 (3)多点温度同时显示 2.1.1 温度传感器DS18B20的选择 方案一:水银温度计 在生活中我们常常看到水银温度计,它
8、只能作为就地监督的仪表,用它来测量温度时,由于读数时用眼睛视察,主观因素大,简单造成误差大,而且不同是水银温度计量程不同,在读数前须要看清它的最小分度值,还有它有热惯性,须要等到温度计达到稳定状态后才能读数,比较麻烦,并且水银有毒,不当心打破后接触到水银,对人体损害大,所以危急性较高。 方案二:传统测温元件 传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,须要比较多的外部硬件支持,其缺点有:硬件电路困难;软件调试困难;制作成本高。方案三:DS18B20传感器测温 本设计采纳DS18B20作为检测元件 DS18B20可以干脆读出被测温度值,特点是成本低,结
9、构简洁,便于运用。 所以本设计采纳方案三,用DS18B20作为温度传感器。 2.1.2 显示器的选择 数码管足以实现温度的显示,所以在本设计中采纳数码管显示。2.1.3 单片机AT89S51的选择 对于单片机的选择,可以考虑运用8031与8051系列,由于8031没有内部RAM,系统又须要大量内存存储数据,因而不适用。单片机AT89S51 具有低电压供电和体积小等特点,四个端口只须要两个口就能满意电路系统的设计须要,很适合便携手持式产品的设计运用系统可用二节电池供电,因此选用AT89S51更适合。根据系统设计功能的要求,确定系统由4个模块组成;主限制器、测温电路、显示电路。数字温度计总体设计电
10、路结构框图如图2-1所示: AT89S51 复位电路 显示电路 温度传感器 时钟电路 图2-1 系统框图 第3章 系统硬件电路的设计 3.1 主限制器 单片机AT89S51是低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP),也可用传统方法进行编程。3.1.1 AT89S51的介绍 AT89S51主要特性及引脚如下 与MCS-51 兼容 4K字节可编程闪耀存储器 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两
11、个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 3-2 AT89S51单片机引脚图 AT89S51 单片机为40 引脚双列直插式封装。其引脚排列和逻辑符号如图3-2 所示。各引脚功能简洁介绍如下: VCC:供电电压 GND:接地 P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可汲取8TTL门电流。当P0口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必需被拉高。P1口:P1口是一个内
12、部供应上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平常,将输出电流,这是由于内部上拉的原因。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的原因。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉
13、的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特别功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和限制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的原因。P3口也可作为AT89S51的一些特别功能口: P3.0 RXD(串行输入口) l P3.1 TXD(串行输出口) l P3.2 INT0(外部中断0) l P3.3 INT1(外部中断1) l P3.4 T0(记时器0外部输入) l P
14、3.5 T1(记时器1外部输入) l P3.6 WR (外部数据存储器写选通) l P3.7 RD (外部数据存储器读选通) 同时P3口同时为闪耀编程和编程校验接收一些限制信号。RST、ALE / PROG 、PSEN、XTAL1、XTAL2:等等笔者就不一一赘述,具体请参照相关资料。3.1.2 DS18B20的介绍 DS18B20数字温度传感器接线便利,耐磨耐碰,体积小,运用便利,封装形式多样,适用于各种狭小空间设备数字测温柔限制领域。图3-3 DS18B20的实物管脚分布图 DS18B20引脚及特点 (1)引脚功能说明 GND是地址信号; DQ是数据输入/输出引脚,开漏单总线接口引脚,当被
15、用在寄生电源下,也可以向器件供应电源; VDD为外接供电电源输入端(在寄生电源接线方式时接地)。(2)DS18B20功能特点 1、采纳单总线技术,只需一根I/O线,在一根线上能挂接多个DS18B20。2、每个DS18B20具有一个特有的64位序列号,依据序列号访问地应的器件。3、低压供电,电源范围从3.05.5V,可以本地供电,也可以干脆从数据线窃取电源(寄生电源方式)。4、测温范围为-55+125,在-10+85范围内误差为0.5。用户可自设定报警上下限温度。5、报警搜寻吩咐可识别和寻址超过程序限定温度(温度报警条件)的器件。6、辨别率由用户设置为912位。7、D将检测到温度值转化为数字量,
16、与主限制器进行数据通信。8、电源极性接反时,温度计不能正常工作。DS18B20的内部结构 (1)64位激光ROM 每一个DS18B20包括一个唯一个64位长的ROM编码。64位ROM的位结构如下图3-5所示。起先的8位是单线产品系列编码(DS18B20编码是10h);接着的48位是每个器件唯一的系列号;最终的8位是起先56位CRC检验码。64位ROM和ROM操作限制部分允许DS18B20作为一个单线器件工作并遵循“单线总线系统”一节中所详述的单线协议。直到ROM操作协议被满意,DS18B20限制部分的功能是不行访问的。8位检验CRC 48位序列号 8位工厂代码(10H) MSB LSB MSB
17、 LSB MSB LSB 图3-5 64位ROM结构框图 (3)运用报警信号 TH或TL的最高比较位对应于16位温度寄存器符号位。若温度测量的结果低于TL或者高于TH,器件内告警标记将置位。每次温度测量更新此标记。只要告警标记置位,DS18B20将对告警搜寻吩咐做出响应。这允许并联接很多DS18B20,同时进行温度测量。 (4)CRC产生 DS18B20有一存贮在64位ROM的最高有效字节内的8位CRC。总线上的主机可以依据64位ROM的前56位计算机CRC的值并把它与存贮在DS18B20内的值进行比较以确定ROM的数据是否已被主机正确地接收。CRC的等效多项式函数为: CRC=X8+X5+X
18、4+1 (公式3.1) DS18B20也利用与上述相同的多项式函数产生一个8位CRC值并把此值供应给总线的主机以确认数据字节的传送。当存贮在DS18B20内或由DS18B20计算得到的CRC值与总线主机产生的值不相符合时,在DS18B20内没有电路来阻住吩咐序列的接着执行。 (5)存贮器 DS18B20的存贮器由一个高速暂存(便笺式)RAM和一个非易失性、电可擦除EEPROM组成,后者存贮高温度和低温度触发器TH和TL。暂存存贮器有助于在单线通信时确保数据的完整性。数据首先写入暂存存贮器,在那里它可以被读回。当数据被校验之后,复制暂存存贮器的吩咐把数据传送到非易失性EEPROM。这一过程确保了
19、更改存贮器时数据的完整性。DS18B20的测温原理 如图3-11所示,图中低温度系数振荡器的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度改变其振荡频率明显变更,所产生的信号作为减法计数器2的脉冲输入。 预置 斜率累加器 低温度系数振荡器 减法计数器1 预置 减到0 温度寄存器 计数比较器 高温度系数振荡器 减法计数器2 减到0 图3-11 DS18B20测温原理图 图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。高温度系数振荡器确定计数门的开启时间,测量前,将-55所对应的基数分别置入
20、减法计数器和温度寄存器中,减法计数器和温度寄存器被预置在-55所对应的基数值。 另外,DS18B20单线通信功能是分时完成的,所以读/写时序很重要。系统对DS18B20的各种操作必需按协议进行。 3.2 单片机最小系统设计 单片机最小系统就是指能使单片机工作的最少的器件构成的系统。因为单片机已经包含了数据存储器和程序存储器,所以只要在其外部加上时钟电路和复位电路就可以构成单片机最小系统。3.2.1 时钟电路 图3-12是时钟电路的PROTEUS仿真图。 图3-12时钟电路 单片机允许的振荡晶体可在1.224MHz之间选择,一般为11.0592MHz。电容C2,C3的取值对振荡频率输出的稳定性、
21、大小及振荡电路起振速度有肯定的影响,可在20100pF之间选择,典型值位30pF。 3.2.2 复位电路 计算机每次起先工作,CPU和系统中的其他部件都必需要有一个确定的初值,即复位状态。图3-13是单片机复位电路仿真图。 图3-13 复位电路 单片机RST引脚是高电平有效。单片机在上电瞬间C1充电,RST引脚端引出正脉冲,只要RST端保持两个机械周期以上的高电平,单片机就能复位。在单片机工作后,假如还想再次复位,只需按下开关,单片机就能重新变成复位状态。 当晶体振荡频率为12MHz时,RC的典型值为C=10F,R=8.2K。3.2.3 最小系统 图3-14是单片机最小系统的完整仿真图。 图3
22、-14 单片机最小系统 3.3 DS18B20与单片机接口电路的设计 DS18B20可以采纳两种供电方式:一种是电源供电方式,另一种是寄生电源供电。 当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必需有强的上拉,上拉开启时间最长为500ms。采纳寄生电源供电方式时,VDD和GND端接地。因为单线制只有一根线,所以发送接口必需是三态的。3.4 显示电路的设计 3.4.1 2.6.1 LED数码管主要技术参数 数码管运用条件: a、段及小数点上加限流电阻 b、运用电压:段:依据发光颜色确定; 小数点:依据发光颜色确定 c、运用电流:静态:总电流 80mA(每段 10mA);动态:平
23、均电流 4-5mA 峰值电流 100mA 上图是七段数码管引脚图,其中共阳极数码管的引脚图和共阴极的是一模一样的,4位数码管的引脚图数码管的运用留意说明: ()数码管表面不要用手触摸,不要用手去弄引角; ()焊接温度:度;焊接时间: ()表面有爱护膜的产品,可以在运用前撕下来。2.6.2 LED数码管的引脚说明 分为共阳极与共阴极两种, 对于单个数码管,从正面看进去,以左下角那个脚为1脚,逆时针方向为110脚,左上角那个脚便是10脚了,上两个图的数字分别与这10个管脚对应。留意,3脚和8脚是连通的,这两个都是公共脚。另外常用的是四位数码管,内部的数码管共用adp这几根数据线,由于里面有4个数码
24、管,加上adp,一共有12个引脚,下图是一个共阴四位数码管内部结构图(。引脚排列依旧是从左下角的那个脚(1脚)起先,以逆时针方向依次为112脚,下图中的数字与之一一对应。 图2-18位共阳数码管内部结构 2.6.3数码管编码说明 4位数码管编码说明,如4.5表所示: 表4.5 限制吩咐表 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 e d dp c g b f a 0 0 0 1 0 1 0 0 0 28H 1 1 1 1 0 1 0 1 1 EBH 2 0 0 1 1 0 0 1 0 32H 3 1 0 1 0 0 0 1 0 A2H 4 1 1 1 0
25、0 0 0 1 E1H 5 1 0 1 0 0 1 0 0 A4H 6 0 0 1 0 0 1 0 0 24H 7 1 1 1 0 1 0 1 0 EAH 8 0 0 1 0 0 0 0 0 20H 9 1 0 1 0 0 0 0 0 A0H H 0 1 1 0 0 0 0 1 61H L 0 0 1 1 0 0 0 1 3DH - 1 1 1 1 0 1 1 1 F7H C 0 0 1 1 1 1 0 0 3CH 第4章 系统程序的设计 4.1 系统设计内容 系统程序主要包括主程序、读出温度子程序、温度转换吩咐子程序、计算温度子程序、测量序列号子程序、显示数据刷新子程序等。 4.1.1主程序
26、 主程序主要功能是负责温度的实时显示、读出处理DS18B20的测量温度值。主程序流程图如图4-1所示: 起先 调用显示子程序 显示当前四路温度 初始化 读取并显示序列号 图4-1 主程序流程图 4.1.2读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不进行温度数据的改写。读出温度子程序流程图如图4-2所示: 起先 复位DS18B20 发跳过ROM吩咐 发出温度转换吩咐 转换完毕 复位DS18B20 发匹配ROM吩咐 发1个DS18B20序列号 读温度值 存入储存器 指向下一个 延时 N Y 图4-2 读出温度子程序流程图 4.1.3 温度转
27、换吩咐子程序 温度转换吩咐子程序主要是发温度转换起先吩咐,当采纳12位辨别率时,转换时间约为750ms。在本程序设计中,采纳1s显示程序延时法等待转换的完成。温度转换吩咐子程序流程图如图4-3所示: 发DS18B20复位吩咐 发跳过ROM吩咐 发温度转换起先吩咐 结束 图4-3 温度转换吩咐子程序流程图 4.1.4计算温度子程序 计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。计算温度子程序流程图如图4-4所示: 起先 温度零下? 温度值取补码置“-”标记位 计算小数位温度BCD值 计算小数位温计算小数位温度BCD值 度BCD值 结束 置“+”标记 N Y 图4-
28、4 计算温度子程序流程图 4.1.5 温度数据的计算处理方法 从DS18B20读取出的二进制值必需转换成十进制值,才能用于字符的显示。DS18B20的转换精度为912位,为了提高精度采纳12位。在采纳12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过视察表4-1可以发觉,一个十进制与二进制间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位字节,所以二进制值范围是0F,转换成十进制小数就是0.0625的倍数(015倍)。这样须要4位
29、的数码管来表示小数部分。实际应用不必这么高的精度,采纳1位数码管来显示小数,可以精确到0.1。表4.5 二进制与十进制的近似对应关系表 小数部分二进制值 0 1 2 3 4 5 6 7 8 9 A B C D E F 十进制值 0 0 1 1 2 3 3 4 5 5 6 6 7 8 8 9 4.2 源程序 4.2.1 DS18B20的各条ROM吩咐 (1)Read ROM33H。这条吩咐允许总线限制器独到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只要在总线上存在单只DS18B20时,才能运用该吩咐。假如总线上有不止一个从机,则当全部从机试图同时传送信号时就会发生数据冲突(漏极开
30、路连在一起形成相“与”的效果)。(2)Match ROM55H.这是一条匹配ROM吩咐,后跟64位ROM序列,让总线限制器在多点总线上定位一只特定的DS18B20.只有与64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作.全部与64位ROM序列不匹配的从机都将等待复位脉冲.这条吩咐在总线上有单个或多个器件时都可以运用. (3)Skip ROM0CCH.这条吩咐允许总线限制器不用供应64位ROM编码就运用存储器操作吩咐,在单点总线状况下,可以节约时间.假如总线上不止一个从机,则在Skip ROM吩咐之后跟着发一条读吩咐.由于多个从机同时传送信号,所以总线上就会发生数据冲突(漏极开路
31、下拉效果相当于相“与”)。(4)Search ROM0F0H。当一个系统初次启动时,总线限制器可能并不知道单线总线上有多少个器件或它们的64位ROM编码。搜寻ROM吩咐允许总线限制器用解除法识别总线上的全部从机的64位编码。(5)Alarm Search0ECH。这条吩咐的流程与Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的状况下,DS18B20才会响应这条吩咐。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将始终保持,直到再一次测得的温度值达不到报警条件。(6)Write Scratchpad4EH。这条吩咐向DS18B20的暂存器TH和TL
32、中写入数据。可以在任何时刻发出复位吩咐来中止写入。(7)Read Scratchapad0BEH。这条吩咐读取暂存器的内容。读取将从第一字节起先,始终进行下去,直到第九字节(CRC)读完。假如不想读完全部字节,则限制器可以在任何时间发出复位吩咐来中止读取。(8)Copy Scratchpad48H。这条吩咐把暂存器的内容拷贝到DS18B20的EPROM存储器里,即把温度报警触发字节存入非易失性存储器里。假如总线限制器在这条吩咐之后跟着发出读时间隙,而DS18B20又忙于把暂存器拷贝到EPROM存储器,则DS18B20就会输出一个0;假如拷贝结束,则DS18B20输出1。假如运用寄生电源,则总线
33、限制器必需在这条吩咐发出后马上启动强上拉,并最少保持10ms。(9)Convert T44H。这条吩咐启动一次温度转换而无需其他数据。温度转换吩咐被执行后DS18B20保持等待状态。假如总线限制器在这条吩咐之后跟着发出读时间隙,而DS18B20又忙于做时间转换,则DS18B20将在总线上输出0;假如温度转换胜利,则输出1。假如运用寄生电源,则总线限制器必需在发出这条吩咐后马上启动强上拉,并保持500ms以上时间。(10)Recall E0B8H。这条吩咐把报警触发器里的值拷贝回暂存器。这种拷贝操作在DS18B20上电时自动执行,这样器件一上电暂存器里立刻就存在有效的数据了。若在这条吩咐发出之后
34、发出读数据隙,器件会输出温度转换忙的标识:0表示忙;1表示完成。(11)Read Power Supply0B4H。若把这条吩咐发给DS18B20后发出读时间隙,器件会返回它的电源模式0:0表示寄生电源;1表示外部电源。 第5章 调试及性能分析 5.1 系统的调试 硬件调试比较简洁,首先检查电路的焊接是否正确,然后可以用万用表测试或通电检测。 软件测试本文利用Proteus与KEIL C51对单片机多点温度测量系统进行了仿真设计从本文结果可以看出,利用Proteus进行单片机系统的仿真设计可以极大地简化单片机程序在目标硬件上的调试工作,大幅度节约制作电路板的时间,对于提高产品的开发效率、降低开
35、发成本等有重要作用 硬件电路的简洁是以软件的困难为代价的,所以在程序编写和调试的过程中稍一马虎就会出现错误,包括时间延时不够,设置参数的类型有误等错误。本课题通过分析对比各种不同的温度传感器,选定DS18B20,这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新奇,特点突出。用其构建的系统有许多优点:硬件连线简洁,省去了运用模拟传感器要进行放大、A/D转换等工作,由于它的级联功能,一条总线可挂接多个传感器测量不同位置的温度,依据DS18B20唯一的序号识别不同传感器在各自位置的温度。须要留意的是, 在系统安装及工作之前应将主机逐个与DS18B20 挂接,以读出其序列号。另外,由于
36、DS18B20 单线通信功能是分时完成的,遵循严格的时隙概念,因此, 系统对DS18B20 和各种操作必需按协议进行,即:初始化DS18B20 (发复位脉冲)发ROM功能吩咐发存储器操作吩咐处理数据。现场温度干脆以“一线总线”的数字方式传输,每一个自带地址,大大削减了系统的电缆数,提高了系统的稳定性和抗干扰性。通过调试成型系统发觉了DS18B20除了上述优点外,还有一些缺点,如:简洁的硬件连接的代价是困难的软件时序,DS18B20在测量温度的时候,灵敏度不够高,温度快速改变时无法快速显示出其改变。通过一系列的试验发觉:由DS18B20构建的测温小系统适用于环境温度监控,对温度小改变较敏感;不适
37、合应用于要求实时性强、温度跨度大的测温方式。 5.2 性能分析 性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。由于DS18B20的精度很高,所以误差指标可以限制在0.1以内。 另外,0100的测量范围使得该温度计完全适合一般的应用场合,其低压供电特性可以做成电池供电的手持电子温度计。 DS18B20温度计还可以在凹凸温报警、远距离多点测温限制等方面进行应用开发,但在实际设计中应留意一下问题: DS18B20工作时电流高达1.5mA,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET供电。 连接DS18B20的总线电缆是有长度限制的
38、,因此在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。 在DS18B20测温程序设计中,向DS18B20发出温度转换吩咐后,程序总要等待DS18B20的返回信号。一旦某个DS18B20接触不好或短线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时要赐予肯定的重视。 结论 该基于DS18B20的多点温度测量系统具有硬件结构简洁、易于制作、价格低廉、测量值精确和易于操作等很多优点,但由于试验室条件所限,短暂只做四点的温度测量。但在实际应用中可依据详细状况进行更多点的扩展和对多点进行限制。随着现代信息技术的
39、飞速发展和传统工业改造的逐步实现,基于DS18B20的多点温度测量系统已经广泛应用于限制、化工等诸多领域。总之,本次毕业设计顺当完成,基本达到了毕业设计的要求。 本文在深化分析多点智能测温系统的工作原理基础上,完成了该系统设计和调试任务,并且系统的性能误差达到了任务书的要求,使之能达到现场运行水平。总结一个学期的论文工作,得到以下结论: 1.针对现有测温系统的特点,提出了一套应用数字式温度传感器DS81B20组建温度测控网络新型方案,该方案的突出特点是系统的数字化、快速化及其经济好用性。 2.以单总线为基本结构,采纳ATMEL公司的 AT89S51单片机为总线吩咐,实现与DSl8B20的总线接
40、口,并供应详细电路设计。 3.软件编程采纳模块化、结构化设计,易于修改和维护。 由于时间和精力的限制,对后续的探讨还应在以下方面逐步完善: 1.应用软件的完善。温度采集方面,一次吩咐全部单总线上的DS18B20进行温度转换,削减系统所需时间。 2.进一步完善系统的牢靠性。由于实际阅历的欠缺,设计上难免有考虑不周之处。当某一个传感器出现故障时,虽然系统能发觉该测温点故障,但是更换传感器时涉及到其序列号的修改和应用程序的修改,这些还须要在今后应用时加以完善。 3.可以增加限制部分,以后在该部分进行PID算法限制,以提高限制精度。 总之 ,本论文在新型数字温度测控系统方面做了肯定的探讨工作。该系统初
41、步完成了温度测控方案的预定目标,为今后实现数字化与网络化的温度测控系统工程供应了一种参考。社会经济效益分析 本温度测控系统可以产生的社会经济效益是自不待言的。在工农业很多场合,温度测量和限制对生产起着特别重要的作用,通过温度测控,可以更好的提高工农业生产的产量和效率。本设计利用数字化的温度传感器作为载体,以AT89S51单片机为限制核心,通过对所测量的温度值进行限制和数据上传,将数字信息上传给上位机进行进一步的处理,从而可以实现这套系统的商品化和技术服务的稳定性。本设计所用的DS18B20温度传感器价格在每个二十元左右,AT89S51单片机的价格也不过十元,再加上其它的元器件和外围的芯片及端口
42、,总成本完全可以限制在一百元人民币以内。这套系统可以产生的功能强大,扩展温度传感器端口后,可以同时对多个传感器进行测量和限制,并且只需添加DS18B20的初始化程序和与本设计两点测控类似的程序即可以实现,所以程序修改上也比较便利。本系统可以实现产品的专业化和工厂化大生产,应用领域广泛,例如,可以对小区内的供暖系统进行多点温度监控,实时处理DS18B20温度传感器上传的数据;可以在对温度要求比较严格的车间内进行多点温度测控,以保持室内的精准温度;可以在化学反应炉内安装本系统,使化学反应可以在精确的温度条件下进行等等。 参考文献 1 沙占友. 集成温度传感器原理与应用. 北京:机械工业出版社,20
43、02, 8495. 2 刘君华. 智能传感器系统. 西安:西安电子科技高校出版社,1999,83105. 3 沙占友. 智能化传感器原理与应用. 北京:电子工业出版社,2004,99108. 4 赵负图. 传感器集成电路手册. 北京:化学工业出版社,2002,692703. 5 张毅刚. MCS-51单片机原理及应用. 哈尔滨:哈尔滨工业高校出版社,2004,8194 6 李玉峰,倪虹霞 MCS-51系列单片机原理与接口技术. 北京:人民邮电出版社,2004,187216. 7胡汉才.单片机原理及其接口技术(第2版)M.北京:清华高校出版社,2004:49-75. 8楼然苗,胡佳文,李光飞,刘
44、玉良,俞红杰,李良儿.单片机试验与课程设计M.杭州:浙江高校出版社,2010:127-148 9刘雨刚,洪炳林,郝文慧.基于DS18B20的高精度矿用温度计传感器设计J.国外电子元器件,2006(12):35-37. 10黄亚,张益维.温度传感器DS75LX与单片机的接口技术J.国外电子元器件,2007(10):47-49. 11胡雪海.单片机原理及应用系统设计M.北京:电子工业出版社,2004:59-75. 12谈根林,李慧文,汪庆宝,李礼贤.微型计算机及其在测量中的应用M.北京:计量出版社,1983:89-105. 13 楼然苗,李光飞 14胡翔骏.电路分.单片机课程设计指导M.北京:北京
45、航空航天高校出版社,2007:46-55.析(第2版)M.北京:高等教化出版社,2007:68-80. 15 MAXIM NEW Releases Data Book. volum 1998 16 omas C.Bartee.Computer Architecture and Logic DesignJ.McGraw-Hill Inc. 1991.9 17 G Jiang M Zhang, X Xie, S Li.Application on temperature control of DS18B2J.Control Engineering of China, 2003 附录1电路原理图 数
46、字温度计原理图 测附录2 温度计实物图 附录3测量序列号实物图 附录4温度计程序 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit DQ=P10; /数据传输线接单片机的相应的引脚 sbit smg1=P23;/第一位数码管 sbit smg2=P22;/其次位数码管 sbit smg3=P21;/第三位数码管 sbit smg4=P20; /符号位第四位数码管,当为负温时候显示负号。 unsigned char tempL=0; /临时变量低位(无符号字符变量) unsigned char tempH=0; /临时变量高位 unsigned int tempa; /温度值(整型变量) uchar TH=60; /设置初始高温度 uchar TL=8; /设置初始低温度 uchar num; uchar flag=0;/符号位标记,0为正温度,1为负温度 uchar xianshi=0; unsigned int temp,temp1; unsigned char code smg_du=0x3f,0x24,