1课程设计(论文)任务书题目:温度传感器课程设计系部:信息工程系专业:应用电子技术姓名:朱桂红、桑晴李贵亮张强、赵楠学号:指导教师:李棚2011年5月16日2一、设计任务及要求:设计任务:完成一个简单数字温度计的硬件电路部分和软件部分的设计要求:1.利用单片机对数字温度计的各种功能进行控制。2.数字温度计能够显示当前的温度。3.数字温度计能够自动检测外界温度变化,能直观的显示出来。4.数字温度计具有具有控制功能。5.数字温度计能够在,温度达到设置界限时会发出报警,做出一系列响应。6.数字温度计的精度能达到0.1摄氏度。指导教师签名:李棚2011年3月20日二、指导教师评语:该组同学的设计符合设计要求,能够在教师指导下完成实物的制作,在课程设计中体现了小组协作,达到预期目的。指导教师签名:李棚2011年5月20日三、成绩2011年6月10日3目录1、引言....................................................................................32、实现方法……………………………………................................33、硬件设计…………………………………………........................43.1单片机最小系统设计………………………………………………43.1.1电源电路...............................................43.1.2振荡电路与复位电路.....................................43.2DS18B20与单片机的接口电路................................43.3PROTEUS仿真电路图.........................................54、软件设计...........................................................................................54.1程序流程.....................................................54.1.1主程序流程图.............................................54.1.2各子程序流程图...........................................61、初始化程序……………………………………………………………………62、读取温度子程序………………………………………………………………63、写流程图…………………………………………………………………………………74、读流程图………………………………………………………………………85、DS18B20简单介绍…………………………………………………..95.1DS18B20的性能特点………………………………………………………96、总结与体会……………………………………………………………107、参考文献……………………………………………………………………………………1041、引言随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。本设计选用AT89S52型单片机作为主控制器件,DS18B20作为测温传感器,通过数码管实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。2、实现方法采用数字温度芯片DS18B20测量温度,输出信号全数字化。采用了单总线的数据传输,由数字温度计DS18B20和AT89S52单片机构成的温度测量装置,它直接输出温度的数字信号,也可直接与计算机连接。采用AT89S52单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。该系统利用AT89S52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限温度。该系统扩展性非常强。该测温系统电路简单、精确度较高、实现方便、软件设计也比较简单。系统框图如图1所示。图1DS18B20温度测温系统框图3、硬件设计3.1单片机最小系统设计3.1.1电源电路时钟振荡电路AT89S52复位电路电源电路LED显示DS18B20温度传感器5Vin1GND2+5V3LM7805C20.1uF+C1470uF+C3470uFR1KLEDVCCGNDVCCC20.1uF+12V+5V图2电源电路3.1.2振荡电路与复位电路C122uFR21KR1200VCCRESETVccRSTVssAT89C51图3振荡电路图4复位电路3.2DS18B20与单片机的接口电路123DS18B20R14.7KVCCP3.4AT89C51图5DS18B20与单片机的接口电路3.3PROTEUS仿真电路图晶振12MHzC130pFC230pFAT89C51XTAL1XTAL2P3.76图6PROTEUS仿真电路图4、软件设计系统程序主要包括主程序、读取温度子程序、数据转换子程序、显示数据子程序等。4.1程序流程4.1.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图7所示。主程序读温度程序数据处理程序图7主程序流程图4.1.2各子程序流程图1、初始化程序所有操作都必须由初始化脉冲开始,波形如图,单片机先输出一个480~960us低电平到DQ引脚,再将DQ引脚置高电平,过15~60us后检测DQ引脚状态,若为低电平则DS18B20工作正常,否则初始化失败,不能正常测量温度。初始化DQ=0延时480~960uSDQ=1DQ=0?返回FLAG=0延时240uSFLAG=1NY延时2uSDQ=1DQ=1FLAG=1YN72、读取温度子程序读取温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。主要包括以下三个命令:(1)写暂存器命令【4EH】这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节。所有数据必须在复位脉冲前写完。即如果只想写一个字节的数据到地址2,可按如下流程:1、初始化;2、写0CCH,跳过ROM检测;3、写4EH;4、写1字节数据;5、复位,即向DQ输出480~960us低电平(2)读暂存命令【BEH】这个命令由字节0读取9个暂存器内容,如果不需要读取所有暂存内容,可随时输出复位脉冲终止读取过程(3)转换温度命令【44H】这个命令启动温度转换过程。转换温度时DS18B20保持空闲状态,此时如果单片机发出读命令,DS18B20将输出0直到转换完成,转换完成后将输出1。初始化读取温度数据写0CCH,跳过ROM检测写0BEH,度暂存读操作返回初始化写0CCH,跳过ROM检测写44H,转换命令显示图8读取温度子程序3、写流程图写时隙:写时隙由DQ引脚的下降沿引起。18B20有写1和写0两种写时隙。所有写时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。DS18B20在DQ下降沿后15μs~60μs间采样DQ引脚,若此时DQ为高电平,则写入一位1,若此时DQ为低电平,8则写入一位0,如图9所示。所以,若想写入1,则单片机应先将DQ置低电平,15us后再将DQ置高电平,持续45μs;若要写入0,则将DQ置低电平,持续60μs。开始DQ=1DQ=0延时15uSA带C右移一位DQ=C延时60uS返回循环8次?NY图9写流程图4、读流程图读时隙:读时隙由DQ下降沿引起,持续至少1μs的低电平后释放总线(DQ置1)DS18B20的输出数据将在下降沿15μs后输出,此时单片机可读取1位数据。读时隙结束时要将DQ置1。所有读时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。开始DQ=1,A清零DQ=0,延时2uSDQ=1,延时4uSA带C右移一位延时60uS返回循环8次?NYC=DQDQ=15、DS18B20简单介绍DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS半导体公司的数字化温度传感器9DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。5.1DS18B20的性能特点如下:●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯●DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃●零待机功耗●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快●用户可定义报警设置●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件●测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作以上特点使DS18B20非常适用与多点、远距离温度检测系统。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图12所示,DQ为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。10图12外部封装形式6、总结与体会在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次