1、单片机原理及接口技术,第10章 单片机AD及DA转换接口,本章学习要求:,1.掌握AD转换概念及主要技术指标含义; 2.掌握单片机与AD转换器的接口技术; 3.掌握DA转换概念及主要技术指标含义; 4.掌握单片机与DA转换器的接口技术。,第十章 单片机AD及DA转换接口,传感器,放大器,运算电路,显示,第十章 单片机AD及DA转换接口,数字化测控系统,10.1 单片机的ADC接口设计,10.1 单片机的ADC接口设计,采样利用采样脉冲序列,从信号中抽取一系列离散值,使之成为采样信号x(nTs)的过程,编码将经过量化的值变为二进制数字的过程。,量化把采样信号经过舍入变为只有有限个有效数字的数,这
2、一过程称为量化,10.1.1 AD转换过程,10.1 单片机的ADC接口设计,10.1 单片机的ADC接口设计,量化误差,把采样信号x(nTs) 经过量化变为只有有限个有效数字的数,这一过程所产生的误差称为量化误差。,10.1 单片机的ADC接口设计,(3) 模拟信号的输入范围:如,5V, +/-5V,10V,+/-10V等。,(1) 分辨率:用输出二进制数码的位数表示。位数越多,量化误差越小,分辨力越高。常用有8位、10位、12位、16位等。,(2) 转换速度:指完成一次转换所用的时间,如:1ms(1KHz); 10us(100kHz),10.1.2 AD转换器的技术指标,10.1 单片机的
3、ADC接口设计,8位、8通道ADC 引脚定义 AIN7-AIN0:输入8路模拟信号; A/B/C:地址信号,选择输入通路; ALE:地址锁存信号 D7D0:输出8位数字信号; OE:输出允许控制端, 为高D7-0输出结果,为低D7-0为高阻态; REF+,REF-:基准电压;一般将REF+接VCC,REF- 接GND START:启动转换信号,高脉冲启动; EOC:转换结束信号,启动转换变为低电平,转换结束变为高电平; CLK:时钟输入,1MHz以下.,10.1.3 A/D转换芯片ADC0809,一 认识ADC0809,10.1 单片机的ADC接口设计,启动信号START与转换结束信号EOC的
4、时序关系? 单片机如何判断是否转换完毕?,接地,接电源,接时钟小于1MHz,ADC0809电路结构,10.1 单片机的ADC接口设计,二 ADC0809与MCS-51单片机的电路连接,按照上图电路连接,ADC0809通道1口地址是多少?,C001H,10.1 单片机的ADC接口设计,启动转换,YC4,转换时间,MOV DPTR,#0C000H MOVX DPTR,A,/ALE,10.1 单片机的ADC接口设计,三 软件编写,三个步骤 第一步:启动A/D转换 第二步:等待A/D转换结束 第三步:读取A/D转换结果,三种方法 延时法 查询法 中断处理法,10.1 单片机的ADC接口设计,延时法:
5、ADC: MOV A, #00H ;MOV DPTR, #0C000H ;选择通道0口地址MOVX DPTR, A ;启动通道0,开始转换MOV R7, #50DJNZ R7, $ ;软件延时MOVX A, DPTR ;读取转换结果RET,10.1 单片机的ADC接口设计,查询法: ADC1: MOV A, #00H ;MOV DPTR, #0E000H ;选择通道0口地址MOVX DPTR, A ;启动通道0,开始转换JB P1.0, $ ;等待出现高电平JNB P1.0, $ ;等待下跳沿MOVX A, DPTR ;读取转换结果RET,将转换结果送显示 拆字子程序 入口条件:待拆字在累加器
6、A中 出口条件:A中高位存于31H单元,A中低位存于30H单元,CHAIZI: MOV R0,#30H ;设指针 MOV R2,A ;暂存 ANL A,#0FH ;高半字节清0 MOV R0,A ;保存数据低位 INC R0 MOV A,R2 SWAP A ; ANL A,#0FH MOV R0,A ;保存数据高位 RET,10.1 单片机的ADC接口设计,10.1 单片机的ADC接口设计,ORG 0000HLJMP MAIN ORG 0030H MAIN:MOV SP, #6FHLCALL INIT8155 ;8155初始化MOV 30H, # 0FFH ;初始化显存,显示000008.MO
7、V 31H, # 00H MOV 32H, # 00HMOV 33H, # 00HMOV 34H, # 00HMOV 35H, # 00H MAIN2:MOV R2, #50 MAIN1:LCALL DISP ;显示DJNZ R2, MAIN1LCALL ADC ;启动一次AD转换LCALL CHAIZI ;将转换结果拆分到31H和30H单元LJMP MAIN2 ;循环显示和AD转换,10.2 单片机的DAC接口设计,10.2 单片机的DAC接口设计,10.2 单片机的DAC接口设计,10.2.3 D/A转换芯片DAC0832,8位、电流输出式DAC 引脚定义 AGND:模拟地; DGNG:数
8、字地; VCC:电源线,接+5V+15V; DI0-DI7:输入8位数据线; Iout1:电流输出线; Iout2:电流输出线; Rfb:反馈信号线; VREF:基准电压,外接+10V-10V,定义满量程输出电压大小及极性; /CS /WR1 /WR2 /XFER ILE,10.2 单片机的DAC接口设计,电流输出变换成电压输出,Rfb脚与Iout1间接有一个电阻; 运算放大器LM358此处构成什么电路?,Vref为正,Iout1输出电流,Vout为负,满量程输出为-Vref; Vref为负,Iout1吸入电流,Vout为正,满量程输出为-Vref; 上图中Vref接 -5V,因此: D7:0
9、输入00,Vout=0V D7:0输入FF,Vout=5V D7:0输入01,Vout=0.0196V,反向比例运算电路,10.2 单片机的DAC接口设计,/CS /WR1 /WR2 /XFER ILE,DAC0832内部电路结构,10.2 单片机的DAC接口设计,DAC0832的直通工作方式,ILE为高,/CS和WR1为低,使得第一个锁存器直通; /Xfer和/WR2为低,使得第二个锁存器直通;,MOV P1, #00H ;Vout=? MOV P1, #01H ;Vout=? MOV P1, #02H ;Vout=? MOV P1, #7FH ;Vout=? MOV P1, #FFH ;V
10、out=?,10.2 单片机的DAC接口设计,DAC0832的单缓冲工作方式,/Xfer和/WR2为低,使得第二个锁存器直通; 第一个锁存器由/CS和/WR1控制 DAC0832的端口地址?,MOV DPTR, #B000H MOV A, #8AH MOVX DPTR, A ; Vout=?, #8AH锁存在哪里?,10.2 单片机的DAC接口设计,例8.1 利用DAC0832单缓冲工作方式,电路连接如前页所示,试编写程序,使得Vout输出周期为510ms的三角波.,DAC: MOV DPTR, #0B000HMOV A, #00H DAC1: MOVX DPTR, A LCALL DELY_
11、1msINC ACJNE A, #00H, DAC1 DAC2: DEC AMOVX DPTR, A LCALL DELY_1ms CJNE A, #00H, DAC2SJMP DAC1,DELY_1ms :MOV R7, #02H DL1: MOV R6, #0FFHDJNZ R6, $DJNZ R7, DL1RET,10.2 单片机的DAC接口设计,DAC0832的双缓冲工作方式 一般用于多路模拟量需要同步输出的场合,3.分析、整理、改写10.1节中关于ADC0809的程序,实现对ADC0809的通道1进行连续转换,并且将转换结果以十六进制形式实时显示在低2位数码管上。(实验内容),作业,1.一个8位逐次逼近式A/D转换器,满量程输出电压为5V,若某次转换结果为6FH,试计算模拟输入电压为多少?,2.如果要求一个D/A转换器能分辨5mV的电压,设其满量程电压为10V,试问其输入端数字量至少要多少位?,4.使用DAC0832单缓冲工作方式,产生周期为510S的三角波,并将输出电压连接到ADC0809的输入通道1,然后将ADC0809通道1的转换结果以十六进制形式实时显示到低2位数码管上,编写实现上述功能的实验程序 。(实验内容),