传统的伏特表在我们的日常生活及科学研究中起到了其独特的作用,但是在科学技术日新月异、集成芯片在日常生活中的应用越来越广泛的今天显得比较落伍:①它们的量程往往在出厂以前就限定好的,不能根据具体使用场合进行相应调整;②测量精度有限;③不能够将测量结果用语音播放出来。本文将介绍一种由单片机最小系统、模-数转换电路 、语音电路、LED显示电路组成的单片机式语音播报伏特表。
1、硬件设计
整个系统的组成可以分成四大部分:单片机、模-数转换电路、语音电路、LED显示电路。下面就主要的部分进行具体介绍。
1.1、单片机
目前流行的单片机很多,其中89C51自带有片内ROM和一定数量的RAM,一般不需要扩展片外的存储器,并且能和MCS—51产品兼容。本设计选择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信号即可输出数据。
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(+)值便可调整量程。