基于8086系统数字录音机基于8086系统数字录音机.docx

上传人:b****3 文档编号:4801759 上传时间:2022-12-09 格式:DOCX 页数:25 大小:648.77KB
下载 相关 举报
基于8086系统数字录音机基于8086系统数字录音机.docx_第1页
第1页 / 共25页
基于8086系统数字录音机基于8086系统数字录音机.docx_第2页
第2页 / 共25页
基于8086系统数字录音机基于8086系统数字录音机.docx_第3页
第3页 / 共25页
基于8086系统数字录音机基于8086系统数字录音机.docx_第4页
第4页 / 共25页
基于8086系统数字录音机基于8086系统数字录音机.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于8086系统数字录音机基于8086系统数字录音机.docx

《基于8086系统数字录音机基于8086系统数字录音机.docx》由会员分享,可在线阅读,更多相关《基于8086系统数字录音机基于8086系统数字录音机.docx(25页珍藏版)》请在冰豆网上搜索。

基于8086系统数字录音机基于8086系统数字录音机.docx

基于8086系统数字录音机基于8086系统数字录音机

郑州科技学院

《微机原理与接口技术》

课程设计

 

题目基于8086系统数字录音机

的设计与实现

 

1引言

由于计算机技术的飞速发展,微机原理与接口技术课程已经作为一门比较重要的专业基础课[1]。

微机原理与接口技术已经融入我们的基本生活当中,我们生活中的许多电子产品都与之密切相关。

微机原理与接口技术就是一门实践性强的学科,其中很多理论与知识仅考书本的学习就是无法掌握的,必须通过实践才能比较直观深刻的理解。

通过课程设计可以培养我们动手的能力,使我们对书本的理论知识掌握更加牢固,培养学生编程的能力以及提出问题,分析问题,解决问题的能力。

本次课程设计所做的就是关于数字录音机的设计。

本次课程设计的主题研究思想就是利用微机原理与接口技术知识,掌握数字录音技术的基本原理、利用8253芯片,8255芯片,ADC0809芯片与DAC0832芯片实现电信号与数据信号的转换[2]8253设置成方式0,记数为200个,利用PA0查询电平变化,控制录音与放音时间。

达到数字录音的目的。

可广泛应用于数字录音领域、因此它具有一定的实用价值与开发价值。

数字录音机有一定的市场前景与研究领域。

本次课程设计的目的就是

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

(2)进一步掌握A/D转换器与D/A转换器、8255芯片、8253芯片的使用方法。

(3)进一步学习与掌握汇编语言程序的编写与应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平与学习程序调试方法[3]。

本次课程设计的内容与要求就是:

(1)设计一个声音录放系统,通过传感器及ADC0809以每秒钟5000次的速率采集IN2输入的语音数据并存入内存,共采集60000个数据(录12秒),然后再以同样的速率将数据送DAC0832使喇叭发声(放音)。

 

(2)画出系统的硬件连接图。

(3)按图连接电路,将声传感器接J2,把代表语音的电信号送给ADC0809通道2(IN2);D/A转换器的输出端通过K8跳线接喇叭[4]。

2方案论证

(1)本课题设计可采用单独的硬件设计也可以软件与硬件结合设计。

后者的设计方案较为合适,能够达到微机原理与接口技术的目的。

(2)单独使用硬件来完成此设计所使用的硬件材料较多且不便于调试而且设计复杂相对于用软件与硬件想结合而言后者较为合适。

(3)由于我们这学期学的课程就是微机原理与接口技术课程掌握了一定的微机原理与接口技术知识、所以此设计采用硬件与软件结合设计配合通用微机接口实验系统实验箱实现此设计及此设计功能与此同时也可以对此门课程加深理解与巩固。

为以后的学习与工作打下良好的基础。

3设计原理及功能

3、1硬件

3、1、1连接电路

准备好实验箱,检查芯片与导线就是否完整。

如图3-1所示连接线路。

具体连接情况如下:

8255芯片:

CS接288H~28FH

PA0接8253的OUT0

8253芯片:

CS接280H~287H

CLK0接1MHz脉冲

GATE0接+5V

DAC0832芯片:

CS接290H~297H

ADC0809芯片:

CS接298H~29FH

图3-1部分电路原理图

3、1、2A/D转换器ADC0809简介

ADC0809就是CMOS工艺制成的双列直插式8位A/D转换芯片,内部采用逐次逼近原理,单极性,量程为0~+5V。

芯片内部有8路模拟开关,可控制选择输入8个模拟量之中的一个,并带有三态输出锁存缓冲器,可直接与CPU总线连接,不需要外部锁存器,就是应用较广泛的一种A/D转换芯片。

 

(1)ADC0809内部结构如图3-2所示。

ADC0809内部由两部分电路组成:

 

第一部分:

8路模拟通道选择开关,地址锁存器与译码器。

 

第二部分:

比较器、8位逐次逼近寄存器SAR、8位开关树型D/A转换电路、控制逻辑、三态输出缓冲锁存器。

 

工作原理:

由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位二进制数输出至锁存器,并通过D7~D0输出,同时发出EOC转换结束信号。

图3-2ADC0809内部结构框图

(2)ADC0809引脚功能如下:

IN0~IN7:

8路模拟输入通道。

 

D0~D7:

8位数字量输出端。

 

START:

启动转换命令输入端,由1→0时启动A/D转换,要求信号宽度>100n 

OE:

输出使能端,高电平有效 

ADDA、ADDB、ADDC:

地址输入线,用于选通8路模拟输入中的一路进入A/D转换。

其中ADDA就是LSB位,这三个引脚上所加电平的编码为000~111,分别对应IN0~IN7,例如,当ADDC=0,ADDB=1,ADDA=1时,选中IN3通道。

 

ALE:

地址锁存允许信号。

用于将ADDA~ADDC三条地址线送入地址锁存器中。

 

EOC:

转换结束信号输出。

转换完成时,EOC的正跳变可用于向CPU申请中断,其高电平也可供CPU查询。

 

CLK:

时钟脉冲输入端,要求时钟频率不高于640KHZ。

REF(+)、REF(-):

基准电压,一般与微机接口时,REF(-)接0V或-5V,REF(+)接+5V或0V 。

(3)ADC0809在本次设计中的作用及工作方式

ADC0809在本次设计中的作用及工作方式ADC0809作数据采集用,用来采集12秒的语音信号并保存到相应的存储单元。

对ADC0809的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芯片的时钟引脚CLK上。

3、1、3D/A转换器DAC0832简介及功能

(1)DAC0832就是用COMS工艺制成的双列直插式8位D/A转换芯片,内部采用T型电阻网络,数字输入有输入寄存器与DAC寄存器两级缓冲,可以双缓冲、单缓冲或直接输入方式连接。

如图3-3所示。

图3-3DAC832内部结构物图

(2)DAC0832引脚图如图3-4所示,各引脚功能如下:

图3-4DAC0832引脚图

 DI7~DI0:

转换数据输入 

CS(低电平有效):

片选信号(输入),低电平有效。

 

ILE:

数据锁存允许信号(输入),高电平有效。

 

WR1(低电平有效):

第1写信号(输入),低电平有效。

 

上述两个信号控制输入寄存器就是数据直通方式还就是数据锁存方式;当ILE=1与WR1(低电平有效)=0时,为输入寄存器直通方式;当ILE=1与WR1(低电平有效)=1时,为输入寄存器锁存方式。

 

WR2(低电平有效):

第2写信号(输入),低电平有效。

 

XFER(低电平有效):

数据传送控制信号(输入),低电平有效。

上述两个信号控制DAC寄存器就是数据直通方式还就是数据锁存方式;当WR2(低电平有效)=0与

XFER(低电平有效)=0时,为DAC寄存器直通方式;当WR2(低电平有效)=1与XFER(低电平有效)=0时,为DAC寄存器锁存方式。

 

Iout1:

电流输出1 Iout2:

电流输出2 

DAC转换器的特性之一就是:

Iout1+Iout2=常数。

 

Rfb——反馈电阻端 

0832就是电流输出,为了取得电压输出,需在电压输出端接运算放大器,Rfb即为运算放大器的反馈电阻端。

 

Vref:

基准电压,其电压可正可负,范围-10V~+10V。

 DGND:

数字地 

AGND:

模拟地 

(3)DAC0832的三种工作方式:

 

①直通方式 

当ILE接高电平,都接数字地时,DAC处于直通方式,8位数字量一旦到达D0~D7输入端,就立即加到D/A转换器,被转换成模拟量。

在D/A实际连接中,要注意区分“模拟地”与“数字地”的连接,为了避免信号串扰,数字量部分只能连接到数字地,而模拟量部分只能连接到模拟地。

这种方式可用于不采用微机的控制系统中。

 

②单缓冲方式 

单缓冲方式就是将两个锁存器之一处于直通状态,输入数据中经过一级缓冲送入D/A转换器。

如把 都接地,使寄存锁存器2处于直通状态,ILE接+5V,接CPU系统总线的信号, 接端口地址译码信号,这样CPU可执行一条OUT指令,使WR2(低电平有效)与XFR(低电平有效)有效,写入数据并立即启动D/A转换。

  

双缓冲方式 

即数据通过两个寄存器锁存后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。

这种方式可在D/A转换的同时,进行下一个数据的输入,可提高转换速度。

更为重要的就是,这种方式特别适用于系统中含有2片及以上的DAC0832,且要求同时输出多个模拟量的场合。

3、1、48253芯片简介

(1)8253管脚介绍及其功能如图3-5所示:

图3-58253引脚结构

(2)8253内部结构框图如图3-6所示:

 

①数据总线缓冲器 该缓冲器为8位双向三态的缓冲器,8根数据线D0~D7可直接挂在CPU数据总线上。

 

②读/写控制逻辑 它就是8253内部操作的控制部分,它决定三个计数器与控制字寄存器中哪一个能进行工作,并控制内部总线上数据传送的方向。

 

③控制字寄存器 接收从CPU来的控制字,并由控制字的D7、D6位的编码决定该控制字写入哪个计数器的控制寄存器,控制寄存器只能写入,不能读出。

 

④计数器 8253有3个独立的计数器通道,每个通道的结构完全相同。

每一个通道有一个16位减法计数器;还有对应的16位初值寄存器与输出锁存器。

每个计数器都可以对其CLK输入端输入的脉冲按照二进制或BCD码从预置的初值开始进行减1计数,当减至0时,从OUT端输出一个信号,计数的开始由软件启动或硬件门控信号GATE控制。

计数开始前写入的计数初值存于初值寄存器;计数过程中,减法计数器的值不断递减,而初值寄存器中的初值不变。

输出锁存器则用于写入锁存命令时锁定当前计数值。

 

当8253用作计数器时,加在CLK引脚上脉冲的间隔可以就是不相等的;当它用作定时器时,则在CLK引脚应输入精确的时钟脉冲,8253所能实现的定时时间,取决于计数脉冲的频率与计数器的初值。

对8253来讲,外部输入到CLK引脚上的时钟脉冲频率不能大于2MHZ,否则需分频后才能送到CLK端。

8253的端口地址分配及内部操作如表3-1所示。

 

表3-18253端口地址及内部操作

CS(低电平有效)

RD(低电平有效)

WR(低电平有效)

A1

A0

操作

0

1

0

0

0

写计数初值到计数器0的CR

0

1

0

0

1

写计数初值到计数器1的CR

0

1

0

1

0

写计数初值到计数器2的CR

0

1

0

1

1

写控制字,并根据控制字高两位将其送相应的控制寄存器

0

0

1

0

0

从计数器0的OL中读出当前的计数值

0

0

1

0

1

从计数器1的OL中读出当前的计数值

0

0

1

1

0

从计数器2的OL中读出当前的计数值

0

0

1

1

1

无操作

1

未选中

0

1

1

无操作

(3)8253的控制字格式

8253的控制字格式如图3-7所示。

D7D6D5D4D3D2D1D0

计数器选择

读写格式

工作方式

数制

0—二制计数

1—十进制计数

00—选择计数器1

01—选择计数器1

10—选择计数器2

11—非法

00—将减1计数器CE中的数据000—方式0

锁存到OL中(锁存功能)001—方式1

01—对计数器的低8位读或写X10—方式2

10—对计数器的高8位读或写X11—方式3

11—计数器16位操作(先低8100—方式4

位,后高8位读或写)101—方式5

图3-78253控制字的格式

D7D6位就是控制字的计数器编号。

由于8253有3个独立的控制寄存器,但她们公用一个端口地址(A1A0=11时,见表3-1),因此,控制字中使用最高两位表明将控制字写入哪个计数器的控制寄存器中。

D5D4位用来设定计数器的数据读/写方式。

在给计数器写入技术初值时,可以赋16位的初值,也可以只赋8位(另8位被自动设置0),8位初值可以就是高字节,也可以就是低字节。

在读取计数器当时的计数值时,计数器并未停止计数,有可能在先后读高低字节时,计数器的值发生变化,因此有必要先锁存当前的计数值,然后再分字节读出,先读出低8位数据,后读出高8位数据。

当D5D4=00时,计数器的当前计数值被锁存在OL中,此时计数器照常计数,但OL中的值不变,待CPU将OL中的两字节数据读走后,OL中的内容又随减1计数器CE变化。

当D5D4=01,只读/写低8位,高8位自动置0(写计数初值时);D5D4=10时,只读/写高8位,低8位自动置0(写计数初值时);D5D4=11时,先读/写低8位,再读/写高8位。

D3D2D1位决定了计数器的工作方式。

8253共有六种工作方式。

D0位决定计数器的数制。

D0=0,选择二进制计数;D0=1,选择十进制计数。

(4)8253的工作方式

方式0—计数结束产生中断

这就是一种软件启动、不能自动重复的计数方式。

方式1—可编程单次脉冲

这就是一种硬件启动、不能自动重复但通过GATE的正跳变可使计数过程重新开始的计数方式。

方式2—分频工作方式

方式2可以用软件启动。

方式3—方波发生器

方式4—软件触发选通

方式4就是一种软件启动、不自动重复的计数方式。

方式5—硬件触发选通

方式5就是一种硬件启动、不自动重复的计数方式。

 

表3-28253工作方式比较

比较内容

工作方式

启动

计数方式

中止计数方式

就是否自动重复

更新初值

OUT波形

方式0

软件

GATE=0

立即有效

N…10

方式1

硬件

下一轮有效

N…10

方式2

软/硬件

GATE=0

就是

下一轮有效

N/210

方式3

软/硬件

GATE=0

就是

下半轮有效

N/2N/2

方式4

软件

GATE=0

立即有效

N…10

方式5

硬件

下一轮有效

N…10

3、1、58255A芯片简介

(1)8255A引脚及功能示意图如图3-8所示。

8255A共有40个引脚,采用双列直插式封装,各引脚功能如下:

D0--D7:

三态双向数据线,与单片机数据总线连接,用来传送数据信息。

CS:

片选信号线,低电平有效,表示芯片被选中。

RD:

读出信号线,低电平有效,控制数据的读出。

WR:

写入信号线,低电平有效,控制数据的写入。

Vcc:

+5V电源。

PA0--PA7:

A口输入/输出线。

PB0--PB7:

B口输入/输出线。

PC0--PC7:

C口输入/输出线。

RESET:

复位信号线。

A1、A0:

地址线,用来选择8255内部端口。

B

A组

PA7~PA0

PC7~PC4

PC3~PC0

PB7~PB0

D7~D0

WR(低电平有效)

RD(低电平有效)

CS(低电平有效)

A0

A1

RESET

GND:

地线。

(a)

(b)

图3-88255引脚及功能示意图

(a)引脚;(b)功能示意图

 

表3-38255A各端口读/写操作时的信号关系

CS(低电平有效)

RD(低电平有效)

WR(低电平有效)

A1

A0

操作

0

1

0

0

0

写端口A

0

1

0

0

1

写端口B

0

1

0

1

0

写端口C

0

1

0

1

1

写控制寄存器

0

0

1

0

0

读端口A

0

0

1

0

1

读端口B

0

0

1

1

0

读端口C

0

0

1

1

1

无操作

(2)8255A的内部结构

图3-108255A内部结构框图

行输入/输出端口A、B、C 

8255A芯片具有24个可编程输入输出引脚,分成3个8位端口,其中:

端口A包含一个8位数据输出锁存/缓冲寄存器与一个8位数据输入锁存器;

端口B包含一个8位数据输入/输出、锁存/缓冲寄存器与一个8位数据输入缓冲寄存器;

端口C包含一个输出锁存/缓冲寄存器与一个输入缓冲寄存器。

必要时端口C可分成两个4位端口,分别与端口A与端口B配合工作,通常将端口A与端口B定义为输入/输出的数据端口,而端口C可作为状态或控制信息的传送端口。

 

②A组与B组控制部件 

端口A与端口C的高4位(PC7~PC4)构成A组,由A组控制部件实现控制功能,端口B与端口C的低4位(PC3~PC0)构成B组,由B组控制部件实现控制功能。

它们各有一个控制单元,可接收来自读/写控制部件的命令与CPU通过数据总线(D7~D0)送来的控制字,并根据它们来定义各个端口的操作方式。

 

③数据总线缓冲器 

这就是一个三态双向8位数据缓冲器,它就是8255A与8086CPU之间的数据接口,CPU输入输出的数据,CPU输出的控制字以及外设的状态信息都就是通过这个缓冲器进行传送。

 

④读/写控制部件 

 这就是8255A内部完成读/写控制功能的部件,它与CPU的地址总线及有关的控制信号相连,接收CPU的控制命令,并根据它们向片内各功能部件发出操作命令。

(3)8255A的工作方式

8255A在使用前要先写入一个工作方式控制字,以指定A、B、C三个端口各自的工作方式。

8255A共有三种工作方式:

方式0—基本的输入/输出方式,传送数据时不需要联络信号。

A口、B口与C口(或C高4位口及C低4位口)均可独立设置成方式0输入口或方式0输出口。

方式l—选通输入/输出方式,即需要进行联络的输入/输出。

A组、B组的8位口(A口或B口)可被设置为方式1输入口或方式1输出口,而这时要用相应C口的3根线作联络线。

方式2—双向传送。

该方式要使用C口的5根线作联络线。

由于C口只有8根线,因此只能有一组使用方式2确定为A组。

当A组被设置成方式2时,A口被设置成双向端口,即既可以输入数据,也可以输出数据,C口的5根线被指定为联络线。

(4)8255A的控制字

8255A的工作方式可有CPU写一个工作方式选择控制字到8255的控制寄存器来选择。

其格式如图3-11所示,可以分别选择端口A,端口B与端口C上下两部分的工作方式。

端口A有方式0、方式1与方式2三种工作方式,端口B只能工作于方式0与方式1,而端口C仅工作于方式0、注意8255工作方式选择控制字的最高位D7(特征位)应为1。

 

D7D6D5D4D3D2D1D0

1

 

 

PC3~PC0

输入/输出

1—输入

0—输出

 

图3-118255A的工作方式选择控制字

(5)8255A的工作方式

方式0

基本特点:

方式0就是一种基本输入或输出方式,该方式适合于通信双方不需要联络信号(应答信号)的简单输入/输出场合,CPU可以随时用输入/输出指令对指定端口进行读写操作。

该方式的特点就是:

①使8255A分成彼此独立的两8位端口(A口,B口)与两个4位端口(C口高4位与低4位),4个端口的输入/输出可有16种不同的组态,可适用于各种不同的应用场合。

②方式0规定输出有无锁存能力,而输入数据不被锁存。

③方式0就是单向的I/O,即一次初始化指定了输入或输出,则不能改变;若改变,则须重新初始化。

不能指定同一端口同时既作输入又作输出。

④这种方式下,无固定的I/O联络信号,联络信号线可由用户自行安排。

这种方式只能用于无条件传送与查询传送,不能实现中断传送。

方式1

基本特点:

方式1为选通输入/输出方式,即可借助于选通(应答式)联络信号的I/O方式。

这种方式中,A口与B口用于输入/输出的数据端口,C口某些位用作接收或产生应答联络信号。

方式1的特点就是:

①有两组选通工作方式的端口,每组包含一个8位数据端口与3条控制线。

只有A口与B口可作为数据端口,C口的某些线被固定作为A口或B口与外设之间的联络信号线,其余的线只能定义为基本I/O,即只能工作于方式0。

②每组端口提供有中断请求逻辑与中断允许触发器。

对中断允许触发器INTE的操作就是通过对端口C的置位/复位控制字进行的。

③方式1在输入/输出数据时都被锁存。

④方式1可以用查询方式与中断传送方式进行数据的输入/输出。

方式2

基本特点:

方式2为分时双向输入/输出方式(双向I/O方式),即同一端口的I/O线既可以作为输入也可以作为输出。

方式2的主要特点为:

①A口可以工作于方式2,此时C口有5条线固定为A口与外设之间的联络信号线。

C口余下的3条线可以作为B口方式1下的联络线,也可以与B口一起成为方式0的I/O线。

②方式2在输入/输出数据时都被锁存。

③方式2可以用查询方式与中断传送方式进行数据的输入/输出。

④在方式2时为双向传送设置的联络信号,实际上就是方式1下输入与输出两种操作时的组合。

只有中断申请信号INTR既可作输入的中断申请,又可作输出的中断申请。

3、2软件

实现该声音录放系统功能的程序可以分为以下四个部分:

 

(1)主程序如图3-12所示。

 

主程序的主要任务就是对8253、8255A进行初始化,实现录、放音的功能调用。

①8253初始化设置 

8253在程序中设置成方式0,计数200,定时0、2ms  

8253工作方式控制字:

10000000B,即10H;选择通道0,方式0,只读写的、低8位。

设8253输入时钟信号的频率为1MHZ计数初值=0、2ms/0、001ms=200控制字端口地址为:

81H计数器0端口地址为:

80H。

 

②8255A初始化设置 

8255A控制字:

10010000B,即90H;方式0,A口输入 控制字端口地址为:

85H A口地址为:

84H 

用录、放音子程序 

首先DOS功能调用,显示录音提示信息,然后BIOS功能调用,读键盘缓冲区字符,等待键盘输入,若无键按下,继续等待;有键按下,则调用录音子程序,录音12秒。

清除键盘缓冲区后,再进行放音子程序的调用。

(2)A/D录放音子程序如图3-14所示。

 

根据设计要求,ADC0809要以每秒5000的速率采集语音数据,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

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