ISD1420语音模块课程设计.docx
- 文档编号:11250562
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:15
- 大小:137.11KB
ISD1420语音模块课程设计.docx
《ISD1420语音模块课程设计.docx》由会员分享,可在线阅读,更多相关《ISD1420语音模块课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
ISD1420语音模块课程设计
机械电子工程系
课程设计报告
专业班级电信
(2)班
课程微机原理及应用
题目ISD1420语音模块实验
学号
学生姓名
指导教师
2009年3月
西安文理学院机械电子工程系
课程设计任务书
学生姓名专业班级05级
(2)班学号
指导教师职称助教教研室电子信息工程
课程微机原理及应用
题目
ISD1420语音模块实验
开始日期2009.2.23完成日期2009.3.8
一、实验目的
了解ISD1420的性能;与PCI9052的接口逻辑;掌握手动和CPU控制两种录音、放音的基本功能。
二、实验设备
StarPCI9052、DMA$32BITRAM板卡一套、StarES-PCI模块一块、STARES598PCI实验仪一套、PC机一台。
三、实验内容
1、ISD1420语音模块(B1区):
(1)20秒录放音长度,具有不掉电存储功能;
(2)可分1-160段录放音片段
2、具体操作
(1)手动控制方式,通过B1区按键REC录音和按键PLAYE、PLAYL放音
(2)MCU控制方式,通过G6区8个按键控制录、放音:
1~4号键录音各5秒;然后通过5~8号键放音,放音内容顺序对应1~4号键的录音内容
四.实验原理图
五.实验步骤
1、主机连线说明:
2、将JP13,JP14,JP15跳向“MCU”,PCI9052控制,运行演示程序,1~4号键录音,5~8号键放音。
六.演示程序
.MODELTINY
.STACK100;堆栈段
ISD1420_AD1EQU00H;1号键录放音起始地址,每次录音5s
ISD1420_AD2EQU28H;2号键录放音起始地址
ISD1420_AD3EQU50H;3号键录放音起始地址
ISD1420_AD4EQU78H;4号键录放音起始地址
ISDCOMMEQU0F000H;录放音地址/操作模式输入地址,0F000H是接到CS1上的地址
I8255_CtrEQU0E003H;8255控制端口地址
I8255_PAEQU0E000H;键盘数据输入口
I8255_PCEQU0E002H;ISD1420控制输出口
.DATA
KeepModeDB7;保存REC、PLAYE、PLAYL当前值
bNewKeyDB0;有键按下标志位,清0-无键按下
KEYnoDB0;按键缓存
KeyTabDWKEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,KEY8;录音键、放音键子程序入口地址
.CODE;程序段
START:
MOVAX,@DATA
MOVDS,AX
NOP
CALLMainInit;主程序初始化
Main:
CALLScanKey;扫描按键
JNBMain
Main1:
CALLKeyRun;按键处理
CMPbNewKey,0;是否有新的键按下
JZMain
MOVbNewKey,0;清按键标志
JMPMain1;循环进行实验内容介绍与ISD1420功能测试
;主程序初始化
MainInitPROCNEAR
MOVbNewKey,0;有键按下标志位,清0-无键按下
MOVDX,I8255_Ctr;8255初始化
MOVAL,90H;PA为输入,PC的低四位为输出
OUTDX,AL
CALLISD_INIT;ISD1420初始化
RET
MainInitENDP
;********************************
;录放音子程序
;********************************
KEY1PROCNEAR
MOVAL,ISD1420_AD1;1号键录音首地址
CALLKEY_REC
RET
KEY1ENDP
KEY2PROCNEAR
MOVAL,ISD1420_AD2;2号键录音首地址
CALLKEY_REC
RET
KEY2ENDP
KEY3PROCNEAR
MOVAL,ISD1420_AD3;3号键录音首地址
CALLKEY_REC
RET
KEY3ENDP
KEY4PROCNEAR
MOVAL,ISD1420_AD4;4号键录音首地址
CALLKEY_REC
RET
KEY4ENDP
;录音子程序
KEY_RECPROCNEAR
MOVCX,20;录音时间长度,5s
CALLISD_REC;调用录音子程序
KEY_REC1:
CALLDelay_025S;延时
CMPbNewKey,0;检测按键是否有键按下
JNZKEY_REC2
LOOPKEY_REC1;录音时间,根据CX的值决定
CALLISD_STOP;停止录音
KEY_REC2:
RET
KEY_RECENDP
;放音子程序
KEY5PROCNEAR
MOVAL,ISD1420_AD1;5号键放音首地址
CALLKEY_PLAY
RET
KEY5ENDP
KEY6PROCNEAR
MOVAL,ISD1420_AD2;6号键放音首地址
CALLKEY_PLAY
RET
KEY6ENDP
KEY7PROCNEAR
MOVAL,ISD1420_AD3;7号键放音首地址
CALLKEY_PLAY
RET
KEY7ENDP
KEY8PROCNEAR
MOVAL,ISD1420_AD4;8号键放音首地址
CALLKEY_PLAY
RET
KEY8ENDP
KEY_PLAYPROCNEAR
MOVCX,20
CALLISD_PLAY;调用录音子程序
KEY_PLAY1:
CALLDelay_025S;用于进度显示的时间参照
CMPbNewKey,0
JNZKEY_PLAY2;检测按键是否有键按下
LOOPKEY_PLAY1
KEY_PLAY2:
RET
KEY_PLAYENDP
KeyRunPROCNEAR
LEABX,KeyTab;有键按下,跳到相应处理程序
MOVAL,KEYno;KEYno--按键值
SHLAL,1;×2倍
XORAH,AH
ADDBX,AX
CALL[BX];[BX]=对应按键子程序入口地址
RET
KeyRunENDP
;按键扫描
ScanKeyPROCNEAR
MOVDX,I8255_PA;8255.PA----检测按键输入
INAL,DX;键扫描
CMPAL,0FFH
JNZScanKey1
ScanKey4:
CLC;无按键按下
RET
ScanKey1:
CALLScanKey2;有按键,取抖动处理
JNBScanKey4
ScanKey3:
MOVBL,KEYno
CALLDelay20ms;消抖动
CALLDelay20ms
CALLScanKey2
JNBScanKey4
CMPBL,KEYno
JNZScanKey3
ScanKey5:
MOVDX,I8255_PA
ScanKey6:
INAL,DX
CMPAL,0FFH
JNZScanKey6
STC
RET
ScanKeyENDP
;按下的键(1~8)转化为对应的键值(0~7),便于多分支程序处理
ScanKey2PROCNEAR
PUSHBX
XORBL,BL
MOVDX,I8255_PA
INAL,DX
TESTAL,01H
JZScanKey21
INCBL
TESTAL,02H
JZScanKey21
INCBL
TESTAL,04H
JZScanKey21
INCBL
TESTAL,08H
JZScanKey21
INCBL
TESTAL,10H
JZScanKey21
INCBL
TESTAL,20H
JZScanKey21
INCBL
TESTAL,40H
JZScanKey21
INCBL
TESTAL,80H
JZScanKey21
CLC
JMPScanKey22
ScanKey21:
STC;有键按下,置有键按下标志
MOVKEYno,BL;获得键值
ScanKey22:
POPBX
RET
ScanKey2ENDP
;延时
Delay20msPROCNEAR
PUSHCX
MOVCX,2640
LOOP$
POPCX
RET
Delay20msENDP
;延时0.25s(兼有键盘检测功能)
Delay_025SPROCNEAR
PUSHAX
PUSHCX
PUSHDX
MOVCX,33000
LOOP$
MOVCX,33000
LOOP$
CALLScanKey
JNBDL1S_2
MOVbNewKey,1
DL1S_2:
POPDX
POPCX
POPAX
RET
Delay_025SENDP
;录音子程序
;AL--存放操作方式设置值,CX--录几秒
ISD_INITPROCNEAR
MOVDX,I8255_PC
MOVAL,KeepMode
ORAL,7;语音模块初始化,关闭录放音功能
OUTDX,AL
MOVKeepMode,AL
MOVDX,ISDCOMM
XORAL,AL
OUTDX,AL;允许手动录放音,当A6,A7为高时,无法手动放音
RET
ISD_INITENDP
;操作模式,AL-操作模式设置值
ISD_MODEPROCNEAR
PUSHAX
CALLISD_STOP;语音模块初始化,将REC,PLAYE,PLAYL置位,并设置操作模式
MOVDX,ISDCOMM;设置操作模式:
分段录音
POPAX
OUTDX,AL;设置操作模式命令在AL中
MOVDX,I8255_PC
MOVAL,KeepMode
ANDAL,0FBH
OUTDX,AL
ORAL,4
OUTDX,AL;给PLAYL一个上升沿,锁存命令
MOVKeepMode,AL
RET
ISD_MODEENDP
;录音
ISD_RECPROCNEAR
MOVDX,ISDCOMM
OUTDX,AL;设置录音起始地址
MOVDX,I8255_PC
MOVAL,KeepMode
ANDAL,0FEH
OUTDX,AL;REC变低,即开始录音
MOVKeepMode,AL
RET
ISD_RECENDP
;放音子程序
;AL--放哪段音
ISD_PLAYPROCNEAR
PUSHAX
CALLISD_STOP;暂停之前的录放音操作
POPAX
MOVDX,ISDCOMM;设置放音起始地址
OUTDX,AL
MOVDX,I8255_PC
MOVAL,KeepMode
ANDAL,0FDH
OUTDX,AL;0->PLAYE开始放音,边沿放音模式
ORAL,2
OUTDX,AL;1->PLAYE
MOVKeepMode,AL
RET
ISD_PLAYENDP
;停止录放音
ISD_STOPPROCNEAR
MOVDX,I8255_PC
MOVAL,KeepMode
ANDAL,0FBH
OUTDX,AL;PLAYL:
一个负脉冲停止放音
ORAL,4
OUTDX,AL
CALLDelay50ms
ORAL,3;1->REC,PLAYE
OUTDX,AL;关闭所有操作指令
MOVKeepMode,AL
MOVDX,ISDCOMM
XORAL,AL
OUTDX,AL;允许手动录放音,当A6,A7为高时,无法手动放音
RET
ISD_STOPENDP
;延时
Delay50msPROCNEAR
PUSHCX
MOVCX,13200
LOOP$
POPCX
RET
Delay50msENDP
ENDSTART
七、实验结果
JP13、JP14、JP15:
设置操作模式,MCU:
CPU控制方式;MANUAL:
手动(REC、PLAYL、PLAYE)控制方式。
REC:
录音按键,低电平有效;
PLAYE:
电平放音按键,低电平有效,直到放音内容结束停止放音
PLAYL:
边沿放音按键,下降沿有效,并在下一个上升沿停止放音
MCU控制方式,通过G6区8个按键控制录、放音:
1~4号键录音各5秒;然后通过5~8号键放音,放音内容顺序对应1~4号键的录音内容。
八、心得体会
作为一名电子信息工程专业的大四学生,我觉得做课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
我们是在做课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
其次,在这次课程设计中,我们运用到了以前所学的专业课知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ISD1420 语音 模块 课程设计