数字录音机实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

综合设计题目:数字录音机

一、设计目的:

1、了解数字录音技术的基本原理。

2、进一步掌握A/D 转换器与D/A 转换器的使用方法。

3、巩固和加深用汇编语言程序设计的能力。

二、设计所用器件和仪器设备:

1、实验箱 1台

2、计算机 1台

3、麦克及喇叭各1个

三、设计内容及要求:

1、将声传感器接J2,把代表语音的电信号送给ADC0809通道2(IN2);D/A 转换器的输出端J1接喇叭(采用单缓冲方式)。电路如下:

2、编程以每秒钟5000次的速率采集IN2输入的语音数据并存入内存,共采集30000个数据(录6秒),然后再以同样的速率将数据送DAC0832使喇叭发声(放音)

四、设计方案流程图:

Y

N

五、实现的程序清单及注释:

DATAS SEGMENT

ioport equ 0c800h-280h

io0809 equ ioport+29ah;ADC0809通道2的入口地址

io0832 equ ioport+290h;DAC0832的片选地址

io8253 equ ioport+280h;8253的片选地址

io8255 equ ioport+288h;8255的片选地址

io8253c equ ioport+283h;8253的控制字地址

io8255c equ ioport+28bh;8255的控制字地址

msg0 db'',0dh,0ah,'$';录音提示,0dh和0ah是回车+换行

msg1 db0dh,0ah,'',0dh,0ah,'$';输入错误提示

msg2 db0dh,0ah,'',0dh,0ah,'$';放音提示

msg3 db0dh,0ah,'',0dh,0ah,'$';输入错

误提示

msg4 db0dh,0ah,'Recording...',0dh,0ah,'$';

msg5 db0dh,0ah,'Playing...',0dh,0ah,'$';

msg6 db'Input:','$';

msg7 db'--Digital Recorder v.N.0-- by Jackie Lam',0dh,0ah,'$';版本信息msg8 db0dh,0ah,'Thank you!',0dh,0ah,'$';

msg9 db0dh,0ah,'Record Complete!',0dh,0ah,'$';

msg10 db0dh,0ah,'Play Over.',0dh,0ah,'$';

msg11 db0dh,0ah,'If you want to pause,press any key!','$';暂停录音msg12 db0dh,0ah,'',0dh,0ah,'$';重播提示

msg13 db'',0dh,0ah,'$';退出提示

buf db60000 dup(?)

DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS

START:

MOV AX,DATAS

MOV DS,AX

MOV DX,OFFSET MSG7;显示版本信息

MOV AH,09H

INT 21H

MOV DX,OFFSET MSG7;显示版本信息

MOV AH,09H

INT 21H

MOV DX,OFFSET MSG0;显示录音提示

MOV AH,09H;DOS中断调用,显示字符串'PRESS R TO START RECORD' INT 21H

MOV DX,OFFSET MSG6;显示输入

MOV AH,09H

INT 21H

MOV AH,1;输入并显示所作选择

INT 21H

CMP AL,'R';与大写“R”作比较

JZ OK0;输入“R”,进入录音

CMP AL,'r';否则与小写“r”作比较

JZ OK0;输入“r”,进入录音

MOV DX,OFFSET MSG1;否则,输入错误,显示错误信息MOV AH,09H

INT 21H

MOV DX,OFFSET MSG6;显示输入

MOV AH,09H

INT 21H

JNZ CHOOSE0

OK0:

MOV DX,OFFSET MSG4;显示正在录音

MOV AH,09H

INT 21H

;MOV DX,OFFSET MSG11;显示暂停播放提示

;MOV AH,09H

;INT 21H

MOV DI,OFFSET BUF;定义缓冲区的指针

MOV CX,60000;计数初值为采集数据的数目:60000

REC:

MOV DX,IO0809;0809的片选地址

OUT DX,AL;启动A/D转换

CALL DELAY

IN AL,DX;输入转换数据

INC DI;指针加1

;避免出现等待输入而无法继续自动循环录音过程,DOS中断调用的01、07号功能测试失败;MOV AH,0BH;检查键盘状态

;INT 21H

;TEST AL,00;与大写“P”作比较

;JZ OK2;录音完毕

;TEST AL,00;与小写“P”作比较

;JZ OK2;录音完毕

;DEC CX;CX-1

;JCXZ OK2;录音完毕

;JMP REC;无条件转移,回到录音过程

LOOP REC;循环装入30000个A/D转换后的数据

OK2:

MOV DX,OFFSET MSG9;显示录音完毕

MOV AH,09H

INT 21H

MOV DX,OFFSET MSG2;显示播放录音提示

MOV AH,09H

INT 21H

MOV DX,OFFSET MSG6;显示输入

MOV AH,09H

INT 21H

CHOOSE1:

MOV AH,1

INT 21H

CMP AL,'P';与大写“P”作比较

相关文档
最新文档