AD与DA转换电路设计DOCWord文档下载推荐.docx
《AD与DA转换电路设计DOCWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《AD与DA转换电路设计DOCWord文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
4.5PCB版图设计................................................12
5.课程设计总结........................................12
6.参考文献.............................................12
1.课程设计目的
(1)掌握电子电路的一般设计方法和设计流程;
(2)学习使用PROTEL软件绘制电路原理图及印刷板图;
(3)掌握应用proteus对所设计的电路进行仿真,通过仿真结果验证设计的正确性。
2.设计内容和要求
(1)查阅熟悉相关芯片资料;
(2)输入正弦波通过A/D转换,把产生的数字信号通过LED数码管显示;
(3)使该数字信号再通过D/A转换;
(4)通过仿真比较输入的正弦波和输出的模拟信号;
(5)利用PROTEL绘制电路原理图和印刷板图,并利用proteus软件仿真。
3.设计工作任务及工作量的要求
(1)课程设计说明书;
(2)电路原理图和印刷板图;
(3)仿真图形和仿真结果。
4.总体设计方案
4.1总体设计框图
图1
总体设计方框图
4.2AD/DA转换电路设计方案
利用单片机80C51做主控制器,采集正弦波,通过ADC0809转换器进行模数转换,利用单片机进行数据处理,然后将数字信号输出再通过LED数码管显示出来,再将转换的数字信号通过DAC0832转换器进行数模转换,然后将输出的模拟信号与输入的正弦波进行比较,从而完成AD/DA转换电路的设计。
4.2.1主控制器
单片机80C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电
电源:
⑴VCC-芯片电源,接+5V;
⑵VSS-接地端;
时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
控制线:
控制线共有4根,
(1)ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
1.ALE功能:
用来锁存P0口送出的低8位地址
2.PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
(2)PSEN:
外ROM读选通信号。
(3)RST/VPD:
复位/备用电源。
1.RST(Reset)功能:
复位信号输入端。
2.VPD功能:
在Vcc掉电情况下,接备用电源。
(4)EA/Vpp:
内外ROM选择/片内EPROM编程电源。
1.EA功能:
内外ROM选择端。
2.Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
I/O线:
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
(1)P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
(2)P0口有三个功能:
1.外部扩展存储器时,当作数据总线;
2.外部扩展存储器时,当作地址总线;
3.不扩展时,可当作一般的I/O口使用,但内部无上拉阻。
(3)P1口只做I/O口使用,其内部有上拉电阻。
(4)P2口由两个功能:
1.扩展外部存储器时,当作地址总线使用;
2.做一般I/O口使用,其内部有上拉电阻。
4.2.2ADC转换器
ADC0809有三个主要组成部分:
256个电阻组成的电阻阶梯及树状开关、逐次比较寄存器SAR和比较器。
电阻阶梯和树状开关是ADC0809的一个特点。
另一个不特点是,它含有一个8通道单端信号模拟开关和一个地址译码器。
地址译码器选择8个模拟信号之一送入ADC进行A/D转换,因此适用于数据采集系统。
图2
图2为引脚图。
各引脚功能如下:
(1)IN0~IN7是八路模拟输入信号;
(2)ADDA、ADDB、ADDC为地址选择端;
(3)2-1~2-8为变换后的数据输出端;
(4)START(6脚)是启动输入端。
(5)ALE(22脚)是通道地址锁存输入端。
当ALE上升沿到来时,地址锁存器可对ADDA、ADDB、ADDC锁定。
下一个ALE上升沿允许通道地址更新。
实际使用中,要求ADC开始转换之前地址就应锁存,所以通常将ALE和TART连在一起,使用同一个脉冲信号,上升沿锁存地址,下降沿则启动转换。
(6)OE(9脚)为输出允许端,它控制ADC内部三态输出缓冲器。
(7)EOC(7脚)是转换结束信号,由ADC内部控制逻辑电路产生。
当EOC=0时表示转换正在进行,当EOC=1表示转换已经结束。
因此EOC可作为微机的中断请求信号或查询信号。
显然只有当EOC=1以后,才可以让OE为高电平,这时读出的数据才是正确的转换结果。
4.2.3显示电路
显示电路采用8位共阳LED数码管,段选接P0口,位选接P1.0~P1.3,在80C51的控制下,由ADC0809采集且转换为数字信号,由PO口输出送数码管显示模块LED上显示。
数字信号通过芯片DAC0832进行转换为模拟信号,通过示波器显示。
4.2.4DAC转换芯片
DAC0832是用CMOS工艺制成的20只脚双列直插式单片八位D/A转换器。
它由八位输入寄存器、八位DAC寄存器和八位D/A转换器三大部分组成。
它有两个分别控制的数据寄存器,可以实现两次缓冲,所以使用时有较大的灵活性,可根据需要接成不同的工作方式。
DAC0832芯片上各管脚的名称和功能说明如下:
1.引脚功能
DAC0832的引脚图如图3所示。
各引脚的功能说明如下:
图3DAC0832的引脚图
:
片选信号,输入低电平有效。
ILE:
输入锁存允许信号,输入高电平有效。
输入寄存器写信号,输入低电平有效。
DAC寄存器写信号,输入低电平有效。
数据传送控制信号,输入低电平有效。
DI0~DI7:
8位数据输入端,DI0为最低位,DI7为最高位。
IOUT1:
DAC电流输出1。
此输出信号一般作为运算放大器的一个差分输入信号(通常接反相端)。
IOUT2:
DAC电流输出2,IOUT1+IOUT2=常数。
RFB:
反馈电阻。
Vref:
参考电压输入,可在+10V~-10V之间选择。
VCC:
数字部分的电源输入端,可在+5V~+15V范围内选取,+15V时为最佳工作状态。
AGND:
模拟地。
DGND:
数字地。
4.3工作原理及硬件框图
4.31.1A/D转换过程
A/D转换器是模拟系统和数字系统之间的接口电路,A/D转换器在进行转换期间,要求输入的模拟电压保持不变,但在A/D转换器中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是离散的,所以进行转换时只能在一系列选定的瞬间对输入的模拟信号进行采样,然后再把这些采样值转化为输出的数字量,一般来说,转换过程包括取样、保持、量化和编码四个步骤。
A/D转换的一般步骤如下:
(一)采样和保持
采样(又称抽样或取样)是对模拟信号进行周期性地获取样值的过程,即将时间上连续变化的模拟信号转换为时间上离散、幅度上等于采样时间内模拟信号大小的模拟信号,即转换为一系列等间隔的脉冲。
为了不失真地用采样后的输出信号uo来表示输入模拟信号ui,采样频率fS必须满足:
采样频率应不小于输入模拟信号最高频率分量的两倍,即fS≥2fmax,其中,fmax为输入信号ui的上限频率(即最高次谐波分量的频率)。
ADC把采样信号转换成数字信号需要一定的时间,所以在每次采样结束后都需要将这个断续的脉冲信号保持一定时间以便进行转换。
(二)量化和编码
输入的模拟信号经采样—保持电路后,得到的是阶梯形模拟信号,它们是连续模拟信号在给定时刻上的瞬时值,但仍然不是数字信号。
必须进一步将阶梯形模拟信号的幅度等分成n级,并给每级规定一个基准电平值,然后将阶梯电平分别归并到最邻近的基准电平上。
这个过程称为量化。
量化中采用的基准电平称为量化电平,采样保持后未量化的电平uo值与量化电平uq值之差称为量化误差δ,即δ=uo-uq。
量化的方法一般有两种:
只舍不入法和有舍有入法(或称四舍五入法)。
我们将用二进制数码来表示各个量化电平的过程称为编码。
此时把每个样值脉冲都转换成与它的幅度成正比的数字量,才算全部完成了模拟量到数字量的转换。
只舍不入的方法是:
取最小量化单位Δ=Um/2n,其中Um为模拟电压最大值,n为数字代码位数,将0~Δ之间的模拟电压归并到0·
Δ,把Δ~2Δ之间的模拟电压归并到1·
Δ,依此类推。
这种方法产生的最大量化误差为Δ。
比如,将0~1V的模拟电压信号转换成三位二进制代码。
有Δ=1V/8,那么0~1V/8之间的模拟电压归并到0·
Δ,用000表示,1V/8~2V/8之间的模拟电压归并到1·
Δ,用001表示,…,依此类推直到将7V/8~1V之间的模拟电压归并到7·
Δ,用111表示,此时最大量化误差为1V/8。
该方法——简单易行,但量化误差比较大,为了减小量化误差,通常采用另一种量化编码方法,即有舍有入法。
有舍有入的方法是:
取最小量化单位Δ=2Um/(2n+1—1),其中Um仍为模拟电压最大值,n为数字代码位数,将0~Δ/2之间的模拟电压归并到0·
Δ,把Δ/2~3Δ/2之间的模拟电压归并到1·
Δ,…,依此类推。
这种方法产生的最大量化误差为Δ/2。
用此法重做上例,将0~1V的模拟电压信号转换成三位二进制代码。
有Δ=2V/15,那么将0~1V/15之间的模拟电压归并到0·
Δ,用000表示,把1V/15~3V/15以内的模拟电压归并到1·
Δ,用001表示…,直到将13V/15~1V之间的模拟电压归并到7·
Δ,用111表示,很明显此时最大量化误差为1V/15。
比上述只舍不入方法的最大量化误差1V/8明显减小了(减小了近一半)。
因而实际中广泛采用有舍有入的方法。
当然,无论采用何种划分量化电平的方法都不可避免地存在量化误差,量化级分的越多(即ADC的位数越多),量化误差就越小,但同时输出二进制数的位数就越多,要实现这种量化的电路将更加复杂。
因而在实际工作中,并不是量化级分的越多越好,而是根据实际要求,合理地选择A/D转换器的位数。
图4表示了两种不同的量化编码方法。
(a)只舍不入法(b)有舍有入法
图4两种量化编码方法的比较
4.31.2D/A转换过程
设需要转换的n位的二进制数字量是d0,d1…..dn,其大小可表示为:
D=d0+d1•21+d2•22+……+dn-1•2n-1,
DAC按照上式将二进制数的每一位转换成与其大小成正比的模拟量,然后相加起来,就得到与该数字量大小成正比的模拟量。
通常一个D/A变换器的一般式,主要由电子开关,电阻网络和运放组成.如下图所示:
该电阻网络加有基准电源US,与权电阻配合产生各种规格的电压。
U0是这一系列二进制电压的迭加值,电压正是US量化的结果,
U0的表达式为:
U0=(d1+d2•21+d3•22+…+dn•2n-1)•US
从上式可看出,输出的模拟电压U0的大小与数字量d成正比,从而实现了从数字量到模拟量的变化。
4.41硬件电路原理图:
4.42程序如下:
#include<
reg51.h>
sbitALE=P3^3;
sbitOE=P3^4;
sbitEOC=P3^5;
sbitSTA=P3^6;
sbitCLK=P3^7;
//管脚定义
unsignedintnum;
//AD转换结果
charch;
//通道号
voiddelay(unsignedintz)//延时
{
unsignedintx,y;
for(x=z;
x>
0;
x--)
for(y=2;
y>
y--)
CLK=~CLK;
}
voiddisplay()//显示
{
charcodetable[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
P0=0;
P2=0xf7;
P0=table[ch];
delay
(2);
P2=0xfb;
P0=table[num/100]+128;
delay
(2);
//百位和小数点
P2=0xfd;
P0=table[num%100/10];
//十位
P2=0xfe;
P0=table[num%10];
//个位
voidmain(void)
while
(1){//无穷循环
ch=P2/32;
//取来通道号码
P3=ch+0xf8;
//送给ADC0809
ALE=1;
ALE=0;
//地址锁存
STA=1;
STA=0;
//开始转换,稍候,才可读EOC
display();
//显示,既做延时,又输出CLK
while(EOC==0)display();
//等待转换结束
num=P1;
//取出转换结果
num=num*100/51;
//比例变换:
255-->
500
}
4.43电路仿真
电路仿真图
波形仿真图
4.5PCB版图
5.课程设计总结
在这次的课程设计过程中遇到了很多自己不懂的知识,必须通过自己去查阅资料,去学习。
特别是单片机,以前没学过在这花费的时间比较多,单片机的软件语言还没学会,还需要自己以后多加的学习。
一开始本想用protel99se软件去做,但是后来发现有很多器件在protel99se软件中都没找到,给自己设计电路带来了很多的不便,只能改在proteus软件上去做。
PCB版图的制作要细心,耐心的去布线。
从这次的课程设计中,加强了自己独立思考和解决问题的能力,使我深刻的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习电子设计更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。
6.参考文献
①童诗白.模拟电子技术基础.北京:
高等教育出版社,2002
②张建华.数字电子技术.北京:
机械工业出版社,2004
③陈汝全.电子技术常用器件应用手册.北京:
机械工业出版社,2005
④毕满清.电子技术实验与课程设计.北京:
⑤潘永雄.电子线路CAD实用教程.西安:
西安电子科技大学出版社,2002
⑥张亚华.电子电路计算机辅助分析和辅助设计.北京:
航空工业出版社,2004