DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 114|回复: 0
打印 上一主题 下一主题

单片机式语音播报伏特表

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:15:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
摘要:?本文将介绍一种基于单片机的语音播报伏特表,该系统可以对直流电压进行比较高精度的测量并用语音播报该值。同时,亦可以通过改变ADC中REF(—)和REF(+)的值实现对不同范围的直流电压的测量。
关键词:?单片机???语音播报??模数转换(ADC)??伏特表

引言
???? 传统的伏特表在我们的日常生活及科学研究中起到了其独特的作用,但是在科学技术日新月异、集成芯片在日常生活中的应用越来越广泛的今天显得比较落伍:①它们的量程往往在出厂以前就限定好的,不能根据具体使用场合进行相应调整;②测量精度有限;③不能够将测量结果用语音播放出来。本文将介绍一种由单片机最小系统[1][3]、模-数转换电路[3]?[5]、语音电路[2][4]、LED显示电路[1][3]组成的单片机式语音播报伏特表。

1、硬件设计
??? 整个系统的组成可以分成四大部分:单片机、模-数转换电路、语音电路、LED显示电路。下面就主要的部分进行具体介绍。

1.1、单片机
??? 目前流行的单片机很多,其中89C51自带有片内ROM和一定数量的RAM,一般不需要扩展片外的存储器,并且能和MCS—51产品兼容。本设计选择89C51单片机,如下图所示:





??? 图?1-1??89C51单片机?

??? 本设计选用简单基本的经典复位电路,它利用电容和电阻的充放电来产生一个达到时间要求的连续低电压,并输入到单片机的复位管脚。

1.2、?模-数转换电路
??? 模-数转换选择8位的ADC即AD0809,模块分布如图?1-2,测量范围由REF(-)和REF(+)接的电压决定,使用的时候可以根据具体的需求更改测量量程。

??? 工作原理如下:首先,地址控制模块中,由单片机送来“通道控制信号”选择我们所需要的通道,随后ALE信号锁定该通道。此时,外界的模拟输入就可以通过“模拟输入开关”进入AD转换器。这时,只要START信号一有效马上就开始进行AD转换。

??? ?AD转换的过程其实就是一个“和参考电压比较,逐次逼近”的过程。由“256电阻阶梯”模块提供参考电压,并在“开关阵列”的控制下,和输入进行比较,直到在“S.A.R.”模块中得到一个比较精确的数字化输出值,这时由“控制/定时模块”发送EOC信号通知外部AD转换完毕。所的到的数字信号存于“输出锁存模块”中,只要单片机来一个OUTPUT?ENAbLE信号即可输出数据。?
???

??????????????????
图?1-2???ADC模块图

ADC芯片如下:




图?1-3???ADC芯片图

??? 模-数转换工作主要是由硬件完成的,其软件部分相当简单.

1.3、?语音播报
??? 从设计的要求、芯片的性能等方面考虑,设计时选择了ISD1400。它的功能齐全,控制信号只使用89C51的I/O控制线。内含64K/128K?EEPROM存储器、消除噪声的话筒前置放大器和自动增益调节AGC电路、适合语音的专用滤波电路、具有极高温度稳定性能的时钟振荡电路及全部语音处理电路。这种电路还提了多种应用方式选择和接口,并可方便地应用到各种集成化电子语音系统中。语音录放组件可用于各种一段式语音留言装置、语音报警及语音提示装置中,能够在电源断开的情况下,长期保存信息。设计时具体的连接如下:?

?



????????????????? 图?1-4??语音系统

??? ISD1420可分段存贮20秒语音信息,按每秒钟可读3个汉字计算,20秒可分段贮存609多个汉字语音。将ISD1420的A2~A7与单片机CPU的I/O口连接,这样可单独提取64段语音信息,并在软件的支持下可自动组合成若干段完整的长短语句。接通电源,电路自动进入节电准备状态。按住录音键(REC保持低电平),电路进入录音状态,录音指示灯亮,直至REC变高或存储器录满,录音结束进入准备状态。录音完毕即可使用。

1.4、??LED显示方案
??? 显示方案常用的有两种:串口和并口。由于设计中,对于89C51的I/O口利用紧张的关系,我们选用串口来显示。为了能够同时显示3个LED数码管,本系统需要增加三个74LS164做串——并转换。同时,由于电压的关系,还需要加上限流电阻。在译码方面有硬件和软件两种方式,为了减小硬件的复杂程度,设计采用软件查表译码的方法。

2????软件设计
??? 软件的设计实行模块化,主要由模数转换、误差判断(如果一直测同一值即误差很小就不二次播报)、码制转换、LED显示、语音播报几大模块构成。软件
流程图如下:




???????????????????
3、软件调试
  本系统的软件系统全部采用C51来编写,由于一般的仿真器对C51的支持有一定的缺陷,软件调试比较复杂.除了语法差错外,当确认程序没问题时,通过直接下载到单片机来调试.采取的是自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统调试.

4、硬件调试
??? 调试时使用标准电源,digital?multimeter?DT9505数字万用表可以判定系统测量的精度。系统供电电压:5V(标准)?




??? ? 对所测的数据进行分析可以得出以下结论:用标准的5伏电压供电的时候,所测的电压只在个别的电压范围内有0.01伏的误差,其他范围几乎没有误差。由于软件算法的限制,最大误差在5伏处,为0.02伏。

5、软硬件联调

??? 通过设定仿真器的属性,从而通过仿真器实现软硬件联调。对应每个模块功能在硬件电路实现,通过仿真器的单步执行或断点执行及全速执行,来观察硬件电路的反应是否正常。在调试过程中对出现的问题进行修改和改进,为硬件的脱机运行打下基础。

??? 焊接硬件电路在认真检查的基础上,还要掌握好焊接的时间。为避免虚焊,要求焊锡与导线充分接触,但我们均采用胶皮导线,过高的温度会使胶皮脱落,在与其他导线交叉的情况下容易造成两导线的短接,产生不可靠性。在焊接时,亦容易将座子的塑胶材料烧坏。

  使用模拟仿真头与使用真实仿真头调试有点区别。模拟仿真头调试的时候不易出现真实仿真头调试时产生的硬调故障。真实仿真头要接收硬件电路的中断信号,并进入中断服务子程序完成相应的动作。所以,本设计软件中本应该用定时器精确延时的地方,不得不用软件延时,导致设计未能够充分利用资源,增大了CPU的负担。

6、结论
??? 研究的基于MCS—51单片机的语音播报伏特表,采用串口扩展(LED部分)、实时转换(ADC部分)、按键复位等技术,可以对直流电压进行比较高精度的测量并用语音播报该值。系统的运行可靠、稳定。对系统测量结果分析可以看出:用标准的5伏电压供电时,所测的电压误差在0.01伏范围内。

??? 伏特表的量程调整也是很方便的,在实际的运用过程中,不同的用户可以根据自己的实际需要,更改REF(—)和REF(+)值便可调整量程。

7、参考文献:
[1]??全国大学生电子设计竞赛组委会?.第五界全国大学生电子设计竞赛获奖作品选编  北京:北京理工大学出版社??
[2]??winbond.???ISD1400?Series?Single-Chip?Voice?Record/Playback?Devices?16-and?20-Second?Durations?.??America?:?Electronics?Corporation?America???
[3]???上海市教育委员会组?丁元杰.??单片微机原理及应用????北京:机械工业出版社????P176――185???P200――-204
[4]????http://www.21cm.com.cn/product/zy1420/ISD1420shouce.pdf
[5]????http://stocks.find-ic.com/search.asp?p=AD0809?

                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-9-21 06:42 , 耗时 0.080883 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表