基于AT89S52智能语音温度计的设计附电路图及程序_第1页
基于AT89S52智能语音温度计的设计附电路图及程序_第2页
基于AT89S52智能语音温度计的设计附电路图及程序_第3页
基于AT89S52智能语音温度计的设计附电路图及程序_第4页
基于AT89S52智能语音温度计的设计附电路图及程序_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、tractAT89S52 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. Te

4、mperature 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,

5、 manual real-time broadcast time temperature function.Keyword:DS18B20;LCD;speech function;sounding and light alarm.目录摘要.IIABSTRACT.III1 引言.12 设计要求.13 方案论证.13.1 电源模块.23.2 温度传感器模块.23.3 显示模块.23.4 键盘控制模块.33.5 语音播报模块.34 设计原理.4.4.44.1.2 单片机外围电路设计.64.1.3 AT89S52 复位电路 .74.1.4 AT89S52 时钟电路 .84.2 电源模块.9.94.3.

6、1 DS18B20 的测温原理 .104.3.2 DS18B20 与 AT89S52 的接口电路设计 .11.11.12.13.144.7.1 ISD1420 语音芯片录放音电路设计 .144.7.2 ISD1420 与 AT89S52 接口电路设计 .175 软件部分.185.1 开发工具介绍.18.18.19.20.21.22.23.246 仿真结果数据分析.25.257 结束语.25参考文献.27附录一:电路图.28附录二:源程序.291 引言21 世纪是人类全面进入信息电子化的时代,现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。随着人类

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

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

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

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

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

12、比拟的,同时可以显示大量信息,除数字外,还可以显示字母,曲线,比传统的 LED 数码显示器的画面有了质的提高。虽然 LCD 显示器的价格比传统的 LED数码管要贵些,但它的显示效果更好,是当今显示器的主流,所以采用 LCD 作为显示器。采用 LCD,更容易实现题目的要求,对后续的功能兼容性高,只需将软件修改即可,可操作性强,易于度数,采用 RT1602 两行十六字符的显示,能同时显示时间,温度。综上分析,采用第二种方案。3.4 键盘控制模块方案一:44 矩阵式键盘。此方案对于本系统来说无非是浪费 I/O 占用MCU 的资源,不利于系统的扩展,这就使系统的实用性降低,况且本系统根本不需要 16

13、个按键。方案二:独立式按键。对于独立式按键来说,如果设置过多按键,虽然会占用较多 I/O 口,给布线带来不便,此方案适用于按键较少的情况。在本设计中所需要的控制点数的较少,只需要几个功能键,简便、易操作、成本低就成了首要考虑的因素。所以此时,可采用独立式按键结构。3.5 语音播报模块方案一:通过 A/D 转换器、单片机,存储器,DA 转换器实现声音信号的采样、处理、存储和实现。首先将声音信号放大,通过 AD 转换器采样将语音模拟信号转换成数字信号,并由单片机和处理存放到存储器中,实现录音操作。在录、放音过程中由单片机控制 D/A 转换器,将存储器中的数据转化成声音信号。此方案安装调试复杂,集成

14、度低,成本也不低。方案二:采用 ISD1420 语音录放。ISD1420 是采用模拟存取技术集成的可反复录放的 20 秒语音芯片,掉电语音不丢失,最大可分 160 段,最小每段语音长度为 125ms,每段语音都可由地址线控制输出,每 125ms 为一个地址,由 A0-A7 八根地址线控制。该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个 EEPROM 单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声。此外,ISD1420 还省去了 A/D 和 D/A 转换器,方便扩展更多的功能。综上所述,选择方案二,即 ISD1420。4 设计原理本系统选用的模块包括:单片机

15、系统,电源模块,LCD 显示模块,语音播报模块,温度传感器模块,键盘控制模块,具体的电路图参照附录二。此次的毕业设计的核心部分是单片机的控制,给以相关的命令,按照人们的意愿执行相应的操作,这次选用的是 ATMEL 公司生产的常用芯片 AT89S52,主要是他的价格便宜,而且是我们通用性较强,容易获得。单片机介绍CPU 即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU 由运算器和控制器两部分电路组成。 a. 运算器电路 运算器电路包括 ALU(算术逻辑单元) 、ACC(累加器) 、B 寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。 b

16、. 控制器电路控制器电路包括程序计数器 PC、PC 加1寄存器、指令寄存器、指令译码器、数据指针 DPTR、堆栈指针 SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。 c. 定时器/计数器 MCS52单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。 d. 存储器 MCS52系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。 e. 并行 I/O 口 MCS52单片机共有4个8位的 I/O 口(P0、P1、P2和 P3)

17、,每一条 I/O 线都能独立地用作输入或输出。P0口为三态双向口,能带8个 TTL 门电路,P1、P2和 P3口为准双向口,负载能力为4个 TTL 门电路。 f. 串行 I/O 口 MCS521单片机具有一个采用通用异步工作方式的全双工串行通信接口,可以同时发送和接收数据。 g. 中断控制系统 8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。 h. 时钟电路 MCS52芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz12MHz,典型取值为6MHz。 i.总线 以上所有组成部分都是通过总线连接起来,从而构

18、成一个完整的单片机。系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。 选用单片机的结构: 1 一个8 位算术逻辑单元 2 32 个 I/O 口4 组8 位端口可单独寻址 3 两个16 位定时计数器 4 全双工串行通信 5 6 个中断源两个中断优先级 6 128 字节内置 RAM 7 独立的64K 字节可寻址数据和代码区 每个8051 处理周期包括12 个振荡周期每12 个振荡周期用来完成一项操作如取指令和计算指令执行时间可把时钟频率除以12 取倒数然后指令执行所须的周期数因此如果你的系统时钟是11.059MHz 除以12 后就得到了

19、每秒执行的指令个数为921583条指令取倒数将得到每条指令所须的时间1.085ms 。AT89S52的管脚图如图4.1所示: 图4.1 AT89S52管脚图 单片机外围电路设计 本设计选用的 AT89S52 是一个低功耗,高性能 CMOS 8 位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS-51 指令系统及 80S52 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT

20、89S52 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S52 设计和配置了振荡频率,并可通过软件设置省电模式。空闲模式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中

21、断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式。AT89S52 单片机综合了微型处理器的基本功能。当 AT89S52 芯片接到来自温度传感器的信号时,其内部程序将根据信号的类型进行处理,并且将处理的结果送到显示模块、报警模块、语音播报模块,发送控制信号控制各模块。该模块在硬件设计方面,其外围电路提供能使之工作的晶振脉冲、复位按键,四个 I/O 口分别用于外围设备连接。单片机AT89S52 硬件连接图如图 4.2 所示,其中 P0 接口外接上拉电阻以保证高低电平的准确性。单片机 AT89S52 的 I/O 端口具体分配与下表 4.1: AT89S52 的 I

22、/O 端口具体分配AT89S52 的 IO 端口外接点LCD 显示地址端口语音芯片播音地址端口DS18b20 通道连接键盘控制端口连接报警器端口开始播音口LCD 读/写选择端LCD 数据/命令端LCD 使能端4.1.3 AT89S52 复位电路系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下即单片机的片内电路初始化,使单片机从一种确定的初态开始运行。AT89S52 的复位是由外部的复位电路来实现的。复位引脚 RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,复位电路通常采用上电自动复位和按钮复位两种方式。手动复位:手动复位需要人为在复位输入端加高电平让

23、系统复位。一般采用的方法是在 RST 端和正电源 VCC 之间接一个按键,当按下按键后,VCC 和 RST端接通,RST 引脚处有高电平,而且按键动作一般是数十毫秒、大于两个机器周期的时间,能够安全的让系统复位。上电复位:上电复位电路是种简单的复位电路,只要在 RST 复位引脚接一个电容到 VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到 RST 复位引脚一个短暂的高电平信号,这个复位信号随着 VCC 对电容的充电过程而回落,所以 RST 引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST 引脚的高电平信号必须维持足够长的时间。在本

24、设计中复位电路的设计是采用简单,用得比较广的复位电路接法,如图 4.3 所示,它具有上电复位和按键复位的双重复位功能。图 4.3 复位电路4.1.4 AT89S52 时钟电路示:图 4.4 时钟电路图AT89S52 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。4.24.2 电源模块电源模块鉴于系统使用的单片机 AT89S52 和各芯片工作电压在 5V 左右。我们选择了 5V 稳压电源给单片机和各芯片供电。电路由简单实用的三端稳压器构成,输入电压

25、5V,满足大部分电路的要求,电源电路图如下图 4.5 所示,由于使用了全桥,电压输入既可以使用交流输入,又可以使用正负直流输入,能够防止由于极性接反造成的事故。滤波电容使用电解电容与小电容并联的方式,能够有效消除高频自激现象。发光二极管接到电源与地之间,如果电源输出不正常,发光二极管都会出现工作异常,提示电源部分故障。图 4.5 电源电路图4.3 温度传感器模块本模块主要作用是进行温度采集,然后经采集的数据送入 AT89S52 里进行分析处理。在本次设计中采用了 DS18B20 作为数据采集器,它的精度最少可以精确到 0.0625,完全可以用来进行环境温度的测量。DS18B20 是美国 DAL

26、LAS 公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微处理器处理,而且可以在一条总线上挂接任意多个 DS18B20 芯片,构成多点温度检测系统无需任何外加硬件。DS18B20 数字温度传感器可提供 912 位温度读数,读取或写入 DS18B20 的信息仅需一根总线,总线本身可以向所有挂接的DS18B20 芯片提供电源,而不需额外的电源。由 DS18B20 这一特点,非常适合于多点温度检测系统,硬件结构简单,方便联网,在仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中被广泛应用。 DS18B20 的测温原理。温度转换后以 16bit 格式存入便笺式 RAM,可以

27、用读便笺式 RAM命令(BEH) 通过 1 - Wire 接口读取温度信息,数据传输时低位在前,高位在后。内部温度数据格式如图 4.6 所示。温度/数字对应关系如表 4.2 所示(分辨率为12bit 时) 。由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。操作协议为:初始化 DS18B20(发复位脉冲)发 ROM功能命令发存储器操作命令处理数据。 表 温度和数据对应表温度二进制数据十六进制数据+125C0000 0111 1101 000007D0h+85C*0000 0101 0101 00000550h+25.0625C0000 0001 1001

28、00010191h+10.125C0000 0000 1010 001000A2h+0.5C0000 0000 0000 10000008h0C0000 0000 0000 00000000h-0.5C1111 1111 1111 1000FFF8h-10.125C1111 1111 0101 1110FF5Eh-25.0625C1111 1110 0110 1111FE6Fh-55C1111 1100 1001 0000FC90h DS1820B 内部温度数据格式 DS18B20 与 AT89S52 的接口电路设计DS18B20 可以从单总线上得到能量并储存在内部电容中,该能量是当信号线处于

29、低电平期间消耗,在信号线为高电平时能量得到补充,这种供电方式称为寄生电源供电。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 的接口电路

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

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

32、同为低电平时可以写入指令或者显示地址,当 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=HDOD7=状态读数据RS=H,R/W=H,E=H无写指令RS=L,R/W=L,E=高脉冲,DOD7=指令码D

33、OD7=数据读指令RS=H,R/W=L,E=高脉冲,DOD7=数据无 图 4.10 液晶显示模块接口电路本模块采用的核心语音芯片 ISD1402 语音芯片是美国 ISD(Information Storage Device)公司的产品。它包括时钟振荡器、128K 可编程电擦除只读存储器(EEPROM)、低噪前置放大器、自动增益控制电路、抗干扰滤波器、差分功率放大器等电路。ISD1400 系列语音芯片采用直接存储模拟信号,自动待机省电,可编程电擦除只读存储和总线技术。ISD1400 是一种具有高保真、录音数据永久保存、省电、适用于同单片机接口特点的新一代语音芯片。ISD1420是 ISD1400

34、 系列中录音时长为 20s 语音芯片。ISD1420 是采用模拟存取技术集成的可反复录放的 20 秒语音芯片,掉电语音不丢失,最大可分 160 段,最小每段语音长度为 125ms,每段语音都可由地址线控制输出,每 125ms 为一个地址,由 A0-A7 八根地址线控制。4.7.1 ISD1420 语音芯片录放音电路设计分段录音时,ISD1420 的 A0-A7 用作地址输入线,A6、A7 不可同时为高电平,所以地址范围为 00H-9FH,即为十进制码 0-159 共 160 个数值。这表明ISD1420 的 EEPROM 模拟存储器最多可被划分为 160 个存储单元,也就是说ISD1420 最

35、多可存储 160 个语音段,语音段的最小时间长度为。不同分段的选择是通过对 A0-A7 端接不同的高低电平来实现。ISD1420 分段录音可以通过硬件(开关)来实现也可以通过软件编程来实现。为硬件实现录音和放音的电路图。图 4.11 语音芯片录音和放音电路其中 ISD1420 各引脚说明如下:A0-A7地址输入端,当 A6 和 A7 不全为高电平时,A0-A7 为分段录音信息地址线,不同的地址对应不同的录音片断。MIC话筒输入端,话筒输入信号通过电容交流耦合至此引脚并传给片上预放大器,耦合电容 C7 的值和该端内阻 R7(10K)决定语音信号通频带下限频率。 MICREF话筒参考输人端,MIC

36、REF 是预放大器的反相输入端,配合外电路可使片上预放大器具有较高的噪声抑制比和共模抑制比。ANA IN模拟信号输人端,对于话筒输入,ANA IN 引脚应通过外部电容C4与ANA OUT引脚连接,耦合电容C4决定片上控制预放大器通频带的下限频率。ANA OUT预放大器的输出端,预放大器的电压增益取决于 AGC 电平,对于小信号输入电平,其增益最大为 24dB,对于强信号,增益较低。AGC自动增益控制端,AGC 动态地调整预放大器增益,使加至 MIC 输入端的非失真信号的范围扩展。内阻抗(5 欧)和外部电容决定 AGC 的响应时间,外部电容和外部电阻的 RC 时间常数决定 AGC 的释放时间。S

37、P+、SP- 喇叭输出端,该端可直接驱动 16 欧的喇叭。XCLK外接时钟输入端,ISD1420 具有内部时钟,一旦接人外部时钟,内部时钟会自动失去作用。改电路不用外部时钟该引脚接地,一般不推荐使用外部时钟,除非要求时钟信号特别精确。RECLED工作状态指示端,在录音或放音时该端输出低电平,可驱动一个LED 来指示状态。在录音过程中指示灯一直亮着,在放音结束时,指示灯闪烁一下。PLAYE边沿触发放音控制端,该端输人一低脉冲,芯片即进入放音状态,直至遇到信息结束标记(EOM)或到存储空间的末尾时回放过程结束,电路自动进入准备状态。回放过程中 PLAYE 变化不会影响回放过程。PLAYL电平触发放

38、音控制端,该端电平变为低电平并保持,芯片进入放音状态,放音过程持续到该端电平由低变高或遇到信息结束标记(EOM),结束后电路进入准备状态。REC录音触发端,REC 一旦变为低电平,芯片就进入录音状态,REC 的权限优先于 PLAYE 和 PLAYL,在放音期间若遇 REC 接低电平时,放音就会立即停止并转入录音状态开始录音。录音期间 REC 应始终保持低电平,REC 变高或存储空间变满时录音过程结束,这时在录音截止的地方会记录一个信息结束标记(EOM)。VCCD、VCCA数字电源正端和模拟电源正端。VSSD、VSSA数字地和模拟地。电路实现录音功能说明如下,S1、S2、S3 分别是控制录音和放

39、音按键,当按下 S1 时开始录音,S2、S3 为两种方式的放音按键,当按一下 S2 时开始放音,是下降沿触发的,而 S3 为电平控制的,必须一直按着此键直至放音结束。LED和限流电阻组成录放音指示电路,当录音结束、录音超出时限(存储器溢出)或放音结束时,ISD1420 的 25 脚呈高电平,LED 熄灭。对 ISD1420 进行分段录音之前要先列出语音信息与分段地址的对照表,如表 4.4 所示。然后检查电路连接、接线和电源情况。并通过对照表来设置 8 个开关选择要录音的地址,最后按下录音键直至录音结束,松开录音键,重复此操作就可以将自己需要录入的内容全部录入到芯片中。另外,A0 和 A1 都需

40、要接地,因为我们要确保分段间隔不小于,所以至少要四段,否则录音的信息可能会重叠,导致放音时达不到自己的要求。用户录制的语音每一段结束后芯片自动设有段结束标志(EOM) ,芯片录满后设有溢出标志(OVF) 。表 4.4 分段语音信息与地址对照表语 音 信 息分段地址A7A6A5A4A3A2A1A0100H 0 0 0 0 0 0 0 0208H 0 0 0 0 1 0 0 0310H0 0 0 1 0 0 00418H0 0 0 1 10 00520H0 0 1 0 0 0 00628H0 0 1 0 1 0 00730H0 01 1 0 0 00838H0 01 1 1 0 00940H0 1

41、 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 04.7.2 ISD1420 与 AT89S52 接口电路设计ISD1420 录音和放音电路可以通过硬件开关控制。本设计录音是用硬件控制,但是播报温度放音是通过 AT89S52 来控制的。单片机某一段的起始地址进行放音操作,遇到段结束标志(EOM)即自动停止放音,单片机收到段结束标志(EOM)就开始触发下一段语音的起始地址,如此控制,即可以将很多、不同段的语音组合在一起成一句话放音出来,实现语音的自动组合。ISD1420 与AT89S52 的接口连接入

42、下:AT89S52 的 P1 端口连接地址线 ISD1420 的 A0-A7,ISD1420 放音电路通过 AT89S52 的口控制 PLAYER 放音。具体连接图见图4.11。5 软件部分5.1 开发工具介绍 单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程 CPU 可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过汇编软件变为机器码,用于 MSC-51 单片机的汇编软件有早期的 A51,随着单片机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,Keil 是目前最流行开发 MCS-51 系列单片机的软件。Keil c51 汇编,PLM 语言和 C 语

43、言的程序设计,界面友好。Keil 是美国 keil software 公司出品的 52 系列兼容单片机 c 语言开发系统。用过汇编语言后再使用 C 语言来开发,体会更加深刻。 Keil C51 软件提供丰富的库,与汇编相比,C 语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生产的汇编代码,就能体会到 KeilC51DE 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。5.2 系统的主程序设计主程序是在程序运行的过程中必须先经

44、过初始化,包括键盘程序,测量程序,以及各个控制端口的初始化工作。系统在初始化完成后就进入读取温度测量程序,实时的测量当前的温度,得到温度后判断温度是否超过温度设置的上下限。超出(低于)温度上下限,调用报警子程序。再显示电路在 LCD初始化判断温度在设定范围显示温度子程序报警子程序显示时间子程序测量温度子程序判断显示模式子程序显示温度上下限子程序键盘扫描子程序图 5.1 主程序流程图5.2.1 键盘扫描子程序对于系统来说,键输入程序是整个键盘控制应用系统的核心。当所设的功能键按下时,本系统应完成该键所设的功能。本系统具体实现功能如下表5.1。按键闭合过程在相应的 I/O 端口形成一个负脉冲。闭合

45、和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。为了保证 CPU 对键一次闭合,仅作一次键输入处理,必须去抖动影响。本设计采用软件去抖的办法是在检测到有按键按下时,执行一个510ms(延时子程序未在流程图中画出) 。表 5.1 按键功能表按键实现功能开机SW5 按下一次进入时间秒设置模式SW5 按下二次进入时间分设置模式SW5 按下三次进入时间时设置模式SW5 按下四次进入温度上限设置模式SW5 按第五次进入温度下限设置模式SW5 按下第六次退出设置模式SW6 按下一次在设置模式下对应数值加一SW7 按下一次在设置模式下对应数值减一SW8 按下

46、一次播报当时温度值键盘开始扫描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图 5.2 键盘子程序流程图5.测量温度子程序设计由在整个语音温度计的设计中是

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

48、指令表指 令 指令代码 操 作 说 明 跳过 ROMCCH忽略 64 位 ROM 编码温度转换 44H启动 DS18B20 进行温度转换 读暂存器 BEH读暂存器 9 个字节内容 写暂存器 4EH将数据写入暂存器的 TH、TL 字节 复制暂存器 48H把暂存器的 TH、TL 字节写到 E2RAM 中 重新调 E2RAMB8H把 E2RAM 中的 TH、TL 字节写到暂存器TH、TL 中 读电源供电方式 B4H启动 DS18B20 发送电源供电方式的信号给主 CPU报警子程序 不报警小于 0小于0大于 0小于 0大于 0大于0读取温度值温度值减上限值温度值减下限值报警图 5.4 报警子程序流程图

49、实现时钟功能的程序设计本系统的时钟直接用单片机的定时器编程以实现时钟,节省硬件。TMOD=0 x01 定时器 T0 初始化方式 1。定时时间=(65536-T0 初值)*时钟周期*12。本设计中定时时间 50ms,时钟周期为 12M,顾 TH0=0 x3c;TL0=0 xb0 时钟实现流程图如图 15.5 所示:定时器 T0 初始化(方式 1)判断 mstcnt=20 判断 Seconde=60Seconde +Mstcnt+Hour+判断 Hour =24Hour=0 时钟功能实现流程图显示程序设计本设计使用的 LCD1602 基本操作时序如下表 4.2。清楚基本操作时序就可以完成写指令和写

50、数据到 LCD 中的子函数设计。在子函数中为了使液晶显示更加稳定,可以最简短的延时。显示模式包括当前温度显示,时间显示模式,温度上下限,他们实现都是先初始化调用显示字符串子程序后再调用显示指定位置字符子程序,具体看显示当前温度子程序流程图如图 5.6 所示:当前检测温度数据移入显示寄存器LCD 初始化显示字符temp: . oC-显示当前温度图 5.6 显示当前温度子程序流程图 语音播放子程序单片机语根据语音信息与分段地址的对照表和当前温度组合出播报当前的温度语音数据地址,再通过控制语音芯片放音,把处理的数据地址通过 P1 端口写给语音芯片,程序流程如图 5.7 所示:播报“现在温度是”,播报

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

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

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

54、e Wire Digital Thermometer. G.20009 ISD 公司Datebook of Voice Recoding&Playback Ics G200011DALLAS. High Precision l-wire Digital ThermometerEB/OL. : / dalsemi .10DALLAS. Understanding and Using Cyclic Redundancy Checks with Dallas Semiconductor iButtonTM ProductsEB/OL. :/ dalsemi .附录一:电路图附录二:源程序/*

55、语音温度计*/*以下源代码是主程序部分 main.c*/#include #include LCD1602.h#include clock.h#include key.h#include DS18B20.h#include temp.h#include BEEP.h#include ISD1420.h#include speakTEMP.hvoid delayMs(unsigned int ms) /延时 unsigned char j;while(ms-)for(j=0; j top_temp | temp (char)bottom_temp) beep();displayTemp(); /

56、显示温度子函数if(DisplayTimeFlag) /判断显示模式displayClock(); /显示时间子函数elsedisplayTempLim(); /显示温度上下限子函数delayMs(10);/*以下源代码是显示子程序 部分*/#ifndef_LCD1602_H_#define _LCD1602_H_#include #include #define BUSY 0 x80 /lcd 忙检测标志#define DATAPORT P0sbit LCM_RS=P37;/数据/命令端sbit LCM_RW=P36;/读/写选择端sbit LCM_EN=P27; /LCD 使能信号void

57、 delay_LCM(unsigned int); /LCD 延时子程序延时 msvoid initLCM(void); /LCD 初始化子程序void lcd_wait(void); /LCD 检测忙子程序void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC); /写指令到 ICM 子函数void WriteDataLCM(unsigned char WDLCM); /写数据到 LCM 子函数void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char D

58、Data); /显示指定坐标的一个字符子函数void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData); /显示指定坐标的一串字符子函数 unsigned int i,j; for(i=0;ik;i+) for(j=0;j60;j+) ; void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC)/写指令到 LCM 子函数 if(BusyC)lcd_wait();DATAPORT=WCLCM; LCM_RS=0; / 选中指令寄存器

59、 LCM_RW=0; / 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0; void WriteDataLCM(unsigned char WDLCM) / 写数据到 LCM 子函数 lcd_wait( ); /检测忙信号 DATAPORT=WDLCM; LCM_RS=1; / 选中数据寄存器 LCM_RW=0; / 写模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0;void lcd_wait(void) / lcm 内部等待函数 DATAPORT=0 xff; LCM_EN=1;LCM_RS

60、=0; LCM_RW=1; _nop_(); _nop_(); _nop_(); while(DATAPORT&BUSY) LCM_EN=0;_nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_(); LCM_EN=0;void initLCM( ) / LCM 初始化子函数 DATAPORT=0;delay_LCM(15);WriteCommandLCM(0 x38,0); /三次显示模式设置,不检测忙信号 delay_LCM(5); WriteCommandLCM(0 x38,0); delay_LCM(5); WriteCommandLCM(0 x38,0); delay_LCM(5); W

温馨提示

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

评论

0/150

提交评论