DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[待整理] 一款语音数字电压表的设计方案

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 07:18:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、概述
       
        在众多测量仪表中,数字电压表应该是比较先进的一类表,工作人员在测量电路电压时,其测量值能通过液晶显示器直观地读出而不需工作人员再认真仔细地察看测量档次,换算及估计测量值,但在观察使用过程中,仍可发现工作人员在测量过程中因要注意测量点而无法顾及显示器的现象。而本文介绍的语音电压表则能较好地解决上述问题,它在工作人员测量电压时,能用标准的汉语读出测量值,这样就大大方便了工作人员操作过程。
       
        二、设计方案
       
        语音电压表的组成框图见图1.
       
         
        三、硬件设计
       
        (一)单片机
       
        单片机采用AT8951型,它是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,它与工业标准的MCS-51指令和输出管脚相兼容,由于将多功能CPU和闪烁存储器组合在单个芯片中,因而AT89C51是一种高效微控制器,为很多嵌入控制系统所采用。
       
        (二)A/D转换电路
       
        A/D转换电路由两部分组成。
       
        1.量程转换电路是用7126组装构成的四量程数字电压表实用电路。四个量程分别是:200mV、2V、20V、200V.电压量程的选择是通过双刀五掷转换开关S1来控制的,当S1打到哪一量程端时,如200V端,则该数字电压表的测量范围就确定了为0-200V.
       
        2.A/D电路用ICL7126芯片作为A/D电路的核心元件。被测电压输入后,经ICL7126内部电路进行数模转换、译码驱动后,送至液晶显示器显示被测电压的电压值。
       
        (三)语音电路
       
        语音电路采用ISD1420芯片,其最大特点是:采用了直接模拟量存贮技术DAST,完成语音的录入,存贮以及分段调出,而无需像其他语音电路那样,要经过A/D、D/A转换,数字压缩和语音合成等复杂的数字量信息处理及变换环节,因而可以较好地保留模拟量中的有效成分减少失真,提高录放音质量。它使用方便,无需专用语音开发系统,由麦克风录入存贮;可随意改写删除;有多种信息取址方式供用户选择;分段灵活,抗干扰能力强。当89S51判断出某个数字时,只要把该数字对应的地址码送到单片机的P1口,产生一个中断,于是该数字的语音便放了出来。
       
        它是以AT89C51单片机为核心,由ICL712631/2位数字电压表、语音电路、功放电路、电源等组成。
       
        设计中,先将语音电压表需用的"0、1、2、十、百、点、伏、负、超量程"等十几个音节的特征语音信号通过语音电路录音,生成十几段数据语音块,以此作为读出电压值的音源。输入的模拟信号经过数字表中A/D转换进入单片机,由单片机进行分析判断,找出语音块中对应的音源,送到功放电路进行放大输出,读出电压值,从而实现智能测量。
        四、软件设计
       
        (一)主程序
       
        初始化工作主要是对累加器A和P1口清零,然后等待报数启动键SB按下。采样程序是将显示驱动信号变换为段选数据锁存起来,并读入片内RAM.由于被测值的变化,在采样瞬间可能因显示数字的跳变"空显"而造成报数出错,在程序中防止空显出错的方法是,只有个位、十位和百位全有显示(非00H)或全无显示(均为00H)才确认正常,否则返回重新采样。根据使用要求,每报完一遍被测值应间隔2S,以便于改换下一个被测点并使读数稳定。在2S延时内,有重报请求就再调用一次放音子程序,否则转向重新采样。
       
        (二)语言编辑子程序
       
        这一程序是对段选数据和小数点进行判断后,散转到各个编辑处理程序,再按照"智能化"报数的要求,将所要发出的语音地址码送P1口,通过ISD1420发音。
       
        汉语报数的"智能化"是指对所显示的数值能够自动插入或删去数位语音,以适合人们的读数习惯。例如:对显示值220,应报为"二、百、二、十".对显示值"10.05"应报为"十、点、零、五".所以在每个编辑程序中,是通过对各位数据的逐次判"0"来确定是否要插入或删去其数位语言,并编好发音顺序。部分程序如下:
       
        功能:发音子程序
       
        TALK:MOVR7,ARLA
       
        MOVDPTR,#FYTIME
       
        MOVCA,@A+DPTR
       
        MOVR6,AINCR6
       
        MOVA,R7RLANCAMOVC,@A+DPTR
       
        MOVR5,AINCR5
       
        MOVA,R7MOVDPTR,#FYADRR
       
        MOVCA,@A+DPTR
       
        MOVR7,ALCALLPLAY
       
        MOVR7,#30
       
        WAIT:LCALLDELAY1ms
       
        DJNZR7,WAITRET
       
        (三)放音子程序PLAY
       
        在进入该程序后再调用延时程序DELAY1,当所有语音放完后,通过判断发出停止信号,返回主程序。部分程序如下:
       
        入口;R7(开始地址),R6(H)R5(L)为放音时间
       
        PLAY;MOVP1,R7CLRPLL
       
        PLAY1:LCALLDELAY1ms
       
        JNBRECLED,PLAY2
       
        DJNZR5,PLAY1
       
        DJNZR6,PLAY1
       
        PLAY2:SETBPLLRET
       
        (四)延时程序
       
        延时程序是利用循环来编写的,延时1ms.
       
        入口:R4功能:延时1ms
       
        DELAY1ms:MOVR4,#0FAH
       
        NOPNOP
       
        DJNZR4,DELAY1ms
       
        五、结束语
       
        本设计方案关键部分在语音芯片,它的质量决定了发音效果,所以要选用优音质、高智能的语音芯片。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-1 21:26 , 耗时 0.102731 秒, 21 个查询请求 , Gzip 开启.

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

桂公网安备 45031202000115号

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

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

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

QQ:28000622;Email:libyoufer@sina.com

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

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