失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > android课程设计录音机 [转载]数字录音机(微机原理与接口技术-课程设计)

android课程设计录音机 [转载]数字录音机(微机原理与接口技术-课程设计)

时间:2019-01-04 20:28:29

相关推荐

android课程设计录音机 [转载]数字录音机(微机原理与接口技术-课程设计)

设计题目:数字录音机

一、设计目的:

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

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

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

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

1、实验箱1台

2、计算机1台

3、麦克及喇叭

三、设计内容及连接电路:

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

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

四、总体设计方案流程图

1、

2、

3、

4、

五、程序清单及注释

Data segment

import equ 0dd80h-280h

io0809aequ import+ 29ah;

AD0809的地址

io0832aequ import+ 290h

;DAC0832的入口地址

io8253aequ

import+280h;8253的入口地址

io8253cequ

import+283h;8253的控制字地址

io8255aequ

import+288h;8255的入口地址

io8255cequ

import+28bh;8255的控制字的地址

word0 db 0dh,0ah,'按r键开始录音',0dh,0ah,24h

word2 db 0DH,0AH,'按p键开始放音', 0dh,0ah,24h

word3 db 0DH,0AH,'按t键开始重播,否则按任意键退出',

0dh,0ah,24h

bufdb 60000

dup(?);开辟内存空间存放数据

Data ends

Code segment

Assume cs:code,ds:data

Start:

Mov ax,data;

Mov ds,ax;

Mov ds,offset word0;显示录音提示

Mov ah,09h;

Int 21h

Test1:

Mov ah,1;等待键盘输入

Int 21h

Cmp al,’r’

Jnz test1;与’r’比较,若是则执行下面的录音,不是则等待

Mov di,offset buf;定义缓冲区指针

Mov cx,60000

Begin:

Mov dx, io0809a;ADC0809的地址

Out dx,al;启动一次A/D转换器

Calldelay;调用延时子程序

Inal,dx;从端口读入数据

Mov [di],al;将数据放入缓冲区中

Incdi

Loop begin ;循环装入60000个数据

Mov dx,offset word2;显示放音提示

Mov ah,9

Int 21h

Test2:

Mov ah,1

Int 21h

Cmp al,’p’

Jnz test2;与’p’比较,若是则执行放音,不是则等待

Play:

Mov di,offset buf;取缓冲区的入口地址

Mov cx,60000

Begin1:

Mov dx,io0832a;DAC0832的入口地址

Mov al,[di];将要转换的数据从内存中取出

Out dx,al;将数据打入寄存器

Calldelay;调用延时子程序

Inc di

Loop begin1

Movdx,offset word3;显示循环放音提示

Mov ah,9

Int 21h

Mov ah,1

Int 21h

Cmp al,’t’

Jzplay;与’t’比较,若是则重新播放,不是则退出

Mov ah,4ch

Int 21h

Delayproc near

Push dx;保存dx的内容

Mov dx,io8253c;8253的控制字地址

Mov al,00010000b ;计数器0只读低字节以方式0工作,二进制计数

Out dx,al

Mov dx,io8253a;8253的入口地址

Mov al,200;写入循环计数初值

Out dx,al

Mov dx,io8255c;8255的控制字的地址

Mov al,10010000b;D7=1控制字标志位 ,D6D5=00 方式0 ,

;D4=1表示A口输入

Out dx,al

Mov dx,io8255a;8255的入口地址

Check:

In al,dx;将数据输入al

Test al,01;检查PA0的状态是否为高电平

Jz check

Pop dx;恢复dx

Ret;返回到delay入口

Delay endp

Code ends

End start

六、实验结果

在本实验中,充分利用学过的汇编语言程序设计能力,在了解了数字录音技术的基本原理后,通过对A/D转换器与D/A转换器的使用,以及利用8253和8255芯片实现延时功能,成功完成了数字录音机的设计。测试实验结果时,成功实现了12s的录音及放音,达到设计要求。

在本次数字录音机设计中,实现功能有12s录音功能、放音功能、重复放音功能。其中,提示信息为中文提示,清楚明了。

七、程序调试过程中遇到的问题及解决方法

在调试过程中,出现缺少提示信息的栏目,导致在运行过程中不知道何时开始录音,何时开始放音,如何设置重播音。发现问题后,马上增加白提示信息,使程序在运行过程中更加流畅,操作更加简单。

八、实验总结和修必意见

这次课程设计让我了解到数字录音技术的基本原理,进一步掌握A/D转换器和D/A转换器的使用方法,并巩固和加深了汇编语言程序设计的能力。

本次实验中,还可以增加更多的功能,由于时间的关系而没有添加上去。从总体上看,本次实验还是非常成功的。

如果觉得《android课程设计录音机 [转载]数字录音机(微机原理与接口技术-课程设计)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。