ISD1420语音模块课程设计报告书.docx
《ISD1420语音模块课程设计报告书.docx》由会员分享,可在线阅读,更多相关《ISD1420语音模块课程设计报告书.docx(17页珍藏版)》请在冰豆网上搜索。
ISD1420语音模块课程设计报告书
ISD1420语音模块课程设计
一、实验内容
1、ISD1420语言模块(B1区):
(1)20秒录放音长度,具有不掉电存储功能;
(2)可分1—160段录放音片段
2、具体操作
(1)手动控制方式,通过B1区按键REC和按键PLAYE、PLAYL放音
(2)MCU控制方式,通过G6区8个按键控制录、放音:
1—4号键录音各五秒;然后通过5—8号键放音,放音内容顺序对应1—4号键的录音内容
二、实验原理图
1、录音、放音的工作原理:
(1)录音时,声音使话筒内纸盘发生振动,由电磁磁感应可使话筒内的线圈将产生随声音而变化的感应电流---音频电流---声音的模拟信号,然后经过A/D转换器将模拟信号转换为数字信号,然后将其存储在语音存储模块的存储空间里。
(2)放音时,语音存储模块里的数字信号,经过D/A转换器将数字信号转换为模拟信号---音频电流,然后再经过一个音频电流放大器,将一个较弱的电流信号放大足以驱动喇叭,喇叭内的线圈流过不断变化的电流,喇叭内的纸盘发生振动从而发出声音。
三、ISD1420语音模块程序框图
键扫描子程序:
按键处理子程序:
录音子程序:
放音子程序:
延时250毫秒子程序:
本次设计的硬件系统是在80C51的基础上由ISD1420语音芯片、直流电源模块、扬声器等部分组成。
利用80C51单片机作为CPU来进行总体控制,通过语音芯片ISD1420组成的语音控制电路能够建立多段语音库信息,并且可以对这些段的语音信息进行自由的组合,形成变化多样的语音提示信息,能够实现公交车的语音报站。
在CPU控制模式下,键盘电路采用子程序调用模式,当有键按下时,系统调用子程序,通过软件来实现该键号所对应键的功能。
ISD1420系列单片语音录放集成电路是美国Winbond公司产品,集成度较高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器和480K字节的E2PROM等。
四、实验步骤及现象
1、主线连线说明
STARES598PCI
B1区:
REC
——
A3区:
P3.2(INT0)录音控制
B1区:
PLAYE
——
A3区:
P3.3(INT1)电平放音控制
B1区:
PLAYL
——
A3区:
P3.4(T0)触发放音控制,下降沿触发
B1区:
CP
——
A3区:
CS1
G6区:
JP74
——
A3区:
JP51(P1)
2、将JP13,JP14,JP15跳向“MANUAL”,即手动录、放音。
三个控制按键(在B1区左边)REC(录音)、PLAYE(电平放音)和PLAYL(边沿放音)控制录音和放音。
3、将JP13,JP14,JP15跳向“MCU”,单片机控制,运行演示程序,1—4号键录音,5—8号键放音。
五、演示程序
ISD1420语音模块实验说明
实验目的:
1.掌握录音,放音的基本控制
2.掌握分段录音,放音控制
实验内容:
由MCU控制,通过G6区8个按键控制录、放音,每个按键控制录放音各5秒
录音按键:
G6区1,2,3,4号键分别可录音5秒;录音时,B1区DS6发光管亮
放音按键:
G6区5,6,7,8号键分别可放音5秒,与放音内容与1,2,3,4号键相对应
接线说明
按键:
G6区,8个按键,顺序连接到P1口,例如P1.0对应1号键
ISD1420:
B1区-->A3区
REC--->P3.2(INT0)
PLAYE->P3.3(INT1)
PLAYL->P3.4(T0)
CP---->CS1(0F000H)片选地址
ISD1420_AD1EQU00H;1号键录放音起始地址,每次录音5s
ISD1420_AD2EQU28H;2号键录放音起始地址
ISD1420_AD3EQU50H;3号键录放音起始地址
ISD1420_AD4EQU78H;4号键录放音起始地址
RECBITP3.2;录音接口
PLAYEBITP3.3;电平触发放音接口
PLAYLBITP3.4;边沿触发放音接口
ISDCOMMXDATA0F000H;录放音地址/操作模式输入地
址,0F000H是接到CS1上的地址
ORG0
LJMPSTART
ORG100H
START:
LCALLMainInit;主程序初始化
Main:
LCALLScanKey;扫描按键
JNCMain
Main1:
LCALLKeyRun;按键处理
JNBF0,Main;是否有新的键按下
CLRF0;清按键标志
SJMPMain1
JMPMAIN;循环进行实验内容介绍与ISD1420功能测试
主程序初始化
MainInit:
CLRF0;有键按下标志位,清0-无键按下
MOVP1,#0FFH
LCALLISD_INIT;ISD1420初始化
RET
录放音子程序
KEY1:
MOVA,#ISD1420_AD1;录音首地址
LJMPKEY_REC
KEY2:
MOVA,#ISD1420_AD2
LJMPKEY_REC
KEY3:
MOVA,#ISD1420_AD3
LJMPKEY_REC
KEY4:
MOVA,#ISD1420_AD4
LJMPKEY_REC
KEY_REC:
MOVR7,#20;录音时间长度,5s
LCALLISD_REC;调用录音子程序
KEY_REC1:
LCALLDelay_025S;延时
JBF0,KEY_REC2;检测按键是否有键按下
DJNZR7,KEY_REC1;录音时间,根据R7的值决定
LCALLISD_STOP;停止录音
KEY_REC2:
RET
放音子程序
KEY5:
MOVA,#ISD1420_AD1;放音首地址
LJMPKEY_PLAY
KEY6:
MOVA,#ISD1420_AD2
LJMPKEY_PLAY
KEY7:
MOVA,#ISD1420_AD3
LJMPKEY_PLAY
KEY8:
MOVA,#ISD1420_AD4
LJMPKEY_PLAY
KEY_PLAY:
MOVR7,#20
LCALLISD_PLAY;调用录用子程序
KEY_PLAY1:
LCALLDelay_025S;用于进度显示的时间参照
JBF0,KEY_PLAY2;检测按键是否有键按下
DJNZR7,KEY_PLAY1
KEY_PLAY2:
RET
KeyRun:
MOVDPTR,#KeyTab;有键按下,跳到相应处理程序
MOVA,B
RLA
JMP@A+DPTR
KeyTab:
SJMPKEY1;1--4号键,分别各录音5秒,ISD1420可录音20秒
SJMPKEY2
SJMPKEY3
SJMPKEY4
SJMPKEY5;5--8号键,对应分别放音各5秒
SJMPKEY6
SJMPKEY7
SJMPKEY8
按键扫描
ScanKey:
MOVA,P1;键扫描
CJNEA,#0FFH,ScanKey1
ScanKey4:
CLRC
RET
ScanKey1:
ACALLScanKey2
JNCScanKey4
ScanKey3:
MOVB,A
ACALLDelay20ms;消抖动
ACALLDelay20ms
ACALLScanKey2
JNCScanKey4
CJNEA,B,ScanKey3
ScanKey5:
MOVA,P1
CJNEA,#0FFH,ScanKey5
SETBC
RET
ScanKey2:
CLRA
JNBP1.0,ScanKey21
INCA
JNBP1.1,ScanKey21
INCA
JNBP1.2,ScanKey21
INCA
JNBP1.3,ScanKey21
INCA
JNBP1.4,ScanKey21
INCA
JNBP1.5,ScanKey21
INCA
JNBP1.6,ScanKey21
INCA
JNBP1.7,ScanKey21
CLRC
RET
ScanKey21:
SETBC
RET
Delay20ms:
MOVR6,#10
Delay1:
MOVR7,#100
DJNZR7,$
DJNZR6,Delay1
RET
延时0.25s
Delay_025S:
PUSH05H
PUSH06H
PUSH07H
MOVR5,#6
DL1S_1:
MOVR6,#100
DL1S_2:
MOVR7,#200
DJNZR7,$
DJNZR6,DL1S_2
DJNZR5,DL1S_1
ACALLScanKey
JNCDL1S_3
SETBF0;F0有键按下标志,F0=1,有键按下
DL1S_3:
POP07H
POP06H
POP05H
RET
录音子程序
A--存放操作方式设置值,R7--录几秒
ISD_INIT:
SETBREC;语音模块初始化,关闭录放音功能
SETBPLAYE
SETBPLAYL
MOVDPTR,#ISDCOMM
CLRA
MOVX@DPTR,A;允许手动录放音,当A6,A7为高时,无法手动放音
RET
操作模式,A-操作模式设置值
ISD_MODE:
PUSHACC
LCALLISD_STOP;语音模块初始化,将REC,PLAYE,PLAYL置位,并设置操作模式
MOVDPTR,#ISDCOMM;设置操作模式:
分段录音
POPACC
MOVX@DPTR,A;设置操作模式命令在A中
CLRPLAYL;给一个上升沿,锁存命令
NOP
NOP
NOP
SETBPLAYL
RET
录音
ISD_REC:
MOVDPTR,#ISDCOMM;设置录音起始地址
MOVX@DPTR,A
CLRREC;REC变低,即开始录音
RET
放音子程序
A--放哪段音
ISD_PLAY:
PUSHACC
LCALLISD_STOP;暂停之前的录放音操作
POPACC
MOVDPTR,#ISDCOMM;设置放音起始地址
MOVX@DPTR,A
CLRPLAYE;开始放音,边沿放音模式
NOP
SETBPLAYE
RET
停止录放音
ISD_STOP:
CLRPLAYL;一个负脉冲停止放音
NOP
SETBPLAYL
LCALLDelay50ms
SETBREC;关闭所有操作指令
SETBPLAYE
MOVDPTR,#ISDCOMM
CLRA
MOVX@DPTR,A;允许手动录放音,当A6,A7为高时,无法手动放音
RET
延时
Delay50ms:
PUSH06H
PUSH07H
MOVR6,#100
Delay50ms_1:
MOVR7,#200
DJNZR7,$
DJNZR6,Delay50ms_1
POP07H
POP06H
RET
END
六、实验结果
JP13、JP14、JP15:
设置操作模式,MCU:
CPU控制方式;MANUAL:
手动(REC、PLAYL、PLAYE)控制方式。
REC:
录音按键,低电平有效;
PLAYE:
电平放音按键,低电平有效,直到放音内容结束停止放音;
PLAYL:
边沿放音按键,下降沿有效,并在下一个上升沿停止放音。
MCU控制方式,通过G6区8个按键控制录、放音:
1—4号键录音各五秒;然后通过5—8号键放音,放音内容顺序对应1—4号键的录音内容
七、心得体会
通过本次课程设计,不仅使我更加了解了单片机设计的过程和基本方法,而且也亲身体验到了单片机的可靠性高、控制功能强、结构简单、体积小、能耗低等显著特点。
总之,本次课程设计,锻炼了我的自学,摸索,钻研能力。
我们要熟练地掌握课本上的知识,而且必须要有足够的耐心,要有坚持的毅力。
在整个设计过程中,在老师的耐心指导下,我仔细地查找资料,深刻地体会到整个设计需要反复实践。
本次课程设计使我明白了在以后的生活中应更加注重理论和实际的结合。
这样才能学以致用,并且也可以更好的学习知识,并增强了实践动手能力,是我受益匪浅!
八.参考文献
1.李全利,单片机原理及接口技术第二版,高等教育出版社
2.何立民,单片机高级教程,北京航空航天大学出版社
3.李广第,单片机基础,北京航空航天大学出版社,
4.夏继强,单片机实验与实践教程,北京航空航天大学出版社,