第12章AD与DA转换课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第12章AD与DA转换课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 AD DA 转换 课件
- 资源描述:
-
1、AD/DA 转换AD/DA conversion本章将主要对AD/DA转换原理进行介绍及说明相应的应用实例2单片机是数字芯片,能够直接处理的只有数字信号,但单片机常用来控制外部对象(如电动机),为了准确地控制外部对象的工作,往往先要知道控制对象当前的运行情况,也就是说控制对象应该先告诉单片机它现在的情况是怎么样的。从信号的角度上来说,控制对象给出的信号有些是模拟信号,这是就需要先转换成数字信号后,再给单片机,这样单片机才能识别,此时需要用到AD转换芯片,如ADC0808/0809等;转换后的数字信号经过单片机分析、加工,最后给出控制思路,但控制对象(如有些电机)通常是模拟型器件,要控制它,只能
2、为其提供模拟信号,此时单片机就需要借助于D/A转换芯片(如DAC0832等)将数字信号转换成模拟信号。3目 录12.1 基于单片机的AD数据采集12.2 基于单片机的DA转换412.1.1ADC0808芯片工作原理12.1.2ADC0808应用硬件电路图12.1.3程序设计5ADC0808和ADC0809除精度略有差别外(前者精度为8位、后者精度为7位),其余各方面完全相同。它们都是CMOS器件,不仅包括一个8位的逐次逼近型的ADC部分,而且还提供一个8通道的模拟多路开关和通道寻址逻辑,因而有理由把它作为简单的“数据采集系统”。利用它可直接输入8个单端的模拟信号分时进行A/D转换,在多点巡回检
3、测和过程控制、运动控制中应用十分广泛。6 分辨率:8位。总的不可调误差:ADC0808为1/2LSB,ADC0809为1LSB。转换时间:取决于芯片时钟频率,如CLK=500kHz时,TCONV=128ms。单一电源:+5V。模拟输入电压范围:单极性05V;双极性5V,10V(需外加一定电路)。具有可控三态输出缓存器。启动转换控制为脉冲式(正脉冲),上升沿使所有内部寄存器清零,下降沿使A/D转换开始。使用时不需进行零点和满刻度调节。1主要技术指标和特性72内部结构和外部引脚ADC0808的内部结构如图12-1所示,外部引脚如图12-2所示。图12-1 ADC0808内部结构图图12-2 ADC
4、0808外部引脚图8内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:IN0IN78路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。D7D0A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。ADDA、ADDB、ADDC模拟通道选择地址信号,ADDA为低位,ADDC为高位。地址信号与选中通道对应关系如表12-1所示。表12-1 通道与地址的关系地址选中通道ADDCADDBADDA000011110011001101010101IN0IN1IN2IN3IN4IN5IN
5、6IN79 VR(+)、VR(-)正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。ALE地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。STARTA/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。10 EOC转换结
6、束信号,高电平有效。该信号在A/D转换过程中为低电平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。OE输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。113工作时序与使用说明ADC0808/0809的工作时序如图12-3所示。当通道选择地址有效时,ALE信号一出现,地址便马上被锁存,这时转换启动信号紧
7、随ALE之后(或与ALE同时)出现。START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2us+8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后EOC再变高电平。微处理器收到变为高电平的EOC信号后,便立即送出OE信号,打开三态门,读取转换结果。图12-3 ADC0808工作时序12模拟输入通道的选择可以相对于转换开始操作独立地进行(当然,不能在转换过程中进行),实际中通常是将通道选择和启动转换结合起来完成(因为ADC0808的时间特性允许这样做),这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口时,输入通道的选择可有两种方法:一种是通
8、过地址总线选择,一种是通过数据总线选择。如用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2us+8个时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。13ADC0808应用硬件电路如图12-4所示。D0D7D1D6D5D2D4D3D3D4D2D5D1D6D0D7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2
9、.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C52OUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT71
10、4OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC080838%RV11kVolts+1.90U2(CLOCK)图12-4 ADC0808/0809仿真图 在Protues仿真中,ADC0808中的输出OUT1对应单片机的数据位的D7,OUT7对应D0。说 明14程序代码如下:/*/ADC0808/0809进行A/D转换程序/*#include#define uchar unsigned char/sbit OE=P00;sbit EOC=P01;sbit START=P02;/=共阳极数码管驱动数组=const char num_displa
11、y=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf87,0 x80,0 x90;/=毫秒级延时函数=void delay(int i)int j;for(j=0;j0;c-)for(b=142;b0;b-)for(a=2;a0;a-);/=微秒级延时函数=void delay1us(int i)while(i-);/=void display(int adc_num)/注意,传入参数如果超过255,/则不能用unchar/变量类型进行声明,否则就会发/生数据丢失情况P3=0 xf1;/数码管共阳极,位驱动高电平有效P2=num_display(ad
12、c_num/1000)&0 x7f;/显示千位,其中将结果与上0 x7f的/目的是让千位后显示一个小数点adc_num=adc_num%1000;delay(3);P3=0 xf2;/数码管共阳极,位驱动高电平有效P2=num_display(adc_num/100);/显示百位,其中将结果与上0 x7f的/目的是/让百位后显示一个小数点adc_num=adc_num%100;delay(3);P3=0 xf4;P2=num_displayadc_num/10;/显示十位adc_num=adc_num%10;delay(3);P3=0 xf8;P2=num_displayadc_num;/显示
13、个位delay(3);/=void main(void)/要让LED数码管正确显示相应的/数据数据类型的定义非常重要float x;int result;while(1)START=1;/在上升沿的时候,所有的内部/寄存器全部清零 delay1us(5);START=0;/在下降沿的时候,/开始进行AD转换 while(EOC!=1);/等待转换结束,/当EOC=1,表示转换结束,/EOC=0表示正在转换result=P1;/将结果保存到变量result当中/x=result*(5/255)*1000;/处理运算结果,/让LED数码管显示4位数据,/3位小数 x=result*19.6;/将结
14、果乘以19.6的目的是/根据上一行被注释的形式,/*放大1000倍,从而可以取到4位数据,整数1位,小数3位。但不能直接按x=result*(5/255)*1000;表达式书写,不然在5/255过程中就被当成了0来处理*/display(x);delay(3);15目 录12.1 基于单片机的AD数据采集12.2 基于单片机的DA转换1612.2.1DAC0832芯片工作原理12.2.2DAC0832应用硬件电路图12.2.3DAC0832正弦波发生程序12.2.4DAC0832三角波发生程序12.2.5DAC0832矩形波发生程序17DAC0832是双列直插式8位D/A转换器。能完成数字量输
15、入到模拟量(电流)输出的转换。其主要参数如下:分辨率为8位,转换时间为1ms,满量程误差为1LSB,供电电源为(+5+15)V,逻辑电平输入与TTL兼容。图12-5为DAC0832的引脚图。图12-5 DAC0832引脚图18DAC0832中各引脚的功能定义如下:DI7DI0:8位的数据输入端,DI7为最高位。IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。IOUT2:模拟电流输出端2,IOUT2与IOUT1的和为一个常数,即IOUT1IOUT2常数。RFB:反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以
展开阅读全文