基于51单片机的数码录音放音系统设计
摘 要
随着语言的处理技术在工业生产、交通、通信等方面的运用得到不断创新。数码录音放音系统已得到了越来越多的人的青睐,通过对多种录音放音系统的设计方案进行了比较和分析,本论文最终选定以STC89C52单片机设计了一个数码录音放音系统。
本文提出并设计实现了基于STC89C52单片机和ISD4004语音芯片的数码录音放音系统方案。首先介绍了设计方案,接着进行了系统的硬件设计,包括单片机最小系统电路的设计、信号收集放大处理电路设计、按键控制电路的设计、液晶显示电路的设计等。设计中以STC89C52单片机主控制为核心,采用ISD公司制造的ISD4004语音芯片实现数码录音放音系统的功能。其中按键控制电路对整个系统进行控制,显示电路用LCD1602更直观的把录音放音等相关信息显示,信号收集放大处理电路放大器采用通用型音频功率放大器LM386来实现。系统模块包括主程序模块、语音信号的采集模块、键盘扫描模块、信息显示模块等,进行了程序流程的设计,编写了程序代码。本系统实现了语音数据的录音、播放、暂停、快进、快退、录音条目选择以及LCD1602等显示相关操作等功能,设计具有一定的应用价值。
关键词: STC89C52单片机;ISD4004语音芯片;数码录音放音系统
Abstract
With the continuous innovation of language processing technology in industrial production, transportation, communication and other aspects. The digital recording and playback system has been favored by more and more people. By comparing and analyzing the design schemes of various recording and playback systems, this thesis finally chooses to design a digital recording and playback system with STC89C52 microcontroller.
This paper proposes and designs and implements a digital recording and playback system scheme based on STC89C52 microcontroller and ISD4004 voice chip. Firstly, the design scheme is introduced, and then the hardware design of the system is carried out, including the design of the minimum system circuit of the single-chip microcomputer, the design of the signal collection and amplification processing circuit, the design of the key control circuit, and the design of the liquid crystal display circuit. In the design, the main control of STC89C52 single-chip microcomputer is used as the core, and the ISD4004 voice chip made by the American ISD company is used to realize the function of the digital recording and playback system. Among them, the key control circuit controls the whole system, the display circuit uses LCD1602 to more intuitively display related information such as recording and playback, and the signal collection, amplification and processing circuit amplifier adopts a general-purpose audio power amplifier LM386 to realize. The system module includes the main program module, voice signal acquisition module, keyboard scanning module, information display module, etc. The program flow is designed and the program code is written. This system realizes the functions of voice data recording, playing, pausing, fast forwarding, fast rewinding, recording item selection, and LCD1602 display related operations, and the design has certain application value.
Key words:STC89C52 microcontroller ;ISD4004 voice chip;Digital recording and playback system
目 录
引言(四号黑体)…………………………………………………………1
1 系统概述………………………………………………………………
1.1 任务要求……………………………………………………………………………3
1.2 主要研究内容 ……………………………………………………………………
2 设计方案及元器件介绍 ………………………………………………
2.1 系统设计总体方案 ………………………………………………………………6
2.2主要器件介绍………………………………………………………………………6
2.2.1 ISD4004语音芯片………………………………………………………………
2.2.2 LCD1602液晶显示………………………………………………………………
2.2.3 STC89C52RC单片机……………………………………………………………
2.2.4 LM386音频功率放大器…………………………………………………………
3 硬件设计 ………………………………………………………………
3.1 系统各部分电路设计 ……………………………………………………………6
3.1.1 单片机最小系统电路……………………………………………………………
3.1.2 LCD1602显示电路………………………………………………………………
3.1.3信号收集放大处理电路…………………………………………………………
3.1.4按键控制电路……………………………………………………………………
4 软件设计 ………………………………………………………………
4.1 程序总体设计………………………………………………………………………
4.1.1 ISD录音程序设计………………………………………………………………
4.1.2 按键控制程序设计………………………………………………………………
5 系统测试 ………………………………………………………………
5.1 系统实物 …………………………………………………………………………
5.2 系统实现功能概况 ………………………………………………………………
5.3 系统的不足及改进方式……………………………………………………………
6 结论……………………………………………………………………
谢辞…………………………………………………………………………
参考文献……………………………………………………………………
附录…………………………………………………………………………
引言
在经济不断发展,电子科学技术迅猛提升的现今。数码录音对于现如今的众多电子产品来说,已是常带有的功能了,它已经被用在了许多的地方。例如手机、电脑等人们常用的电子设备上,以及社交App微信、QQ等,语音信息为人们的生活提供了很大便利。在工业生产、交通、通信等方面的运用得到不断创新。
在你无法凭借记忆记住重要谈话,或者重要会议的重要内容的时候,它便体现除了它的优势,清晰完整无误的记录下你要记录的东西,而你能够拿出更多的时间来处理其他事情。
本次设计的数码录音放音系统,就是在此基础上添加一些更适用的功能,能录制多条语音信息的同时还能实现快进快退、继续暂停功能。能从录音中更好的提取的信息。设计具有一定的应用价值。
1 系统概述
1.1 任务要求
综合运用所学的模拟电子技术、数字逻辑电路、C语言、单片机原理及应用、传感器等专业知识,设计出一套数码录音放音系统。系统实现录音、放音、播放停止、快进快退、删除、显示相关信息等功能。
1.2 主要研究内容
本次设计就利用单片机和语音芯片来实现一个数码录音放音系统。对于数码录音放音系统的最基本要求便是可以录音、播放、暂停、快进、快退、显示相关信息、录音条目选择、删除要求。STC89C52该款单片机资源丰富,再加上与ISD4004语音芯片的结合来实现语音的存储与回放,通过单片机的控制可以实现语音的录放的功能。
主要研究内容由信号处理模块、语音录放模块、和音频放大模块三部分组成。并选用STC89C52为主控器。利用51型单片机对ISD语音芯片的控制实现对语音的录、放。并加入功放、麦克、扬声器等人性化功能。
采用语音芯片进行信号处理并把处理结果送往主控器。由主控器控制语音模块的录放。语音录放模块主要由ISD语音芯片及一些外围元件组成,主要完成语音的录放及语音的存储等。音频放大模块主要由LM386及部分外围器件构成,主要是对录放的声音信号进行放大。
鉴于此, 本系统的设计采用ISD4004语音芯片和STC89C52单片机的结合,完成数码录音录放系统的设计。并通过一些外部人机交互功能,设计出一套数码录音放音系统。系统实现录音、放音、播放停止、快进快退、删除、显示相关信息等功能。
2 设计方案及元器件介绍
2.1系统设计总体方案
数码录音放音系统的主要功能是实现语音的录音、播放与停止、快进与快退、删除、播放选择以及能显示相关信息。要实现语音的录音、播放与停止、快进与快退、删除、播放选择的方法很多,可供选择的器件也很多。由于单片机等微控制器的出现和数字电路技术的发展,使得现在语音的录音与放音、快进与快退变得易于实现。本系统设计采用单片机作为微控制器。选用字长为8位的STC89C52单片机作为控制器。
目前能与单片机配合使用实现本系统设计的语音芯片有很多,其中不乏性能优越的语言芯片。ISD公司生产的ISD4004语音芯片就是一款性能优越的语音芯片。ISD4004芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮阵列。引脚包括电源、时钟、语音信号模拟输入/输出端、与MCU接口(SPI接口)几部分。芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能够非常真实、自然地再现语音。
ISD4004系列单片录放时间为8~16 min,采样频率可为4.0/5.3/6.4/8.0 kHz,频率越低,录放时间越长,而音质则有所下降。芯片设计基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Mi—crowire)送入。由于ISD4004的众多优点,本设计就采用它作为录放音器件。
数码录音放音系统设计主要有六个部分,录音模块部分、放大器部分、控制处理部分、数据存储部分、中断按键部分、显示部分。如图2-1所示。
以STC89C52单片机作为主控器,通过ISD4004语音芯片进行语音的录制与播放。由语音采集电路采集的经过ISD4004的处理与保存,录好的语音信息再通过LM386功放进行信号的放大再播放。中断按键与单片机相连接通过单片机的控制从而实现系统的功能。LCD1602与单片机配合显示数码录音放音系统的各种信息。以上为本次设计的电路设计总体方案。
2.2主要器件介绍
2.2.1 ISD4004语音芯片
ISD4004语音芯片与其他类型语音芯片相比, ISD4004具有如下优点: 首先是记录声音没有段长度限制, 并且声音记录不需要A/D 转换和压缩。其次, 片内信息存于FLASH存贮器中,可在断电情况下保存100 年(典型值),反复录音10 0000次。此外ISD4004具有记录时间长(8-16分钟, 本次设计采用的为8分钟的ISD4004语音芯片)的优点。最后ISD4004开发应用还具有所需搭配的电路较为简单的优点。ISD4004芯片管脚如图2-2所示。
芯片采用的多电平直接模拟量存储技术, 每个采样值直接存贮在片内FLASH存贮器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。基于以上的优点,这也是我这次论文选择该语音芯片的原因。
ISD4004芯片有如下特点:
(1)单片8至16分钟语音录放。
(2)内置微控制器串行通信接口。
(3)3.3V单电源工作。
(4)多段信息处理。
(5)工作电流25-30mA,维持电流1μA。
(6)不耗电信息保存100 年(典型值)。
(7)高质量、自然的语音还原技术。
(8)100000次录音周期(典型值)。
(9)自动静噪功能。
(10)片内免调整时钟,可选用外部时钟。
电源(VCCA,VCCD):为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。
地线(VSSA,VSSD):芯片内部的模拟和数字电路也使用不同的地线。
同相模拟输入(ANA IN+):这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3KΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000 系列相同。
反相模拟输入(ANA IN-) :差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV
音频输出(AUD OUT) :提供音频输出,可驱动5KΩ的负载。
片选(SS) :此端为低,即向该ISD4004 芯片发送指令,两条指令之间为高电平。
串行输入(MOSI):此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD 输入。
串行输出(MISO): ISD 的串行输出端。ISD 未选中时,本端呈高阻态。
串行时钟(SCLK):ISD 的时钟输入端,由主控制器产生,用于同步MOSI 和MISO 的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。
中断(/INT):本端为漏极开路输出。ISD 在任何操作(包括快进)中检测到EOM 或OVF 时,本端变低并保持。中断状态在下一个SPI 周期开始时清除。中断状态也可用RINT 指令读取。OVF 标志----指示ISD的录、放操作已到达存储器的末尾。EOM 标志----只在放音中检测到内部的EOM 标志时,此状态位才置1。
行地址时钟(RAC):漏极开路输出。每个RAC 周期表示ISD 存储器的操作进行了一行(ISD4004 系列中的存贮器共2400 行)。该信号175ms 保持高电平,低电平为25ms。快进模式下,RAC 的218.75μs 是高平,31.25μs 为低电平。该端可用于存储管理技术。
外部时钟(XCLK):本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 +1%内。商业级芯片在整个温度和电压范围内, 频率变化在+2.25%内。此时钟已经比较精准,所以一般不采用外接时钟。在不外接地时钟时,此端必须接地。
自动静噪(AMCAP):当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF 的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA 则禁止自动静噪。
ISD4004 工作于SPI 串行接口。SPI 协议是一个同步串行数据传输协议,协议假定微控制器的SPI 移位寄存器在SCLK 的下降沿动作,因此对ISD4004 而言,在时钟止升沿锁存MOSI 引脚的数据,在下降沿将数据送至MISO 引脚。协议的具体内容为:
- SS 在传输期间必须保持为低电平,在两条指令之间则保持为高 电平。
- 数据在时钟上升沿移入,在下降沿移出。
- 4.SS 变低,输入指令和地址后,ISD 才能开始录放操作。
- 指令格式是(8 位控制码)加(16 位地址码)。
- ISD 的任何操作(含快进)如果遇到EOM 或OVF,则产生一个中断,该中断状态在下一个SPI 周期开始时被清除。
- 使用"读"指令使中断状态位移出ISD 的MISO 引脚时,控制及地址数据也应同步从MOSI 端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI 周期里,同时执行读状态和开始新的操作
- 所有操作在运行位(RUN)置1 时开始,置0 时结束。
- 所有指令都在SS 端上升沿开始执行。
该芯片的上电顺序:器件延时TPUD后才能开始操作。因此,用户发完上电指令后,必须等待 TPUD,才能发出一条操作指令。
- 发POWERUP命令;
- 等待TPUD(上电延时);
- 发POWERUP命令
- 等待2倍TPUD;
- 发地址值为00的SETREC命令;
- 发REC命令,器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。
一般的LCD1602字符型液晶显示器的内部控制器大部分为HD44780,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号。
LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。一般1602字符型液晶显示器实物如图2-4如下。
(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能
(6)I/O口:4个8位并行I/O口,既可用作输入,也可用作输出;
(7)T/C:3个定时/记数器,既可以工作在定时模式,也可以工作在记数
(8)一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;
(9)片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。
单片机最小系统,也称为最小应用系统,它是指由最少元件组成可以使单片机正常工作的系统。单片机最小系统大致包括电源电路、复位电路、晶振电路三部分组成。单片机最小系统电路如图3-1所示。
本次毕业设计的程序用全部由C语言编写完成,编程软件用的是Keli uVision5来进行程序的编写。编写程序时采用多文件编写方式,运用时在主函数里调用即可。
设计以MCS-51系列的单片机作为主控核心,ISD4004做录放音部分及外部电路组成的一个数码录音放音系统。系统实现录音、放音、播放停止、快进快退、删除、显示相关信息等功能。
程序设计中由以下几个主体部分组成,主程序处理部分、按键处理部分、ISD4004语音处理部分、LCD1602信息显示部分。程序以多文件方式进行编写,更易于对程序的处理与调用。
主程序如下;对LCD1602进行初始化,并显示上电后的信息,再对ISD、计数器进行初始化,打开芯片使能端并延时。在while循环中调用各部分函数,使之显示数码录音放音系统的功能。
录音程序设计大致为三部分,即通信命令函数(SendCmd)、自动放音函数(isd_autoplay)、自动录音函数(isd_autorecord)。
通信命令函数:内容主要包括ISD芯片通信端spi开启与关闭,以及录放音地址的配置,还有命令的调用。
void SendCmd(unsigned char cmd,unsigned int addr)
void isd_autoplay(unsigned int addr)
void isd_autorecord(unsigned int addr)
isd_autoplay(isd_addr[num-1]+play_addr_len+10);
isd_autoplay(isd_addr[num-1]+play_addr_len-10);
play_addr_len = play_addr_len-10;
isd_autoplay(isd_addr[num-1]+play_addr_len);
选择相对应的条目,在按下删除键即可删去该条目的语音信息。通过调节电位器可以调节喇叭音量大小。
(2)ISD4004语音芯片的数字地与模拟地没有分别走线,全部接到了一起,存在干扰;
(3)语音输入放大电路的放大倍数不够,噪声没有得到足够的抑制。
另外由于语音芯片的限制,该录音芯片时间过短,可选取存储空间大一些的芯片来取代。该语音芯片也不是数字信息存储,不能和PC端交互,在改良时,可以选取数字存储类的芯片。
需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。
基于51单片机的数码录音放音系统设计相关推荐
- 基于51单片机的DS18B20温度控制加热降温系统设计
基于51单片机的DS18B20温度控制加热降温系统设计 1 开发环境 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7.2 概述 7.3 国内外研究 ...
- 基于51单片机的MQ-5天然气监测报警系统设计
基于51单片机的天然气监测报警系统设计 基于51单片机的天然气监测报警系统设计 视频 1 开发环境 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7 ...
- 《电子DIY》之《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解
<电子DIY>之<单片机实践项目>之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解 添加链接描述
- 毕业设计 基于51单片机智能停车场管理车位引导系统设计
基于51单片机智能停车场管理车位引导系统设计 0.毕业设计选题原则说明(重点) 1.项目简介 1.1 系统构成 1.2 系统功能 2.部分电路设计 2.1 STC89C52单片机核心系统电路设计 2. ...
- 基于51单片机的智能家居防火防盗系统设计
基于51单片机的智能家居防火防盗系统设计 自动开关灯,温度,烟雾浓度报警,数值可调节等:附赠资料包含原理图,仿真,代码(C语言),实物的元件清单及功能演示视频.适合课设. CSDN内下载地址:下载地址 ...
- (毕业设计资料)基于51单片机红外无线遥控智能家电控制系统设计
基于51单片机红外遥控定时开关智能家电插座设计 本系统由STC8C52单片机电路+时钟DS1302电路+LCD1602液晶显示电路+按键电路+继电器控制电路+蜂鸣器报警电路+红外传感器电路+电源电路组 ...
- 基于51单片机的数码管显示方案
这一次给大家带来的项目是课堂作业级别的51单片机数码管显示,本次的项目着重于讲解原理,让大家明白单片机的io对于外界设备的控制是如何进行的. 共阳极和共阴极数码管的差异 (1)驱动方法的差异.一个数码 ...
- 基于51单片机的数码管闹钟设计
系统功能:利用定时器实现时钟,时钟可以通过独立按键设置,设有一个闹钟,闹钟时间可通过按键进行设置,时钟界面和闹钟界面可通过按键切换,当时钟和闹钟时间相同,蜂鸣器响,提示闹钟时间到等. 此系统重点在于: ...
- 基于51单片机的数码时钟
我是使用独立键盘控制,7位数码管显示来完成的数字时钟的显示部分,用蜂鸣器部分来完成声音的控制. 首先我是使用中断来完成该项目的时间调控和时间进位,并且在中断之中加入了声音调控的功能,与此同时,程序还一 ...
最新文章
- 生产环境实用的小脚本
- 初识片选信号和中断控制器
- 框架:SpringMVC常用注解总结
- 「Ubuntu」仓库 “https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal Release” 没有 Release 文件。
- objective-c高级编程 笔记
- struts2工作原理
- 听云支持.NET Core的应用性能监控
- 打开游戏要运行19.8亿次 if 语句?黑客嘲讽RockStar游戏代码太烂了
- 柯尼卡美能达c353改语言,柯尼卡美能达bizhub c353c253c203维修手册中文部分2.pdf
- 服装行业进销存软件有哪些简单好用又便宜的?
- html设置表格列宽百 分比,WPS解决实现单页显示 高分辨率显示器百分之百比例下双页改单页方法...
- RHEL8破解root密码
- unity全栈开发是什么意思_unity3D用什么语言开发好?
- 推荐一款HTML在线编辑器
- 【美】纳西姆·尼古拉斯·塔勒布 - 随机生存的智慧(2013年7月16日)
- 解决node环境下SyntaxError: Cannot use import statement outside a module的问题
- PPT手写笔颜色修改
- Windows API用以实现屏幕截图的方法
- python编程查看gpu显存使用
- CIA长期对华开展网络攻击,谍影重重缘起此处