毕业设计(论文)-基于单片机控制的数字式温度计.doc_第1页
毕业设计(论文)-基于单片机控制的数字式温度计.doc_第2页
毕业设计(论文)-基于单片机控制的数字式温度计.doc_第3页
毕业设计(论文)-基于单片机控制的数字式温度计.doc_第4页
毕业设计(论文)-基于单片机控制的数字式温度计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电气及自动化系毕业设计(论文)题 目:基于单片机控制的数字式温度计学生姓名学 号专业班级指导教师日期: 2010 年 月 日原 创 性 声 明本人郑重声明:所呈交的毕业设计论文,是本人在指导教师的指导下,独立对设备(系统)进行设计安装、调试维修、运行维护、升级改造过程中所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律责任由本人承担。 论文作者 签字日期: 年 月日 论 文 版 权 使 用 授 权 书本人完全了解山东劳动职业技术学院电气及自动化系有关保留、使用毕业设计论文的规定,即:电气及自动化系有权保留并向上级部门送交毕业设计论文的复印件和电子文档,允许毕业设计论文被查阅和借阅。本人授权电气及自动化系可以将技师论文的全部或部分内容编入有关数据库进行检索使用,可以采用影印、缩印或扫描等复制手段保存、汇编毕业设计论文。 论文作者签名 签字日期 年 月 日摘要 此电路是用at89c51为核心器件,并利用ds18b20温度传感器和四位共阳极led数码管动态扫描来完成温度显示。电路特点有体积小、灵敏度和精度高,很适应很多对精度要求较高的场合,完成对设备及场地的温度控制,能有效的提高工作对环境的变化的反应速度。 随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术本设计采用at89c51作为处理的核心部分;用ds18b20作为温度传感器,把采集到的温度经放大后送到at89c51,经过at89c51处理后送到显示器,显示器将显示采集的温度,这样就能够达到题目的要求,而且其准确性也较高,而且也可用键盘进行设置报警温度,当超过设置温度时就会报警。它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。关键词:at89c51、ds18b20、led目录第一章 绪 论1.1 概述 1.2 设计目的1.3 设计任务和要求1.4 设计内容第二章 总体设计及核心器件简介 2.1主控制器(at89c51) 2.2 温度传感器(ds18b20)2.3 复位电路2.4 数码显示电路第3章 电路模块设计 3.1系统硬件电路的设计 3.2温度主程序 3.3读出温度子程序 3.4温度转换命令子程序 3.5显示数据刷新子程序 3.6温度数据的计算处理方法3.7调试及性能分析3.8 系统板上硬件接线第4章 所需器件及软件编程第5章 结论结论 附录参考文献致谢第一章 绪 论1.1 概述近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。数字温度计给人们的生活带来了更多的方便与快捷。1.2 设计目的(1)加强对单片机和c51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。(2)用单片机模拟实现具体应用,使个人设计能够真正使用。(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。(4)提高利用已学知识分析和解决问题的能力。(5)提高实践动手能力。1.3 设计任务和要求1.3.1设计任务结合教材及在网上搜索的参考资料,用at89c51的控制ds18b20温度传感器和4位共阳极l数码管动态扫描来完成温度显示。1.3.2 设计要求1、基本要求(1)用4位共阳led数码管以动态扫描方法实现温度显示。(2)控制器使用单片机at89c51,温度传感器使用ds18b20,用led现实温度。2、基本步骤(1)画出电路原理图;(2)确定元器件及元件的参数;(3)给出全部源程序;(4)进行模拟仿真。 1.4设计内容(1)写设计任务书。(2)进行总体设计,画出原理图。(3)用protel软件画出pcb板并制板。(4)焊接器件和芯片。(5)编写并调试程序。第二章 总体设计及核心器件简介方框图所示为数字温度控制器的单体设计方框图。其工作原理为:当该电路上电工作以后,首先刷新显示(led),然后,温度传感器采集温度送单片机检查温度的高低,由单片机送出信号经过驱动电路送往显示电路。图 2.12.1 主控制器(at89c51单片机) at89c51是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1. 主要特性:2. 与mcs-51 兼容 3. 4k字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年全静态工作:0hz-24hz三级程序存储器锁定128*8位内部ram32可编程i/o线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2. 引脚说明at89s51 单片机为40 引脚双列直插式封装。 其引脚排列和逻辑符号如图2.2 所示为单片机最小系统。各引脚功能简单介绍如下: p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的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”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下表所示:口管脚 备选功能p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。/ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。3振荡器特性: xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除:整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 这里,初学者要澄清单片机实际使用方面的一个产品概念,mcs-51单片机是美国inte公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用hmos,功耗是630mw,是89c51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, mcs-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89s51、已经停产的89c51等),各高校及专业学校的培训教材仍与mcs-51单片机作为代表进行理论基础学习。 有些文献甚至也将8051泛指mcs-51系列单片机,8051是早期的最典型的代表作,由于mcs-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说mcs-51内核实际上已经成为一个8位单片机的标准。 其他的公司的51单片机产品都是和mcs-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如atmel的89c51(已经停产)、89s51, philips(菲利浦),和winbond(华邦)等,我们常说的已经停产的89c51指的是atmel公司的 at89c51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的rom(一次性写入),at89c51的性能相对于8051已经算是非常优越的了。at89c51与mcs-51的主要区别:与mcs-51兼容,采用cmos制造工艺,功耗低,成本低廉。2. 2 温度传感器(ds18b20)温度传感器的种类众多,在应用与高精度、高可靠性的场合时 dallas(达拉斯)公司生产的 ds18b20 温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得 ds18b20 更受欢迎。对于我们普通的电子爱好者来说,ds18b20 的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。了解其工作原理和应用可以拓宽您对单片机开发的思路。1、ds18b20 的主要特征: (1)全数字温度转换及输出。 (2)先进的单总线数据通信。 (3)最高 12 位分辨率,精度可达土 0.5摄氏度。 (4) 12 位分辨率时的最大工作周期为 750 毫秒。 (5) 可选择寄生工作方式。 (6) 检测温度范围为55c +125c (67f +257f) (7) 内置 eeprom,限温报警功能。 (8) 64 位光刻 rom,内置产品序列号,方便多机挂接。 (9) 多样封装形式,适应不同硬件系统。ds18b20 引脚功能: gnd 电压地 dq 单数据线 vdd 电源电压 nc 空引脚2、ds18b20 使用中的注意事项ds18b20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:(1)ds18b20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。(2)在实际使用中发现,应使电源电压保持在5v 左右,若电源电压过低,会使所测得的温度精度降低。(3)较小的硬件开销需要相对复杂的软件进行补偿,由于ds1820与微处理器间采用串行数据传送,因此,在对ds1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时,对ds1820操作部分最好采用汇编语言实现。(4)在ds18b20的有关资料中均未提及单总线上所挂ds18b20 数量问题,容易使人误认为可以挂任意多个ds18b20,在实际应用中并非如此,当单总线上所挂ds18b20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(5)在ds18b20测温程序设计中,向ds18b20 发出温度转换命令后,程序总要等待ds18b20的返回信号,一旦某个ds18b20 接触不好或断线,当程序读该ds18b20 时,将没有返回信号,程序进入死循环,这一点在进行ds18b20硬件连接和软件设计时也要给予一定的重视。3、ds18b20 内部结构图为ds1820的内部框图,它主要包括寄生电源、温度传感器、64位激光rom单线接口、存放中间数据的高速暂存器(内含便笺式ram),用于存储用户设定的温度上下限值的th和tl触发器存储与控制逻辑、8位循环冗余校验码(crc)发生器等七部分。ds18b20采用脚pr35 封装soic封装,其内部结构框图如图 4.4所示图 2.3 ds18b20内部结构框图 64位rom的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的crc检验码,这也是多个ds18b20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。ds18b20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的eeram。高速暂存ram的结构为字节的存储器,结构如图3所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置ds18b20在工作模式还是在测试模式,ds18b20出厂时该位被设置为,用户要去改动,r1和0决定温 度转换的精度位数,来设置分辨率。由表1可见,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所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。斜率累加器减到0温度寄存器预置计数比较器预置减法计数器1低温度系数振荡器器减到0高温度系数振荡器减法计数器2图():测温原理图另外,由于ds18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。操作协议为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。34 ds18b20与单片机的接口电路ds18b20可以采用两种方式供电,一种是采用电源供电方式,此时ds18b20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图()所示。单片机端口接单线总线,为保证在有效的ds18b20时钟周期内提供足够的电流,可用一个mosfet管来完成对总线的上拉。图2.4:寄生电源供电方式当ds18b20处于写存储器操作和温度a/d转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时vdd和bnd端均接地。由于单线制只有一根线,因此发送接口必须是三态的。4ds18b20的使用方法由于ds18b20采用的是1wire总线协议方式,即在一根数据线实现数据的双向传输,而对at89s51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对ds18b20芯片的访问。由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。ds18b20的复位时序ds18b20的读时序对于ds18b20的读时序分为读0时序和读1时序两个过程。对于ds18b20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让ds18b20把数据传输到单总线上。ds18b20在完成一个读时序过程,至少需要60us才能完成。ds18b20的写时序对于ds18b20的写时序仍然分为写0时序和写1时序两个过程。对于ds18b20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证ds18b20能够在15us到45us之间能够正确地采样io总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。2.3 复位电路单片机复位是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后pc0000h,使单片机从第个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚mcs-51型单片机复位的条件、复位电路和复位后状态。单片机复位的条件是:必须使rst/vpd或rst引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12mhz,每机器周期为1us,则只需2us以上时间的高电平,在rst引脚出现高电平后的第二个机器周期执行复位。复位电路分为上电自动复位电路和按键复位电路。本次设计采用的是上电自动复位电路,它是利用电容充电来实现的。在接电瞬间,reset端的电位与vcc相同,随着充电电流的减少,reset的电位逐渐下降。只要保证reset为高电平的时间大于两个机器周期,便能正常复位。单片机复位期间不产生ale信号,即ale1,表明单片机复位期间不会有任何取指操作6。数字温度计复位电路如图3-20所示。图3-20 复位电路.2.4 数码管显示电路数码管的分类及区别按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管。共阳数码管在应用时应将公共极com接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管。共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 共阴极接法 码接低电平 )驱动用9012三极管,它是一种低频小功率的普通pnp型硅管,to-92标准封装,这个管子常在收音机以及各种放大电路中看到。如图3-14所示。图3-14 9012三极管图形9012参数: 集电极电流ic:max-500ma工作温度:-55到+150集电极-基极电压:-40v第三章 电路模块设计3.1系统硬件电路的设计 此电路是用at89c51心器件,并利用ds18b20温度传感器和4位共阳极l数码管动态扫描来完成温度显示。如下图所示: 图3-0程序主要包括主程序,读出系统温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。3.2 温度主程序主程序的主要功能是负责温度的实时显示、读出并处理ds18b20的测量温度值,温度测量每1s进行一次。其程序读出温度流程图:ds18b20() typedef unsigned char byte;byte tph; /存放温度值的高字节byte tpl; /存放温度值的低字节unsigned int wendu0,wendu1,wendu2,wendu3; ds18b20_reset(); /设备复位 ds18b20_writebyte(0xcc); /跳过rom命令 ds18b20_writebyte(0x44); /开始转换命令 while (!dq); /等待转换完成 delayxus(200); /延时至少480us ds18b20_reset(); /设备复位 ds18b20_writebyte(0xcc); /跳过rom命令 ds18b20_writebyte(0xbe); /读暂存存储器命令 tpl = ds18b20_readbyte(); /读温度低字节 tph = ds18b20_readbyte(); /读温度高字节 3.3读出温度子程序计算温度子程序将ram中读取值进行bcd码的转换运算,并进行温度值正负的判定。计算温度子程序流程图如下: 图3-3/*从ds18b20读1字节数据*/uchar ds18b20_readbyte() uchar i; uchar dat = 0; dq=1; for (i=0; i= 1; dq = 0; /开始时间片 _nop_();_nop_();_nop_();_nop_(); dq = 1; /准备接收_nop_();_nop_();_nop_(); if (dq) dat |= 0x80; /读取数据 delayxus(3); /等待50us时间片结束 dq=1;_nop_();_nop_(); _nop_();if(tph & 0xf8 != 0xf8) /若温度为负值wendu0=0;if(tph & 0xf8 = 0xf8) wendu1=tph*16;wendu2=(tpl&0xf0)/16;wendu3=(tpl&0x0f)*10)/16;wendu0=(wendu1+wendu2)*10+wendu3;return wendu0; 3.4 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令。当采用12位分辨率时,转换时间约为750ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。 温度转换命令子程序流程图如下: 图3-4/*复位ds18b20,并发送数据检测设备是否存在*/void ds18b20_reset() cy = 1; while (cy) dq = 0; /送出低电平复位信号 delayxus(120); /延时至少480us dq = 1; /释放数据线 delayxus(10); /等待60us cy = dq; /检测存在脉冲 delayxus(60); /等待设备释放数据线 delayxus(60); 3.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,降幅好显示移入下一位。显示数据刷新子程序流程图: /* 数码管显示温度值*/void xianshi(uchar shi,uchar ge,uchar dian,uchar mode) xsshi=1;xs=tableshi;delay(5);xsshi=0;xs=0xff;xsge=1;xs=tablege&0xfb;delay(5);xsge=0;xs=0xff;xsd=1;xs=tabledian;delay(5);xsd=0;xs=0xff;xsm=1;xs=mode;delay(5);xsm=0;xs=0xff; 3.6 调试及性能分析系统的调试以程序为主。硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度子程序、显示数据刷新等子程序的编程及调试,由于ds18b20与单片机采用串行数据传送,因此,对ds18b20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。本程序采用单片机汇编编写,用wave3.2编译器编程调试。软件调试到能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能改变就基本完成。性能测试可用制作的温度计和已有的成品温度计来同时测量比较,由于ds18b20的精度很高,所以误差指标可以限制在0.1以内,另外-55+125的测温范围使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持电子温度计。ds18b20温度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发,但在实际设计中应注意以下问题:(1)ds18b20工作时电流高达1.5ma,总线上挂接点数较多且同时进行转换时,要考虑增加总线驱动,可用单片机端口在温度转换时导通一个mosfet供电。(2)连接ds18b20的总线电缆是有长度限制的,因此在用ds18b20进行长距离测温系统设计时,要充分考虑总线分布电容和阻抗匹配等问题。(3)在ds18b20测温程序设计中,向ds18b20发出温度转换命令后,程序总要等待ds18b20的返回信号,一旦某个ds18b20接触

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论