具体功能:系统由STC89C52单片机+ISD4004录音芯片+LM386功放模块+小喇叭+LCD1602+按键+指示灯+电源构成1.可通过按键随时选择相应的录音进行播放;2.可以通过按键随时录音,可以录制4段声音,并可以按键控制播放和暂停,最长可以录制8分钟;3.播放的音量可以通过调节电位器改变;
全部资料:可定制,可指导
基于51单片机的语音实时采集系统毕业论文
摘要
本文设计并实现了一种基于STC89C52单片机的语音实时采集系统。该系统利用ISD4004录音芯片进行语音的录制和播放,通过LM386功放模块驱动小喇叭,同时使用LCD1602显示当前状态,通过按键实现录音、播放、暂停等功能。系统具有操作简便、功能丰富、成本低廉等优点,适用于多种语音采集和播放场景。
1. 引言
随着嵌入式技术的不断发展,语音处理技术在日常生活中的应用越来越广泛。本文设计的基于51单片机的语音实时采集系统,旨在实现语音的实时录制和播放功能,为用户提供便捷的语音处理工具。系统采用STC89C52单片机作为主控芯片,结合ISD4004录音芯片、LM386功放模块、LCD1602显示模块、按键和指示灯等组件,实现了语音的录制、播放、暂停和音量调节等功能。
2. 系统总体设计
系统主要由以下几个部分组成:
STC89C52单片机:作为主控芯片,负责系统的控制和数据处理。
ISD4004录音芯片:用于语音的录制和播放。
LM386功放模块:用于驱动小喇叭,实现声音的放大。
LCD1602显示模块:用于显示系统状态信息。
按键:用于用户操作,实现录音、播放、暂停等功能。
指示灯:用于指示系统状态。
电源:为系统提供稳定的电源。
3. 硬件设计
3.1 STC89C52单片机
STC89C52是51系列单片机的一种,具有8K字节的Flash存储器,256字节的RAM,32个I/O口,2个16位定时器/计数器,5个中断源等。在本系统中,STC89C52作为主控芯片,负责控制ISD4004录音芯片、LM386功放模块、LCD1602显示模块等组件的工作。
3.2 ISD4004录音芯片
ISD4004是一款高性能的语音录放芯片,支持最长8分钟的语音录制和播放。该芯片具有低功耗、高音质、操作简单等特点。在本系统中,ISD4004通过SPI接口与STC89C52单片机进行通信,实现语音的录制和播放功能。
3.3 LM386功放模块
LM386是一款低电压音频功率放大器,具有高增益、低失真、低噪声等特点。在本系统中,LM386功放模块用于驱动小喇叭,实现声音的放大。通过调节电位器,可以改变功放模块的增益,从而实现音量的调节。
3.4 LCD1602显示模块
LCD1602是一种常见的16x2字符型液晶显示模块,具有显示清晰、功耗低、接口简单等特点。在本系统中,LCD1602用于显示系统状态信息,如当前录音段数、播放状态等。
3.5 按键
系统中使用了多个按键,用于实现录音、播放、暂停等功能。按键通过I/O口与STC89C52单片机连接,单片机通过检测按键状态,实现相应的功能。
3.6 指示灯
指示灯用于指示系统状态,如录音状态、播放状态等。指示灯通过I/O口与STC89C52单片机连接,单片机通过控制I/O口的电平,实现指示灯的点亮和熄灭。
3.7 电源
系统采用5V直流电源供电,为各模块提供稳定的电源。
4. 软件设计
4.1 系统初始化
系统上电后,首先进行初始化操作,包括单片机的初始化、ISD4004录音芯片的初始化、LCD1602显示模块的初始化等。初始化完成后,系统进入主循环,等待用户操作。
4.2 按键处理
系统通过检测按键状态,实现录音、播放、暂停等功能。按键处理程序采用中断方式,当检测到按键按下时,进入相应的中断服务程序,执行相应的操作。
4.3 语音录制
用户通过按键选择录音功能,STC89C52单片机通过SPI接口向ISD4004录音芯片发送录制命令,ISD4004开始录制语音。录制完成后,ISD4004将语音数据存储在内部存储器中。
4.4 语音播放
用户通过按键选择播放功能,STC89C52单片机通过SPI接口向ISD4004录音芯片发送播放命令,ISD4004开始播放存储的语音数据。播放过程中,用户可以通过按键实现暂停和继续播放功能。
4.5 音量调节
用户通过调节电位器,改变LM386功放模块的增益,从而实现音量的调节。电位器的阻值变化通过ADC模块转换为数字信号,STC89C52单片机根据数字信号调整LM386的增益。
4.6 状态显示
系统通过LCD1602显示模块,实时显示当前状态信息,如当前录音段数、播放状态等。用户可以通过LCD1602了解系统的运行状态。
5. 系统测试
5.1 功能测试
对系统的各项功能进行测试,包括录音、播放、暂停、音量调节等。测试结果表明,系统各项功能均能正常工作,满足设计要求。
5.2 性能测试
对系统的性能进行测试,包括录音质量、播放音质、功耗等。测试结果表明,系统具有较高的录音质量和播放音质,功耗较低,满足实际应用需求。
6. 结论
本文设计并实现了一种基于STC89C52单片机的语音实时采集系统。系统利用ISD4004录音芯片、LM386功放模块、LCD1602显示模块等组件,实现了语音的录制、播放、暂停和音量调节等功能。系统具有操作简便、功能丰富、成本低廉等优点,适用于多种语音采集和播放场景。未来,可以进一步优化系统性能,增加更多功能,提高系统的实用性和可靠性。
参考文献
[1] STC89C52单片机数据手册
[2] ISD4004录音芯片数据手册
[3] LM386功放模块数据手册
[4] LCD1602显示模块数据手册
[5] 51单片机编程与应用
以上是基于51单片机的语音实时采集系统的毕业论文,详细介绍了系统的总体设计、硬件设计、软件设计、系统测试和结论。希望对你的毕业论文写作有所帮助。
if(K3==0&&key_bit1==0) //选择播放哪段
{
while(K3==0&&key_bit1==0);
key_bit2=1;
num11++;
if(num11>play_count)
{
num11=0;
bb=0;cc=0;dd=0;
key_bit2=0;
LCD_write_str(0,0," ");
}
switch(num11)
{
case 1:{LCD_write_str(0,0,"NUM:1 Rec ");bb=1;cc=0;dd=0;ee=0;}break;
case 2:{LCD_write_str(0,0,"NUM:2 Rec ");bb=0;cc=1;dd=0;ee=0;}break;
case 3:{LCD_write_str(0,0,"NUM:3 Rec ");cc=0;bb=0;dd=1;ee=0;}break;
case 4:{LCD_write_str(0,0,"NUM:4 Rec ");cc=0;bb=0;dd=0;ee=1;}break;
}
}
if(bb==1){
if(K2==0&&key_bit2==1)
{
while(K2==0);
key_bit1=1;
play(0x0000);
LCD_write_str(0,0,"NUM:1 Playing ");
}
}
if(cc==1){
if(K2==0&&key_bit2==1)
{
while(K2==0);
key_bit1=1;
play(0x012d);
LCD_write_str(0,0,"NUM:2 Playing ");
}
}
if(dd==1){
if(K2==0&&key_bit2==1)
{
while(K2==0);
key_bit1=1;
play(0x0259);
LCD_write_str(0,0,"NUM:3 Playing ");
}
}
if(ee==1){
if(K2==0&&key_bit2==1)
{
while(K2==0);
key_bit1=1;
play(0x0385);
LCD_write_str(0,0,"NUM:4 Playing ");
}
}
}
/以下部分为主程序///
void main()
{
num_rec = ISP_READ(0x2c00); //保存数值回读
reccout = ISP_READ(0x2c01);
play_count=num_rec; //保存条数
init1602(); //液晶初始化
LCD_write_str(0,1,"N:");
stop();
while(1)
{
keyscan(); //按键扫描
playsound(); //录播放
Write_num(0xC2,num_rec); //显示条数
}
}