1 / 51

第 9 章 数/模及模/数转换器接口

单片机. 第 9 章 数/模及模/数转换器接口. 9-1 D/A 转换器接口及应用. 9-2 A/D 转换器接口及应用. 扩展 I/O 电路的功能:. 1 、速度协调; 2 、输出数据锁存; 3 、输入数据三态; 4 、数据转换: 模拟量→数字量:由 A/D 转换完成; 数字量→模拟量:由 D/A 转换完成。. 单片机和被控实体间的接口示意图. 举例 1 :温度测控系统. 举例 2 :速度测控系统. 60 K. 20 K. +5 V. +5 V. +5 V. GND. 10 K × 6. 220 K. 2.2 u. AT89C51.

omana
Télécharger la présentation

第 9 章 数/模及模/数转换器接口

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 单片机 第9章 数/模及模/数转换器接口 9-1 D/A转换器接口及应用 9-2 A/D转换器接口及应用

  2. 扩展I/O电路的功能: 1、速度协调; 2、输出数据锁存; 3、输入数据三态; 4、数据转换: 模拟量→数字量:由A/D转换完成; 数字量→模拟量:由D/A转换完成。

  3. 单片机和被控实体间的接口示意图

  4. 举例1:温度测控系统

  5. 举例2:速度测控系统

  6. 60K 20K +5V +5V +5V GND 10K×6 220K 2.2u AT89C51 行程开关1 P1.0 BISS0001 VSS VC 行程开关2 P1.1 1M 3.3K IB 102 行程开关3 P1.2 330K RR2 VDD 行程开关4 P1.3 10K 1M RC2 手动开按钮 P1.4 2OUT 10n 103 手动关按钮 P1.5 RC1 10u 2IN- LED 330K 103 RR1 P1.6 1IN+ 2M 手动/自动切换 V0 1IN- P3.2/INT0 VCC P2.0 蜂鸣报警 47u 电机过热报警 47K P2.1 1OUT A 电压过高报警 P2.2 470u 速度异常报警 P2.3 D 103 转速检测模块 ADC 0809 P3.0 光电隔离 电机正转继电器J1 P0 WR RD ALE P1.7 S 103 P3.1 电压检测模块 电机反转继电器J2 G P3.4 红外传感器 电机温度检测 速度变换继电器J3 P3.3/INT1 A/D转换 举例3:红外线自动门控制系统原理图

  7. A 1 BISS0001 16 1OUT 1IN- V0 2 15 RR1 3 14 1IN+ RC1 4 13 2IN- 12 2OUT RC2 5 11 VDD RR2 6 10 IB Vss 7 9 Vc 8 VRF/RESET 红外线传感器集成芯片BISS0001特点 (1)用CMOS工艺,功耗低。 (2)具有独立的高输入阻抗运算放大器,可与多种传感器匹配。 (3)双向鉴幅器可有效抑制干扰信号。 (4)内设延时和封锁定时器,性能稳定,调节范围宽。 (5)内置参考电源。 (6)工作电压范围宽(3V~5V)。

  8. 9-1 D/A转换器接口及应用 9-1-1 D/A转换概述 一、D/A(Digit to Analog)转换器: 为把数字量转换成模拟量,在D/A转换芯片中要有解码网络: ①权电阻网络; ②倒T型电阻网络。

  9. T型电阻网络型D/A转换器: D/A转换器的原理: 把输入数字量中每位都按其权值分别转换成模拟量,并通 过运算放大器求和相加。根据克希荷夫定律,如下关系成立: I0=20 I1=21 I2=22 I3=23

  10. 二、D/A输出形式: ①电压; ②电流 运算放大器电压。 n位数字量与模拟量的关系式: VO =—VREF×(数字码 / 2n)(VREF —— 参考电压) 注:因使用反相比例放大器来实现电流到电压的转换,所以输出模拟信号(VO)的极性与参考电压(VREF)极性相反。

  11. 三、注意区分D/A内部是否带有锁存器: 与P1、P2接口:不需加锁存器,直接接口。 无锁存器 与P0接口:因P0的特殊功能,需加锁存器。 D/A内 如:DAC800、AD7520、AD7521等。 有锁存器:最好与P0直接接口。 如:DAC0832、DAC1230等。

  12. 四、性能指标: 1、分辨率(Resolution)是指D/A转换器能分辨的最小输出模拟增量,取决于输入数字量的二进制位数。 2、建立时间(Establishing Time)是描述D/A转换速度的快慢。 3、转换精度(Conversion Accuracy)指满量程时DAC的实际模拟输出值和理论值的接近程度。 4、偏移量误差(Offset Error)偏移量误差是指输入数字量为零时,输出模拟量对零的偏移值。 5、线性度(Linearity)线性度是指DAC的实际转换特性曲线和理想直线之间的最大偏移差。

  13. 主要技术指标: 1、分辨率(Resolution): 对D/A转换器输入量变化敏感程度进行描述, 与输入数字量的位数有关。 • 若数字量的位数为n,则分辨率为2-n。 • 数字量位数越多,分辨率就越高。 • 应用时,应根据分辨率的需要选定转换器的位数。 注:BCD码输出的A/D转换器用位数表示分辨率。 2、建立时间(Establishing Time):(转换速度) 描述D/A转换速度的快慢。 • 输出形式为电流的转换器比电压的建立时间短。 • D/A转换速度远高于A/D转换。 3、转换精度(Conversion Accuracy): 指满量程时DAC的实际模拟输出值和理论值的接近程度。

  14. Rfb 输入 寄存器 DAC 寄存器 8位 DAC IOUT1 VO - + DI0~7 IOUT2 LE1 ILE 与 LE2 AGND CS 与 WR1 0:锁存; WR2 与 LE1(LE2)= XFER 1:直通。 DI0~7:转换数据输入(8位); CS:片选信号(输入); ILE:数据锁存允许信号(输入); XFER:数据传送控制信号(输入); WR1:第一写信号(输入),与ILE共同控制输入寄存器是数据直通方式还是 数据锁存方式; WR2:第2写信号(输入),与XFER共同控制DAC寄存器是数据直通方式还是 数据锁存方式; 9-1-2 D/A转换芯片DAC0832 一、内部结构:DAC 0832:8位双缓冲器结构的D/A转换器。 DAC 0832内部结构框图(请见P242图9.3)

  15. DAC的应用: lDAC用作单极性电压输出; lDAC用作双极性电压输出; lDAC用作控制放大器。

  16. 输入数字量B b7 b6 b5 b4 b3 b2 b1 b0 Vout(理想值) +VREF时 -VREF时 1 1 1 1 1 1 1 1 |VREF|-LSB -|VREF|+LSB ┆ ┆ ┆ 1 1 0 0 0 0 0 0 |VREF|/2 -|VREF|/2 ┆ ┆ ┆ 1 0 0 0 0 0 0 0 0 0 ┆ ┆ ┆ 0 1 1 1 1 1 1 1 -LSB LSB ┆ ┆ ┆ 0 0 1 1 1 1 1 1 -|VREF|/2-LSB |VREF|/2+LSB ┆ ┆ ┆ 0 0 0 0 0 0 0 0 -|VREF| |VREF| 双极性输出电压与输入数字量的关系

  17. 双极性DAC的接法 :

  18. 双极性DAC的另一种接法:

  19. 控制放大器用DAC0832:

  20. 1、直通方式: 输入寄存器和DAC寄存器共用一个地址,同时选通输出;WR1和WR2同时进行,并且不与CPU相接。 特点:转换速度快。 二、DAC 0832与单片机的接口: 有3种工作方法:直通方式、单缓冲方式和双缓冲方式。 MOV P1,A

  21. 100ms 举例: 例:D/A转换程序,用DAC0832输出0~+5V锯齿波, 电路为直通方式。设VREF=-5V,若DAC0832地址 为00FEH,脉冲周期要求为100ms。 DACS:MOV DPTR,#00FEH;0832I/O地址 MOV A,#00H ;开始输出0V DACL:MOVX @DPTR,A ;D/A转换 INC A ;升压 ACALL DELAY;延时100ms/256:决定锯齿波的周期 AJMP DACL ;连续输出 DELAY:…;延时子程序

  22. 2、单缓冲方式: 输入寄存器和DAC寄存器共用一个地址,同时选通输出,输入数据在控制信号作用下,直接进入DAC寄存器中;WR1和WR2同时进行,并且与CPU的WR相连,CPU对0832执行一次写操作,将数据直接写入DAC寄存器中。适用:只有一路模拟信号输出或几路模拟信号非同步输出。

  23. 80C51 单缓冲方式下的DAC0832

  24. 100ms 举例: 例:D/A转换程序,用DAC0832输出0~+5V三角波, 电路为单缓冲方式。设VREF=-5V,若DAC0832地 址为00FEH,脉冲周期要求为(100ms)。 ORG 2000H STAR:MOV DPTR,#00FEH;DAC0832地址 MOV A,#00H ;开始输出0V UP: MOVX @DPTR,A ;D/A转换 INC A ;产生上升段电压 JNZ UP;上升到A中为FFH(A≠0跳) DOWN:DEC A ;产生下降段电压 MOVX@DPTR,A JNZ DOWN;下降到A中为00H SJMP UP;重复 注:若想改变波形的周期(频率),只需在SJMP UP前插入延时程序即可。

  25. C51程序: #include<absacc.h> #include<reg51.h> #define DAC0832 XBYTE[0x00FE] #define uchar unsigned char #define unit unsigned int void stair(void) { uchar i; while(1) { for(i=0;i<=255;i=i++) /*形成锯齿波输出值,最大255*/ {DAC0832=i; /*D/A转换输出*/ } } }

  26. 3、双缓冲器方式:输入寄存器和DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。适用:同时输出几路模拟信号的场合,可构成多个0832同步输出电路。3、双缓冲器方式:输入寄存器和DAC寄存器分配有各自的地址,可分别选通用同时输出多路模拟信号。适用:同时输出几路模拟信号的场合,可构成多个0832同步输出电路。

  27. 举例: 例:用DAC0832实现驱动绘图仪,电路为双缓冲方式。 1#和2#DAC0832地址分别为00FEH和00FDH。 则绘图仪的驱动程序为: ORG 2000H MOV DPTR,#00FEH ;选中1#0832(的输入寄存器):A0=0 MOV A,#Datax MOVX @DPTR,A ;Datax写入1#0832输入寄存器 MOV DPTR,#00FDH ;选中2#0832(的输入寄存器):A1=0 MOV A,#Datay MOVX@DPTR,A ;Datay写入2#0832输入寄存器 MOV DPTR,#00FBH ;选中1#和2#0832的DAC寄存器: A2=0 MOVX@DPTR,A ;1#和2#输入寄存器的内容同时 传送到DAC寄存器中

  28. C51程序: #include<absacc.h> #include<reg51.h> #define INPUTR1 XBYTE[0x00FE] #define INPUTR2 XBYTE[0x00FD] #define DACR XBYTE[0x00FB] #define uchar unsigned char void dac2b(data1,data2) uchar data1,data2; { INPUTR1=data1; /*数据送到一片DAC0832*/ INPUTR2=data2; /*数据送到另一片DAC0832*/ DACR=0; /*启动两路D/A同时转换*/ }

  29. 三、DAC1208内部框图

  30. 80C51 80C51与DAC1208的接口

  31. 华工考研题: PC/XT的D/A接口使用DAC0832。其有关信号接线如图所示,其输出电压Vo和输入数字量DI7-DI0之间呈线性且如表所示。现要求Vo从零开始按图示波形周期变化(周期可自定)。试用汇编语言编写其控制部分程序。

  32. 9-2 A/D转换器接口及应用 A/D接口设计要点: 1.选择合适的系统采样速度; 2.减小A/D转换的孔径误差; 3.合理选用A/D转换器。

  33. A/D转换是把模拟量信号转化成与其大小成比例的数字信号。A/D转换是把模拟量信号转化成与其大小成比例的数字信号。 A/D转换电路主要分成: 1、双积分式(速度慢,精度高:用于速度要求不高的场合); 2、逐次逼近式(速度较快,精度较高:常用)。 常用芯片: MC14433(3 ½位) 双积分式 ICL7135(4 ½位) ICL7109(12位) ADC0808、ADC0809(8位) 逐次逼近式 ADC1210(12位) AD574(12位) 一、转换原理:

  34. 1、双积分型A/D转换器工作原理: 双积分型A/D转换是一种间接A/D 转换技术。首先将模拟电压转换成积分时 间,然后用数字脉冲计时方法转换成计数 脉冲数,最后将此代表模拟输入电压大小的脉冲数转换成 二进制或BCD码输出。因此,双积分型A/D转换器转换时 间较长,一般要大于40~50ms。

  35. 双积分ADC电路原理图

  36. 80C51 MC14433 MC14433与80C51直接连接的接口

  37. 80C51 ICL7109与80C51的接口电路图

  38. 2、逐次逼近A/D转换原理: N位寄存器用来存放N位二进制数码。 当VX≥VN,则保留DN-1=1,否则清0。 其余类推。

  39. 多路 转换 开关 IN0 IN1 IN7 A/D转换 A B C 二、ADC0809与单片机的接口: ADC 0809/0808为8路输入通道、8位逐次逼近式A/D转换器,可分时转换8路模拟信号。 1、结构: 一个8位逐次逼近式A/D转换器、8路模拟转换开关、3-8地址锁存译码器和三态输出数据锁存器(详见P249)。 2、引脚: (1)8路模拟量分时输入信号端: IN0~IN7; (2)8位数字量输出信号端: D0~D7; (3)通道选择地址信号输入端: ADDA、ADDB、ADDC; (4)基准参考电压为VR(+)和VR(-): 决定输入模拟量的范围。 典型值分别为+5V和0V。 (5)转换结束信号EOC: 0:正在进行转换; 1:一次转换完成。 (6)时钟信号输入端:CLK(其内部无时钟电路)。

  40. 转换数据的传送: ①定时传送方式; (不需接EOC脚) ②查询方式; (测试EOC脚的状态) ③中断方式。 (EOC脚接INT脚) 注: (1)不能用无条件方式; (2)2个ALE不能相接。 8 AD0~7 ALE INT WR P2.0 RD D0~7 ADDABC CLK EOC START ALE OE 3 1 ≥1 MCS-51 ADC0809 ≥1 3、ADC 0809与单片机连接: 涉及2个问题: (1)8路模拟信号通道选择; (2)A/D转换完成后转换数据的传送。 IN0~7 ADC0809的口地址:FEFFH; 8路模拟通道的地址:FEF8H~FEFFH。

  41. A/D转换程序:(延时等待方法) MOV DPTR,#0FEFFH ;ADC0809地址 MOV A,#00H ;选中IN0 MOVX @DPTR,A ;启动A/D转换 LCALL DELAY ;等待转换结束 MOVX A,@DPTR ;读转换结果 RET 不用接EOC脚,采用定时传送方式。

  42. 例:P252应用举例 设有一个8路模拟量输入的巡回检测系统,采样数据依次存放在外部RAM 0A0H~0A7H单元中,ADC0809的8个通道地址为0FEF8H~0FEFFH。 初始化程序:(中断方式) MOV R0,#0A0H ;数据存储区首地址 MOV R2,#08H ;8路计数器 SETB IT1 ;边沿触发方式 SETB EA ;中断允许 SETB EX1 ;允许外部中断1中断 MOV DPTR,#0FEF8H ;指向ADC0809首地址 LOOP:MOVX @DPTR,A ;启动A/D转换 HERE:SJMP HERE ;等待中断 DJNZ R2,LOOP ;巡回,未完继续 CLR EA ;结束,关中断 SJMP $ ;结束停止

  43. 中断服务程序: MOVX A,@DPTR ;读数 MOVX @R0,A ;存数 INC DPTR ;指向下一模拟通道 INC R0;指向数据存储区下一单元 RETI

  44. C51程序: #include<absacc.h> #include<reg51.h> #define uchar unsigned char #define IN0 XBYTE[0xFEF8] /*设置ADC0809的通道0地址*/ sbit ad_busy=P3^3; /*即EOC状态*/ void ad0809(uchar idata * x) /*采样结果放指针中的A/D采集函数*/ { uchar i; uchar xdata * ad_adr; ad_adr=&IN0; for(i=0;i<8;i++) /*处理8通道*/ { *ad_adr=0; /*启动转换*/ i=i; /*延时等待EOC变低*/ i=i; while(ad_busy==0); /*查询等待转换结束*/ x[i]=*ad_adr; /*存转换结果*/ ad_adr++; /*下一通道*/ } } void main(void) { static uchar idata ad[10]; ad0809(ad); /*采样ADC0809通道的值*/ }

  45. 80C51 三、AD574A与MCS-51单片机接口

  46. AD574A逻辑控制真值表

  47. 小 结 1、D/A转换原理、内部结构、信号输出形式 和主要技术指标。 2、DAC0832内部结构、管脚、3种工作方 法及其对应接口的特点、电路和应用程序。 3、A/D转换原理和常用ADC芯片。 4、ADC0809的内部结构及管脚、转换数据 传送方式及其对应接口图和程序。

  48. 应用举例: 1、用8位DAC芯片组成双极性电压输出电路,其参考电压为-5V~+5V,求对应以下偏移码的输出电压: ①0100 0000 ②1111 1110 解:VOUT1=-VREF. VOUT2=-(VREF+2VOUT1) ① VOUT1=-VREF.=-1.25V~+1.25V VOUT2=-(VREF+2VOUT1) =-2.5V~+2.5V ② VOUT1=-VREF.=-4.96~+4.96V VOUT2=-(VREF+2VOUT1) =-4.92V~+4.92V

  49. 2、某12位A/D转换器的输入电压为0~+5V,求出当输入模拟量为下列值时输出的数字量:2、某12位A/D转换器的输入电压为0~+5V,求出当输入模拟量为下列值时输出的数字量: ①1.25V ②3.75V 解: ① ②

  50. 3、某梯度炉温变化范围为0~1600℃,经温度变送器输出电压为1~5V,再经ADC0809转换,ADC0809的输入范围为0~5V,试计算当采样数值为9BH时,所对应的梯度炉温是多少?3、某梯度炉温变化范围为0~1600℃,经温度变送器输出电压为1~5V,再经ADC0809转换,ADC0809的输入范围为0~5V,试计算当采样数值为9BH时,所对应的梯度炉温是多少? 解:9BH=155D

More Related