摘  要

随着语言的处理技术在工业生产、交通、通信等方面的运用得到不断创新。数码录音放音系统已得到了越来越多的人的青睐,通过对多种录音放音系统的设计方案进行了比较和分析,本论文最终选定以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 引脚。协议的具体内容为:

  1. SS 在传输期间必须保持为低电平,在两条指令之间则保持为高   电平。
  2. 数据在时钟上升沿移入,在下降沿移出。
  3. 4.SS 变低,输入指令和地址后,ISD 才能开始录放操作。
  4. 指令格式是(8 位控制码)加(16 位地址码)。
  5. ISD 的任何操作(含快进)如果遇到EOM 或OVF,则产生一个中断,该中断状态在下一个SPI 周期开始时被清除。
  6. 使用"读"指令使中断状态位移出ISD 的MISO 引脚时,控制及地址数据也应同步从MOSI 端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI 周期里,同时执行读状态和开始新的操作
  7. 所有操作在运行位(RUN)置1 时开始,置0 时结束。
  8. 所有指令都在SS 端上升沿开始执行。

该芯片的上电顺序:器件延时TPUD后才能开始操作。因此,用户发完上电指令后,必须等待 TPUD,才能发出一条操作指令。

例如从00 从处发音,应遵循如下时序:

  1. 发POWERUP 命令;
  2. 等待TPUD(上电延时);
  3. 发地址值为00 的SETPLAY 命令;
  4. 发PLAY 命令器件会从此00 地址开始放音,当出现EOM 时,立即中断,停止放音。

如果从00处录音,则按以下时序:

  1. 发POWERUP命令;
  2. 等待TPUD(上电延时);
  3. 发POWERUP命令
  4. 等待2倍TPUD;
  5. 发地址值为00的SETREC命令;
  6. 发REC命令,器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。

表2-3 ISD4004指令表

2.2.2 LCD1602液晶显示

LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块,它有若干个5X7或者5X10等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔起到了字符间距和行间距的作用,正因为如此,所以他不能很好的显示图形。目前常用16*1,16*2,20*2和40*2行等的模块。

一般的LCD1602字符型液晶显示器的内部控制器大部分为HD44780,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号。

LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。一般1602字符型液晶显示器实物如图2-4如下。

图2-4 LCD1602实物图

LCD1602具有如下特性:

(1)+5V电压,对比度可调

(2)内含复位电路

(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能

(4)有80字节显示数据存储器DDRAM

(5)内建有160个5X7点阵的字型的字符发生器CGROM

(6)8个可由用户自定义的5X7的字符发生器CGRAM

2.2.3 STC89C52RC单片机

STC89C52RC是宏晶科技公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52RC使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52RC 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。其引脚图如图2-4所示。

其内部结构主要组成为:

(1)8位CPU,8kbytes程序存储器(ROM);

(2)256bytes的数据存储器(RAM);

(3)32条I/O口线,111条指令,大部分为单字节指令;

(4)21个专用寄存器;

(5)3个可编程定时/计数器,6个中断源,2个优先级;

(6)I/O口:4个8位并行I/O口,既可用作输入,也可用作输出;

(7)T/C:3个定时/记数器,既可以工作在定时模式,也可以工作在记数

图2-5 STC89C52引脚图

模式;

(8)一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;

(9)片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。

2.2.4 LM386音频功率放大器

LM386是国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在1脚和8脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。LM386的封装形式有塑封8引线双列直插式和贴片式,原理图如图2-6所示。

图2-6 LM386芯片

特性:

(1)静态功耗低,约为4mA,可用于电池供电;

(2)工作电压范围宽,4-12V or 5-18V;

(3)外围元件少;

(4)电压增益可调,20-200;

(5)低失真度;

3  硬件设计

3.1 系统各部分电路设计

3.1.1单片机最小系统电路

单片机最小系统,也称为最小应用系统,它是指由最少元件组成可以使单片机正常工作的系统。单片机最小系统大致包括电源电路、复位电路、晶振电路三部分组成。单片机最小系统电路如图3-1所示。

图3-1单片机最小系统

电源电路:作为电子元器件,单片机也是需要供电的。单片机供电有一个范围,本系统使用的STC89C52单片机,它一般使用5V电源。在使用的时候,可以从USB接口当中获取5V电源。为此搭建了电源电路如图3-2所示。

图3-2电源电路

复位电路:单片机通电需要复位一次,因此,复位电路也是单片机最小系统的一部分。由电容C1与电阻R07组成的复位电路。单片机通常有一个低电压复位引脚,即当输入到低电平时,单片机复位。当电阻给电容器充电时,电容器的电压缓慢上升到VCC。当芯片复位脚接近低电平时,芯片复位接近VCC,因此芯片停止复位并完成复位。

晶振电路:单片机正常工作是需要一个时钟的,因此需要在晶振引脚外接一个晶振。单片机有两个引脚为外部晶振的输入口,晶振的两端接这两个IO口。把晶振直接的连接在IO口上会导致系统工作不稳定,因为在晶振启振一瞬间会产生电感,为了消除电感带来的干扰,可分别在晶振的两端接电容到地,这两个电容取值在10~33P之间即可,从而让晶振工作的时候更加稳定。

3.1.2 LCD1602显示电路

数据端口D0至D7与单片机P0.0至P0.7的I/O口相连用于数据的传输,数据/命令选择RS与单片机P2.7相连,读/写选择接电源地线(高电平时进行读操作,低电平时进行写操作)。使能端E连接单片机P2.6口。由单片机P2.6与P2.7端进行控制。LCD1602显示电路如图3-3所示。

图3-3LCD1602显示模块

3.1.3 信号收集放大处理电路

信号收集放大处理电路由ISD4004语音芯片与LM386芯片组成。ISD4004语音芯片主要负责采集信号。LM386芯片主要负责信号的放大处理。由于ISD4004语音芯片需要3.3V的电压供电。因此需要搭建一个由3.3V的芯片(AMS117-3.3V电源稳压芯片)组成的电路,把5V电压转成3.3V从而给ISD4004语音芯片供电。3.3V电压如图3-4所示。

图3-4 3.3V电压电路

片选端口(SS)连接于单片机P3.6口。串行输出端口(MOSI)连接于单片机P3.5口。芯片数据地(Vssd)与模拟地(Vssa)全部与地线相接。外部时钟(XCLK)连接地线。同相模拟输入(IN+)与反相模拟输入(IN-)分别与电容、电阻以及麦克风组成信号采集电路。自动静噪(AMCAP)接电容接地。音频输出(AUDOUT)与电位器R22串联接与LM386芯片信号输入端口进行信号的放大处理。电位器R22的作用是调节音量大小。LM386两个增益端口1脚与8脚相连,中间串联一个1K电阻与一个10uF的电容。当两个增益端口相连10uF的电容时,电压放大倍数为200倍。5脚(Vout)为信号输出端口串联电容C10连接喇叭可放音。信号收集放大处理电路如图3-5所示。

图3-5信号收集放大处理模块

3.1.4 按键控制电路  (楷体小四号)

按键控制模块由按键开关S0-S4分别与单片机的P1.2-P1.6端口连接,用于控制单片机实现系统功能。S0为录音条目切换,S1为录音按键,S2为放音按键S3为删除按键,S4为退出按键。按键控制电路如图3-6所示。

图3-6按键控制模块

4  软件设计

4.1 程序总体设计

本次毕业设计的程序用全部由C语言编写完成,编程软件用的是Keli uVision5来进行程序的编写。编写程序时采用多文件编写方式,运用时在主函数里调用即可。

设计以MCS-51系列的单片机作为主控核心,ISD4004做录放音部分及外部电路组成的一个数码录音放音系统。系统实现录音、放音、播放停止、快进快退、删除、显示相关信息等功能。

程序设计中由以下几个主体部分组成,主程序处理部分、按键处理部分、ISD4004语音处理部分、LCD1602信息显示部分。程序以多文件方式进行编写,更易于对程序的处理与调用。

程序流程图如图4-1所示。

图4-1程序总体框图

主程序如下;对LCD1602进行初始化,并显示上电后的信息,再对ISD、计数器进行初始化,打开芯片使能端并延时。在while循环中调用各部分函数,使之显示数码录音放音系统的功能。

void main()

{

lcd1602_init();

L1602_string(1,1,"lcd init");

isd_init();

isd_stop();

timer_init();

EA = 1;

delay_ms(10);

while(1)

{

key_handle();

isd4004_handle();

lcd1602_handle();

}

}

4.1.1 ISD录音程序设计

录音程序设计大致为三部分,即通信命令函数(SendCmd)、自动放音函数(isd_autoplay)、自动录音函数(isd_autorecord)。

通信命令函数:内容主要包括ISD芯片通信端spi开启与关闭,以及录放音地址的配置,还有命令的调用。

void SendCmd(unsigned char cmd,unsigned int addr)

{

unsigned char ar;

SS=0; //ss=0,打开spi通信端

delay(5);

ar=(unsigned char)(addr);

spi_send(ar); //发送地址低位

ar=(unsigned char)(addr>>8);

spi_send(ar); //发送地址高位

spi_send(cmd);//发送命令

SS=1;

delay(5);

SCLK=0;

}

自动放音函数:如从00处放音,首先打开串行输入以及给串行时钟,随即发POWERUP 命令,并延时TPUD(上电延时),再发地址值为00的SETPLAY命令,命令发送后芯片便从为00地址开始放音,直到出现了EOM时放音音结束。编写程序参照于ISD4004芯片手册上电时序。

void isd_autoplay(unsigned int addr)

{

SS=0;  //发送开始

MOSI=0;

SCLK=0;

spi_send(ISDPOWERUP);    // 上电

SS=1;

delay_ms(50);

SS=0;      //发送发音地址

MOSI=0;

SCLK=0;

spisend16(addr);

MOSI=0;//设置命令

SCLK=0;

spi_send(PLAYSET);

SS=1;

SS=0;

MOSI=0;//放音命令

SCLK=0;

spi_send(PLAYCUR);

SS=1;

}

自动录音函数:如从00处录音,首先打开串行输入以及给串行时钟,随即发POWERUP 命令,并延时2倍TPUD(上电延时),再发地址值为00的SETREC命令,命令发送后芯片便从为00地址开始录音,直到出现了OVF(存贮器末尾)时录音结束。编写程序参照于ISD4004芯片手册上电时序。

void isd_autorecord(unsigned int addr)

{

SS=0;  //发送开始

MOSI=0;

SCLK=0;

spi_send(ISDPOWERUP);    // 上电

SS=1;

delay_ms(50);

SS=0;  //发送开始

MOSI=0;

SCLK=0;

spi_send(ISDPOWERUP);    // 上电

SS=1;

delay_ms(50);

SS=0;      //发送放录音地址

MOSI=0;

SCLK=0;

spisend16(addr);

MOSI=0;//录音 设置命令

SCLK=0;

spi_send(RECSET);

SS=1;

SS=0;

MOSI=0;//录音 命令

SCLK=0;

spi_send(RECCUR);

SS=1;

}

4.1.2 按键控制程序设计

正文……(首行缩进两个字,宋体小四号)

void key_handle(void)

{

key_value = key_scan();

if(key_value != 0)

{

if(mode == 0)

{

if(key_value == 1) //条目选择

{

if(++num >= 5) num = 1;

}

else if(key_value == 2) //录音

{

mode = 1;

lock_flag = 1;

}

else if(key_value == 3) //播放

{

mode = 2;

lock_flag = 1;

play_addr_len = 0;

}

else if(key_value == 4) //删除

{

mode = 3;

lock_flag = 1;

play_addr_len = 0;

}

}

if(key_value == 5) //退出

{

mode = 0;

lock_flag = 1;

}

if(mode == 2)

{

if(key_value == 1) //快进

{

isd_autoplay(isd_addr[num-1]+play_addr_len+10);

}

else if(key_value == 2) //快退

{

if(play_addr_len > 10)

{

isd_autoplay(isd_addr[num-1]+play_addr_len-10);

play_addr_len = play_addr_len-10;

}

}

else if(key_value == 3) //暂停

{

isd_stop();

}

else if(key_value == 4) //继续

{

if(play_addr_len < 300)

{

isd_autoplay(isd_addr[num-1]+play_addr_len);

}

}

}

}

}

5  系统测试

5.1 系统实物

本数码录音放音系统设计实物如图5-1所示。

图5-1数码录音放音系统

5.2 系统实现功能概况

系统上电之后,按下自锁开关LCD1602会进入录音条目选择界面。按键开关从左至右功能分别为条目选择、录音、播放、删除、退出。条目选择共4条,共可以录音4条语音信息。选择相对应的条目可以实现录音、播放、删除。

当按下录音键后,系统开始录音。录音完毕时,按下退出键。再按播放键可播放录音内容,同时第一个按键能实现快进,第二个按键能实现快退,第三与第四按键能实现继续与停止。只有在播放模式下这四个按键才能实现快进、快退、继续与停止的功能。

选择相对应的条目,在按下删除键即可删去该条目的语音信息。通过调节电位器可以调节喇叭音量大小。

5.3 系统的不足及改进方式

本系统在播放录音时会有少量的噪音,可能由以下原因造成:

(1)整个系统完全是手工焊制,线路之间存在干扰;

(2)ISD4004语音芯片的数字地与模拟地没有分别走线,全部接到了一起,存在干扰;

(3)语音输入放大电路的放大倍数不够,噪声没有得到足够的抑制。

另外由于语音芯片的限制,该录音芯片时间过短,可选取存储空间大一些的芯片来取代。该语音芯片也不是数字信息存储,不能和PC端交互,在改良时,可以选取数字存储类的芯片。

整个系统的设计合理,外围电路结构简单,方便调试;单片机余留有I/0 口,方便系统的升级和扩展;单片机的所有程序均使用c一51进行编写,方便调试和阅读。整个系统工作稳定,操作方便。本设计的设计原理完全可以用在公共汽车上,作为语音报站器使用,也可以用在银行和医院等一些需要自动播报语音信息的公共场所。在本设计的基础上稍加扩充,就可以满足实际应用的需要。

ISD4004语音芯片没有删除指令。

6 结论

几个月的努力,虽然过程磕磕绊绊,但最终还是把毕业设计顺利完成了。回顾整个过程中,一开始根本就不知道到自己要做的是什么,有些时候都怀疑自己是否有能力完成毕业设计。从开始找资料分析,选择方案确定器件。回顾一开始选题时,并没有去细致的查资料挑选,只是想着随便选一个题目就好了,可以说毫无准备。

需要全部资料可在我的资源中下载。内容包括:

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

基于51单片机的数码录音放音系统设计相关推荐

  1. 基于51单片机的DS18B20温度控制加热降温系统设计

    基于51单片机的DS18B20温度控制加热降温系统设计 1 开发环境 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7.2 概述 7.3 国内外研究 ...

  2. 基于51单片机的MQ-5天然气监测报警系统设计

    基于51单片机的天然气监测报警系统设计 基于51单片机的天然气监测报警系统设计 视频 1 开发环境 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7 ...

  3. 《电子DIY》之《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解

    <电子DIY>之<单片机实践项目>之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解 添加链接描述

  4. 毕业设计 基于51单片机智能停车场管理车位引导系统设计

    基于51单片机智能停车场管理车位引导系统设计 0.毕业设计选题原则说明(重点) 1.项目简介 1.1 系统构成 1.2 系统功能 2.部分电路设计 2.1 STC89C52单片机核心系统电路设计 2. ...

  5. 基于51单片机的智能家居防火防盗系统设计

    基于51单片机的智能家居防火防盗系统设计 自动开关灯,温度,烟雾浓度报警,数值可调节等:附赠资料包含原理图,仿真,代码(C语言),实物的元件清单及功能演示视频.适合课设. CSDN内下载地址:下载地址 ...

  6. (毕业设计资料)基于51单片机红外无线遥控智能家电控制系统设计

    基于51单片机红外遥控定时开关智能家电插座设计 本系统由STC8C52单片机电路+时钟DS1302电路+LCD1602液晶显示电路+按键电路+继电器控制电路+蜂鸣器报警电路+红外传感器电路+电源电路组 ...

  7. 基于51单片机的数码管显示方案

    这一次给大家带来的项目是课堂作业级别的51单片机数码管显示,本次的项目着重于讲解原理,让大家明白单片机的io对于外界设备的控制是如何进行的. 共阳极和共阴极数码管的差异 (1)驱动方法的差异.一个数码 ...

  8. 基于51单片机的数码管闹钟设计

    系统功能:利用定时器实现时钟,时钟可以通过独立按键设置,设有一个闹钟,闹钟时间可通过按键进行设置,时钟界面和闹钟界面可通过按键切换,当时钟和闹钟时间相同,蜂鸣器响,提示闹钟时间到等. 此系统重点在于: ...

  9. 基于51单片机的数码时钟

    我是使用独立键盘控制,7位数码管显示来完成的数字时钟的显示部分,用蜂鸣器部分来完成声音的控制. 首先我是使用中断来完成该项目的时间调控和时间进位,并且在中断之中加入了声音调控的功能,与此同时,程序还一 ...

最新文章

  1. 生产环境实用的小脚本
  2. 初识片选信号和中断控制器
  3. 框架:SpringMVC常用注解总结
  4. 「Ubuntu」仓库 “https://mirrors.tuna.tsinghua.edu.cn/ubuntu focal Release” 没有 Release 文件。
  5. objective-c高级编程 笔记
  6. struts2工作原理
  7. 听云支持.NET Core的应用性能监控
  8. 打开游戏要运行19.8亿次 if 语句?黑客嘲讽RockStar游戏代码太烂了
  9. 柯尼卡美能达c353改语言,柯尼卡美能达bizhub c353c253c203维修手册中文部分2.pdf
  10. 服装行业进销存软件有哪些简单好用又便宜的?
  11. html设置表格列宽百 分比,WPS解决实现单页显示 高分辨率显示器百分之百比例下双页改单页方法...
  12. RHEL8破解root密码
  13. unity全栈开发是什么意思_unity3D用什么语言开发好?
  14. 推荐一款HTML在线编辑器
  15. 【美】纳西姆·尼古拉斯·塔勒布 - 随机生存的智慧(2013年7月16日)
  16. 解决node环境下SyntaxError: Cannot use import statement outside a module的问题
  17. PPT手写笔颜色修改
  18. Windows API用以实现屏幕截图的方法
  19. python编程查看gpu显存使用
  20. CIA长期对华开展网络攻击,谍影重重缘起此处

热门文章

  1. 图像紫边消除(depurple)
  2. js 已知角度和斜边,求直角边
  3. H5游戏-面试问题知识点总结
  4. linux用户视角可分为,经济学原理下全球视角尔雅答案
  5. 图像识别解释方法的视觉演变
  6. Python语法之文件操作思维导图
  7. Linux 硬盘管理工具
  8. 大数据分析与挖掘期末复习
  9. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java校园竞赛管理系统设计与实现hyr9b
  10. CSS如何使用伪元素选择器给所有的div里的文本前面添加小写罗马数字编号