资源描述
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语音模块程序框图
开始
初始化ISD1420(语音模块初始化,
关闭录放音功能,容许手动录放音)
调用键盘扫描子程序
有键按下标志=1
调用按键解决子程序
有新按键按下
N
N
Y
Y
键扫描子程序:
N
P1口=0FFH
将P1口值转化为键值1
延时40ms
P1口=0FFH
将P1口值转化为键值
键值1=键值
键值=键值1
P1口=0FFH
1->有键按下标志
0->有键按下标志
Y
Y
N
N
Y
N
Y
开始
返回
按键解决子程序:
取1号键录音首地址
取2号键录音首地址
取3号键录音首地址
取4号键录音首地址
取5号键放音首地址
取6号键放音首地址
取7号键放音首地址
取8号键放音首地址
Y
Y
Y
Y
Y
Y
Y
Y
N
N
N
N
N
N
N
N
开始
返回
键值=1
键值=2
键值=3
键值=4
键值=5
键值=6
键值=7
键值=8
录音子程序:
20->计数器
设立录音起始地址
调用延时250毫秒子程序
0->P3.2(REC变低,即开始录音)
开始
1->P3.2(REC变高,即停止录音)
有键按下标志=1
计数器-1=0
Y
Y
N
N
返回
放音子程序:
N
20->计数器
设立放音起始地址
调用延时250毫秒子程序
0->P3.4,1->P3.4
(PLAY:一种负脉冲停止放音)
有键按下标志=1
计数器-1=0
Y
Y
N
开始
返回
0->P3.3,1->P3.3
(0,1->PLAYE开始放音,边沿放音模式)
延时250毫秒子程序:
延时250ms
调用键扫描子程序
开始
返回
本次设计硬件系统是在80C51基本上由ISD1420语音芯片、直流电源模块、扬声器等某些构成。运用80C51单片机作为CPU来进行总体控制,通过语音芯片ISD1420构成语音控制电路可以建立多段语音库信息,并且可以对这些段语音信息进行自由组合,形成变化多样语音提示信息,可以实现公交车语音报站。在CPU控制模式下,键盘电路采用子程序调用模式,当有键按下时,系统调用子程序,通过软件来实现该键号所相应键功能。
ISD1420系列单片语音录放集成电路是美国Winbond公司产品,集成度较高,内部涉及前置放大器、内部时钟、定期器、采样时钟、滤波器、自动增益控制、逻辑控制、模仿收发器、解码器和480K字节E2PROM等。
四、实验环节及现象
1、主线连线阐明
STAR ES598PCI
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_AD1 EQU 00H ;1号键录放音起始地址,每次录音5s
ISD1420_AD2 EQU 28H ;2号键录放音起始地址
ISD1420_AD3 EQU 50H ;3号键录放音起始地址
ISD1420_AD4 EQU 78H ;4号键录放音起始地址
REC BIT P3.2 ;录音接口
PLAYE BIT P3.3 ;电平触发放音接口
PLAYL BIT P3.4 ;边沿触发放音接口
ISDCOMM XDATA 0F000H ;录放音地址/操作模式输入地
址,0F000H是接到CS1上地址
ORG 0
LJMP START
ORG 100H
START: LCALL MainInit ;主程序初始化
Main: LCALL ScanKey ;扫描按键
JNC Main
Main1: LCALL KeyRun ;按键解决
JNB F0,Main ;与否有新键按下
CLR F0 ;清按键标志
SJMP Main1
JMP MAIN ;循环进行实验内容简介与ISD1420功能测试
主程序初始化
MainInit: CLR F0 ;有键按下标志位,清0-无键按下
MOV P1,#0FFH
LCALL ISD_INIT ;ISD1420初始化
RET
录放音子程序
KEY1: MOV A,#ISD1420_AD1 ;录音首地址
LJMP KEY_REC
KEY2: MOV A,#ISD1420_AD2
LJMP KEY_REC
KEY3: MOV A,#ISD1420_AD3
LJMP KEY_REC
KEY4: MOV A,#ISD1420_AD4
LJMP KEY_REC
KEY_REC:MOV R7,#20 ;录音时间长度,5s
LCALL ISD_REC ;调用录音子程序
KEY_REC1:LCALL Delay_025S ;延时
JB F0,KEY_REC2 ;检测按键与否有键按下
DJNZ R7,KEY_REC1 ;录音时间,依照R7值决定
LCALL ISD_STOP ;停止录音
KEY_REC2:RET
放音子程序
KEY5: MOV A,#ISD1420_AD1 ;放音首地址
LJMP KEY_PLAY
KEY6: MOV A,#ISD1420_AD2
LJMP KEY_PLAY
KEY7: MOV A,#ISD1420_AD3
LJMP KEY_PLAY
KEY8: MOV A,#ISD1420_AD4
LJMP KEY_PLAY
KEY_PLAY:MOV R7,#20
LCALL ISD_PLAY ;调用录取子程序
KEY_PLAY1:LCALL Delay_025S ;用于进度显示时间参照
JB F0,KEY_PLAY2 ;检测按键与否有键按下
DJNZ R7,KEY_PLAY1
KEY_PLAY2:RET
KeyRun: MOV DPTR,#KeyTab ;有键按下,跳到相应解决程序
MOV A,B
RL A
JMP @A+DPTR
KeyTab: SJMP KEY1 ;1--4号键,分别各录音5秒,ISD1420可录音20秒
SJMP KEY2
SJMP KEY3
SJMP KEY4
SJMP KEY5 ;5--8号键,相应分别放音各5秒
SJMP KEY6
SJMP KEY7
SJMP KEY8
按键扫描
ScanKey: MOV A,P1 ;键扫描
CJNE A,#0FFH,ScanKey1
ScanKey4:CLR C
RET
ScanKey1:ACALL ScanKey2
JNC ScanKey4
ScanKey3:MOV B,A
ACALL Delay20ms ;消抖动
ACALL Delay20ms
ACALL ScanKey2
JNC ScanKey4
CJNE A,B,ScanKey3
ScanKey5:MOV A,P1
CJNE A,#0FFH,ScanKey5
SETB C
RET
ScanKey2:CLR A
JNB P1.0,ScanKey21
INC A
JNB P1.1,ScanKey21
INC A
JNB P1.2,ScanKey21
INC A
JNB P1.3,ScanKey21
INC A
JNB P1.4,ScanKey21
INC A
JNB P1.5,ScanKey21
INC A
JNB P1.6,ScanKey21
INC A
JNB P1.7,ScanKey21
CLR C
RET
ScanKey21:SETB C
RET
Delay20ms:MOV R6,#10
Delay1: MOV R7,#100
DJNZ R7,$
DJNZ R6,Delay1
RET
延时0.25s
Delay_025S:PUSH 05H
PUSH 06H
PUSH 07H
MOV R5,#6
DL1S_1: MOV R6,#100
DL1S_2: MOV R7,#200
DJNZ R7,$
DJNZ R6,DL1S_2
DJNZ R5,DL1S_1
ACALL ScanKey
JNC DL1S_3
SETB F0 ;F0有键按下标志,F0=1,有键按下
DL1S_3: POP 07H
POP 06H
POP 05H
RET
录音子程序
A--存储操作方式设立值,R7--录几秒
ISD_INIT:SETB REC ;语音模块初始化,关闭录放音功能
SETB PLAYE
SETB PLAYL
MOV DPTR,#ISDCOMM
CLR A
MOVX @DPTR,A ;容许手动录放音,当A6,A7为高时,无法手动放音
RET
操作模式,A-操作模式设立值
ISD_MODE:PUSH ACC
LCALL ISD_STOP ;语音模块初始化,将REC,PLAYE,PLAYL置位,并设立操作模式
MOV DPTR,#ISDCOMM ;设立操作模式:分段录音
POP ACC
MOVX @DPTR,A ;设立操作模式命令在A中
CLR PLAYL ;给一种上升沿,锁存命令
NOP
NOP
NOP
SETB PLAYL
RET
录音
ISD_REC: MOV DPTR,#ISDCOMM ;设立录音起始地址
MOVX @DPTR,A
CLR REC ;REC变低,即开始录音
RET
放音子程序
A--放哪段音
ISD_PLAY:PUSH ACC
LCALL ISD_STOP ;暂停之前录放音操作
POP ACC
MOV DPTR,#ISDCOMM ;设立放音起始地址
MOVX @DPTR,A
CLR PLAYE ;开始放音,边沿放音模式
NOP
SETB PLAYE
RET
停止录放音
ISD_STOP:CLR PLAYL ;一种负脉冲停止放音
NOP
SETB PLAYL
LCALL Delay50ms
SETB REC ;关闭所有操作指令
SETB PLAYE
MOV DPTR,#ISDCOMM
CLR A
MOVX @DPTR,A ;容许手动录放音,当A6,A7为高时,无法手动放音
RET
延时
Delay50ms:PUSH 06H
PUSH 07H
MOV R6,#100
Delay50ms_1:MOV R7,#200
DJNZ R7,$
DJNZ R6,Delay50ms_1
POP 07H
POP 06H
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.夏继强,单片机实验与实践教程,北京航空航天大学出版社,
展开阅读全文