数字万用表汉语报数附加装置

🏠 首页 《无线电》杂志 1993年 🔗 第10期 🔗 第29页 分类:无线电技术自学经验交流 🔗 于文涛 🔗

由单片微机8031和语言处理器YYH402组成的汉语报数附加装置,可以方便地与普通数字万用表驳接,在测量显示的同时,用汉语语音报出被测数值。这无疑为调试和检修工作,特别是对电子电路多点电压的集中测量,将带来很大的方便。

本文以配接常用的DT-830型3\(\frac{1}{2}\)位数字万用表为例,简要介绍这一装置的电路原理和程序设计。

电路原理

图1是该装置的电路原理图。图中虚线左侧为DT-830型数字万用表的主电路板,它通过24线接插座与附加装置相连。从图中可见,数字万用表的逻辑地(7106TEST端)与附加装置的地线(电源负)相接,电源正由单独的外接+5V电源供给。从图中还可见,由数字万用表引出的显示驱动信号,其笔划电极信号被送到接口电路——数据锁存器D1~D4的数据输入端;其背电极信号(BP)经D5a反相后加到单片机8031的4P3口。我们知道,这些显示驱动信号都是连续的方波脉冲。

图1
图1 🔍原图 (1867×1149)

在按下报数启动键(SB)后,8031开始执行“采样”程序。当它检测到BP信号为“0”时,立即从5P1输出高电平的读数保持信号HLD,经D5b反相后又通过VD1将A/D转换芯片7106的时钟振荡器输入端(OSC1)箝为低电平,迫使7106处于读数保持状态。这时,各笔划电极信号便由方波脉冲变为正逻辑电平的段选数据。

与此同时,8031的6P1输出高电平的锁存允许信号DLE,在随后DLE变低时,段选数据便被锁存起来。接着5P1也变为低电平,经反相后使VD1反偏载止,7106恢复A/D运行。

这时,D1~D3中分别锁存着个位U、十位T和百位H的段选数据,D4中锁存着千位Kab和负号PM、小数点DP1~DP3的符点数据。当8031读取某位数据时,就会输出指定地址,通过片选译码器D9打开这一位的输出允许端OE-,从而将该位数据送上总线0D~4D。接于数据总线高三位5D~7D的电阻R1~R3,是为了在读入段选数据时将悬浮的高三位下拉为“0”。

8031将读入的各位数据存入片内RAM后,就完成了一次采样过程,然后对这些数据进行判别和处理,并转换为相应的语音地址码,依次从P1口的0P1~4P1输出。

在放音电路中,语言存储器D10的高五位地址10A~14A由8031输出的语音地址码来管理,这就将其划分为32个存储段,从而实现分段寻址放音。当放音开始时,由8031的0P3输出低电平的启动放音信号PLAY-,经D5c反相后去触发N1(YYH402)进入放音状态;在每一分段放音结束时,利用N1输出的地址信号9A的下降沿作为段分信号,经D5d反相后送到3P3,去通过8031变更语音地址码,重放下一个语音;在全部语音放完后,由1P3输出低电平的复位停止信号STOP-,使N1返回等待状态。

关于语言处理器YYH402的应用电路原理,本刊曾有介绍,这里尚需说明的是:为了适合在不具备EPROM语言烧写器的业余条件下制作,该装置采用了带电SRAM62256;N1(W-)和(REC)引脚外的虚线是录音切换线,在录备语音时由单片机8031执行一段专用程序,可保证分段组合放音的连续感和准确同步。

程序设计

该装置应用系统的程序在编程器中写入D8(EPROM2716)。限于篇幅,本文不再提供全部程序清单,仅就其编写要点说明如下:

一、主程序MAIN

主程序框图见图2。初始化工作主要是对累加器A和P1口清零,然后等待报数启动键SB按下。采样程序是将显示驱动信号变换为段选数据锁存起来,并读入片内RAM,其控制过程中前文已经详述。这里再说明两点:

图2
图2 🔍原图 (342×927)

1.由于被测值的变化,在采样瞬间可能因显示数字的跳变“空显”而造成报数出错。在程序中防止空显出错的方法是,只有个位、十位和百位全有显示(非00H)或全无显示(均为00H)才确认正常,否则返回重新采样。

2.根据使用要求,每报完一遍被测值应间隔2秒,以便于改换下一个被测点并使读数稳定;在2秒延时内,每隔10毫秒查询一次是否要求重报一遍前次值(SB是否再次接下)?有重报请求就再调用一次放音子程序,否则转回重新采样。

二、语音编辑子程序EDIT

语音编辑子程序框图见图3。这一程序是对段选数据和符点数据进行判别后,散转到各个编辑处理程序,再按照“智能化”报数的要求,将所要发出的语音地址码顺序存入片内开辟的一个存储区。因此,初始化工作是设置这个存储区的指针初值以及清零存储区长度计数器。判别、处理和编辑程序的要点是:

图3
图3 🔍原图 (484×915)

1.超量程(OR)和欠量程(UR)的判别及处理。一般3\(\frac{1}{2}\)位数字万用表在读数溢出时显示千位1或-1,其余各位无显示。因此只要判别出个、十、百位的段选数据均为00H即为超量程;欠量程是指被测值低于满量程值的5%,这时的千位无显示且百位显示0。超(欠)量程的处理是依次将“超”(“欠”“量”、“程”的语音地址码存入存储区,然后返回主程序。

2.汉语报数的“智能化”是指对所显示的数值能够自动插入或删去数位语音,以适合人们的读数习惯。例如:对显示值220,应当报为“二、百、二、十”;对显示值10.05,应当报为“十、点、零、五”。这就需要根据小数位数散转到EDIT0~EDIT3四个语音编辑程序分别处理。在每个编辑程序中,又是通过对各位数据的逐次判“0”来确定是否需要插入或删去其数位语音,并编排好发音顺序,将对应的语音地址码依次存入存储区。

三、放音子程序PLAY

放音子程序的基本控制过程如前所述,需要指出的是:在进入该程序后,应当首先恢复语音地址码存储区的指针初值,并将存储区长度值重新置入计数器。在发出放音启动信号后,将存储区内第一个语音的地址码送上P1口。在放音过程中,先等待3P3变“0”,这时该分段放音已经过半;再等待3P3变“1”,即分段信号(9A)的负跳变到来,该分段的放音就结束。在每一分段放音结束时,将长度计数器减1判0,若非0就转回将存储区下一个语音的地址码送P1口;若为0则发出停止信号,返回主程序。

根据以上介绍的硬件电路和软件设计的原理,只要略作改动,就可以适用于其它类型的数字万用表,还可以扩展存储正常参考值、对比读报实测值等多项功能,使这一装置的用途更加广泛。(于文涛)