欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数字录音机设计.docx

    • 资源ID:24219516       资源大小:228.11KB        全文页数:15页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字录音机设计.docx

    1、数字录音机设计数字录音机设计1、课程设计的目的.32、课程设计的方案论证.73、设计的结果与分析.184、心得体会.185、参考文献.19数字录音机设计1课程设计的目的1.1目的(1)进一步加深对微机系统的理解和认识,提高微机系统的应用水平。(2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。(3)进一步熟悉接口,DAC0832、ADC0809及定时计数器等芯片的使用。1.2内容与要求(1)设计一个声音录放系统,通过传感器及ADC0809以每秒5000次的速率采集语言信号,录音12秒后,再以同样的速率将语音数据通过DAC0

    2、832送出至喇叭发声(放音)。(2)画出系统的硬件连接图。(3)画出程序流程图并编写程序实现上述功能。1.3各芯片工作原理及功能简介(1)ADC0809 ADC0809是CMOS工艺制成的双列直插式8位A/D转换芯片,内部采用逐次逼近原理,单极性,量程为0+5V。片内部有8路模拟开关,可控制选择输入8个模拟量之中的一个,并带有三态输出锁存缓冲器,可直接与CPU总线连接,不需要外部锁存器,是应用较广泛的一种A/D转换芯片。ADC0809内部结构ADC0809内部由两部分电路组成:第一部分:8路模拟通道选择开关,地址锁存器和译码器。第二部分:比较器、8位逐次逼近寄存器SAR、8位开关树型D/A转换

    3、电路、控制逻辑、三态输出缓冲锁存器。工作原理:由ADDA、ADDB、ADDC及ALE选择8个模拟量之一,并通过通道选择开关加至比较器一端。由START信号启动A/D转换开始且SAR清0。在CLOCK的控制下,将SAR从高位逐次置1,并将每次置位后的SAR送D/A转换器转换成与SAR中数字量成正比的模拟量。DAC的输出加至比较器的另一端与输入的模拟电压进行比较,若Vi大于等于V0保留SAR中该位的1;若Vi小于V0则该位清0。经过8次比较(8个CLOCK)后,SAR中的8位数字量即是结果。在OE有效时,将SAR中的8位二进制数输出至锁存器,并通过D7D0输出,同时发出EOC转换结束信号。ADC0

    4、809引脚功能如下:IN0IN7 :8 路模拟输入通道。D0D7 :8 位数字量输出端。START : 启动转换命令输入端,由 1 0 时启动 A/D 转换,要求信号宽度 100nOE :输出使能端,高电平有效ADDA 、ADDB 、ADDC : 地址输入线,用于选通 8 路模拟输入中的一路进入 A/D 转换。其中 ADDA 是 LSB 位,这三个引脚上所加电平的编码为 000111 ,分别对应 IN 0 IN 7 ,例如,当 ADDC=0 , ADDB=1 , ADDA=1 时,选中 IN 3 通道。ALE :地址锁存允许信号。用于将 ADDAADDC 三条地址线送入地址锁存器中。EOC :

    5、转换结束信号输出。转换完成时, EOC 的正跳变可用于向 CPU 申请中断,其高电平也可供 CPU 查询。CLK :时钟脉冲输入端,要求时钟频率不高于 640KHZ 。REF(+)、REF(-):基准电压,一般与微机接口时,REF(-)接 0V 或 -5V ,REF (+)接 +5V 或 0V 。(2)DAC0832DAC0832是用COMS工艺制成的双列直插式8位D/A转换芯片,内部采用T型电阻网络,数字输入有输入寄存器和DAC寄存器两级缓冲,可以双缓冲、单缓冲或直接输入方式连接。片选信号:输入低电平有效,与ILE相配合,可对写信号 是否有效起到控制作用。ILE允许锁存信号:输入高电平有效。

    6、输入锁存器的锁存信号 由ILE, , 的逻辑组合产生。当ILE为高电平、 为低电平、 输入负脉冲时,在 端产生正脉冲。当 为高电平时,输入锁存器的状态随着数据输入线的状态变化, 的负跳变将数据线上的信息打入输入锁存器。 写信号1:输入低电平有效。当 , ,ILE均为有效时,可将数据写入8位输入锁存器。写信号2:输入低电平有效。当其有效时,在传送控制信号 的作用下,可将锁存在输入锁存器的8位数据送到DAC寄存器。数据传送控制信号:输入低电平有效。当 , 均有效时,则在 端产生正脉冲。当 为高电平时,DAC寄存器的输出和输入锁存器的状态一致, 的负跳变将输入锁存器的内容打入DAC寄存器。基准电压输

    7、入端:可在10 V范围内调节。DI7DI0:8位数字输入量输入端。Iout1:DAC的电流输出1。当DAC寄存器各位均为1时,输出电流最大;当DAC寄存器各位均为0时,输出电流为0。Iout2 :DAC的电流输出2。 与 的和为一常数,一般单极性输出时 接地,在双极性输出时接运放。Rfb :反馈电阻引脚。在DAC0832芯片内部有一个反馈电阻,可作为外部运算放大电路的反馈电阻用。(3)可编程计数/定时接口芯片82538253内部结构数据总线缓冲器该缓冲器为 8 位双向三态的缓冲器, 8 根数据线 D 0 D 7 可直接挂在 CPU 数据总线上。读/写控制逻辑它是 8253 内部操作的控制部分,

    8、它决定三个计数器和控制字寄存器中哪一个能进行工作,并控制内部总线上数据传送的方向。控制字寄存器接收从 CPU 来的控制字,并由控制字的 D7 、D6 位的编码决定该控制字写入哪个计数器的控制寄存器,控制寄存器只能写入,不能读出。计数器8253 有 3 个独立的计数器通道,每个通道的结构完全相同,如图 10.2 所示。每一个通道有一个 16 位减法计数器;还有对应的 16 位初值寄存器和输出锁存器。每个计数器都可以对其 CLK 输入端输入的脉冲按照二进制或 BCD 码从预置的初值开始进行减 1 计数,当减至 0 时,从 OUT 端输出一个信号,计数的开始由软件启动或硬件门控信号 GATE 控制。

    9、计数开始前写入的计数初值存于初值寄存器;计数过程中,减法计数器的值不断递减,而初值寄存器中的初值不变。输出锁存器则用于写入锁存命令时锁定当前计数值。当 8253 用作计数器时,加在 CLK 引脚上脉冲的间隔可以是不相等的;当它用作定时器时,则在 CLK 引脚应输入精确的时钟脉冲, 8253 所能实现的定时时间,取决于计数脉冲的频率和计数器的初值。对 8253 来讲,外部输入到 CLK 引脚上的时钟脉冲频率不能大于 2MHZ ,否则需分频后才能送到 CLK 端。(4)可编程并行I/O接口芯片8255A并行输入/输出端口A、B、C8255A 芯片具有 24 个可编程输入输出引脚,分成 3 个 8

    10、位端口,其中:端口 A 包含一个 8 位数据输出锁存 / 缓冲寄存器和一个 8 位数据输入锁存器;端口 B 包含一个 8 位数据输入 / 输出、锁存 / 缓冲寄存器和一个 8 位数据输入缓冲寄存器;端口 C 包含一个输出锁存 / 缓冲寄存器和一个输入缓冲寄存器。必要时端口 C 可分成两个 4 位端口,分别与端口 A 与端口 B 配合工作,通常将端口 A 和端口 B 定义为输入 / 输出的数据端口,而端口C可作为状态或控制信息的传送端口。A组和B组控制部件端口 A 与端口 C 的高 4 位 (PC 7 PC 4) 构成 A 组,由 A 组控制部件实现控制功能,端口 B 与端口 C 的低 4 位(

    11、 PC 3 PC 0 )构成 B 组,由 B 组控制部件实现控制功能。它们各有一个控制单元,可接收来自读 / 写控制部件的命令和 CPU 通过数据总线(D7D0)送来的控制字,并根据它们来定义各个端口的操作方式。数据总线缓冲器这是一个三态双向 8 位数据缓冲器,它是 8255A 与 8086CPU 之间的数据接口, CPU输入输出的数据,CPU输出的控制字以及外设的状态信息都是通过这个缓冲器进行传送。读/写控制部件 这是 8255A 内部完成读 / 写控制功能的部件,它与 CPU 的地址总线及有关的控制信号相连,接收 CPU 的控制命令,并根据它们向片内各功能部件发出操作命令(5)74LS13

    12、8译码器74LS138是3-8线二进制译码器,它有3个输入端,8个输出端,输出低电平有效。该器件3个输入端A、B、C接受二进制码,其输出端Y0Y7工8条译码输出线。除此之外,还有3个使能控制端G、G2A、G2B,目的在于灵活应用并组合各种电路。只有当G=0,同时G2A +G2B=0时,译码器工作,否则,译码器功能被禁止。2设计方案论证2.1总体设计思想根据设计要求,本次数字录音机的汇编语言设计所需芯片有模数转换芯片ADC0809、数模转换芯片DAC0832、定时计数器8253、可编程并行I/O接口8355A及译码器74LS138。设计过程可简述为:利用传感器和ADC0809采集语音数据,以每秒

    13、5000的速率采集IN0输入的语音数据并存入内存,共采集数据60000个,即录音12秒。DAC0832进行数模转换,以同样的速率将数据送DAC0832使喇叭发声。8253用作定时,定时0.2ms,设置成方式0,计数初值为200。8253计数器0的OUT0与8255A的PA0连接,利用PA0查询OUT0电平,如果为高点平则表示定时时间到。用译码器74LS138对地址线进行译码以产生各接口芯片所需的信号。2.2硬件连接图图1 硬件连接图2.3各芯片的作用及工作方式(1)ADC0809在本次设计中的作用及工作方式ADC0809作数据采集用,用来采集12秒的语音信号并保存到相应的存储单元。对ADC08

    14、09的8个模拟通道,这里是用数据总线的低8位D2、D1、D0来控制ADC的通道选择信号ADDC、ADDB、ADDA,以实现选择其中之一模拟通道输入。在本次设计中,初始值为000(D2=0、D1=0、D0=0),即选择IN0通道进行数据采集,然后使ADC0809的ALE、START有效,START和ALE信号通过CPU向选中的通道口执行一条输出指令,启动A/D转换。转换结束后,发出EOC信号,当EOC为高电平时,可供CPU查询,读取每次采集的A/D转换结果。当CPU知道转换已完成,执行一条输入指令使OE信号有效,此时输出缓冲器被打开,数据送到数据总线。系统时钟经分频后接到ADC0809芯片的时钟

    15、引脚CLK上。(2)DAC0832在本次设计中的作用及工作方式在本次设计中,我使用的DAC0832采用直通方式与CPU连接,从硬件图中可以看出,该片DAC0832只有一个端口地址,即88H。DAC0832的ILE信号与+5V连在一起, 、WR1和WR2均接地,总是有效的,DAC0832的输入寄存器和DAC寄存器均处于选通状态,只要CPU想88H端口执行一条输出指令,就会使XFER有效,CPU输出繁荣数字量就会顺利通过DAC0832的两个寄存器,然后进行D/A转换,在运算放大器的输出端得到转换结果。(3)8253、8255A在本次设计中的作用及工作方式8253在本次设计中用作定时,工作于方式0,

    16、与8255A连接使用完成定时操作。8255A采用工作方式0进行输入操作,工作方式0是8255A个端口的基本输入输出方式,CPU可从指定端口输入信息,也可向指定端口输出信息。当8253写入方式0控制字后,计数输出端OUT0立即变为低电平,并且在计数过程中一直保持低电平,当计数完成时,OUT0输出变为高电平。8253计数器0的OUT0与8255A的PA0连接,因此可通过查询PA0是否为1,判断计数是否完成。计数完成,则表示定时时间到。(4)74LS138在本次设计中的作用译码器74LS138对地址线进行译码以产生各接口芯片所需的信号2.4流程图图2 主程序流程图 图3 录音子程序流程图 图4 放音

    17、子程序流程图 图5 延时子程序2.5具体实现方法实现该声音录放系统功能的程序可以分为以下四个部分:(1)主程序主程序的主要任务是对8253、8255A进行初始化,实现录、放音的功能调用。8253初始化设置8253在程序中设置成方式0,计数200,定时0.2ms 8253工作方式控制字:10000000B,即10H;选择通道0,方式0,只读写的、低8位设8253输入时钟信号的频率为 1MHZ计数初值=0.2 ms/0.001ms=200控制字端口地址为:81H计数器0端口地址为:80H8255A初始化设置8255A控制字:10010000B,即90H;方式0,A口输入控制字端口地址为:85HA口

    18、地址为:84H调用录、放音子程序首先DOS功能调用,显示录音提示信息,然后BIOS功能调用,读键盘缓冲区字符,等待键盘输入,若无键按下,继续等待;有键按下,则调用录音子程序,录音12秒。清除键盘缓冲区后,再进行放音子程序的调用。(2)A/D录放音子程序根据设计要求,ADC0809要以每秒5000的速率采集语音数据,录音12秒,因此共需采集500012=60000个数据,计数器CX=60000。选择IN0通道进行数据采集(D2=0、D1=0、D0=0),寻址A/D转换启动端口地址,CPU向IN0通道执行一条输出指令,启动一次A/D转换。寻址EOC状态端口地址,读取EOC状态,测试转换是否结束,未

    19、完则继续等待,转换完成后,则寻址ADC0809转换结果端口,CPU执行一条输入指令,取A/D转换结果。A/D转换启动端口地址:8CH转换结果端口地址:90HEOC状态端口地址:94H(3)D/A放音子程序置数据区首址至SI,计数器CX=60000。从数据区取数据,寻址DAC端口地址,CPU执行一条输出指令,进行D/A转换。DAC端口地址为:88H(4)延时子程序DELAY是延时0.2 ms的子程序 将8253计数器0的OUT0输入到8255A端口,测试PA0是否为1,若不为1,则表示8253未计数完,继续查询,如果为1,则表示8253计数完成,定时时间到。2.6课程设计的程序编写NAME EX

    20、AMPLE DATA SEGMENTBUF DB 60000 DUP(?)MESS1 DBNOW READAY TO RACORD,0DH,0AH,$MESS2 DB NOW PLAY THE RECORDING!, 0DH,0AH, $DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV DX,81H ;指向8253控制口 MOV AL,10H ;控制字:选择通道0,方式0,只读写的、低8位 OUT DX, AL ;送控制字 MOV DX, 85H ;指向8255A控制口 MOV AL, 90H ;控制字:方式0,A口输入 OUT DX,

    21、 AL MOV AX, DATA MOV DS, AX MOV DX, OFFSET MESS1MOV AH,09HINT 21H ;显示录音提示信息 WAIT: MOV AH,01H INT 16H ;读键盘缓冲区字符,是否有键按下JZ WAIT ;无键按下,继续等待CALL READ ;有键按下,调用录音子程序MOV DX, OFFSET MESS2 MOV AH, 09HINT 21H ;显示放音提示信息MOV AL, 07HMOV AH, 0CHINT 21H ;清除键盘缓冲区RE: MOV AH,01HINT 16H ;读键盘缓冲区字符,是否有键按下JZ RE ;无键按下,继续等待C

    22、ALL PLY ;有键按下,调用放音子程序CMP AL, 20H ;是空格吗JZ RE ;不是,继续循环MOV AH, 4CH ;是,子程序返回INT 21HREAD PROC NEARMOV DI, OFFSET BUF ;寻址数据区MOV CX,60000 ;装入计数器CX=60000READ1: MOV AL,00H ;选择IN0通道 MOV DX,8CH;DX指A/D转换启动端口地址 OUT DX,AL;启动A/D转换 MOV DX,94H;寻址EOC状态端口地址READ2: IN AL, DX ;取EOC状态 TEST AL,80H ;测试转换是否结束 JZ READ2 ;未完,则等

    23、待 MOV DX, 90H ;寻址数据端口 IN AL, DX ;取A/D转换结果 MOV DI,AL ;存到数据区 INC DI ;寻址下一单元 CALL DELAY ;延时0.2ms LOOP READ1 ;重复60000次RETREAD ENDPPLY PROC NEARMOV SI,OFFSET BUF ;寻址数据区MOV CX,60000 ;装入计数器CX=60000PLY1: MOV AL, SI ;从数据区取数据MOV DX, 88H ;寻址DACOUT DX,AL ;发送到DACINC SI ;寻址下一单元CALL DELAY ;延时0.2msLOOP PLY1RETPLY E

    24、NDPDELAY PROC NEARMOV DX, 80H ;指向8253计数器0端口MOV AL, 200 OUT DX, AL ;写入计数初值200MOV DX, 84H ;指向8255A的A端口XX: IN AL,DX ;将计数器0的OUT0输入到8255A的A口TEST AL,01H ;测试PA0=1?JZ XX ;不等于1,计数未完,继续等待RET ;等于1,子程序返回DELAY ENDPCODE ENDSEND START3设计结果与分析3.1设计结果(1)用编辑程序建立.ASM源程序在DOS提示符下键入C:ASMEDIT PAN.ASM,编辑文件名为PAN.ASM的源文件。(2)

    25、用MASM程序把.ASM文件转换成.OBJ文件,输入命令C:ASMMASM PAN,汇编成OBJ文件。(3)用LINK程序把.OBJ文件转换成.EXE文件,汇编无错后,输入C:ASMLINK PAN,将目标文件生成可执行程序。(4)在DOS下直接键入文件名运行该程序。(5)用DEBUG程序调试、修改,输入C:ASMDEBUG PAN.EXE,用单步、设置断点等方式对程序进行调试。利用命令T、G调试,实现了12s的录音及放音。3.2分析在本实验中,充分利用学过的汇编语言程序设计能力,在了解了数字录音技术的基本原理后,通过对A/D转换器与D/A转换器的使用,以及利用8253和8255芯片实现延时功

    26、能,成功完成了数字录音机的设计。测试实验结果时,实现功能有12s录音功能、放音功能、重复放音功能。其中,提示信息为中文提示,清楚明了,达到设计要求。4设计体会在进行这次微机原理及其应用课程设计之前,我觉得利用汇编语言进行较大规模程序的编写是非常困难的,但通过对这次课题数字录音机的设计与编程,我不仅加深了对微机原理及接口技术的认识和理解,还认识到只要自己认真对待,通过查阅资料,理解消化资料,编程并不是难事。DAC0832,ADC0839都是我从未接触过的芯片,我以为程序一定会很复杂,但通过查阅资料,了解了数模转换和模数转换芯片的功能及应用,但在编程中也遇到一些问题,比如如何利用8253定时延时,

    27、CPU与A/D、D/A转换芯如何连接,在请教知道武老师以后,问题基本得以解决。在调试过程中,出现缺少提示信息的栏目,导致在运行过程中不知道何时开始录音,何时开始放音,如何设置重播音。发现问题后,马上增加白提示信息,使程序在运行过程中更加流畅,操作更加简单。本次实验中,还可以增加更多的功能,由于时间的关系而没有添加上去。从总体上看,本次实验还是非常成功的。5参考文献1 范立南, 谢子殿. 单片机原理及应用教程M. 北京: 北京大学出版社, 2006.1:123-1402 刘国荣,梁景凯. 计算机控制技术与应用M. 北京:机械工业出版社,2006.5:66-863 潘新民,王燕芳编著微型计算机控制技术M北京:电子工业出版社,2007.6:37


    注意事项

    本文(数字录音机设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开