《数字录音机实验报告.docx》由会员分享,可在线阅读,更多相关《数字录音机实验报告.docx(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 计算机学院网络工程 20222100108 林泽期综合设计题目:数字录音机一、设计目的: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 秒,然后再以同样的速率将数
2、据送 DAC0832 使喇叭发声放音开头显示录音提示输入选择NN输入 R?Y进入录音输入选择输入 P?四、设计方案流程图:进入放音Y输入 R?返回 DOS完毕YN五、实现的程序清单及注释:DATAS SEGMENTioportequ 0c800h-280hio0809equ ioport+29ah;ADC0809通道2的入口地址io0832equ ioport+290h;DAC0832的片选地址io8253equ ioport+280h;8253的片选地址io8255equ ioport+288h;8255的片选地址io8253cequ ioport+283h;8253的掌握字地址io8255
3、cequ ioport+28bh;8255的掌握字地址msg0db”,0dh,0ah,”$”;录音提示,0dh和0ah是回车+换行msg1db0dh,0ah,”,0dh,0ah,”$”;输入错误提示msg2db0dh,0ah,”,0dh,0ah,”$”;放音提示msg3db0dh,0ah,”,0dh,0ah,”$”;输入错误提示msg4db0dh,0ah,”Recording.”,0dh,0ah,”$”;msg5db0dh,0ah,”Playing.”,0dh,0ah,”$”; msg6db”Input:”,”$”;msg7db”-Digital Recorder v.N.0- by Jack
4、ie Lam”,0dh,0ah,”$”;版本信息msg8db0dh,0ah,”Thank you!”,0dh,0ah,”$”;msg9db0dh,0ah,”Record Complete!”,0dh,0ah,”$”; msg10db0dh,0ah,”Play Over.”,0dh,0ah,”$”;msg11db0dh,0ah,”If you want to pause,press any key!”,”$”;暂停录音msg12db0dh,0ah,”,0dh,0ah,”$”;重播提示msg13db”,0dh,0ah,”$”;退出提示bufdb60000 dup(?) DATAS ENDSCODE
5、S SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATAS MOV DS,AXMOV DX,OFFSET MSG7;显示版本信息MOV AH,09HINT 21HMOV DX,OFFSET MSG7;显示版本信息MOV AH,09HINT 21HMOV DX,OFFSET MSG0;显示录音提示MOV AH,09H;DOS中断调用,显示字符串”PRESS R TO START RECORD” INT 21HMOV DX,OFFSET MSG6;显示输入MOV AH,09HINT 21HCHOOSE0:MOV AH,1;输入并显示所作选择INT 21H
6、CMP AL,”R”;与大写“R”作比较JZOK0;输入“R”,进入录音CMP AL,”r”;否则与小写“r”作比较JZOK0;输入“r”,进入录音MOV DX,OFFSET MSG1;否则,输入错误,显示错误信息MOV AH,09HINT 21HMOV DX,OFFSET MSG6;显示输入MOV AH,09HINT 21HJNZ CHOOSE0OK0:MOV DX,OFFSET MSG4;显示正在录音MOV AH,09HINT 21H;MOV DX,OFFSET MSG11;显示暂停播放提示;MOV AH,09H;INT 21HMOV DI,OFFSET BUF;定义缓冲区的指针MOV C
7、X,60000;计数初值为采集数据的数目:60000REC:MOV DX,IO0809;0809的片选地址OUT DX,AL;启动A/D转换CALL DELAYINAL,DX;输入转换数据MOV DI,AL INC DI;指针加1;避开消灭等待输入而无法连续自动循环录音过程,DOS中断调用的01、07号功能测试失败;MOV AH,0BH;检查键盘状态;INT 21H;TEST AL,00;与大写“P”作比较;JZOK2;录音完毕;TEST AL,00;与小写“P”作比较;JZOK2;录音完毕;DEC CX;CX-1;JCXZ OK2;录音完毕;JMP REC;无条件转移,回到录音过程LOOP
8、REC;循环装入30000个A/D转换后的数据OK2:MOV DX,OFFSET MSG9;显示录音完毕MOV AH,09HINT 21HMOV DX,OFFSET MSG2;显示播放录音提示MOV AH,09HINT 21HMOV DX,OFFSET MSG6;显示输入MOV AH,09HINT 21HCHOOSE1:MOV AH,1INT 21HCMP AL,”P”;与大写“P”作比较JZOK1;输入“P”,进入放音CMP AL,”p”;与小写“P”作比较JZOK1;输入“p”,进入放音MOV DX,OFFSET MSG3;否则,输入错误,显示错误信息MOV AH,09HINT 21HMO
9、V DX,OFFSET MSG6;显示输入MOV AH,09HINT 21HJNZ CHOOSE1OK1:MOV DX,OFFSET MSG5;显示正在播放录音MOV AH,09HINT 21HMOV DI,OFFSET BUF;定义缓冲区的指针MOV CX,60000;计数初值为采集数据的数目:30000PLAY:MOV DX,IO0832;DAC0832的片选地址MOV AL,DI;从缓冲区读取数据并进展D/A转换OUT DX,AL;启动D/A转换CALL DELAY;调用延时子程序,以1/5000秒的间隔相当于每秒5000次的声音频率输出转换后的声音INC DI;缓冲区指针加1LOOP
10、PLAY;循环输出30000个声音信号MOV DX,OFFSET MSG10;显示MOV AH,09HINT 21HMOV DX,OFFSET MSG12;重播显示MOV AH,09HINT 21HMOV DX,OFFSET MSG13;重播显示MOV AH,09HINT 21HREPLAY:MOV DX,OFFSET MSG6;显示输入MOV AH,09HINT 21HMOV AH,1;输入并显示所作选择INT 21HCMP AL,”R”;与大写“R”作比较JZOK1;输入“R”,进入重播CMP AL,”r”;否则与小写“r”作比较JZOK1;输入“r”,进入重播CMP AL,”Q”;与大写
11、“Q”作比较JZQUIT;输入“R”,退出CMP AL,”q”;否则与小写“q”作比较JZQUIT;输入“r”,退出MOV DX,OFFSET MSG1;否则,输入错误,显示错误信息MOV AH,09HINT 21H JNZ REPLAYQUIT:MOV DX,OFFSET MSG8;显示“Thank you!“MOV AH,09HINT 21HMOV AH,4CH;返回DOS INT 21H;由于需要以每秒5000次的速率采集数据,所以延时程序应当产生1/5000秒的时间延迟;8253所接时钟频率输入时1MHZ,所以计数200次可产生1/5000秒延时DELAY PROC NEAR;延时子程
12、序PUSH DX;保存DXMOV DX,IO8253C;8253掌握字地址MOV AL,10H;计数器0以只读低字节方式工作OUT DX,AL;写入掌握字MOV DX,IO8253;8253的片选地址MOV AL,200;计数初值OUT DX,AL;写入计数初值MOV DX,IO8255C;8255掌握字地址MOV AL,90H;承受方式0的A口输入OUT DX,AL;写入掌握字MOV DX,IO8255;8255的PA0地址OUTTEST:IN AL,DX;将PA0的数据,也就是和PA0连接的OUT0的输出电平输入ALTEST AL,01;检查OUT0是否为高电平JZ OUTTESTPOP
13、DX;恢复DXRETDELAY ENDPCODES ENDS ENDSTART六、试验结果:本次试验利用A/D 和D/A 转换器完善的实现了数字录音机的录制和播放过程。录制最长时间增加到 12 秒,并可实现重播功能。七、试验调试过程中遇到的问题:本次试验代码的设计过程比较顺当,对于根本的试验要求能够很好的实现。主要的问题是其次次试验时遇到的一个格外小的细节问题,但却花费了我比较长的时间去找出这个问题, 就是一开头在赐予ADC0809 地址时是298H,却忘了此次试验用到的是ADC0809 的通道2,地址应当为29aH。得到的教训是编程确实需要细心,但通过找错的过程我对程序代码也有了更好的理解,这是好的方面。八、试验小结:在根本实现了程序的录音和播放功能之后,我又依据寻渐进、由简洁到简单的思路不断的对程序进展优化:1. 增加了丰富具体的人际界面交互的信息,更具人性化2. 增加了录音的最长时间,可实现 12 秒录音3. 增加了可重复播放录音和退出重复播放的功能此外,我还想从两方面进展优化:一方面是提高声音数据采集的速率,是录音机不仅能否录制和复原人声, 还能对其他声音进展录制。另一方面是想实现录音的暂停和连续功能,但这两个功能并没能完成,也是此次试验的一个圆满。固然,作为一次综合试验,试验综合利用到了前面所学过的各种芯片的学问,在试验过程中加深了对汇编 接口这门课的理解。
限制150内