2010年山东大学科技创新大赛智能语音数字温度计技术报告学院:控制科学与工程学院成员:都洪涛黄浩龙卢繁2010年5月26日2010年山东大学科技创新大赛——语音智能数字温度计技术报告-1-目录一、摘要.........................................................................................-2-二、总体设计方案.........................................................................-3-2.1硬件方案........................................................................-3-2.2软件方案........................................................................-3-三、硬件模块设计.........................................................................-4-3.1STC89C53RC单片机..................................................-4-3.218B20温度传感器......................................................-6-3.3数码管............................................................................-7-3.4ISD4002-120P语音芯片..............................................-8-3.5串口下载模块................................................................-9-四、程序设计...............................................................................-11-4.1录音程序设计..............................................................-11-4.2项目综合程序设计......................................................-11-五、系统测试与结论...................................................................-12-六、参考文献...............................................................................-13-七、附录.......................................................................................-14-附录1:ISD4002-120P录音程序......................................-14-附录2:项目综合C语言程序...........................................-20-2010年山东大学科技创新大赛——语音智能数字温度计技术报告-2-一、摘要智能语音数字温度计以STC89C53RC单片机为控制核心,采用温度传感器DS18B20将环境温度输入单片机进行处理,并将结果送入4位LED显示管显示,并控制ISD4002-120P语音芯片播报当前温度。本项目主要以学习使用单片机控制18B20温度传感器和ISD4002系列语音芯片测量温度为目的。通过18B20温度传感器,将温度这一模拟量直接转换成数字信号送入STC89C53单片机进行处理。语音芯片接收单片机处理后的数据后,再进行处理,将数据转化为模拟量传给扬声器,读出数据。系统设计框图如下:系统设计框图STC89C5318B20温度传感器4位LED数码显示管ISD4002-120P语音芯片扬声器功放电路2010年山东大学科技创新大赛——语音智能数字温度计技术报告-3-二、总体设计方案2.1硬件方案产品的主要特色是体现语音功能,本意是制作语音体温计,以解决部分人看水银体温计不方便的弊端,但由于温度传感器的精度问题,不便于精确测量体温。但考虑到只是传感器选择的问题,对方案的总体进行并无太大的影响,故仍决定使用DS18B20。在硬件的连接方面,我们没有焊接成一个成品,而使用导线将各模块连接起来,主要是基于下面的考虑,科技创新大赛主要是促使同学们学习相关专业知识,而非设计某种产品,既然实现了既定目标,就不必连接在一起,避免浪费。各个模块在拆开后还可多次应用,便于学习。语音模块采用了ISD4002-120P,录放时间长达120秒,足以满足我们的需要。该芯片对我们学习电路的时序很有帮助。语音的录入我们自己焊接了mic模块,在交的成品中省去了该模块。2.2软件方案由单片机将18B20温度传感器输入的数字信号进行处理,并将处理好的数字信号传送给4位LED数字显示管和ISD4002语音芯片,驱动数码管动态显示所测得的温度值,ISD4002语音芯片则将数据处理并通过放音喇叭读出数据。使用C51语言进行编程。2010年山东大学科技创新大赛——语音智能数字温度计技术报告-4-三、硬件模块设计3.1STC89C53RC单片机此次温度及设计没有采用使用较为广泛的AT89C51系列单片机,而是采用STC89C53RC单片机控制电路。这一使用增进了我们对不同单片机的了解,为我们熟练掌握各种单片机打下了基础。此款单片机的主要性能如下:增强型6时钟/机器周期,12时钟/机器周期8051CPU。工作电压:5.5V-3.4V。工作频率范围:0-40MHz,相当于普通8051的0~80MHz。实际工作频率可达48MHz。用户应用程序空间15K字节。片上集成512字节RAM。通用I/O口(36个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口使用时,需加上拉电阻。ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器。可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3秒即可完成一片。EEPROM功能。看门狗。内部集成MAX810专用复位电路(D版本才有),外部晶体20M以下时,可省外部复位电路。共3个16位定时器/计数器。外部中断2路,下降沿中断或低电平触发中断,PowerDown模式可由外部中断低电平触发中断方式唤醒。通用异步串行口(UART)。工作温度范围:-40-+85℃。封装:PDIP-40。2010年山东大学科技创新大赛——语音智能数字温度计技术报告-5-单片机复位电路及晶振电路:STC89C53RCDIP40封装引脚图2010年山东大学科技创新大赛——语音智能数字温度计技术报告-6-3.218B20温度传感器温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。DS18B20的主要特征:全数字温度转换及输出。先进的单总线数据通信。最高12位分辨率,精度可达土0.5摄氏度。12位分辨率时的最大工作周期为750毫秒。可选择寄生工作方式。检测温度范围为–55°C~+125°C(–67°F~+257°F)。内置EEPROM,限温报警功能。64位光刻ROM,内置产品序列号,方便多机挂接。多样封装形式,适应不同硬件系统。2010年山东大学科技创新大赛——语音智能数字温度计技术报告-7-测温部分电路设计图:3.3数码管此温度计用普通4位共阳极数码管作为温度的显示器。本项目电路可以进一步改进,可以使用移位寄存器74HC164或者74HC595驱动数码管来节省单片机的引脚。数码管电路设计图:2010年山东大学科技创新大赛——语音智能数字温度计技术报告-8-3.4ISD4002-120P语音芯片ISD4002系列语音芯片采用多电平直接模拟存储(hipCorder)专利技术,声音不需要A/D转换和压缩,每个采样直接存储在片内的闪烁存储器中避免了A/D转换的误差,能够真实、自然地还原语音、音乐及效果声,避免了一般固体和压缩造成的量化噪声和金属声.本文所设计的系统使用的芯片型号为ISD4002-120P,单片录放时间为120s。ISD4002工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作.因此,对ISD4002而言,在时钟上升沿锁存MOSI引脚数据,在下降沿将数据送至MISO引脚。协议具体内容如下:所有串行数据传输开始于SS下降沿;SS在传输期间必须保持为低电平,在两条指令之间保持为高电平;数据在时钟上升沿移入,在下降沿移出;SS变低,输入指令和地址之后ISD才开始录放动作;指令格式是IO位地址码加6位控制码;ISD的任何操作(含快进)如果遇到EOM或OVF则产生一个中断,该中断状态在下一个SPI周期开始时被清除;使用读指令会使中断状态为移出ISD的MISO引脚时,控制及地址数据也同步从MOSI移入;所有操作在运行位(RUN)置“1”时开始,置“0”时结束;所有指令都在ss上升沿开始执行。芯片的引脚图如下所示:2010年山东大学科技创新大赛——语音智能数字温度计技术报告-9-ISD4002-120P设计电路图:录放音模块电路设计图:3.5串口下载模块STC单片机支持串口下载烧录程序。直接使用九针串口的2、3、5三根线就能实现程序的下载。2010年山东大学科技创新大赛——语音智能数字温度计技术报告-10-串口电路设计图:2010年山东大学科技创新大赛——语音智能数字温度计技术报告-11-四、程序设计4.1录音程序设计根据ISD4002的特点,我们设计程序,将0-9等语音信号存储到0000H开始的分段地址中。对应关系如下表:地址存储语音信号0000H一0010H二0020H三0030H四0040H五0050H六0060H七0070H八0080H九0090H十00A0H点00B0H摄氏度00C0H零00D0H零下4.2项目综合程序设计1.启动系统后,单片机首先上电复位。2.开始读取18B20数据。3.处理温度数据。4.将处理后的温度数据送数码管显示。5.判断是否有按键按下,如果没有,返回第二步继续执行;如果有按键按下,进行下一步。6.将温度数据锁定,送显示,同时送ISD4002,通过扬声器读数。读数完毕,返回第二步继续进行。2010年山东大学科技创新大赛——语音智能数字温度计技术报告-12-五、系统测试与结论由于开始我们的经验比较少,所以调试用了比较多的时间,主要是研究语音芯片的使用。调试的重点在软件,因为硬件的大部分各模块像电源、单片机最小系统、数码管显示模块我们早就做的有,语音芯片、录/放模块和大部分排线使我们自己现做的。在查阅了大量资料后,我们决定使用下载的一个原始程序测试一下我们的电路。开始由于连线错误没有实现录放功能,经过精简后成功的录入了声音,并通过喇叭播放出来,迈出了成功的第一步。主要的问题不是实现录放,而是将声音录入我们想要的地址,通过度不同的地址来读出我们需要的声音。经过一番合作研究后,这个难题被成功攻破,迈出成功的第二步。接下来就是把温度传