数字温度计设计开发.doc_第1页
数字温度计设计开发.doc_第2页
数字温度计设计开发.doc_第3页
数字温度计设计开发.doc_第4页
数字温度计设计开发.doc_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

编 号: 审定成绩: 重庆邮电大学毕业设计(论文)设计(论文)题目:数字温度计设计开发学 院 名 称 :学 生 姓 名 :专 业 :班 级 :学 号 :指 导 教 师 :答辩组 负责人 :填表时间: 2010年 6月重庆邮电大学教务处制重庆邮电大学本科毕业设计(论文)摘 要随着数字温度计的广泛使用,人们对于数字温度计的要求越来越高。传统的温度计已经远远不能够满足要求。数字温度计具有测温反应速度快、精确度高、体积小、成本低等优势,可用于日常生活和工农业生产的温度测量。同时DS18B20具有独特的单总线接口方式,可以实现多点温度的测量,组建传感器网络。本文主要阐述数字温度计硬件设计和软件设计以及整个系统的实现,最后对系统的改进进行了说明。本文设计的数字温度计以数字温度传感器DS18B20作为测温芯片,以SPCE061A单片机作为主控芯片,测温精度精确到小数点后一位。该数字温度计采用3位7段数码管实时显示温度,并充分利用凌阳单片机SPCE061A的语音处理优势,实现温度的语音播报。软件系统设计主要包括温度检测部分和语音播报部分,保证温度检测的准确性和实时性,以及清晰的温度语音播报。文中最后对该温度计进行了实测,分析误差,并提出了改进方法。【关键词】数字温度计 DS18B20 SPCE061AABSTRACTWith the widespread use of digital thermometer, the high quality digital thermometer is demanded by people.The traditional thermometer is far from meeting the needs of our people.The digital thermometer has many advantages,such as fast response, high accuracy, small size, low cost.The digital thermometer can be used in fields of daily life, industrial and agricultural production for temperature measurement.Anything else ,the single bus structure with a unique way that allows a signal line to link dozens or even hundreds of digital sensors.It can also be used for multi-point temperature measurement, and for formation of sensor networks.This paper discusses the hardware and software design of the digital thermometer, the realization of the whole system, and the improvement of the system.This digital thermometer system use digital temperature sensor chips DS18B20 for temperature measuring and SPCE061A MCU as the master chip.The temperature measurement accuracy can be one figure after the decimal point .The worth of temperature display on the digital tubes from time to time.Voice System is full use of the advantages of speech processing microcontroller SPCE061A.The software part of this system include temperature measurement part and voice broadcast part,which guarantee accuracy of temperature measurement and voice broadcast.After the system complished, there are some experiments have been done.The temperature will be measured and compared with the actual temperature,and the error will be analysed from all of the reasons.【Key words】digital thermometer DS18B20 SPCE061A目 录前 言1第一章 绪论2第一节 数字温度计发展状况及趋势2第二节 课题研究的目的及意义2第三节 课题研究的主要内容3第四节 本章小结3第二章 数字温度计总体概述4第一节 系统的总体概述4一、数字温度计功能简述4二、系统工作原理概述4第二节 系统主要硬件选择5一、硬件设计原则5二、主要硬件简介6第三节 系统软件概述11第四节 本章小结11第三章 数字温度计系统的具体实现12第一节 系统的硬件设计12一、电源电路的设计12二、SPCE061A最小系统的设计13三、温度检测模块的设计14四、语音模块的设计16五、键盘模块的设计17六、温度显示模块的设计18第二节 系统的软件设计19一、系统软件总体设计19二、温度检测程序设计21三、按键扫描程序设计26四、数码管显示程序设计27五、语音播报程序设计28第三节 本章小结32第四章 系统的开发调试与测试结果33第一节 SPCE061A单片机开发工具介绍33第二节 语音压缩工具的使用34第三节 测试结果及误差分析与改进35一、测试结果35二、误差分析36三、系统改进37第四节 本章小结37第五章 总结与展望38第一节 总结38第二节 展望38致 谢40参考文献41附 录42一、英文原文42二、英文翻译46三、系统电路49四、源程序50 - 75 -前 言温度是一种重要的模拟量,对于科学研究和日常生活都具有相当重要的意义。数字温度计相对于传统的温度计具有直观、安全、准确以及携带方便等特点。目前温度计技术的发展很快,从原始的玻璃管温度计发展到了现在的热电偶温度计、数字温度计、电子温度计等等。由于我国在数字温度计这块起步较晚,国外数字温度计核心芯片比较成熟,我国从国外进口的数字温度计芯片精度较高。目前我国数字温度计芯片方面也取得了很大的成就。在数字温度计的设计方面,市场上有各种各样的种类。有用于日常生活的小巧便携的数字温度计,也有用于工农业生产控制的数字温度计。数字温度计的优势也远远超过传统温度计。对于传统的热电偶、热电阻测出电压在转换成对应温度,由于一些非线性因素的影响使得测量精度不高,而且在硬件设计方面要有复杂的硬件转换电路的支持,软件编程也复杂,因此成本很高。而数字温度计则克服了这些困难,取得了非常好的效果。温度测量在工业、民用、军事等领域占有重要的地位,不同的温度传感器测量的精度以及功能强弱各不相同。由DALLAS半导体公司生产的DS18B20单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,它具有体积小,接口方便,传输距离远等特点,最高测量精度可达到0.0625。采用数码管实时显示温度值。本文介绍的高精度温度测量显示系统,采用了凌阳的16位单片机SPCE061A作为主控芯片,利用了其语音API函数,实现了温度的语音播报。第一章 绪论第一节 数字温度计发展状况及趋势感器的发展经历了三个发展阶段:传统的分立式温度传感;模拟集成温度传感器;智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。随着科学技术的进步,单片机及相关电子技术飞速发展,应用领域不断拓展。利用单片机和传感器实现对温度的精确测量,提高了生产的自动化程度,成本低廉,应用十分广泛,因此研究温度的测量方法和装置具有重要的意义。在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元件有热电耦和热电阻,而热电耦和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能。随着数字温度计这些优点,其应用将会越来越广泛。将来的数字温度计将会朝着精确化、适应环境的恶劣、测温范围广以及网络化的方向发展。第二节 课题研究的目的及意义为了更好的了解数字温度计的构成与设计,增加对电子产品设计的能力。通过对基于DS18B20数字温度芯片的数字温度计的设计,能够增强对电子产品的元器件基本知识的认识并学会使用常用电子元器件。通过对该课题的设计开发,总结所学的课程知识并应用到实践。特别是对于单片机以及C语言编程设计的应用,增强实践动手能力。了解电子产品设计、制作、调试、维护过程及相关知识。本课题的设计涉及到电路板的制作,软件编程调试等软硬件的知识以及电路板的焊接。培养细致、科学、严谨的工作作风和一定的动手能力及解决实际问题的能力,为以后从事相关相关电子技术工作奠定良好的基础。不仅如此,在准备数字温度计设计过程中能够了解数字温度计的发展动态以及对相关电子产品的了解。第三节 课题研究的主要内容本课题主要采用凌阳16位单片机与数字温度测温芯片DS18B20设计出数字温度计,并增添人机交互接口实现温度的显示和语音播报,并要求测温精度。其中主要包括前期资料的收集和整理以及所需基本知识的补充和准备。然后是设计部分,首先是硬件设计。包括单片机选型和最小系统的设计;测温模块的设计;人机交互接口的设计。硬件设计与实现与之相关的原理图的绘制与仿真和电路板的制作。最重要的部分为软件编程。数字测温芯片所测信号的处理;人机交互部分的控制信号的处理以及温度的数字显示和语音播报的程序实现。软件实现与之相关的常用电子测试仪器的使用,程序的调试。本设计中主要解决的问题是数字测温芯片DS18B20与单片机的通信。由于DS18B20为单线接口仅需一个端口引脚进行通讯,而温度以9位数字量读出。因此在单片机获取数字信号时需要有严格的软件时序与访问协议才能够正确读取。除此之外,软件对温度数字信息的处理,并在LED上显示要求显示出小数点后一位。因此对数据的处理很关键也是主要问题所在。对人机交互接口的控制信号的处理的及时性,以保证温度显示的速度,来确保整个系统的灵敏性和可靠性。最后系统的稳定性是非常重要的部分,为了保证系统的稳定性必须正确处理系统电源问题以及芯片和I/O端口的驱动以保证信号的正确传送。软件的稳定性需要经过严格的调试来达到软件的稳定和可靠性。 第四节 本章小结本章首先介绍了数字温度计的发展现状以及发展趋势,然后阐述了研究该课题的目的和意义,点明了研究该课题的作用。最后通过第三节总体介绍了该课题的研究内容,还包括课题研究中会遇到的问题以及解决问题的方案。第二章 数字温度计总体概述第一节 系统的总体概述一、数字温度计功能简述该数字温度计主要是通过数字温度传感器(该设计采用美国DALLAS公司生产的数字温度传感器DS18B20)对外部环境温度的采集通过总线将温度数据传送给单片机(该设计采用SPCE061A单片机),通过单片机对数据的处理得到温度值。然后通过人际交互接口数码管向外部显示温度值,通过语音播报电路向外部播报温度值。实现了温度的实时显示和播报的功能。二、系统工作原理概述数字温度计系统主要包括六个功能模块单元,如图2.1所示。1、 系统原理框图图2.1 系统模块框图2、 基本工作原理系统模块框图如图2.1所示,包括电源模块、SPCE061A单片机最小系统模块、温度检测模块、键盘模块、语音和显示六个模块。其中电源模块为SPCE061A单片机最小系统提供+5V和+3.3V的两种工作电源。SPCE061A单片机最小系统模块是整个系统的核心工作模块,包括对输入输出数据的处理,是所有模块有序的工作,保证整个系统的正常工作。温度检测模块是数字温度计中最重要的模块,该系统采用数字温度传感器DS18B20,通过单总线与单片机进行数据通信。DS18B20内部通过单片机写入指令读取温度值并通过其内部AD转换成数字信号存入寄存器待单片机读取。键盘模块主要作用是控制系统温度的语音播报,若有按键按下则进行语音播报。显示模块主要是3位7段数码管显示温度值,温度值精确到小数点后一位。数码管的显示有静态和动态两种工作方式,为了节省资源该设计采用了动态扫描显示的方式。整个系统通过C语言编程实现。3、 系统功能特点系统可实现以下功能:由于采用的3位数码管进行温度显示,所以可测量温度范围099.9,对于正常环境温度的测量已近足够。测量精度可以达到小数点后一位,并且能够实时显示变化的温度,温度显示变化灵敏。键盘输入可以对当前温度值的语音播报,同时可以对高温和低温进行自动语音报警。除此之外由于DS18B20单总线结构以及其特点,系统的可扩展性强,系统冗余度高。模块之间的独立性也有利于系统的调试和扩展。由于SPCE061A单片机存储容量较大且集成功能模块多,使得功能扩展变得很容易。第二节 系统主要硬件选择一、硬件设计原则在设计硬件电路时应有的原则:尽可能选择典型电路,并符合单片机的常规用法,为硬件的标准化与模块化打下良好的基础;系统的扩展与外围设备配置的水平应充分满足应用系统的功能要求,并要有适当冗余度,以便进行二次开发;由于硬件结构与软件方案会产生相互影响,在硬件设计中也综合了软件方案一并考虑,软件能实现的功能尽可能由软件来实现,以便简化硬件结构;单片机外接电路较多时,应考虑驱动能力;在保证可靠性的条件下,尽量选用质优价廉的元器件,以降低成本。 单片机的选型要求:数字温度计的设计包含语音播报功能,因此CPU应具备较大的存储空间FLASH,以便存储语音资源。考虑硬件电路的简洁以及稳定性,单片机应集成语音处理功能和函数。 数字温度传感器的选型要求:由于数字温度计要求精确稳定,且要符合降低成本的要求,因此数字温度传感器应具备高集成、体积小、低成本、温度转换快且直接输出数字量。 温度显示器的选型要求:具备显示3位数字量且带小数点的数码管且要选择适当的驱动芯片,选择数码管符合简洁和经济的原则。 语音输出模块的选型要求:该模块应具备播报普通语言的功能,且具有语音放大功能。二、主要硬件简介根据硬件的选型要求,数字温度计系统硬件选择了以下硬件型号。 SPCE061A: SPCE061A 是继nSP系列产品SPCE500A等之后凌阳科技推出的又一个16位结构的微控制器。SPCE061A里内嵌32K字的闪存FLASH ROM。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。2K字SRAM,双通道10位DAC方式的音频输出功能10。SPCE061A单片机引脚图如图2.2所示。图2.2 SPCE061A单片机引脚图SPCE061A单片机的结构图如图2.3所示。图2.3 SPCE061A单片机结构图 DS18B20: 该温度传感器DS1820通过一个单线接口发送或接收信息 并且该传感器以9位数字量的形式反映器件的温度值。无需外部器件,与CPU连接简单,只需一个总线即可与CPU进行数据通信15。引脚图如图2.4所示。图2.4 DS1820引脚图DS18B20的测温原理:如图2.5所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值15。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。图2.5 DS18B20测温原理图 SR420361K: 该数码管为4位7段共阴极数码管。为了使数码管的亮度足够,数码管的段选端可加三极管驱动。 ULN2003AN: 该芯片为数码管驱动芯片,同时该芯片避免了数码管输出灌电流直接灌入CPU的IO口,保护了单片机。ULN2003AN的工作原理:ULN2003AN也是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003AN输出端为高电平,继电器得电吸合,管脚图如图2.6所示。图2.6 ULN2003AN管脚图ULN2003AN具有以下性能特点:高电压输出50V; 输出钳位二极管;输入兼容各种类型的逻辑电路;应用继电器驱动器。 SPY0030A: 该芯片为语音集成放大器。它可以工作在2.46.0V范围内,最大输出功率可达700mW(LM386 必须工作在4V 以上,而且功率只有100mW)。SPY0030A为音频功率放大集成电路,它的放大倍率由外接电阻进行调整,最大功放倍数为20倍。适用于凌阳SPCE、SPL、SPF系列芯片。SPY0030A应用简单,也适用于其它类产品芯片。管脚图如图2.7所示10。SPY0030A具有以下性能特点:宽电压工作范围2.4V6V; 双输出模式; 低失真:THD+N=0.55%(For VDD5V,R1=8&Pout500mW); 最低工作电流1.0A。图2.7 SPY0030A管脚图第三节 系统软件概述该系统的软件设计主要实现对数字温度传感器DS18B20的设置并通过单总线获取温度值,然后通过SPCE061单片机处理显示在数码管上。除此之外还包括语音处理函数通过按键扫描实现按键语音播报当前温度值。因此软件部分主要包括温度采集部分,温度显示部分和语音播报部分。单片机系统资源分配如表2.1所示,列出了本系统使用SPCE061A单片机的所用的I/O资源。表2.1 SPCE061A单片机IO资源分配编号模块名称系统接口资源占用表接口功能定义SPCE061A单片机系统资源1温度检测数据线/控制线IOA152数码管显示位控制线IOB11、IOB12、IOB13段数据线IOA0-IOA73按键扫描IOA0-IOA24语音播报DAC1有表2.1可以看出数码管显示占用较多的单片机资源,而温度检测模块只占用一个IO口,硬件实现很简单,但软件编程较复杂。第四节 本章小结本章介绍了系统硬件的总体设计及各个模块的选型,硬件的选型依照硬件设计原则来选定,从而确定了硬件设计方案。由硬件设计方案的确定使得SPCE061A系统资源的分配得到确定,最终软件的设计方案得到确定。第三章 数字温度计系统的具体实现第一节 系统的硬件设计任何一个系统功能的实现都离不开硬件的支持,它是系统功能实现的物质基础。硬件的设计要根据功能的要求和系统的工作原理来进行。该系统主要包括电源模块、SPCE061A单片机最小系统模块、温度检测模块、键盘模块、语音和显示模块等六个模块。 电源模块:该模块向SPCE061A单片机提供+5V和+3.3V的电源,保证整个系统的正常工作。 SPCE061A最小系统模块:该模块包括SPCE061A单片机以及外接32768HZ晶振,复位电路以及许多旁路电容电路。 温度检测模块:该模块采用DS18B20数字温度检测传感器采集环境温度,并通过单总线与SPCE061A单片机进行通信。 语音模块:语音模块直接通过SPCE061A的DAC1通道直接输出,通过芯片SPY0030A进行音频信号的放大通过外接小喇叭进行语音输出。 键盘模块:该模块通过按键直接与IO口连接。 温度显示模块:该模块采用4位7段数码管,而在本设计中只用其中3位作为显示部分,该模块采用芯片ULN2003AN以及8050三极管进行驱动。一、电源电路的设计本系统中单片机SPCE061A 电压要求为3.3V,而I/O 端口的电压可以选择3.3V 也可以选择5V。所以,在系统具有两种工作电压:5V 和3.3V。对应的引脚中15、36 和7必须为3.3V,对于I/O 端口的电压51、52、75 可以是3.3V 也可以是5V。该系统的供电电源系统采用有多种选择方式: DC5V 电池供电:用户可以用3节电池来供电。5V 直流电压直接通过SPY0029(相当于一般3.3V 稳压器)稳压到3.3V,为整个系统提供了4.5V和3.3V 两种电平的电压。 DC5V 稳压源供电:用户可以直接外接5V的直流稳压源供电。5V 电压再通过SPY0029 稳压到3.3V。 DC3V 供电:用户可以提供直流3.3V电压为系统进行供电。此时整个系统只有3.3V电压,I/O端口电压此时只有一种选择。需要注意的是由于SPY0029 最大输出电流为50mA,所以如果需要外接一些模组时要先考虑负载是否合适。由于该设计包括温度检测模块和数码管显示模块,需要较大的驱动电流。因此该系统电源采用DC5V稳压源供电。图3.1为该系统电源模块电路图。图3.1 数字温度计系统电源电路图如图3.1所示,电源的输入为DC5V稳压直流电源再通过SPY0029A将+5V电压稳压到+3.3V,这样就可以为系统提供+5V和+3.3V的电压电源。电源电路中的两个发光二极管起到电源指示作用,指示电源是否正常工作。电源电路的输出分为数字地和模拟地,数字电源和锁相环电源,它们之间通过零欧电阻进行隔离,防止不同电源和地(7脚-锁相环电源 9脚-锁相环地 19、24脚-模拟地 38、49、50、62脚-数字地 15、36脚-数字电源)之间互相干扰。二、SPCE061A最小系统的设计SPCE061A最小系统接线如图3.2所示,主要包括SPCE061A单片机、系统时钟电路、复位电路以旁路电容电路。SPCE061A单片机内置2K字SRAM和32K闪存ROM;可编程音频处理;14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;单通道声音模-数转换器且内置在线仿真板(ICE,In- Circuit Emulator)接口。在OSCO、OSCI端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作,其他不用的电源和地段接上0.1uF的去耦电容提高抗干扰能力。其中石英晶振产生32768Hz的时钟信号,通过倍频处理产生fosc时钟信号,作为系统时钟。而锁相环(PLL)电路的作用是将系统提供的实时时钟的基频(32768Hz)进行倍频,调整至49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.48MHz。默认的PLL自激振荡频率为24.576MHz。图3.2 SPCE061A最小系统电路三、温度检测模块的设计该系统温度检测模块主要采用数字温度传感器DS18B20作为温度检测、处理及传送。并与SPCE061A单片机进行单总线通信。DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。1、DS18B20 的性能特点15独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。温范围55125,在-10+85时精度为0.5。零待机功耗。可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。用户可定义报警设置。报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。以上特点使DS18B20非常适用与多点、远距离温度检测系统。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图 2.4所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。2、DS18B20温度采集电路DS18B20 最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。DS18B20的电源供电方式有2 种:外部供电方式和寄生电源方式。工作于寄生电源方式时,VDD和GND均接地,他在需要远程温度探测和空间受限的场合特别有用,原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。因此,在条件允许的场合,尽量采用外供电方式。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电。在这里采用前者方式供电,把DS18B20的数据线与单片机的IOA15管脚连接,再加上上拉电阻。DS18B20与芯片连接电路如图3.3所示。 图3.3 DS18B20与芯片连接电路四、语音模块的设计SPCE061A为音频输出提供两个DAC通道:DAC1和DAC2,分别由经由DAC1和DAC2引脚输出。DAC的输出范围从0x0000 到0xFFFF。如果DAC的输出数据被处理成PCM数据,必须让DAC输出数据的直流电位保持为0x8000,且仅有高10位的数据有作用。DAC1和DAC2的输出数据应写入P_DAC1(写) (7017)和P_DAC2(写) (7016)单元。上电复位后,两个DAC均被自动打开,此时会消耗少量的电流(几毫安)。所以如不需要用它们,尽量将P_DAC_Ctrl(写)(702AH)单元的第1位设为1,关闭DAC输出10。DAC的直流电压必须保证平稳地变化。否则会由于电压的突变引起扬声器产生杂音。采用ramp up/down技术,可以减缓电压变化的幅度,从而输出高品质的音频数据。它的应用场合包括:被唤醒/上电复位后首次使用DAC时,上电复位功能被关闭/进入睡眠状态之前。该数字温度计系统语音模块连接电路图如图3.4所示。图3.4 语音模块电路图如图3.4所示,音频信号通过DAC1通道输出并通过电阻K9调节音频功放倍数。五、键盘模块的设计键盘模块电路图如图3.5所示。图3.5 键盘电路如上图所示,KEY1与IOA0、KEY2与IOA1、KEY3与IOA2连接,其中KEY3控制语音播报。六、温度显示模块的设计温度显示模块采用4位7段共阴极数码管,型号为SR420361K,由于温度显示在本系统中只需要3位,因此在该模块设计时值选用了其中3位。该系统的温度值显示采用动态扫描显示,减少了硬件资源。A、B、C、D、E、F、G、DP段分别有SPCE061A单片机的IOA0-IOA7控制,送入段码。位选段由IOB11、IOB12、IOB13控制。由于数码管要保证一定的亮度,则需要较大的电流,因此需要辅助驱动电路。在该设计模块中数码管段选端采用NPN型三极管8050驱动,而位选段则采用ULN2003AN作为驱动,这样是数码管的灌电流较大并且起到隔离作用,使得灌电流不会直接流入三极管。显示模块电路连接图如图3.6所示。图3.6 显示模块电路第二节 系统的软件设计一、系统软件总体设计系统软件部分主要实现对温度检测显示并实现按键控制语音播报。主要包括温度检测程序、数码管显示程序、按键扫描程序、语音播报程序。除此之外还包括中断处理程序,中断处理程序使得各个模块的有序的进行。图3.7是系统软件主程序流程图。图3.7 系统软件主程序流程图由上图可以看出主程序执行过程:首先对数码管、键盘进行初始化即对SPCE061A的IO口进行初始化。然后调用温度测量函数控制DS18B20进行温度测量并获取温度值。在得到温度值后按键扫描是否有按键按下要进行语音播报,如果有按键按下怎调用语音函数进行语音播报,如果没有按键按下则调用数码管显示函数显得温度值到数码管上,并开始下一个循环。二、温度检测程序设计1、 DS18B20温度传感器内部寄存器图3.8为DS1820的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分12。 图3.8 DS18B20的内部框图DS18B20主要的4个数据部件: 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样可以实现一根总线上挂接多个DS18B20的目的12。64 b闪速ROM的结构如图3.9所示。图3.9 64位闪速ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最后8位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。主机操作ROM的命令有五种,如表1所列。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 DS18B20温度传感器的存储器:DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 配置寄存器:各位的意义如下:表3.1 配置寄存器结构TMR1R011111低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表3.2所示(DS18B20出厂时被设置为12位)。 表3.2 分辨率设置R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms2、DS18B20温度检测模块程序设计DS18B20在单片机控制下分三个阶段:DS18B20 初始化、读DS18B20时序、写18B20时序。 DS18B20初始化:通过单线总线的所有执行(处理)都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。DS18B20初始化过程如图3.10所示。图3.10 DS18B20初始化过程 读18B20时序:对于DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时隙是从主机把单总线拉低之后,在15us之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。时序图如图3.11所示,流程图如图3.12所示。 写18B20时序:对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。时序图如图3.11所示,流程图如图3.12所示。图3.11 DS18B20的读写时序图3.12 DS18B20的读写时序DS18B20读写相关程序如下:Init_18B20(void); /DS18B20初始化程序Read_18B20_Byte(void); /从DS18B20读一个字节Write_18B20_Byte(unsigned int Data); /向DS18B20写一个字节Read_Temp(void); /从DS18B20读取温度值三、按键扫描程序设计该系统中硬件有三个按键KEY1、KEY2、KEY3,而在该系统中选用KEY3键作为控制语音播报的功能键,当KEY3键按下时,通过程序扫描得到这一信号,调用语音播报函数。按键扫描程序的具体实现过程:首先对按键端口进行初始化,然后采用程序查询的方式扫描是否有按键按下。如果没有按键按下则执行下一步操作,若程序检测到有按键按下,则延时10ms后再次判断是否有按键按下。如果确有按键按下则立即执行语音播报程序,如果没有则不执行语音播报函数转向下一步。其中延时10ms是为了消除抖动。按键扫描程序流程图如图3.13所示。图3.13 按键扫描程序按键扫描程序为KeyScan(),详见附录。四、数码管显示程序设计数码管的显示包括动态显示和静态显示两种方式,本系统采用动态显示的方式。动态显示方式节省硬件资源。1、共阴极数码管SR420361K的介绍SR420361K为共阴极数码管即数码管内部发光二极管的阴极(负极)都联在一起,此数码管阴极(负极)在外部只有一个引脚 。LED数码性根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的连接电路有差异外,编程方法也是不同的。图3.14是SR420361K数码管的内部电路。与共阳极数码管相比,它们的发光原理是一样的,只是它们的电源极性不同而已。将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将b和c段接上正电源,其它端接地或悬空,那么b和c段发光,此时,数码管显示将显示数字1。而将a、b、d、e和g段都接上正电源,其它引脚悬空,此时数码管将显示2。图3.14 SR420361K数码管的内部电路图2、数码管显示程序的实现要实现每个数码管分别显示不同数字的效果,例如,要显示“123456”,则需要不断地快速刷新数码管的显示状态,即先使第一个数码管显示数字“1”,其他数码管熄灭,然后熄灭第一个数码管,第二个数码管显示数字“2”,以此类推。这样,利用人眼的视觉残留效应,就产生了“123456”同时显示出来的效果。在本设计中要求数码管显示温度值,温度值范围为0-99.9,要求精确到小数点后一位。因此只需要显示3位数字。为了节省硬件资源采用动态扫描的方法显示数字,首先显示十位,其他位不显示,然后显示各位和小数点且其他位不显示,最后显示小数位且其他位不显示。显示完小数位后根据中断信号循环刚才的过程,利用快速显示留下的余辉产生同时显示十位、各位与小数点、小数位的效应。为了让数码管显示不同的数字及小数点,需要向数码管段选端送入数字编码。数字编码表3.2所示。表3.2 数字编码表段位编码对应数值段位编码对应数值0x003f00x00bf0.0x000610x00861.0x005b20x00db2.0x004f30x00cf3.0x006640x00e64.0x006d50x00ed5.0x007d60x00fd6.0x000770x00877.0x007f80x00ff8.0x006f90x00ef9.数码管显示相关子程序如下:DIG_Init(void); /数码管初始化程序DIG_Set(unsigned DigPos, unsigned DigBuffer);/数码管显示程序五、语音播报程序设计1、 语音基础简介数字音频的采样和量化:将模拟的声音波形数字化,进而采用数字计算机进行处理的过程,主要包括采样和量化两个方面。数字音频的质量取决于采样频率和量化位数这两个重要参数。语音压缩编码:常见的音频压缩编码方法有波形编码和参数编码。波形编码将时间域信号变换为数字代码,力图使重建的语音波形保持原语音信号的波形形状。波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示。译码是其反过程,将受到的数字序列经过译码和滤波恢复成模拟信号。波形编码的特点:语音质量高、高码率。适于高保真音乐及语音。参数编码有称声源编码,是将信源信号在频率域或其他正交变换域提取特征参数,并将其变换成数字代码进行传输。译码为其反过程,将收到的的数字序列经过变换恢复特征

温馨提示

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

评论

0/150

提交评论