常用ADDA芯片的使用:并行ADC080串行ADC083串行

上传人:c****d 文档编号:243041399 上传时间:2024-09-14 格式:PPT 页数:29 大小:187.50KB
返回 下载 相关 举报
常用ADDA芯片的使用:并行ADC080串行ADC083串行_第1页
第1页 / 共29页
常用ADDA芯片的使用:并行ADC080串行ADC083串行_第2页
第2页 / 共29页
常用ADDA芯片的使用:并行ADC080串行ADC083串行_第3页
第3页 / 共29页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,9-3 A/D转换接口电路,一、,A/D转换的基本概念,A/D转换的功能是把模拟量电压转换为N位数字量。,设D为N位二进制数字量,UA为电压模拟量,UREF为参考电压,无论A/D或D/A,其转换关系为:,U,A,= DU,REF,/ 2,N,(其中:D=D,0,2,0,+D,1,2,1,+ +D,N-1,2,N-1,),1,1、,A/D转换器的主要性能指标:,转换精度,。转换精度通常用分辨率和量化误差来描述。,分辨率,。分辨率 = U,REF,/ 2,N,表示输出数字量变化一个相邻数码所需输入模拟电压的变化量。,N为A/D转换的位数,N越大,分辨率越高,,习惯上分辨率常以A/D转换位数N表示。,量化误差,。量化误差是指零点和满度校准后,在整个转换范围内的最大误差。,转换时间,。指A/D转换器完成一次A/D转换所需时间。转换时间越短,适应输入信号快速变化能力越强。,2、,A/D转换器分类,A/D转换器分类:按,转换原理形式,可分为逐次逼近式、双积分式和V/F变换式;,按,信号传输形式,可分为并行A/D和串行A/D。,2,二、,并行A/D,ADC0809及其接口电路,3,1、,引脚功能和典型连接电路,IN0IN7,:,8路模拟信号输入端,。,C、B、A,:,8路模拟信号转换选择端,。,与低8位地址中A0A2连接。由A0A2地址000111选择IN0IN7八路A/D通道。,CLK,:,外部时钟输入端,。,时钟频率高,A/D转换速度快。允许范围为101280KHz 。,通常由80C51 ALE端直接或分频后与0809 CLK端相连接。,D0D7,:,数字量输出端,。,OE,:,A/D转换结果输出允许控制端,。,OE=1,允许将A/D转换结果从D0D7端输出。通常由80C51的端与0809片选端(例如P2.0)通过或非门与0809 OE端相连接。,ALE,:,地址锁存允许信号输入端,。,0809 ALE信号有效时将当前转换的通道地址锁存。,START,:,启动A/D转换信号输入端,。,当START端输入一个正脉冲时,立即启动0809进行A/D转换。START端与ALE端连在一起,由80C51WR与0809片选端(例如P2.0)通过或非门相连。,EOC,:A/D转换结束信号输出端,高电平有效。,U,REF(+),、,U,REF(-),:,正负基准电压输入端,。,Vcc,:,正电源电压,(+5V)。,GND,:,接地端,。,4,2、,ADC 0809应用实例,中断方式,【例9-12】 按图9-20,用中断方式对8路模拟信号依次A/D转换一次,并把结果存入以30H为首址的内RAM中,试编制程序。,解:,ORG 0000H,;复位地址,LJMP STAT,;转初始化程序,ORG 0013H,;中断服务子程序入口地址,LJMP PINT1,;中断,转中断服务子程序;,ORG 0100H,;初始化程序首地址,STAT: MOV R1,#30H,;置数据区首址,MOV R7,#8,;置通道数,SETB IT1,;置边沿触发方式,SETB EX1,;开中,SETB EA,;CPU开中,MOV DPTR,#0FEF8H,;置0809通道0地址,MOVX DPTR,A,;启动0通道A/D,LJMP MAIN,;转主程序,并等待A/D中断,5,ORG 0200H,;中断服务子程序首地址,PINT1: PUSH Acc,;保护现场,PUSH PSW,;,MOVX A,DPTR,;读A/D值,MOV R1,A,;存A/D值,INC DPTR,;修正通道地址,INC R1,;修正数据区地址,MOVX DPTR,A,;启动下一通道A/D,DJNZ R7,GORETI,;判8路采集完否?未完继续,CLR EX1,;8路采集已完,关中,GORETI:POP PSW,;恢复现场,POP Acc,;,RETI,;中断返回,6,查询方式,工作在查询方式时,0809 EOC端可不必通过反相器与或相连,直接与80C51 P1口或P3口中任一端线相连。,【例9-13】 图9-20中,用P1.0直接与0809 EOC端相连,试用查询方式编制程序,对8路模拟信号依次A/D转换一次,并把结果存入以40H为首址的内RAM中。,解:,MAIN: MOV R1,#40H,;置数据区首址,MOV R7,#8,;置通道数,SETB P1.0,;置P1.0输入态,MOV DPTR,#0FEF8H,;置0809通道0地址,LOOP: MOVX DPTR,A,;启动A/D,JNB P1.0,$,;查询A/D转换结束否?未完继续查询等待,MOVX A,DPTR,;A/D已结束,读A/D值,MOV R1,A,;存A/D值,INC DPTR,;修改通道地址,INC R1,;修改数据区地址,DJNZ R7,LOOP,;判8路采集完否?未完继续,RET,;8路采集完毕,返回,7,延时等待方式,工作在延时等待方式时,0809 EOC端可不必与80C51相连,是根据时钟频率计算出A/D转换时间,略微延长后直接读A/D转换值。,【例9-14】 图9-20中,0809 EOC端开路,fosc=6MHz,试用延时等待方式编制程序,对8路模拟信号依次A/D转换一次,并把结果存入以50H为首址的内RAM中。,解:编程如下:,MAIN:MOV R1,#50H,;置数据区首址,MOV R7,#8,;置通道数,MOV DPTR,#0FEF8H,;置0809通道0地址,LOOP:MOVX DPTR,A,;启动A/D,MOV R6,#17,;,DJNZ R6,$,;延时68,S:2机周17=34机周,2,S34=68,S,MOVX A,DPTR,;读A/D值,MOV R1,A,;存A/D值,INC DPTR,;修正通道地址,INC R1,;修正数据区地址,DJNZ R7,LOOP,;判8路采集完否?未完继续,RET,;8路采集完毕,返回,8,三、,串行A/D,ADC0832及其接口电路,ADC 0832是8位串行A/D转换器;,转换速度较高(250KHz时转换时间32,s);,单电源供电,功耗低(15mw)。,9,1、,引脚功能,V,DD,、,V,SS,:电源接地端,V,DD,同时兼任U,REF,;,CS,:片选端,低电平有效;,DI,:数据信号输入端;,DO,:数据信号输出端;,CLK,:时钟信号输入端,要求低于600KHz;,CH0,、,CH1,:模拟信号输入端(双通道),;,2、,典型应用电路,P1.0,片选CS;,TXD,发送时钟信号输入ADC0832 CLK;,RXD,与DI、DO端连接在一起。,编码,通道选择,CH0 CH1,00, ,01, ,10,11,表9-3,10,3、,串行A/D转换工作时序,工作时序分为二个阶段:, 起始和通道配置,由CPU发送,从ADC0832 DI端输入;, A/D转换数据串行输出,由ADC 0832从DO端输出,CPU接收。,11,4、,软件编程,【例9-15】按图9-21(b)电路,试编制程序,将CH0、CH1通道输入的模拟信号A/D转换,分别存入30H31H中。,解:,AD0832:MOV SCON,#00H,;置串口方式0,禁止接收,CLR ES,;串口禁中,MOV R0,#30H,;置A/D数据存储区首址,CLR P1.0,;片选0832,MOV A,#06H,;置CH0通道配置,ADC0: MOV SBUF,A,;启动A/D,ADC1: JNB TI,ADC1,;串行发送启动及通道配置信号,CLR TI,;清发送中断标志,SETB REN,;允许(启动)串行接收,ADC2: JNB RI,ADC2,;接收第一字节,CLR RI,;清接收中断标志,同时启动接收第二字节,MOV A,SBUF,;读第一字节数据,MOV B,A,;暂存,12,说明,:, 接收第一字节的8位数据为(注意先接收低位D4):, 清串行接收中断标志后,启动串行接收第二字节,其数据为:, 组合后的8位数据为:, 高低4位互换后的8位数据为:,ADC3: JNB RI,ADC3,;接收第二字节,CLR RI,;清接收中断标志,MOV A,SBUF,;读第二字节数据,ANL A,#0FH,;第二字节屏蔽高4位,ANL B,#0FOH,;第一字节屏蔽低4位,ORL A,B,;组合,SWAP A,;高低4位互换,组成正确的A/D数据,MOV R0,A,;存A/D数据,INC R0,;指向下一存储单元,MOV A,#0EH,;置CH1通道配置,CJNE R0,#32H,ADC0,;判两通道A/D完毕否?未完继续,CLR REN,;两通道A/D完毕,禁止接收,SETB P1.0,;清0832片选,RET,;,D3,D2,D1,D0,D1,D2,D3,D4,D7,D6,D5,D4,D3,D2,D1,D0,D7,D6,D5,D4,D7,D6,D5,D4,D3,D2,D1,D0,13,四、,I,2,C串行A/D典型应用电路,I,2,C串行A/D,芯片,PCF8591,,同时具有A/D、D/A转换功能,。,1、,PCF8591引脚功能,SDA,、,SCL,:I,2,C总线数据线、时钟线;,A2,、,A1,、,A0,:引脚地址输入端;,AIN0AIN3,:模拟信号输入端,,OSC,:外部时钟输入端,内部时钟输出端;,EXT,:内外部时钟选择端,EXT=0时选择内部时钟;,V,DD,、,V,SS,:电源、接地端;,AGND,:模拟信号地;,U,REF,:基准电压输入端;,A,OUT,:D/A转换模拟量输出端;,14,该芯片既可用于A/D转换(模拟信号从AIN0AIN3输入),又可用于D/A转换(D/A转换模拟量从A,OUT,输出),器件地址为1001,若A2A1A0接地,D/A转换写寻址字节SLA,W,=90H,A/D转换读寻址字节SLA,R,=91H。,2、,硬件电路设计,15,3、,片内可编程功能,控制命令字,PCF8591内部有一个控制寄存器,用来存放控制命令,其格式如下:,COM,D7,D6,D5,D4,D3,D2,D1,D0,D1,、,D0,:,A/D通道编号,00:通道0;01:通道1;10:通道2;11:通道3;,D2,:,自动增量选择,D2=1时,A/D转换将按通道03依次自动转换;,D3,、,D7,:必须为0;,D5,、,D4,:,模拟量输入方式选择位,:,00:,输入方式0(,四路单端输入,);,01:,输入方式1(,三路差分输入,);,10:,输入方式2(,二路单端一路差分输入,);,11:,输入方式3(,二路差分输入,)。,D6,:,模拟输出允许,。D6=1,模拟量输出有效;,16, 输入方式0(四路单端输入):,ANI0 通道0(单端输入),ANI1 通道1(单端输入),ANI2 通道2(单端输入),ANI3 通道3(单端输入), 输入方式1(三路差分输入):,17, 输入方式2(二路单端一路差分输入):, 输入方式3(二路差分输入):,18,ADC数据操作格式,S,SLA,W,A,COM,A,S,SLA,R,A,Data0,A,Data1,A,发出控制命令(写操作),A/D转换(读操作),其中红色部分由80C51发送,PCF8591接收;,黑色部分由PCF8591发送,80C51接收;,19,4、,软件编程,【例9-16】 按图9-23(b)编程将AIN0AIN3 4个通道的模拟信号A/D转换后,依次存入以50H为首址的内RAM中。设VIIC软件包已装入ROM,VSDA、VSCL、SLA、NUMB、MTD、MRD均已按8.3.2 软件包小结中协议定义。,解:,VADC: MOV SLA,#90H,;置发送寻址字节,MOV MTD,#00000100B,;置A/D转换控制命令,通道自动增量,MOV NUMB,#1,;置发送字节数,LCALL WRNB,;发送控制命令字,MOV R0,#50H,;置A/D数据区首址,VADC0: MOV SLA,#91H,;置接收寻址字节,MOV NUMB,#2,;置接收字节数,LCALL RDNB,;读A/D转换数据,MOV R0,41H,;存A/D转换数据(存在50H53H),INC R0,;修改A/D数据区地址,CJNE R0,#54H,VADC0,;判4通道A/D完成否?未完继续,RET,;,20,9-4 D/A转换接口电路,一、,D/A转换的基本概念,1、D/A转换的基本概念,D/A转换的基本原理是应用电阻解码网络,将N位数字量逐位转换为模拟量并求和,从而实现将N位数字量转换为相应的模拟量。,设D为N位二进制数字量,U,A,为电压模拟量,U,REF,为参考电压,无论A/D或D/A,其转换关系为:,U,A,= DU,REF,/ 2,N,(其中:D=D,0,2,0,+D,1,2,1,+ +D,N-1,2,N-1,),2、,D/A转换器的主要性能指标,分辨率:,相对分辨率 = 1/2,N,,,N越大,分辨率越高。,线性度,转换精度,建立时间,温度系数,21,二、,DAC0832及其接口电路,DAC 0832是8位D/A芯片,由美国国家半导体公司生产,是目前国内应用最广的8位D/A芯片(请特别注意ADC0832与DAC0832的区别)。,22,1、,结构和引脚功能,DI0DI7,:8位数据输入端。,ILE,:输入数据允许锁存信号,高电平有效。,CS,:片选端,低电平有效。,WR1,:输入寄存器写选通信号,低电平有效。,WR2,:DAC寄存器写选通信号,低电平有效。,XFER,:数据传送信号,低电平有效。,I,OUT1,、,I,OUT2,:电流输出端。,R,FB,:反馈电流输入端。,U,REF,:基准电压输入端。,Vcc,:正电源端;,AGND,:模拟地;,DGND,:数字地。,2、,DAC 0832工作方式,用软件指令控制这5个控制端:ILE、CS、WR1、WR2、XFER,可实现三种工作方式:,直通工作方式,:5个控制端均有效,直接D/A;,单缓冲工作方式,:5个控制端一次选通;,双缓冲工作方式,:5个控制端分二次选通。,23,三、DAC 0832应用实例,1、单缓冲方式,24,【例9-17】电路按图9-27,要求输出锯齿波如图9-29(a)所示,幅度为U,REF,/2=2.5V。,解:程序如下:,START: MOV DPTR,#7FFFH,;置DAC0832地址;,LOOP1: MOV R7,#80H,;置锯齿波幅值; 1机周,LOOP2: MOV A,R7,;读输出值; 1机周,MOVX DPTR,A,;输出; 2机周,DJNZ R7,LOOP2,;判周期结束否? 2机周,SJMP LOOP1,;循环输出; 2机周,25,2、,双缓冲方式,26,【例9-18】按图9-28(a)编程,DAC0832和输出端接运放后,分别接图形显示器X轴和Y轴偏转放大器输入端,实现同步输出,更新图形显示器光点位置。已知X轴信号和Y轴信号已分别存于30H、31H中。,解:,DOUT:MOV DPTR,#0DFFFH,;置DAC0832(1)输入寄存器地址,MOV A ,30H,;取X轴信号,MOVX DPTR,A,;X轴信号0832(1)输入寄存器,MOV DPTR,#0BFFFH,;置DAC0832(2)输入寄存器地址,MOV A,31H,;取Y轴信号,MOVX DPTR,A,;Y轴信号0832(2)输入寄存器,MOV DPTR,#7FFFH,;置0832(1)、(2)DAC寄存器地址,MOVX DPTR,A,;同步D/A,输出X、Y轴信号,RET,;,27,四、,I,2,C串行D/A典型应用电路,1、,典型应用连接电路,2、,写操作数据格式,S,SLA,W,A,COM,A,data,A,其中红色部分由80C51发送,PCF8591接收;,黑色部分由PCF8591发送,80C51接收;,28,3、,软件编程,【例9-19】 按图9-23(b)设计一个D/A转换子程序,已知D/A转换数据已存入内RAM 50H中。设VIIC软件包已装入ROM,VSDA、VSCL、SLA、NUMB、MTD、MRD均已按8.3.2 软件包小结中协议定义。,解:,VDSA:MOV SLA,#90H,;置发送寻址字节,MOV MTD,#40H,;置D/A转换控制命令,MOV 31H,50H,;D/A转换数据装入MTD+1单元,MOV NUMB,#2,;置发送数据字节数,LCALL WRNB,;调用I2C总线发送N字节数据子程序,RET,;,29,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!