第10章AD、DA转换器的应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第10章A/D、D/A转换器的应用本章学习目标MCS-51单片机与8位A/D、D/A转换器的接口技术MCS-51单片机与12位A/D转换器的串、并行接口技术MCS-51单片机与具有总线接口芯片PCF8591的使用方法10.1A/D转换器的应用10.1.18位逐次比较式A/D转换器0809的应用1.ADC0809的逻辑结构八路模拟量开关地址锁存与译码八路A/D转换器三态输出锁存器38IN0AIN7CBALESTCLKVR+VR-OEEOCGND0D7DCCVADC0809的主要特性ADC0809的主要特性(1)分别率为8位。(2)最大不可调误差小于。(3)单一+5V电源供电,模拟输入范围为0~5V。(4)具有锁存控制的8路模拟开关。(5)功耗为15mW。(6)可锁存三态输出,输出与TTL兼容。(7)不必进行零点和满度调整。(8)转换速度取决于芯片的时钟频率,时钟频率范围:10~1280kHz。2.ADC0809的引脚12345678910111213141918171615282726252423222120ADC08094INADDCEOC3DSTARTCLOCKOEGND)(REFVCCVALE)(REFVADDB3IN5IN6IN7IN0IN1IN2IN1D2D)LSB(0D4D5D6D)MSB(7DADDA地址与通道对应关系ADDCADDBADDA输入通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7(1)IN0~IN7:8路模拟通道的输入端。(2)D0~D7:8位数字量输出端。(3)VREF(+)、VREF(-):正、负参考电压输入端。一般情况下VREF(+)与VCC相连接,VREF(-)与GND相连接(4)CLOCK:时钟输入信号。(5)START:转换启动信号,高电平有效。(6)ADDA、ADDB、ADDC:模拟通道选择输入端。(7)ALE:地址锁存信号。(8)EOC:A/D转换结束信号,此信号常被用来作为中断请求信号。(9)OE:允许输出信号。3.ADC0809与8051接口电路++ALECLKP2.7P074LS373GA0A1A2A7WRRD1INTEOCADDCADDBADDA0D~7DSTARTALEOEDCKQQ74LS74)(REFV)(REFV7IN0IN八路模拟量输入89C51+5V74LS02GNDADC0809ORG0000HSJMPMAINORG0013HSJMPINT1ORG0030HMAIN:MOVR1,#30H;置数据区首址MOVR7,#08H;置通道数MOVDPTR,#7FFF8H;P2.7=0,指向IN0SETBIT1;开中断SETBEX1SETBEAREAD:MOVX@DPTR,A;启动A/DHERE:SJMPHERE;等待中断DJNZR7,READ;巡回未完继续…INT1:MOVXA,@DPTR;读取转换结果MOVX@R1,A;存放数据INCR1;指向下一存储单元INCDPTR;指向下一通道RETI;中断返回END(2)利用查询方式对8路模拟信号进行采集ORG0000HAJMPMAINORG0030HMAIN:MOVDPTR,#7FF8H;P2.7=0,且指向IN0MOVR1,#30H;置数据区首地址MOVR7,#08H;置通道数READ:MOVX@DPTR,A;启动A/DHERE:JBP3.3,HERE;查询转换完否MOVXA,@DPTR;读取转换结果MOVX@R1,A;存放数据INCR1;指向下一个存储单元INCDPTR;指向下一通道DJNZR7,READ;巡回未完继续END10.2D/A转换器的应用10.2.18位D/A转换器0832的应用1.DAC0832的逻辑结构与引脚功能8位输入锁存器8位DAC寄存器8位D/A转换器2LE1LE2WR70DI~DI765416151413ILE1912181781211931020VCCDGNDAGNDREFV2OUTI1OUTIfbRfbR1WRCSXFER&&&其主要特性参数如下:(1)分辨率:8位;(2)增益温度系数:0.02%;(3)单电源供电:电源范围为+5V~+15V;(4)转换速度:约1us;(5)数据输入可采用双缓冲、单缓冲或直通方式。各引脚功能如下:(1)DI0~DI7:数字量输入端;(2):片选信号输入端,低电平有效;(3)ILE:允许输入锁存信号,高电平有效;(4):输入锁存器写选通信号;12345678910111213141516DAC0832VrefWR1AGNDDI3DI2DI1VCCWR2XFERDI4DI5DI6DI7CSDI0ILE19201817IOUT1IOUT2RfbDGND(5):8位DAC寄存器写选通信号;(6):传送控制信号,低电平有效;(7)IOUT1:DAC电流输出1端。当8位输入数字量全为1时,此电流最大;当8位输入数字量全为0时,此电流为0;(8)IOUT2:DAC电流输出2端。IOUT1+IOUT2=常数;(9):反馈电阻;(10):参考电压输入端,可在-10V~+10V范围内选择;(11)AGND、DGND:模拟地和数字地。(12)VCC:电源,可在+5V~+15V间选择。2.D/A转换器的输出方式D/A转换器输出分为单极性和双极性两种输出形式。70DI~DI-+1OUTI2OUTIfbRDAC0832OUTVREFV+5V70DI~DI-+1OUTI2OUTIfbRDAC0832OUTV-+REFV+5V单极性输出双极性输出3.DAC0832与8051的接口电路MCS-51与DAC0832接口时,可以有三种连接方式:单缓冲方式、双缓冲方式和直通方式。70DI~DI-+1OUTI2OUTIfbRDAC0832REFV+5VCS1WR2WRXFERAGNDILEVCC89C51P0P2.7LM358WRVOUT+12V-12V单缓冲方式产生锯齿波的程序如下:DAADREQU7FFFH;DAC0832端口地址ORG1000HSTAR:MOVDPTR,#DAADR;选中DAC0832MOVA,#00HLP:MOVX@DPTR,A;向DAC0832输出数据INCASJMPLP10.2.2总线接口芯片PCF8591的应用1.串行总线概述总线进行数据传输时只需两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。总线是一个多主机总线,即一个总线可以有一个或多个主机,总线运行由主机控制。SDASCL单片机A单片机BSRAM或E2PROMA/D或D/A日历时钟其他I2C外围设备SDASDASDASDASDASDASCLSCLSCLSCLSCLSCL总线的基本结构CI22.总线数据传送的模拟(1)总线数据传送的时序要求为了保证数据传送的可靠性,标准的总线数据传送有着严格的时序要求,如总线上时钟信号的最小低电平周期为4.7us,最小的高电平周期为4us等。用单片机的普通I/O口模拟总线的数据传送时,单片机的时钟信号都能满足SDA、SCL上升沿、下降沿的时间要求,因此,在时序模拟时,最重要的是保证典型信号。I2C总线数据传送典型信号时序4.0μs4.7μs4.0μs4.7μs4.0μs4.0μsSCL/P1.0SDA/P1.1SCL/P1.0SDA/P1.1SDA/P1.1SCL/P1.0SCL/P1.0SDA/P1.1(a)启动(b)终止(c)发送0/发送应答位(d)发送1/发送非应答位(2)总线典型信号的模拟子程序启动信号子程序STASTA:SETBP1.0;总线启动子程序SETBP1.1NOPNOPCLRP1.1NOPNOPCLRP1.0RET终止信号子程序STOPSTOP:NOP;停止子程序CLRP1.1SETBP1.0NOPNOPSETBP1.1NOPNOPCLRP1.0RET发送应答位子程序MACKMACK:CLRP1.1;应答子程序SETBP1.0;准备发送NOPNOPCLRP1.0SETBP1.1RET发送非应答位子程序MNACKMNACK:CLRP1.0CLRP1.1SETBP1.1;非应答子程序SETBP1.0NOPNOPCLRP1.0CLRP1.1RET(3)总线模拟传送的通用子程序总线数据模拟传送的通用软件包除了上述基本的启动、停止、发送应答位和发送非应答位子程序外,还有应答位检查(CACK)、发送一个字节数据(WRBYT)、接收一个字节数据(RDBYT)、发送n个字节数据(WRNBYT)、接收n个字节数据(RDNBYT)子程序。①应答位检查子程序CACK在应答位检查子程序(CACK)中,设置了标志位,CACK中用F0作标志位,当检查到正常应答位后,F0=0,否则F0=1。CACK:SETBP1.1;设P1.1为输入SETBP1.0;准备读CLRF0MOVA,P1;读P1.1JNBACC.1,GEND;判断有无应答SETBF0;P1.1为“1”,无应答,F0=1GEND:CLRP1.0;P1.1为“0”,有应答,F0=0NOPRET②发送一个字节数据(WRBYT)子程序占用资源:R0,C。WRBYT:MOVR0,#08HCLRP1.0CLRCWLP:RLCAJCWR1AJMPWR2WLP1:DJNZR0,WLPRETWR1:SETBP1.1SETBP1.0NOPNOPCLRP1.0CLRP1.1AJMPWLP1WR2:CLRP1.1SETBP1.0NOPNOPCLRP1.0AJMPWLP1③接收一个字节数据(RDBYT)子程序RDBYT:MOVR0,#08HRLP:SETBP1.1SETBP1.0MOVA,P1JNBACC.1,RD0AJMPRD1RLP1:DJNZR0,RLPRETRD0:CLRCMOVA,R2RLCAMOVR2,ACLRP1.0AJMPRLP1RD1:SETBMOVA,R2RLCAMOVR2,ACLRP1.0AJMPRLP1④发送n个字节数据(WRNBYT)子程序WRNBYT:PUSHPSWMOVPSW,#18HMOVR3,NUMBYTLCALLSTAMOVA,SLALCALLWRBYTLCALLCACKJBF0,WRNBYTMOVR1,#MTDWRDA:MOVA,@R1LCALLWRBYTLCALLCACKLCALLWRBYTLCALLCACKJBF0,WRNBYTINCR1DJNZR3,WRDALCALLSTOPPOPPSWRET⑤读取n个字节数据(RDNBYT)子程序RDNBYT:PUSHPSWMOVPSW,#18MOVR3,NUMBYTLCALLSTAMOVA,SLALCALLWRBYTJBF0,RDNBYTRDN:MOVR1,#MRDRDN1:LCALLRDBYMOV@R1,ADJNZR3,ACKLCALLMNACKLCALLSTOPPOPPSWRETACK:LCALLMACKINCR1SJMPRDN13.PCF8591的主要特性与引脚功能(1)AIN0~AIN3:模拟输入端;(2)VSS:电源地线;(3)A0~A2:地址输入端;(4)SDA:总线数据线;(5)SCL:总线的时钟输入端;(6)OSC:外部时钟输入端/内部时钟输出端;(7)EXT:时钟选择端。为1时,用外部时钟;为0时,用内部时钟;(8)AGND:模拟信号地;(9)VREF:基准电源输入端;(10)AOUT:D/A转换模拟12345678910111213141516PCF8591VSSAIN1AIN2AIN3A0A1VCCVREFAGNDEXTOSCSCL

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功