基于8086系统数字录音机基于8086系统数字录音机Word文件下载.docx
《基于8086系统数字录音机基于8086系统数字录音机Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于8086系统数字录音机基于8086系统数字录音机Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
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
操作
1
写计数初值到计数器0的CR
写计数初值到计数器1的CR
写计数初值到计数器2的CR
写控制字,并根据控制字高两位将其送相应的控制寄存器
从计数器0的OL中读出当前的计数值
从计数器1的OL中读出当前的计数值
从计数器2的OL中读出当前的计数值
无操作
X
未选中
(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
软/硬件
就是
N/210
方式3
下半轮有效
N/2N/2
方式4
方式5
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
RESET
GND:
地线。
(a)
(b)
图3-88255引脚及功能示意图
(a)引脚;
(b)功能示意图
表3-38255A各端口读/写操作时的信号关系
写端口A
写端口B
写端口C
写控制寄存器
读端口A
读端口B
读端口C
(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—输入
0—输出
图3-118255A的工作方式选择控制字
(5)8255A的工作方式
基本特点:
方式0就是一种基本输入或输出方式,该方式适合于通信双方不需要联络信号(应答信号)的简单输入/输出场合,CPU可以随时用输入/输出指令对指定端口进行读写操作。
该方式的特点就是:
①使8255A分成彼此独立的两8位端口(A口,B口)与两个4位端口(C口高4位与低4位),4个端口的输入/输出可有16种不同的组态,可适用于各种不同的应用场合。
②方式0规定输出有无锁存能力,而输入数据不被锁存。
③方式0就是单向的I/O,即一次初始化指定了输入或输出,则不能改变;
若改变,则须重新初始化。
不能指定同一端口同时既作输入又作输出。
④这种方式下,无固定的I/O联络信号,联络信号线可由用户自行安排。
这种方式只能用于无条件传送与查询传送,不能实现中断传送。
方式1为选通输入/输出方式,即可借助于选通(应答式)联络信号的I/O方式。
这种方式中,A口与B口用于输入/输出的数据端口,C口某些位用作接收或产生应答联络信号。
方式1的特点就是:
①有两组选通工作方式的端口,每组包含一个8位数据端口与3条控制线。
只有A口与B口可作为数据端口,C口的某些线被固定作为A口或B口与外设之间的联络信号线,其余的线只能定义为基本I/O,即只能工作于方式0。
②每组端口提供有中断请求逻辑与中断允许触发器。
对中断允许触发器INTE的操作就是通过对端口C的置位/复位控制字进行的。
③方式1在输入/输出数据时都被锁存。
④方式1可以用查询方式与中断传送方式进行数据的输入/输出。
方式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的速率采集语音数据,