基于89C51单片机的语音播报伏特表

控制/MCU

1879人已加入

描述

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

  1、硬件设计

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

  1.1、单片机

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

  

89C51

  图1 89C51单片机

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

  1.2、 模-数转换电路

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

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

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

  

89C51

  ADC芯片如下:

  

89C51

  图 1-3 ADC芯片图

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

  1.3、 语音播报

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

  

89C51

  图 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显示、语音播报几大模块构成。软件流程图如下:

  

89C51

  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(+)值便可调整量程。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
温馨鬼脚七 2013-05-21
0 回复 举报
我感觉没说清楚,语音播报,难道要用人工的方式把每个示数都读一遍然后再通过语音芯片放出来?这工程量太大了 1条回复 收起回复
elecfans网友 0
不需要那么多。只需要把数字和单位录好就行。60个字足够了。

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分