数字录音机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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'
msg1 db0dh,0ah,'',0dh,0ah,'$';输入错误提示
msg2 db0dh,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,'
msg13 db'
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”作比较