摘 要
在人类的历史长河中,语言的作用尤为重要,人们一直在思考一个问题,那就是如何把语言完全不差的记录下来。当今智能化的仪表仪器的自动控制装置中,如果能够添加语言功能,就可以非常好的提升操作便捷度,在日常生活中,人们在很多场合都需要语言的存储与回放技术,所以将这种技术与生活更好的结合在一起,是现在需要解决的一大难题。传统的语言记录装置体积庞大,使用不方便,在信息处理的过程中受到许多限制,为了解决这些问题,本项目将使用AT89C51单片机和ISD4004语音芯片来设计一款语音的录放系统。ISD4004语音芯片不需要数模转换和压缩就能够直接进行存储,不仅存储时间长,而且没有转换误差,还可以用于多次重复录放。外围核心电路也相对来说十分简单。使用ISD4004语音芯片与单片机相结合,通过软件与硬件的控制,完全可以实现数字化语言的存储和回放。
关键词:AT89C51单片机; 语音存储; 语音回放; ISD4004语音芯片
1 控制系统设计
1.1 系统方案设计
方案1:使用AT89C51单片机通过对语音信号的各种转换,来完成对语音的采集与回放。它的原理如图1-1所示。在录音的时候,单片机先将模拟信号转换为电信号,再通过音频的放大器将信号放大,通过滤波器进行滤波再由转换器转换为数字信号,送回到单片机中,然后将其存储。在需要放音的时候,相当于进行一次反向操作,首先读取出数字信号,然后经过模数转换,将数字信号转换成模拟信号,经过放大器进行放大再变成声音播放出来。这种方法虽然过程简单,但是语言信号非常容易受到外界的干扰,而且信号压缩也比较复杂,硬件电路的调试也非常困难。
图1-1方案1系统原理图
方案2:使用AT89C51单片机来控制整个系统,配合ISD语音芯片完成语言的录放,系统原理图如图1-2所示。通过按键控制单片机,并将指令发送到语音芯片以完成录音和播放。当前的操作状态显示在显示屏上。这种处理方法不但使其抗干扰的能力更强,而且存储也更加方便,调试也更加简单。
图1-2 方案2系统原理图
1.2 系统工作原理
本次项目使用单片机作为控制核心为基础,通过单片机来完成对按键和液晶显示屏等模块的响应,再控制语音芯片来存储和读取语音。系统结构如图1-3所示。
图1-3 系统结构框图
2 硬件电路设计
该系统可分为三个部分:微控制器控制部分、语音记录和回放部分,功率放大器部分。采用51单片机为控制核心,采用ISD4004进行录音和播放。P0连接按钮用于记录和播放,并连接到LED,显示当前的记录和播放状态。
2.1 时钟电路
时钟电路由晶体振荡器和电容器组成,时钟电路就像平时家里用的时钟一样控制着任何工作的时间。时钟电路的用途很多,时钟电路被广泛使用,它的主要工作是产生与时钟一样精确的振荡器电路。任何工作都按时间顺序排列。产生该时间的电路是时钟电路,如图2-1所示。
图2-1 时钟电路
2.2 复位电路
复位电路在微型计算机系统中是非常简单的电路,但它非常重要。其主要功能是上电复位,以确保在打开电源后可以正确启动系统。当系统遭受导致系统故障的某些外部原因时,可以通过“重置”按钮将系统重置为正常工作状态。复位电路的电路图如图2-2所示。打开电源时,仅当VCC超过4.75V且低于5.25V时,复位信号才被清除,晶体振荡器稳定工作,微机电路开始正常工作。
图2-2 复位电路
2.3 显示电路
本次项目使用的是LCD1602显示模块,它可以同时显示32个字符。1602通过D0〜D7的8位数据端子发送数据和命令。该端口连接到微控制器的P0端口。V0端口用于调整显示器的对比度。一个10K可变电阻器连接到此端口,可以通过调整电阻的大小来控制显示屏的亮度。 RS是寄存器选择的控制端子。该端口连接到微控制器的P24引脚。该端口连接到微控制器的P25引脚。图2-3给出了电路原理图。
图2-3 LCD1602电路原理图
3.3 系统主程序设计
主程序的设计思路,是考虑到4个按键的接口,通过单片机循环扫描来检测是否有按键被按下去,当任何一个按键被按下后,都会去执行该按键的这个子程序。例如当单片机扫描识别到按键被按下时,这个时候单片机就会去执行录音的程序,当单片机扫描识别到放音按键被按下时,单片机就会停止录音程序,去运行放音的子程序,每个状态在执行时切换下一个状态时都需要按下停止按键清除状态标志。流程图如图3-1所示。
图3-1 按键检测流程图
单片机依次判断用户按下的按键,因为不同按键在不同的界面有不同的功能,因此系统采用了一个Function Count来记录当前属于哪个界面,根据不同的界面下用户按下的不同按键执行对应的操作。语音播放流程图如图3-2所示。
图3-2 语音播放流程图
当系统处于播放模式下,单片机会根据当前语音的序号播放对应地址的语音。
4 系统调试
4.1 硬件调试
通过单片机控制语音芯片完成的语音存储与回访系统的电路比较大,而且回涉及到很多的模块电路,比如会涉及到单片机的最小系统、时钟电路、液晶显示模块等等,所以在焊接时要十分注意,涉及到多种模块的这种电路,哪怕只要存在一处的焊接错误,就会导致整个系统的检测无法完成,因为电路中交叉的线路非常多,所以在焊接过程中避免焊接错误和短路现象,如果电路连接错误,将给检测带来极大的不便,并且该电路具有更多的交叉线。请注意处理各种尖锐的针脚,否则会刺破被覆的电线并导致短路。
检查正确性后,我们开始在通用板上焊接。 PCB图如图4-1所示。
图4-1 PCB图
在系统的硬件调试中遇到了许多问题。回想一下,只要仔细考虑,就可以避免这些问题。以下是主要问题:
一开始,我认为微控制器无法正常驱动ISD4004,因此无法进行记录和播放。
解决方案:搜索相关信息后,必须在微控制器的P0端口上添加一个上拉电阻,以正常驱动外部芯片。
4.2 软件调试
该系统是一个相对复杂的数字系统,因此其程序也相对复杂,因此在编写程序和调试过程中存在许多问题。首先,为了更好地测试效果,在确认没有错误之后,我直接在PROTUES软件下启动了仿真,然后将程序刻录到实际环境中运行。最终,在对模块子例程进行了许多修改之后,它逐渐完成并最终解决了软件中的各种问题。在软件调试过程中遇到的主要问题如下:
1.程序刻录后,LCD屏幕闪烁并且亮度不均匀。
解决方案:首先,逐步修改呼叫延迟,以解决显示闪烁的问题。其次,由于这项工作使用的是在动态扫描模式下显示的数字,因此动态扫描速度非常快,人眼看不到它,但是当调用显示程序时,如果返回时未屏蔽最后一个值,则它将它将看起来非常明亮。现象,因此将屏蔽子命令添加到了显示器的背面,从而最终解决了该问题。
2.当用户按下按钮时,微控制器读取的值与设置值不同。
解决方案:检查一下键盘的连接,并建立新的连接。
4.3 调试结果
测试中如果未显示LCD液晶,需要先使用测试仪测试电路,以观察是否存在漏焊,虚焊或组件损坏。
搜索了一系列问题后,系统最终可以正常工作并完成所有功能。
4.3 调试结果
测试中如果未显示LCD液晶,需要先使用测试仪测试电路,以观察是否存在漏焊,虚焊或组件损坏。
搜索了一系列问题后,系统最终可以正常工作并完成所有功能。
4.4 调试结果展示
图4-2 实物图 图4-3 开机后画面
图4-4 录音状态 图4-5 停止状态
图4-6 模式选择 图4-7 放音状态
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。