毕业设计论文基于单片机的智能语音温度计的设计

上传人:无*** 文档编号:67591865 上传时间:2022-03-31 格式:DOC 页数:55 大小:447.50KB
返回 下载 相关 举报
毕业设计论文基于单片机的智能语音温度计的设计_第1页
第1页 / 共55页
毕业设计论文基于单片机的智能语音温度计的设计_第2页
第2页 / 共55页
毕业设计论文基于单片机的智能语音温度计的设计_第3页
第3页 / 共55页
点击查看更多>>
资源描述
基于单片机的智能语音温度计的设计摘 要本系统是一个基于单片机AT89C51的语音温度计的设计,用来测量环境温度,整个设计系统分为5部分:单片机控制、温度传感器、液晶显示、语音报温以及键盘控制电路,整个设计是以AT89C51为核心,选用DS18B20单总线数字温度传感器,RT1602液晶显示器实现,液晶显示当前日期、时间和温度。当测量温度超过设定的温度上下限时,启动蜂鸣器和指示灯报警。温度显示稳定,且温度测量误差1,温度值小数部分保留两位有效数字。增加了摄氏温度与华氏温度转换对比显示功能,设定了整点语音自动播报时间温度,手动实时播报时间温度功能。语音录放选用的集成块是ISD1420 芯片,其保真度高,录音效果好,而且经济实惠。LCD采用的是RT1602A,它具有功耗低、体积小、显示内容丰富、超薄轻巧等优点,应用越来越广泛。整个设计的重点在于编程,因为其外围电路相对比较简单,实现容易。在本论文中附带了软件实现的流程图以及部分子程序以及各种硬件电路图。关键词: DS18B20;液晶显示;语音播报;声光报警Design of intelligent sound thermometer based on SCMABSTRACTThis system is a design of the speech thermometer according to the microprocessor AT89C51,which is used to measure the environment temperature, The whole design system is divided into 5 parts: A microprocessor control, temperature sensor,the LCD display, the speech report and the keyboard control circuit, at the same time ,The whole design take AT89C51 as the core, choose to single bus digital temperature sensor DS18B20, DS1302 serial clock chip, RT1602 LCD monitor realization, LCD display the current date, time, weeks and temperature. When measuring temperature over set temperature fluctuation limit, start with light alarm buzzer. Temperature display stability, and temperature measurement error acuities 1, plus or minus temperature the decimal part retained two significant digits. Increased Celsius temperature conversion contrast with Fahrenheit and sets up a display function beep voice automatically broadcast time temperature, manual real-time broadcast time temperature function. The speech recoding &; p layback I choose to use is the IC of ISD1420, it has high fidelity, good record effective, and economic. The LCD I choose is TC1602A, its power consume is low, it has many advantages , for example, the volume is small, the contents is abundant, super thin and agile etc, and its application is becoming more and more extensive. The whole design lies in the program, because its outer circuit is much more simple, and it can carry out more easily. In my thesis, there are flow chart and parts of subprogram and various hardware circuit diagrams.KEY WORDS: DS18B20;LCD;speech function;sounding and light alarm.目录前言3第1章 设计要求与原理框图41.1 设计要求41.2 原理框图4第2章 设计方案52.1电源模块52.2温度传感器模块52.3显示模块62.4键盘控制模块62.5语音播报模块6第3章设计原理83.1单片机模块83.1.1单片机介绍83.1.2 单片机外围电路设计103.1.3AT89C51复位电路123.1.4 AT89C51时钟电路133.2电源模块133.3温度传感器模块143.3.1 DS18B20的测温原理143.3.2 DS18B20测温原理图:163.3.3 DS18B20与AT89C51的接口电路设计163.4键盘控制模块173.5 报警模块183.6 液晶显示模块183.7 语音播报模块203.7.1 ISD1420语音芯片录放音电路设计203.7.2 ISD1420与AT89C51接口电路设计23第4章 软件部分244.1开发工具介绍244.2 系统的主程序设计244.2.1键盘扫描子程序254.2.2测量温度子程序设计274.2.3报警子程序294.2.4实现时钟功能的程序设计294.2.5显示程序设计304.2.6语音播放子程序31第5章 仿真结果数据分析335.1功能仿真和结果33结论34谢 辞35参考文献36附录一:电路图37附录二:源程序38外文资料翻译54前言21世纪是人类全面进入信息电子化的时代,现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。随着人类探知领域和空间的拓展,使得人们需要获得的电子信息种类日益增加,需要信息传递的速度加快,信息处理能力增强,因此要求与此相对应的信息采集技术传感技术必须跟上信息化发展的需要。传感器技术是人类探知自然界信息的触觉,为人们认识和控制相应的对象提供条件和依据。它属于信息技术的前沿尖端产品,尤其温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量居各种传感器之首。近百年来,温度传感器的发展大致经历了以下三个阶段:(1)传统的分立式温度传感器 (含敏感元件);(2)模拟集成温度传感器控制器;(3)智能温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。作为现代信息技术的三大核心技术之一的传感技术,将是二十一世纪世界各国在高新技术发展方面争夺的一个重要领域。 第1章 设计要求与原理框图1.1 设计要求1 显示当前日期、时间、温度。2 当测量温度超过设定温度时,启动报警模块报警。3 手动实时播报温度,时间。4 温度显示稳定,误差1。1.2 原理框图分析本题,根据设计要求我们确定了本系统的整体设计原理框图如图所示显示模块电源模块微控制器模块报警模块温度采集语音录放键盘控制 图1-1 原理框图第2章 设计方案2.1电源模块方案一:采用三只干电池作为电源。该方案的优点是设计简明扼要,成本低;缺点是输出功率不高,只能勉强驱动单片机,适合小电流负载。而且在整个系统工作中,电压会随着时间的推移不断降低,进而出现死机等情况。方案二:采用独立的稳压电源。电源的稳压的特性较好,能够保证整个系统稳定工作。综上分析,为使系统调试方便,能够稳定工作,必须有可靠电源,所以决定选择第二种方2.2温度传感器模块方案一:AD590是单片集成的敏感电流源,激励电压在+4V+30V间选择,其测量范围为-55摄氏度-150摄氏度,所输出的电流数值(微安数)等于绝对温度K的数值。AD590具有标准化的输出和固有的线性关系,分不同的测温范围和精度供设计者选用,通过微调电路对AD590的输出进行修正,可达到很高的测试精度。AD590不需要低电平测量设备和电桥,可以使用长导线,而不会因为电压的降低和感应的噪声电压而产生误差;它又是一个高阻抗的电流源;对激励的电压变化不够敏感。但是AD590需要把被测温度转化为电流再通过放大器和A/D转换器才能输出数字量送给单片机进行温度控制。方案二:DS18B20是美国达拉斯半导体公司推出的第一片支持“一线总线”接口的温度传感器。它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可以将温度直接转化成串行数字量供微处理器处理。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网优点,在实际测温的过程中取得了良好的测量效果。其供电方式简单,可用数据线供电,所需的外围器件较少,甚至不需要外围器件。通过比较,温度传感器DS18B20具有更高的性价比,DS18B20能够构建经济的测温网络。因而在本次设计中,选用的是数字温度传感器DS18B20,故采用的是方案二。2.3显示模块方案一:采用八位数码管,将单片机的数据通过数码管显示出来。该方案简单易行,但所需的元器件较多,且不容易进行操作,可读性较差,一旦设定后,很难加入其它的功能,显示格式受控制,且耗电量大。方案二:采用LCD显示屏进行显示。LCD显示屏是一种低压、微功耗的显示器件,只要2-3伏就可以工作了,工作电流仅为几微安,是其它显示器无法比拟的,同时可以显示大量信息,除数字外,还可以显示字母,曲线,比传统的LED数码显示器的画面有了质的提高。虽然LCD显示器的价格比传统的LED数码管要贵些,但它的显示效果更好,是当今显示器的主流,所以采用LCD作为显示器。采用LCD,更容易实现题目的要求,对后续的功能兼容性高,只需将软件修改即可,可操作性强,易于度数,采用RT1602两行十六字符的显示,能同时显示时间,温度。综上分析,采用第二种方案。2.4键盘控制模块方案一:44矩阵式键盘。此方案对于本系统来说无非是浪费I/O占用MCU的资源,不利于系统的扩展,这就使系统的实用性降低,况且本系统根本不需要16个按键。方案二:独立式按键。对于独立式按键来说,如果设置过多按键,虽然会占用较多I/O口,给布线带来不便,此方案适用于按键较少的情况。在本设计中所需要的控制点数的较少,只需要几个功能键,简便、易操作、成本低就成了首要考虑的因素。所以此时,可采用独立式按键结构。2.5语音播报模块方案一:通过A/D转换器、单片机,存储器,DA转换器实现声音信号的采样、处理、存储和实现。首先将声音信号放大,通过AD转换器采样将语音模拟信号转换成数字信号,并由单片机和处理存放到存储器中,实现录音操作。在录、放音过程中由单片机控制D/A转换器,将存储器中的数据转化成声音信号。此方案安装调试复杂,集成度低,成本也不低。方案二:采用ISD1420语音录放。ISD1420是采用模拟存取技术集成的可反复录放的20秒语音芯片,掉电语音不丢失,最大可分160段,最小每段语音长度为125ms,每段语音都可由地址线控制输出,每125ms为一个地址,由A0-A7八根地址线控制。该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声。此外,ISD1420还省去了A/D和D/A转换器,方便扩展更多的功能。综上所述,选择方案二,即ISD1420。第3章设计原理3.1单片机模块此次的毕业设计的核心部分是单片机的控制,给以相关的命令,按照人们的意愿执行相应的操作,这次选用的是ATMEL公司生产的常用芯片AT89S51,主要是他的价格便宜,而且是我们通用性较强,容易获得。 3.1.1单片机介绍CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分电路组成。 a. 运算器电路 运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。 b. 控制器电路控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。 c. 定时器/计数器 MCS51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。 d. 存储器 MCS51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。 e. 并行I/O口 MCS51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。 f. 串行I/O口 MCS51单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。 g. 中断控制系统 8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。 h. 时钟电路 MCS51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz12MHz,典型取值为6MHz。 i.总线 以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。 选用单片机的结构: 1 一个8 位算术逻辑单元 2 32 个I/O 口4 组8 位端口可单独寻址 3 两个16 位定时计数器 4 全双工串行通信 5 5 个中断源两个中断优先级 6 128 字节内置RAM 7 独立的64K 字节可寻址数据和代码区 每个8051 处理周期包括12 个振荡周期每12 个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以12 取倒数然后指令执行所须的周期数因此如果你的系统时钟是11.059MHz 除以12 后就得到了每秒执行的指令个数为921583条指令取倒数将得到每条指令所须的时间1.085ms 。AT89C51的管脚图如图3.1所示: 图3.1 AT89C51管脚图AT89C51的引脚功能VCC:接正极电源+5vGND:接地RST:复位信号输入引脚XTAL1,XTAL2:接外部晶振引脚,外部时钟电路如图1-6P0,P1,P2,P3:不扩展功能作双向I/O口用,访问外部存储器时,P2,P0分别做地址总线高低8位地址。3.1.2 单片机外围电路设计 本设计选用的AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51设计和配置了振荡频率,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式。AT89C51单片机综合了微型处理器的基本功能。当AT89C51芯片接到来自温度传感器的信号时,其内部程序将根据信号的类型进行处理,并且将处理的结果送到显示模块、报警模块、语音播报模块,发送控制信号控制各模块。该模块在硬件设计方面,其外围电路提供能使之工作的晶振脉冲、复位按键,四个I/O口分别用于外围设备连接。单片机AT89C51硬件连接图如图4.2所示,其中P0接口外接上拉电阻以保证高低电平的准确性。单片机AT89C51的 I/O端口具体分配与下表3.1: 图3.2单片机与外围设备硬件连接图 表3.1 AT89C51的 I/O端口具体分配AT89C51的IO端口外接点P0.0-P0.7LCD显示地址端口P1.0-P1.7语音芯片播音地址端口P2.0DS18b20通道P2.1-P2.4连接键盘控制端口P2.6连接报警器端口P3.3开始播音口P3.6LCD读/写选择端P3.7LCD数据/命令端P2.7LCD使能端 3.1.3AT89C51复位电路系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下即单片机的片内电路初始化,使单片机从一种确定的初态开始运行。AT89C51的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,复位电路通常采用上电自动复位和按钮复位两种方式。手动复位:手动复位需要人为在复位输入端加高电平让系统复位。一般采用的方法是在RST端和正电源VCC之间接一个按键,当按下按键后,VCC和RST端接通,RST引脚处有高电平,而且按键动作一般是数十毫秒、大于两个机器周期的时间,能够安全的让系统复位。上电复位:上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。在本设计中复位电路的设计是采用简单,用得比较广的复位电路接法,如图3.3所示,它具有上电复位和按键复位的双重复位功能。 图3.3 复位电路3.1.4 AT89C51时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路图3.4所示:图3.4 时钟电路图AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。3.2电源模块鉴于系统使用的单片机AT89C51和各芯片工作电压在5V左右。我们选择了5V稳压电源给单片机和各芯片供电。电路由简单实用的三端稳压器构成,输入电压5V,满足大部分电路的要求,电源电路图如下图3.5所示,由于使用了全桥,电压输入既可以使用交流输入,又可以使用正负直流输入,能够防止由于极性接反造成的事故。滤波电容使用电解电容与小电容并联的方式,能够有效消除高频自激现象。发光二极管接到电源与地之间,如果电源输出不正常,发光二极管都会出现工作异常,提示电源部分故障。 图3.5 电源电路图3.3温度传感器模块本模块主要作用是进行温度采集,然后经采集的数据送入AT89C51里进行分析处理。在本次设计中采用了DS18B20作为数据采集器,它的精度最少可以精确到0.0625,完全可以用来进行环境温度的测量。DS18B20是美国DALLAS 公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微处理器处理,而且可以在一条总线上挂接任意多个DS18B20芯片,构成多点温度检测系统无需任何外加硬件。DS18B20 数字温度传感器可提供912 位温度读数,读取或写入DS18B20 的信息仅需一根总线,总线本身可以向所有挂接的DS18B20 芯片提供电源,而不需额外的电源。由DS18B20 这一特点,非常适合于多点温度检测系统,硬件结构简单,方便联网,在仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中被广泛应用。3.3.1 DS18B20的测温原理用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来的到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数知道0,如果门周期仍未结束,将重复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以期测温时获得比较高的分辨力,这是通过改变计数器对温度每增加一度所需计数的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。DS18B20内部对此计算的结果可提供0.5的分辨力。温度以16bit带符号位扩展的二进制补码形式读出,表3.2给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20测温范围-55+125,以0.5递增。如用于华氏温度,必须要用一个转换因子查找表。表3.2 温度和数据对应表注意DS18B20内温度表示值为1/2LSB,如下所示9bit格式:表3.3温度表最高有效(符号)位被复制充满存储器中两字节温度存储器的高MSB位,由这种“符号位扩展”产生出了表3.2的16bit温度读数。3.3.2 DS18B20测温原理图:图3.6 DS18B20 测温原理框图可用下述方法获得更高的分辨力。首先,读取温度值,将0.5位(LSB)从读取的值中截去,这个值叫做TEMP_READ。然后读取计数器中剩余的值,这个值是门周期结束后保留下来的值(COUNT_REMAIN)。最后,我们用到在这个温度下每度的计数值(COUNT_PER_C)。用户可以用下面的公式计算实际温度值:3.3.3 DS18B20与AT89C51的接口电路设计DS18B20可以从单总线上得到能量并储存在内部电容中,该能量是当信号线处于低电平期间消耗,在信号线为高电平时能量得到补充,这种供电方式称为寄生电源供电。DS18B20也可以由35.5V的外部电源供电。所以在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻.我们采用的是第一种连接方法, 如图3.7所示:把DS18B20数据线与AT89C51的P2.0,再加上上拉电阻。图3.7 DS18B20与AT89C51的接口电路3.4键盘控制模块按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。本系统中用到四个功能控制按键,用P2的4个I/O口接4个独立式按键即可满足需要,软件消除抖动,当发现有键按下时,延时10-20ms再查询是否有键按下,若没有键按下,说明上次查询结果为干扰或抖动;若没有键按下,说明上次查询结果为干扰或抖动;若仍有键按下,则说明闭合键已稳定。准确判断去执行相应的程序。电路图如图3.8所示。 图3.8 键盘控制电路3.5 报警模块报警模块的工作原理是当温度传感器检测到的温度高于温度的上限或低于温度的下限设定值时单片机的P2.6发出高电平信号促使PNP三极管导通点亮发光二极管,蜂鸣器也发出响声,产生声光报警。电路图如3.9所示。 图3.9 报警电路3.6 液晶显示模块该模块是由RT1602液晶显示器件组成, 第3脚: VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。由上可知1602基本操作时序如表4。其第1516脚:背光电源脚。RT1602与单片机的应用连接电路图如图3.10所示。3.10 液晶显示模块接口电路表3.4 LCD1602基本操作时序基本时序操作输入输出读状态RS=L,R/W=H,E=HDOD7=状态读数据RS=H,R/W=H,E=H无写指令RS=L,R/W=L,E=高脉冲,DOD7=指令码DOD7=数据读指令RS=H,R/W=L,E=高脉冲,DOD7=数据无3.7 语音播报模块本模块采用的核心语音芯片ISD1402语音芯片是美国ISD(Information Storage Device)公司的产品。它包括时钟振荡器、128K可编程电擦除只读存储器(EEPROM)、低噪前置放大器、自动增益控制电路、抗干扰滤波器、差分功率放大器等电路。ISD1400系列语音芯片采用直接存储模拟信号,自动待机省电,可编程电擦除只读存储和总线技术。ISD1400是一种具有高保真、录音数据永久保存、省电、适用于同单片机接口特点的新一代语音芯片。ISD1420是ISD1400系列中录音时长为20s语音芯片。ISD1420是采用模拟存取技术集成的可反复录放的20秒语音芯片,掉电语音不丢失,最大可分160段,最小每段语音长度为125ms,每段语音都可由地址线控制输出,每125ms为一个地址,由A0-A7八根地址线控制。3.7.1 ISD1420语音芯片录放音电路设计分段录音时,ISD1420的A0-A7用作地址输入线,A6、A7不可同时为高电平,所以地址范围为00H-9FH,即为十进制码0-159 共160个数值。这表明ISD1420的EEPROM模拟存储器最多可被划分为160个存储单元,也就是说ISD1420最多可存储160个语音段,语音段的最小时间长度为0.125S。不同分段的选择是通过对A0-A7端接不同的高低电平来实现。ISD1420分段录音可以通过硬件(开关)来实现也可以通过软件编程来实现。图3.11为硬件实现录音和放音的电路图。图3.11 语音芯片录音和放音电路其中ISD1420各引脚说明如下:A0-A7地址输入端,当A6和A7不全为高电平时,A0-A7为分段录音信息地址线,不同的地址对应不同的录音片断。MIC话筒输入端,话筒输入信号通过电容交流耦合至此引脚并传给片上预放大器,耦合电容C7的值和该端内阻R7(10K)决定语音信号通频带下限频率。 MICREF话筒参考输人端,MICREF是预放大器的反相输入端,配合外电路可使片上预放大器具有较高的噪声抑制比和共模抑制比。ANA IN模拟信号输人端,对于话筒输入,ANA IN 引脚应通过外部电容C4与ANA OUT引脚连接,耦合电容C4决定片上控制预放大器通频带的下限频率。ANA OUT预放大器的输出端,预放大器的电压增益取决于AGC电平,对于小信号输入电平,其增益最大为24dB,对于强信号,增益较低。AGC自动增益控制端,AGC 动态地调整预放大器增益,使加至MIC输入端的非失真信号的范围扩展。内阻抗(5欧)和外部电容决定AGC的响应时间,外部电容和外部电阻的RC时间常数决定AGC的释放时间。SP+、SP- 喇叭输出端,该端可直接驱动16欧的喇叭。XCLK外接时钟输入端,ISD1420具有内部时钟,一旦接人外部时钟,内部时钟会自动失去作用。改电路不用外部时钟该引脚接地,一般不推荐使用外部时钟,除非要求时钟信号特别精确。RECLED工作状态指示端,在录音或放音时该端输出低电平,可驱动一个LED来指示状态。在录音过程中指示灯一直亮着,在放音结束时,指示灯闪烁一下。PLAYE边沿触发放音控制端,该端输人一低脉冲,芯片即进入放音状态,直至遇到信息结束标记(EOM)或到存储空间的末尾时回放过程结束,电路自动进入准备状态。回放过程中PLAYE变化不会影响回放过程。PLAYL电平触发放音控制端,该端电平变为低电平并保持,芯片进入放音状态,放音过程持续到该端电平由低变高或遇到信息结束标记(EOM),结束后电路进入准备状态。REC录音触发端,REC 一旦变为低电平,芯片就进入录音状态,REC的权限优先于PLAYE和PLAYL,在放音期间若遇REC 接低电平时,放音就会立即停止并转入录音状态开始录音。录音期间REC 应始终保持低电平,REC变高或存储空间变满时录音过程结束,这时在录音截止的地方会记录一个信息结束标记(EOM)。VCCD、VCCA数字电源正端和模拟电源正端。VSSD、VSSA数字地和模拟地。电路实现录音功能说明如下,S1、S2、S3分别是控制录音和放音按键,当按下S1时开始录音,S2、S3为两种方式的放音按键,当按一下S2时开始放音,是下降沿触发的,而S3为电平控制的,必须一直按着此键直至放音结束。LED和限流电阻组成录放音指示电路,当录音结束、录音超出时限(存储器溢出)或放音结束时,ISD1420的25脚呈高电平,LED熄灭。对ISD1420进行分段录音之前要先列出语音信息与分段地址的对照表,如表4.4所示。然后检查电路连接、接线和电源情况。并通过对照表来设置8个开关选择要录音的地址,最后按下录音键直至录音结束,松开录音键,重复此操作就可以将自己需要录入的内容全部录入到芯片中。另外,A0和A1都需要接地,因为我们要确保分段间隔不小于0.5S,所以至少要四段,否则录音的信息可能会重叠,导致放音时达不到自己的要求。用户录制的语音每一段结束后芯片自动设有段结束标志(EOM),芯片录满后设有溢出标志(OVF)。表3.4 分段语音信息与地址对照表语音信箱分段地址A7A6A5A4A3A2A1A0100H00000000208H00001000310H00010000418H00011000520H00100000628H00101000730H00110000838H00111000940H01000000十48H01001000摄氏度50H01010000现在温度是58H100110003.7.2 ISD1420与AT89C51接口电路设计ISD1420录音和放音电路可以通过硬件开关控制。本设计录音是用硬件控制,但是播报温度放音是通过AT89S52来控制的。单片机某一段的起始地址进行放音操作,遇到段结束标志(EOM)即自动停止放音,单片机收到段结束标志(EOM)就开始触发下一段语音的起始地址,如此控制,即可以将很多、不同段的语音组合在一起成一句话放音出来,实现语音的自动组合。ISD1420与AT89C51的接口连接入下:AT89C51的P1端口连接地址线ISD1420的A0-A7,ISD1420放音电路通过AT89C51的P3.3口控制PLAYER放音。具体连接图见图3.11。第4章 软件部分4.1开发工具介绍 单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过汇编软件变为机器码,用于MSC-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,Keil是目前最流行开发MCS-51系列单片机的软件。Keil c51汇编,PLM语言和C语言的程序设计,界面友好。Keil是美国keil software公司出品的52系列兼容单片机c语言开发系统。用过汇编语言后再使用C语言来开发,体会更加深刻。 Keil C51软件提供丰富的库,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生产的汇编代码,就能体会到KeilC51DE 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。4.2 系统的主程序设计主程序是在程序运行的过程中必须先经过初始化,包括键盘程序,测量程序,以及各个控制端口的初始化工作。系统在初始化完成后就进入读取温度测量程序,实时的测量当前的温度,得到温度后判断温度是否超过温度设置的上下限。超出(低于)温度上下限,调用报警子程序。再显示电路在LCD上显示。系统软件设计的总体流程图4.1所示 开机初始化判断温度在设定范围显示温度子程序报警子程序显示时间子程序测量温度子程序判断显示模式子程序显示温度上下限子程序键盘扫描5.2.1 5.2.2 子程序图4.1 主程序流程图 4.2.1键盘扫描子程序对于系统来说,键输入程序是整个键盘控制应用系统的核心。当所设的功能键按下时,本系统应完成该键所设的功能。本系统具体实现功能如下表4.1。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。为了保证CPU对键一次闭合,仅作一次键输入处理,必须去抖动影响。本设计采用软件去抖的办法是在检测到有按键按下时,执行一个510ms的延迟程序后在确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下的状态,从而消除了抖动影响。键盘子程序流程图如下4.2所示(延时子程序未在流程图中画出)。表4.1 按键功能表按键实现功能SW5按下一次进入时间秒设置模式SW5按下二次进入时间分设置模式SW5按下三次进入时间时设置模式SW5按下四次进入温度上限设置模式SW5按第五次进入温度下限设置模式SW5按下第六次退出设置模式SW6按下一次在设置模式下对应数值加一SW7按下一次在设置模式下对应数值减一SW8按下一次播报当时温度值开始键盘开始扫描ct=0;P1=ct; SW5 按下SW6按下SW7按下SW8按下ct+;if(ct5)ct=0;if(ct=4|ct=5)显示温度上下限子程序;else显示时间子程序If(ct=0)无效;If(ct=1)秒加1;If(ct=2)分加1;If(ct=3) 时加1If(ct=4)上限加1If(ct=5)下限加1语音播报子程序If(ct=0)无效;If(ct=1)秒减1;If(ct=2)分减1;If(ct=3) 时减1If(ct=4)上限加减If(ct=5)下限减1图4.2 键盘子程序流程图4.2.2测量温度子程序设计由在整个语音温度计的设计中是以正确采集温度为前提的,因为如果温度采集就不正确,那么即使后续电路如显示和报温电路均正确,最后的结果仍然不能达到我们所要的目标,也就是不能正确的对环境温度进行显示和报温,所以关于DS18B20的温度采集是非常重要的。DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。其测温子程序流程图如4.3所示。部分控制DS18B20指令功能如表4.2所示:开始初始化写跳过ROM指令写启动温度转换指令延时初始化写跳过ROM指令写读温度转换指令读取温度图4.3 测温度子程序流程图表4.2 控制DS18B20指令表指令 指令代码 操 作 说 明 跳过ROMCCH忽略64位ROM编码温度转换 44H启动DS18B20进行温度转换 读暂存器 BEH读暂存器9个字节内容 写暂存器 4EH将数据写入暂存器的TH、TL字节 复制暂存器 48H把暂存器的TH、TL字节写到E2RAM中 重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL中 读电源供电方式 B4H启动DS18B20发送电源供电方式的信号给主CPU4.2.3报警子程序初始默认上下限报警值,或键盘设定报警值,取量实时测温度值与温度上下限值比较,超过报警范围,导通三极管,触发蜂鸣器与指示灯报警,当实时温度恢复到报警范围内温度时,自动停止报警。流程图如图4.4所示开始 不报警小于0小于0大于0小于0大于0大于0读取温度值温度值减上限值温度值减下限值报警图4.4 报警子程序流程图4.2.4实现时钟功能的程序设计本系统的时钟直接用单片机的定时器编程以实现时钟,节省硬件。TMOD=0x01定时器T0初始化方式1。定时时间=(65536-T0初值)*时钟周期*12。本设计中定时时间50ms,时钟周期为12M,顾TH0=0x3c;TL0=0xb0时钟实现流程图如图4.5所示:开始定时器T0初始化(方式1)判断mstcnt=20 判断Seconde=60Seconde +Mstcnt+Hour+判断Hour =24Hour=0图4.5 时钟功能实现流程图4.2.5显示程序设计本设计使用的LCD1602基本操作时序如下表4.2。清楚基本操作时序就可以完成写指令和写数据到LCD中的子函数设计。在子函数中为了使液晶显示更加稳定,可以最简短的延时。显示模式包括当前温度显示,时间显示模式,温度上下限,他们实现都是先初始化调用显示字符串子程序后再调用显示指定位置字符子程序,具体看显示当前温度子程序流程图如图4.6所示:开始 当前检测温度数据移入显示寄存器LCD初始化显示字符temp: . oC-显示当前温度 图4.6 显示当前温度子程序流程图4.2.6语音播放子程序单片机语根据语音信息与分段地址的对照表和当前温度组合出播报当前的温度语音数据地址,再通过P3.3控制语音芯片放音,把处理的数据地址通过P1端口写给语音芯片,程序流程如图4.7所示:开始播报“现在温度是”,播报温度值的个位温度值10播报“度”个位为零播报温度值的十位播报“十”播报温度值个位播报“度”个位非零播报温度值的十位播报“十”播报“度”图5.7 语音播放子程序第5章 仿真结果数据分析5.1功能仿真和结果各项功能仿真方法及仿真结果如下表5.1表5.1 各项功能仿真方法及结果类别仿真项目仿真方法仿真结果基本部分(1)正常开机有嘟声开机实现仿真实现(2)测量范围开机显示,调整DS18B20的温度是否都可以显示仿真实现(3)显示时间和温度开机显示仿真实现(4)调整时间、日期,设定最低、最高温度按SW5进入时间、最低、最高温度调整功能,SW6加1,SW7减1,最后按SW5确认温度设定结束仿真实现(5)报警功能调整DS18B20温度分别超过上限与下限,启动蜂鸣器与指示灯仿真实现(6)语音播放功能观察连接语音芯片P1和高低电平的变化仿真实现 结论本文设计的语音温度计,即可用于人民生活中的日常用品,还可以单独作为系统为了保证某特定环境温度维持在设定的范围内,以保证工作系统在稳定的状态下工作。本文设计的语音温度计成本很低,如果采用大批量生产的话,生产成本会更低,可以带来一定的经济效益。经过这段时间的方案论证、系统的硬件和软件的设计、系统的仿真和调试。查阅了大量的关于传感器、单片机及其接口电路、以及控制方面的理论。经过了一番特殊的体验后,靠用所学的专业知识来解决问题。检查了自己的知识水平,使我对自己有一个全新的认识。通过这次毕业设计,不仅锻炼自己分析问题、处理问题的能力,还提高了自己的动手能力。这些培养和锻炼对于我们这些即将走向工作岗位的大学生来说,是很重要的。这次毕业设计基本的完成了任务书的要求,实现了温度的控制和语音播报。通过仿真表明系统的设计是正确的,可行的。但是由于设计者的设计经验和知识水平有限,本文设计的语音温度计还存在许多不足和缺陷。谢 辞经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个专科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。 在这里首先要感谢我的导师 张娟梅。老师平日里工作繁忙,但在我做毕业设计的每个阶段,从外出实习到查阅资料,设计草案的确定和修改,中期检查等整个过程中都给予了我悉心的指导。除了敬佩 老师的专业水平外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 其次要感谢和我一起作毕业设计的其他同学,他们在设计中勤奋工作,克服了许多困难来完成此次毕业设计,并承担了大部分的工作量。如果没有他们的努力工作,此次设计的完成将变得非常困难。 然后还要感谢大学四年来所有的老师,为我打下扎实的专业知识基础;同时还要感谢所有的同学们,正是因为有了他们的支持和鼓励,此次毕业设计才会顺利完成。参考文献1 余小平等.电子系统设计M .北京航空航天大学出版社.2007 133-1352 何立民等.单片机中级教程原理与应用M.北京航空航天大学出版社.1999 3 赵建领.51系列单片机开发宝典M.电子工业出版社.20074 李东生等.Protel 99SE电路设计教程M.电子工业出版社.20075 郭天祥.新概念51单片机C语音教程M.电子工业出版社.20086 王细荣.文献信息检索与论文写作M.上海交通大学出版社.20097 马令坤等.电子工艺实训教程M.西安电子科技大学出版社.20058 白驹珩,雷晓平.单片计算机及其应用M. 成都:电子科技大学出版社,1997年.9 朱定华.单片机原理及接口技术M.北京:电子工业出版社,2001年.10 谭家玉.单片机原理及接口技术M.哈尔滨:哈尔滨工业大学出版社,2003年.11 谢自美.电子线路设计.实验.测试(第二版)M.武汉:华中科技大学出版社,2000.12 Dallas公司. DS18B20 Resolution One Wire Digital Thermometer.G.200013 ISD公司Datebook o
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!