基于AT89S52智能语音温度计的设计_第1页
基于AT89S52智能语音温度计的设计_第2页
基于AT89S52智能语音温度计的设计_第3页
基于AT89S52智能语音温度计的设计_第4页
基于AT89S52智能语音温度计的设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、题目: 基于基于 at89s52at89s52 智能语音温度计的设计智能语音温度计的设计 title:title: designdesign ofof intelligent sound thermometer based on at89s52 院系名称: 学生姓名: 学生学号: 专 业: 指导老师: 完成时间: 声明 本人郑重声明: 所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作及取 得的研究成果。其中除加以标注和致谢的地方,以及法律规定允许的之外,不 包含其他人已经发表或撰写完成并以某种方式公开过的研究成果,也不包含为 获得其他教育机构的学位或证书而作的材料。其他同志对本研究

2、所做的任何贡 献均已在文中作了明确的说明并表示谢意。 本毕业设计(论文)成果是本人在江西师范大学读书期间在指导教师指导 下取得的,成果归江西师范大学所有。 特此声明。 声明人(毕业设计(论文)作者)学号: 声明人(毕业设计(论文)作者)签名: 签名日期:年月日 摘要 以at89s52为核心,选用ds18b20单总线数字温度传感器,rt1602液晶显示 器实现,液晶显示当前日期、时间和温度。当测量温度超过设定的温度上下限 时,启动蜂鸣器和指示灯报警。温度显示稳定,且温度测量误差1,温度 值小数部分保留两位有效数字。增加了摄氏温度与华氏温度转换对比显示功能, 设定了整点语音自动播报时间温度,手动实

3、时播报时间温度功能。 关键词:ds18b20;液晶显示;语音播报;声光报警 abstract at89s52 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 fluctuatio

4、n 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

5、 automatically broadcast time temperature, manual real-time broadcast time temperature function. keyword:ds18b20;lcd;speech function;sounding and light alarm. 目录 摘要.ii abstract.iii 1 引言.1 2 设计要求.1 3 方案论证.1 3.1 电源模块.2 3.2 温度传感器模块.2 3.3 显示模块.2 3.4 键盘控制模块.3 3.5 语音播报模块.3 4 设计原理.4 4.1 单片机模块 .4 4.1.1 单片机介

6、绍 .4 4.1.2 单片机外围电路设计.6 4.1.3 at89s52 复位电路 .7 4.1.4 at89s52 时钟电路 .8 4.2 电源模块.9 4.3 温度传感器模块 .9 4.3.1 ds18b20 的测温原理 .10 4.3.2 ds18b20 与 at89s52 的接口电路设计 .11 4.4 键盘控制模块 .11 4.5 报警模块 .12 4.6 液晶显示模块 .13 4.7 语音播报模块 .14 4.7.1 isd1420 语音芯片录放音电路设计 .14 4.7.2 isd1420 与 at89s52 接口电路设计 .17 5 软件部分.18 5.1 开发工具介绍.18

7、5.2 系统的主程序设计 .18 5.2.1 键盘扫描子程序 .19 5.2.2 测量温度子程序设计 .20 5.2.3 报警子程序 .21 5.2.4 实现时钟功能的程序设计 .22 5.2.5 显示程序设计 .23 5.2.6 语音播放子程序 .24 6 仿真结果数据分析.25 6.1 功能仿真和结果 .25 7 结束语.25 参考文献.27 附录一:电路图.28 附录二:源程序.29 1 引言 21 世纪是人类全面进入信息电子化的时代,现代信息技术的三大基础是信 息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。随着 人类探知领域和空间的拓展,使得人们需要获得的电子信

8、息种类日益增加,需 要信息传递的速度加快,信息处理能力增强,因此要求与此相对应的信息采集 技术传感技术必须跟上信息化发展的需要。传感器技术是人类探知自然界 信息的触觉,为人们认识和控制相应的对象提供条件和依据。它属于信息技术 的前沿尖端产品,尤其温度传感器被广泛用于工农业生产、科学研究和生活等 领域,数量居各种传感器之首。近百年来,温度传感器的发展大致经历了以下 三个阶段:(1)传统的分立式温度传感器 (含敏感元件);(2)模拟集成温度传感 器控制器;(3)智能温度传感器。目前,国际上新型温度传感器正从模拟式向 数字式、由集成化向智能化、网络化的方向发展。作为现代信息技术的三大核 心技术之一的

9、传感技术,将是二十一世纪世界各国在高新技术发展方面争夺的 一个重要领域。 2 设计要求 1显示当前日期、时间、温度。 2当测量温度超过设定温度时,启动报警模块报警。 3手动实时播报温度,时间。 4温度显示稳定,误差1。 3 方案论证 分析本题,根据设计要求先确定了本系统的整体设计原理框图如图所示 图 3.1 原理框图 温度采集 键盘控制 微控制 器模块 显示模块 报警模块 语音录放 电源模块 3.1 电源模块 方案一:采用三只干电池作为电源。该方案的优点是设计简明扼要,成本 低;缺点是输出功率不高,只能勉强驱动单片机,适合小电流负载。而且在整 个系统工作中,电压会随着时间的推移不断降低,进而出

10、现死机等情况。 方案二:采用独立的稳压电源。电源的稳压的特性较好,能够保证整个系 统稳定工作。 综上分析,为使系统调试方便,能够稳定工作,必须有可靠电源,所以决 定选择第二种方案。 3.2 温度传感器模块 方案一:ad590 是单片集成的敏感电流源,激励电压在+4v+30v 间选择, 其测量范围为-55 摄氏度-150 摄氏度,所输出的电流数值(微安数)等于绝对 温度 k 的数值。ad590 具有标准化的输出和固有的线性关系,分不同的测温范 围和精度供设计者选用,通过微调电路对 ad590 的输出进行修正,可达到很高 的测试精度。ad590 不需要低电平测量设备和电桥,可以使用长导线,而不会

11、因为电压的降低和感应的噪声电压而产生误差;它又是一个高阻抗的电流源; 对激励的电压变化不够敏感。但是 ad590 需要把被测温度转化为电流再通过放 大器和 a/d 转换器才能输出数字量送给单片机进行温度控制。 方案二:ds18b20 是美国达拉斯半导体公司推出的第一片支持“一线总线” 接口的温度传感器。它具有微型化、低功耗、高性能、抗干扰能力强、易配微 处理器等优点,可以将温度直接转化成串行数字量供微处理器处理。因此,在 温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的 有效方案,新型数字温度传感器 ds18b20 具有体积更小、精度更高、适用电压 更宽、采用一线总线、可组

12、网优点,在实际测温的过程中取得了良好的测量效 果。其供电方式简单,可用数据线供电,所需的外围器件较少,甚至不需要外 围器件。 通过比较,温度传感器 ds18b20 具有更高的性价比,ds18b20 能够构建经 济的测温网络。因而在本次设计中,选用的是数字温度传感器 ds18b20,故采 用的是方案二。 3.3 显示模块 方案一:采用八位数码管,将单片机的数据通过数码管显示出来。该方案 简单易行,但所需的元器件较多,且不容易进行操作,可读性较差,一旦设定 后,很难加入其它的功能,显示格式受控制,且耗电量大。 方案二:采用 lcd 显示屏进行显示。lcd 显示屏是一种低压、微功耗的显 示器件,只要

13、 2-3 伏就可以工作了,工作电流仅为几微安,是其它显示器无法 比拟的,同时可以显示大量信息,除数字外,还可以显示字母,曲线,比传统 的 led 数码显示器的画面有了质的提高。虽然 lcd 显示器的价格比传统的 led 数码管要贵些,但它的显示效果更好,是当今显示器的主流,所以采用 lcd 作 为显示器。采用 lcd,更容易实现题目的要求,对后续的功能兼容性高,只需 将软件修改即可,可操作性强,易于度数,采用 rt1602 两行十六字符的显示, 能同时显示时间,温度。 综上分析,采用第二种方案。 3.4 键盘控制模块 方案一:44 矩阵式键盘。此方案对于本系统来说无非是浪费 i/o 占用 mc

14、u 的资源,不利于系统的扩展,这就使系统的实用性降低,况且本系统根本 不需要 16 个按键。 方案二:独立式按键。对于独立式按键来说,如果设置过多按键,虽然会 占用较多 i/o 口,给布线带来不便,此方案适用于按键较少的情况。 在本设计中所需要的控制点数的较少,只需要几个功能键,简便、易操作、 成本低就成了首要考虑的因素。所以此时,可采用独立式按键结构。 3.5 语音播报模块 方案一:通过 a/d 转换器、单片机,存储器,da 转换器实现声音信号的 采样、处理、存储和实现。首先将声音信号放大,通过 ad 转换器采样将语音模 拟信号转换成数字信号,并由单片机和处理存放到存储器中,实现录音操作。

15、在录、放音过程中由单片机控制 d/a 转换器,将存储器中的数据转化成声音信 号。此方案安装调试复杂,集成度低,成本也不低。 方案二:采用 isd1420 语音录放。isd1420 是采用模拟存取技术集成的可 反复录放的 20 秒语音芯片,掉电语音不丢失,最大可分 160 段,最小每段语音 长度为 125ms,每段语音都可由地址线控制输出,每 125ms 为一个地址,由 a0- a7 八根地址线控制。该芯片采用多电平直接模拟量存储专利技术,每个采样值 可直接存储在片内单个 eeprom 单元中,因此能够非常真实、自然地再现语音、 音乐、音调和效果声。此外,isd1420 还省去了 a/d 和 d

16、/a 转换器,方便扩展 更多的功能。 综上所述,选择方案二,即 isd1420。 4 设计原理 本系统选用的模块包括:单片机系统,电源模块,lcd 显示模块,语音播 报模块,温度传感器模块,键盘控制模块,具体的电路图参照附录二。 4.1 单片机模块 此次的毕业设计的核心部分是单片机的控制,给以相关的命令,按照人们 的意愿执行相应的操作,这次选用的是 atmel 公司生产的常用芯片 at89s52,主 要是他的价格便宜,而且是我们通用性较强,容易获得。 4.1.1 单片机介绍 cpu 即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制 操作,cpu 由运算器和控制器两部分电路组成。 a

17、. 运算器电路 运算器电路包括 alu(算术逻辑单元) 、acc(累加器) 、b 寄存器、状态寄 存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。 b. 控制器电路 控制器电路包括程序计数器 pc、pc 加1寄存器、指令寄存器、指令译码器、 数据指针 dptr、堆栈指针 sp、缓冲器以及定时与控制电路等。控制电路完成指 挥控制工作,协调单片机各部分正常工作。 c. 定时器/计数器 mcs52单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它 们可以用于定时控制、延时以及对外部事件的计数和检测等。 d. 存储器 mcs52系列单片机的存储器包括数据存储器和程序存

18、储器,其主要特点是 程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。 e. 并行 i/o 口 mcs52单片机共有4个8位的 i/o 口(p0、p1、p2和 p3) ,每一条 i/o 线都 能独立地用作输入或输出。p0口为三态双向口,能带8个 ttl 门电路,p1、p2 和 p3口为准双向口,负载能力为4个 ttl 门电路。 f. 串行 i/o 口 mcs521单片机具有一个采用通用异步工作方式的全双工串行通信接口, 可以同时发送和接收数据。 g. 中断控制系统 8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。 h. 时钟电路 mcs52芯片内部有时钟电

19、路,但晶体振荡器和微调电容必须外接。时钟电 路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2mhz12mhz,典型取值 为6mhz。 i.总线 以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。 系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了 单片机的连线和引脚,提高了集成度和可靠性。 选用单片机的结构: 1 一个8 位算术逻辑单元 2 32 个 i/o 口4 组8 位端口可单独寻址 3 两个16 位定时计数器 4 全双工串行通信 5 6 个中断源两个中断优先级 6 128 字节内置 ram 7 独立的64k 字节可寻址数据和代码区 每个8051 处理周

20、期包括12 个振荡周期每12 个振荡周期用来完成一项操作如取 指令和计算指令执行时间可把时钟频率除以12 取倒数然后指令执行所须的周期 数因此如果你的系统时钟是11.059mhz 除以12 后就得到了每秒执行的指令个数 为921583条指令取倒数将得到每条指令所须的时间1.085ms 。 at89s52的管脚图如图4.1所示: 图4.1 at89s52管脚图 4.1.2 单片机外围电路设计 本设计选用的 at89s52 是一个低功耗,高性能 cmos 8 位单片机,片内含 4k bytes isp(in-system programmable)的可反复擦写 1000 次的 flash 只读程

21、序存储器,器件采用 atmel 公司的高密度、非易失性存储技术制造,兼容标准 mcs-51 指令系统及 80s52 引脚结构,芯片内集成了通用 8 位中央处理器和 isp flash 存储单元,功能强大的微型计算机的 at89s52 可为许多嵌入式控制应用 系统提供高性价比的解决方案。at89s52 具有如下特点:40 个引脚,4k bytes flash 片内程序存储器,128 bytes 的随机存取数据存储器(ram) ,32 个外部 双向输入/输出(i/o)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编 程定时计数器,2 个全双工串行通信口,看门狗(wdt)电路,片内时钟

22、振荡器。 此外,at89s52 设计和配置了振荡频率,并可通过软件设置省电模式。空 闲模式下,cpu 暂停工作,而 ram 定时计数器,串行口,外中断系统可继续工 作,掉电模式冻结振荡器而保存 ram 的数据,停止芯片其它功能直至外中断激 活或硬件复位。同时该芯片还具有 pdip、tqfp 和 plcc 等三种封装形式。 at89s52 单片机综合了微型处理器的基本功能。 当 at89s52 芯片接到来自温度传感器的信号时,其内部程序将根据信号的 类型进行处理,并且将处理的结果送到显示模块、报警模块、语音播报模块, 发送控制信号控制各模块。该模块在硬件设计方面,其外围电路提供能使之工 作的晶振

23、脉冲、复位按键,四个 i/o 口分别用于外围设备连接。单片机 at89s52 硬件连接图如图 4.2 所示,其中 p0 接口外接上拉电阻以保证高低电平 的准确性。单片机 at89s52 的 i/o 端口具体分配与下表 4.1: 图 4.2 单片机与外围设备硬件连接图 表 4.1 at89s52 的 i/o 端口具体分配 at89s52 的 io 端 口外接点 p0.0-p0.7lcd 显示地址端口 p1.0-p1.7语音芯片播音地址端口 p2.0ds18b20 通道 p2.1-p2.4连接键盘控制端口 p2.6连接报警器端口 p3.3开始播音口 p3.6lcd 读/写选择端 p3.7lcd 数

24、据/命令端 p2.7lcd 使能端 4.1.3 at89s52 复位电路 系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状 态下即单片机的片内电路初始化,使单片机从一种确定的初态开始运行。 at89s52 的复位是由外部的复位电路来实现的。复位引脚 rst 通过一个斯密特 触发器与复位电路相连,斯密特触发器用来抑制噪声,复位电路通常采用上电 自动复位和按钮复位两种方式。 手动复位:手动复位需要人为在复位输入端加高电平让系统复位。一般采用 的方法是在 rst 端和正电源 vcc 之间接一个按键,当按下按键后,vcc 和 rst 端接通,rst 引脚处有高电平,而且按键动作一般是

25、数十毫秒、大于两个机器 周期的时间,能够安全的让系统复位。 上电复位:上电复位电路是种简单的复位电路,只要在 rst 复位引脚接 一个电容到 vcc,接一个电阻到地就可以了。上电复位是指在给系统上电时, 复位电路通过电容加到 rst 复位引脚一个短暂的高电平信号,这个复位信号随 着 vcc 对电容的充电过程而回落,所以 rst 引脚复位的高电平维持时间取决于 电容的充电时间。为了保证系统安全可靠的复位,rst 引脚的高电平信号必须 维持足够长的时间。 在本设计中复位电路的设计是采用简单,用得比较广的复位电路接法,如 图 4.3 所示,它具有上电复位和按键复位的双重复位功能。 图 4.3 复位电

26、路 4.1.4 at89s52 时钟电路 时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准, 有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电 路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种 是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路图 4.4 所 示: 图 4.4 时钟电路图 at89s52 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增 益反向放大器的输入端为芯片引脚 xtal1,输出端为引脚 xtal2。这两个引脚跨 接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。 4.24.2 电源模块电

27、源模块 鉴于系统使用的单片机 at89s52 和各芯片工作电压在 5v 左右。我们选择 了 5v 稳压电源给单片机和各芯片供电。电路由简单实用的三端稳压器构成,输 入电压 5v,满足大部分电路的要求,电源电路图如下图 4.5 所示,由于使用了 全桥,电压输入既可以使用交流输入,又可以使用正负直流输入,能够防止由 于极性接反造成的事故。滤波电容使用电解电容与小电容并联的方式,能够有 效消除高频自激现象。发光二极管接到电源与地之间,如果电源输出不正常, 发光二极管都会出现工作异常,提示电源部分故障。 图 4.5 电源电路图 4.3 温度传感器模块 本模块主要作用是进行温度采集,然后经采集的数据送入

28、 at89s52 里进行 分析处理。在本次设计中采用了 ds18b20 作为数据采集器,它的精度最少可以 精确到 0.0625,完全可以用来进行环境温度的测量。ds18b20 是美国 dallas 公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微 处理器处理,而且可以在一条总线上挂接任意多个 ds18b20 芯片,构成多点温度 检测系统无需任何外加硬件。ds18b20 数字温度传感器可提供 912 位温度读 数,读取或写入 ds18b20 的信息仅需一根总线,总线本身可以向所有挂接的 ds18b20 芯片提供电源,而不需额外的电源。由 ds18b20 这一特点,非常适合于

29、 多点温度检测系统,硬件结构简单,方便联网,在仓储管理、工农业生产制造、气 象观测、科学研究以及日常生活中被广泛应用。 4.3.1 ds18b20 的测温原理 ds18b20 内有一个能直接转化为数字量的温度传感器,其分辨率 9,10 ,11 ,12bit 并且可编程,通过设置内部配置寄存器来选择温度的转换精度,出厂时默 认设置 12bit。温度的转换精度有 0.5、0.25、0.125、0.0625。温度 转换后以 16bit 格式存入便笺式 ram,可以用读便笺式 ram 命令(beh) 通过 1 - wire 接口读取温度信息,数据传输时低位在前,高位在后。内部温度数据格式 如图 4.6

30、 所示。温度/数字对应关系如表 4.2 所示(分辨率为 12bit 时) 。由于 ds18b20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很 重要。操作协议为:初始化 ds18b20(发复位脉冲)发 rom 功能命令发存 储器操作命令处理数据。 表 4.2 温度和数据对应表 温度二进制数据十六进制数据 +125c0000 0111 1101 000007d0h +85c*0000 0101 0101 00000550h +25.0625c0000 0001 1001 00010191h +10.125c0000 0000 1010 001000a2h +0.5c0000 00

31、00 0000 10000008h 0c0000 0000 0000 00000000h -0.5c1111 1111 1111 1000fff8h -10.125c1111 1111 0101 1110ff5eh -25.0625c1111 1110 0110 1111fe6fh -55c1111 1100 1001 0000fc90h 图 4.6 ds1820b 内部温度数据格式 4.3.2 ds18b20 与 at89s52 的接口电路设计 ds18b20 可以从单总线上得到能量并储存在内部电容中,该能量是当信号线 处于低电平期间消耗,在信号线为高电平时能量得到补充,这种供电方式称为 寄

32、生电源供电。ds18b20 也可以由 35.5v 的外部电源供电。所以在硬件 上,ds18b20 与单片机的连接有两种方法,一种是 vcc 接外部电源,gnd 接地, i/o 与单片机的 i/o 线相连;另一种是用寄生电源供电,此时 udd、gnd 接地, i/o 接单片机 i/o。无论是内部寄生电源还是外部供电,i/o 口线要接 5k 左 右的上拉电阻.我们采用的是第一种连接方法, 如图 4.7 所示:把 ds18b20 数据 线与 at89s52 的 p2.0,再加上上拉电阻。 图 4.7 ds18b20 与 at89s52 的接口电路 4.4 键盘控制模块 按键的开关状态通过一定的电路转

33、换为高、低电平状态。按键闭合过程在 相应的 i/o 端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达 到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。 本系统中用到四个功能控制按键,用 p2 的 4 个 i/o 口接 4 个独立式按键即 可满足需要,软件消除抖动,当发现有键按下时,延时10-20ms再查询是否 有键按下,若没有键按下,说明上次查询结果为干扰或抖动;若没有键按下, 说明上次查询结果为干扰或抖动;若仍有键按下,则说明闭合键已稳定。准确 判断去执行相应的程序。电路图如图 4.8 所示。 图 4.8 键盘控制电路 4.5 报警模块 报警模块的工作原理是当温度传

34、感器检测到的温度高于温度的上限或低于 温度的下限设定值时单片机的 p2.6 发出高电平信号促使 pnp 三极管导通点亮发 光二极管,蜂鸣器也发出响声,产生声光报警。电路图如图 4.9 所示。 图 4.9 报警电路 4.6 液晶显示模块 该模块是由 rt1602 液晶显示器件组成, 第 3 脚: vl 为液晶显示器对比度 调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产 生“鬼影” ,使用时可以通过一个 10k 的电位器调整对比度。第 4 脚:rs 为寄 存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:rw 为读写信号线,高电平时进行读操作,低电平时进行

35、写操作。当 rs 和 rw 共同 为低电平时可以写入指令或者显示地址,当 rs 为低电平 rw 为高电平时可以读 忙信号,当 rs 为高电平 rw 为低电平时可以写入数据。第 6 脚:e 端为使能端, 当 e 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:d0d7 为 8 位双向数据线。由上可知 1602 基本操作时序如表 4。其第 1516 脚:背光电 源脚。rt1602 与单片机的应用连接电路图如图 4.10 所示。 表 4.3 lcd1602 基本操作时序 基本时序操作输入输出 读状态 rs=l,r/w=h,e=h dod7=状态 读数据 rs=h,r/w=h,e=h 无

36、写指令rs=l,r/w=l,e=高脉冲,dod7=指令码dod7=数据 读指令rs=h,r/w=l,e=高脉冲,dod7=数据无 图 4.10 液晶显示模块接口电路 4.7 语音播报模块 本模块采用的核心语音芯片 isd1402 语音芯片是美国 isd(information storage device)公司的产品。它包括时钟振荡器、128k 可编程电擦除只读存 储器(eeprom)、低噪前置放大器、自动增益控制电路、抗干扰滤波器、差分 功率放大器等电路。isd1400 系列语音芯片采用直接存储模拟信号,自动待机 省电,可编程电擦除只读存储和总线技术。isd1400 是一种具有高保真、录音

37、数据永久保存、省电、适用于同单片机接口特点的新一代语音芯片。isd1420 是 isd1400 系列中录音时长为 20s 语音芯片。isd1420 是采用模拟存取技术集 成的可反复录放的 20 秒语音芯片,掉电语音不丢失,最大可分 160 段,最小每 段语音长度为 125ms,每段语音都可由地址线控制输出,每 125ms 为一个地址, 由 a0-a7 八根地址线控制。 4.7.1 isd1420 语音芯片录放音电路设计 分段录音时,isd1420 的 a0-a7 用作地址输入线,a6、a7 不可同时为高电 平,所以地址范围为 00h-9fh,即为十进制码 0-159 共 160 个数值。这表明

38、 isd1420 的 eeprom 模拟存储器最多可被划分为 160 个存储单元,也就是说 isd1420 最多可存储 160 个语音段,语音段的最小时间长度为 0.125s。不同分 段的选择是通过对 a0-a7 端接不同的高低电平来实现。 isd1420 分段录音可以通过硬件(开关)来实现也可以通过软件编程来实 现。图 4.11 为硬件实现录音和放音的电路图。 图 4.11 语音芯片录音和放音电路 其中 isd1420 各引脚说明如下: a0-a7地址输入端,当 a6 和 a7 不全为高电平时,a0-a7 为分段录音信息 地址线,不同的地址对应不同的录音片断。 mic话筒输入端,话筒输入信号

39、通过电容交流耦合至此引脚并传给片上预 放大器,耦合电容 c7 的值和该端内阻 r7(10k)决定语音信号通频带下限频率。 micref话筒参考输人端,micref 是预放大器的反相输入端,配合外电路 可使片上预放大器具有较高的噪声抑制比和共模抑制比。 ana in模拟信号输人端,对于话筒输入,ana in 引脚应通过外部电容c4 与ana out引脚连接,耦合电容c4决定片上控制预放大器通频带的下限频率。 ana out预放大器的输出端,预放大器的电压增益取决于 agc 电平,对于 小信号输入电平,其增益最大为 24db,对于强信号,增益较低。 agc自动增益控制端,agc 动态地调整预放大器

40、增益,使加至 mic 输入端 的非失真信号的范围扩展。内阻抗(5 欧)和外部电容决定 agc 的响应时间, 外部电容和外部电阻的 rc 时间常数决定 agc 的释放时间。 sp+、sp- 喇叭输出端,该端可直接驱动 16 欧的喇叭。 xclk外接时钟输入端,isd1420 具有内部时钟,一旦接人外部时钟,内 部时钟会自动失去作用。改电路不用外部时钟该引脚接地,一般不推荐使用外 部时钟,除非要求时钟信号特别精确。 recled工作状态指示端,在录音或放音时该端输出低电平,可驱动一个 led 来指示状态。在录音过程中指示灯一直亮着,在放音结束时,指示灯闪烁 一下。 playe边沿触发放音控制端,该

41、端输人一低脉冲,芯片即进入放音状态, 直至遇到信息结束标记(eom)或到存储空间的末尾时回放过程结束,电路自动 进入准备状态。回放过程中 playe 变化不会影响回放过程。 playl电平触发放音控制端,该端电平变为低电平并保持,芯片进入放音 状态,放音过程持续到该端电平由低变高或遇到信息结束标记(eom),结束后 电路进入准备状态。 rec录音触发端,rec 一旦变为低电平,芯片就进入录音状态,rec 的权 限优先于 playe 和 playl,在放音期间若遇 rec 接低电平时,放音就会立即停 止并转入录音状态开始录音。录音期间 rec 应始终保持低电平,rec 变高或存 储空间变满时录音

42、过程结束,这时在录音截止的地方会记录一个信息结束标记 (eom)。 vccd、vcca数字电源正端和模拟电源正端。 vssd、vssa数字地和模拟地。 电路实现录音功能说明如下,s1、s2、s3 分别是控制录音和放音按键,当 按下 s1 时开始录音,s2、s3 为两种方式的放音按键,当按一下 s2 时开始放音, 是下降沿触发的,而 s3 为电平控制的,必须一直按着此键直至放音结束。led 和限流电阻组成录放音指示电路,当录音结束、录音超出时限(存储器溢出) 或放音结束时,isd1420 的 25 脚呈高电平,led 熄灭。对 isd1420 进行分段录 音之前要先列出语音信息与分段地址的对照表

43、,如表 4.4 所示。然后检查电路 连接、接线和电源情况。并通过对照表来设置 8 个开关选择要录音的地址,最 后按下录音键直至录音结束,松开录音键,重复此操作就可以将自己需要录入 的内容全部录入到芯片中。另外,a0 和 a1 都需要接地,因为我们要确保分段 间隔不小于 0.5s,所以至少要四段,否则录音的信息可能会重叠,导致放音时 达不到自己的要求。用户录制的语音每一段结束后芯片自动设有段结束标志 (eom) ,芯片录满后设有溢出标志(ovf) 。 表 4.4 分段语音信息与地址对照表 语 音 信 息 分段 地址 a7a6a5a4a3a2a1a0 100h 0 0 0 0 0 0 0 0 20

44、8h 0 0 0 0 1 0 0 0 310h0 0 0 1 0 0 00 418h0 0 0 1 10 00 520h0 0 1 0 0 0 00 628h0 0 1 0 1 0 00 730h0 01 1 0 0 00 838h0 01 1 1 0 00 940h0 1 0 00 0 0 0 十48h0 1 0 0 1 0 00 摄氏度50h0 1 0 1 0 0 0 0 现在温度是58h1 0 0 1 1 0 0 0 4.7.2 isd1420 与 at89s52 接口电路设计 isd1420 录音和放音电路可以通过硬件开关控制。本设计录音是用硬件控 制,但是播报温度放音是通过 at89

45、s52 来控制的。单片机某一段的起始地址进 行放音操作,遇到段结束标志(eom)即自动停止放音,单片机收到段结束标志 (eom)就开始触发下一段语音的起始地址,如此控制,即可以将很多、不同段 的语音组合在一起成一句话放音出来,实现语音的自动组合。isd1420 与 at89s52 的接口连接入下:at89s52 的 p1 端口连接地址线 isd1420 的 a0- a7,isd1420 放音电路通过 at89s52 的 p3.3 口控制 player 放音。具体连接图 见图 4.11。 5 软件部分 5.1 开发工具介绍 单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程 cpu 可

46、执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过 汇编软件变为机器码,用于 msc-51 单片机的汇编软件有早期的 a51,随着单片 机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,keil 是 目前最流行开发 mcs-51 系列单片机的软件。keil c51 汇编,plm 语言和 c 语言 的程序设计,界面友好。keil 是美国 keil software 公司出品的 52 系列兼容 单片机 c 语言开发系统。用过汇编语言后再使用 c 语言来开发,体会更加深刻。 keil c51 软件提供丰富的库,与汇编相比,c 语言在功能上,结构上,可 读性,可维护性上有

47、明显的优势,因而易学易用函数和功能强大的集成开发调 试工具,全 windows 界面。另外重要的一点,只要看一下编译后生产的汇编代 码,就能体会到 keilc51de 生成的目标代码效率非常之高,多数语句生成的汇 编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。 5.2 系统的主程序设计 主程序是在程序运行的过程中必须先经过初始化,包括键盘程序,测量程 序,以及各个控制端口的初始化工作。系统在初始化完成后就进入读取温度测 量程序,实时的测量当前的温度,得到温度后判断温度是否超过温度设置的上 下限。超出(低于)温度上下限,调用报警子程序。再显示电路在 lcd 上显示。 系统软件设

48、计的总体流程图 5.1 所示 初始化 判断温度在设定范围 显示温度子程序 报警子程序 显示时间子程序 测量温度子程序 判断显示模式子程序 显示温度上下 限子程序 键盘扫描子程序 图 5.1 主程序流程图 5.2.1 键盘扫描子程序 对于系统来说,键输入程序是整个键盘控制应用系统的核心。当所设的功 能键按下时,本系统应完成该键所设的功能。本系统具体实现功能如下表 5.1。按键闭合过程在相应的 i/o 端口形成一个负脉冲。闭合和释放过程都要经 过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状 态,称为抖动。为了保证 cpu 对键一次闭合,仅作一次键输入处理,必须去抖 动影响。本

49、设计采用软件去抖的办法是在检测到有按键按下时,执行一个 510ms 的延迟程序后在确认该键电平是否仍保持闭合状态电平,如保持闭合 状态电平则确认为真正键按下的状态,从而消除了抖动影响。键盘子程序流程 图如下 5.2 所示(延时子程序未在流程图中画出) 。 开机 表 5.1 按键功能表 按键实现功能 sw5 按下一次进入时间秒设置模式 sw5 按下二次进入时间分设置模式 sw5 按下三次进入时间时设置模式 sw5 按下四次进入温度上限设置模式 sw5 按第五次进入温度下限设置模式 sw5 按下第六次退出设置模式 sw6 按下一次在设置模式下对应数值加一 sw7 按下一次在设置模式下对应数值减一

50、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) 时加 1 if(ct=4)上限加 1 if(ct=5)下限加 1 语音播报子程序if(ct=0)无效; if(ct=1)秒减 1; if(ct=2)分减 1; if(ct=3) 时减 1 if(ct=4)上限加减 if(ct=5)下限减 1 图 5.2 键盘子程序流程图

51、 5.2.2 测量温度子程序设计 由在整个语音温度计的设计中是以正确采集温度为前提的,因为如果温度 采集就不正确,那么即使后续电路如显示和报温电路均正确,最后的结果仍然 不能达到我们所要的目标,也就是不能正确的对环境温度进行显示和报温,所 以关于 ds18b20 的温度采集是非常重要的。ds18b20 单线通信功能是分时完成 的,它有严格的时隙概念,因此读写时序很重要。操作协议为:初始化 ds18b20(发复位脉冲)发 rom 功能命令发存储器操作命令处理数据。其 测温子程序流程图如 5.3 所示。部分控制 ds18b20 指令功能如表 5.2 所示: 初始化 写跳过 rom 指令 写启动温度

52、转换指令 延时 初始化 写跳过 rom 指令 写读温度转换指令 读取温度 图 5.3 测温度子程序流程图 表 5.2 控制 ds18b20 指令表 指 令 指令代码 操 作 说 明 跳过 romcch忽略 64 位 rom 编码 温度转换 44h启动 ds18b20 进行温度转换 读暂存器 beh读暂存器 9 个字节内容 写暂存器 4eh将数据写入暂存器的 th、tl 字节 复制暂存器 48h把暂存器的 th、tl 字节写到 e2ram 中 重新调 e2ramb8h把 e2ram 中的 th、tl 字节写到暂存器 th、tl 中 读电源供电方式 b4h启动 ds18b20 发送电源供电方式的信

53、号给主 cpu 5.2.3 报警子程序 初始默认上下限报警值,或键盘设定报警值,取量实时测温度值与温度上 下限值比较,超过报警范围,导通三极管,触发蜂鸣器与指示灯报警,当实时 温度恢复到报警范围内温度时,自动停止报警。流程图如图 5.4 所示 图 5.4 报警子程序流程图 5.2.4 实现时钟功能的程序设计 本系统的时钟直接用单片机的定时器编程以实现时钟,节省硬件。 tmod=0 x01 定时器 t0 初始化方式 1。定时时间=(65536-t0 初值)*时钟周期 *12。本设计中定时时间 50ms,时钟周期为 12m,顾 th0=0 x3c;tl0=0 xb0 时钟实 现流程图如图 15.5

54、 所示: 不报警 小于 0 小于 0 大于 0 小于 0 大于 0 大于 0 读取温度值 温度值减上限值 温度值减下限值 报警 图 5.5 时钟功能实现流程图 5.2.5 显示程序设计 本设计使用的 lcd1602 基本操作时序如下表 4.2。清楚基本操作时序就可以 完成写指令和写数据到 lcd 中的子函数设计。在子函数中为了使液晶显示更加 稳定,可以最简短的延时。 显示模式包括当前温度显示,时间显示模式,温度上下限,他们实现都是 先初始化调用显示字符串子程序后再调用显示指定位置字符子程序,具体看显 示当前温度子程序流程图如图 5.6 所示: 定时器 t0 初始化(方式 1) 判断 mstcn

55、t=20 判断 seconde=60 seconde + mstcnt+ hour+ 判断 hour =24 hour=0 当前检测温度数据移入显示寄存器 lcd 初始化 显示字符temp: . oc- 显示当前温度 图 5.6 显示当前温度子程序流程图 5.2.6 语音播放子程序 单片机语根据语音信息与分段地址的对照表和当前温度组合出播报当前的 温度语音数据地址,再通过 p3.3 控制语音芯片放音,把处理的数据地址通过 p1 端口写给语音芯片,程序流程如图 5.7 所示: 播报“现在温度是”, 播报温度值的个位 温度值10 播报“度” 个位为零 播报温度值的十位 播报“十” 播报温度值个位播

56、报“度” 个位不为零 播报温度值的十位 播报“十” 播报“度” 图 5.7 语音播放子程序 6 仿真结果数据分析 6.1 功能仿真和结果 各项功能仿真方法及仿真结果如下表 6.1 表 6.1 各项功能仿真方法及结果 类 别 仿真项目仿真方法仿真结果 (1)正常开机有嘟声开机实现 仿真实现 (2)测量范围开机显示,调整 ds18b20 的温度是否都可以显示 仿真实现 (3)显示时间和温度开机显示仿真实现 (4)调整时间、日期, 设定最低、最高温度 按 sw5 进入时间、最低、 最高温度调整功能,sw6 加 1,sw7 减 1,最后按 sw5 确认温度设定结束 仿真实现 (5)报警功能调整 ds1

57、8b20 温度分别超 过上限与下限,启动蜂鸣 器与指示灯 仿真实现 基 本 部 分 (6)语音播放功能观察连接语音芯片 p1 和高 低电平的变化仿真实现 7 结束语 本文设计的语音温度计,即可用于人民生活中的日常用品,还可以单独作 为系统为了保证某特定环境温度维持在设定的范围内,以保证工作系统在稳定 的状态下工作。本文设计的语音温度计成本很低,如果采用大批量生产的话, 生产成本会更低,可以带来一定的经济效益。 经过这段时间的方案论证、系统的硬件和软件的设计、系统的仿真和调试。 查阅了大量的关于传感器、单片机及其接口电路、以及控制方面的理论。经过 了一番特殊的体验后,靠用所学的专业知识来解决问题

58、。检查了自己的知识水 平,使我对自己有一个全新的认识。通过这次毕业设计,不仅锻炼自己分析问 题、处理问题的能力,还提高了自己的动手能力。这些培养和锻炼对于我们这 些即将走向工作岗位的大学生来说,是很重要的。 这次毕业设计基本的完成了任务书的要求,实现了温度的控制和语音播报。 通过仿真表明系统的设计是正确的,可行的。但是由于设计者的设计经验和知 识水平有限,本文设计的语音温度计还存在许多不足和缺陷。 参考文献 1 余小平等.电子系统设计m .北京航空航天大学出版社.2007 133-135 2 何立民等.单片机中级教程原理与应用m.北京航空航天大学出版 社. 1999 3 赵建领.51 系列单片

59、机开发宝典m.电子工业出版社.2007 4 李东生等.protel 99se 电路设计教程m.电子工业出版社.2007 5 郭天祥.新概念 51 单片机 c 语音教程m.电子工业出版社.2008 6 王细荣.文献信息检索与论文写作m.上海交通大学出版社.2009 7 马令坤等.电子工艺实训教程m.西安电子科技大学出版社.2005 8 dallas 公司. ds18b20 resolution one wire digital thermometer. g.2000 9 isd 公司datebook of voice recoding while(ms-) for(j=0; j top_temp

60、 | temp (char)bottom_temp) beep(); displaytemp(); /显示温度子函数 if(displaytimeflag) /判断显示模式 displayclock(); /显示时间子函数 else displaytemplim(); /显示温度上下限子函数 delayms(10); /*以下源代码是显示子程序 lcd1602.h 部分*/ #ifndef_lcd1602_h_ #define _lcd1602_h_ #include #include #define busy 0 x80 /lcd 忙检测标志 #define dataport p0 sbit

温馨提示

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

评论

0/150

提交评论