AD转换与DA转换实训-课件_第1页
AD转换与DA转换实训-课件_第2页
AD转换与DA转换实训-课件_第3页
AD转换与DA转换实训-课件_第4页
AD转换与DA转换实训-课件_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第11章 A/D、D/A转换器的应用11.1 8位A/D转换器ADC0809的应用11.2 12位A/D转换器AD574A的应用11.3 串行A/D转换器MAX1247的应用11.4 8位D/A转换器DAC0832的应用11.5 串行D/A MAX525的应用11.6 8位A/D、D/A转换器PCF8591的应用1. 实训目的掌握A/D转换器ADC0809的原理及基本性能指标掌握ADC0809与单片机的接口方法及编程方法2. 功能设计设计由单片机与A/D转换器ADC0809构成的数据采集系统,使其依次采集8路模拟量,经0809进行A/D转换后保存在内部RAM的60H67H单元。采用中断方式进行

2、数据处理。11.1 8位A/D转换器ADC0809的应用3. 背景知识在单片机实时控制和智能仪表等应用系统中,被控或被测对象往往是一些连续变化的模拟量,如温度、流量、速度等物理量。这些模拟量必须转换为数字量才能输入计算机进行处理。ADC0809是专用A/D(模/数)集成芯片,在单片机应用系统中作为输入通道。一个简单的单片机测控系统框如图11-1所示。 图11-1 单片机测控系统框图A/D转换器形式很多,按A/D转换器输入模拟量的极性分类,可分为单极型和双极型两种;按A/D转换器的数字量输出方式分类,可分为并行方式、串行方式及串/并行方式;按A/D转换器的转换原理分类,可分为积分型、逐次逼近型和

3、并行转换型。(1) 关于ADC0809ADC0809是一个典型的逐次逼近型8位A/D转换器。它由8路模拟开关、8位A/D转换器、三态输出锁存器及地址锁存译码器等组成。它允许8路模拟量分时输入,转化后的数字量输出是三态的(总线型输出),可以直接与单片机数据总线相连接。ADC0809采用+5V电源供电,外接工作时钟。当典型工作时钟为500kHz时,转换时间约为128s。(2) ADC0809的引脚说明ADC0809引脚如图11-2所示。图11-2 ADC0809引脚图IN0IN78路模拟通道输入端。D0D78位数字量输出端。VREF(+)、VREF()正、负参考电压输入端。CLOCK时钟输入端,时

4、钟最高允许频率为640kHz。START转换启动信号,高电平有效。ADDA、ADDB、ADDC模拟通道选择端。通道与地址对应关系见表11-1所示。(见书192页)ALE 地址锁存信号。高电平时,将三位地址信号送入地址锁存器,经译码选择相应的模拟输入通道。使用时该信号可以和START信号连在一起,以便同时锁存通道地址和启动A/D转换。EOCA/D转换结束信号,此信号常被用来作为中断请求信号。OE允许输出信号。当OE端为电平上升沿时,输出锁存器将转换结果送到数据线,供单片机读取。VCC电源。GND电源地。4. 硬件原理与资源分配硬件原理图如图11-3所示。图11-3 ADC0809与单片机的连接(

5、1) 时钟信号由于0809无片选端,因此电路增加了或非门74LS02及译码器74LS138,以便对0809进行读/写控制。单片机采用6MHz的晶振,ALE输出6MHz/s时钟信号,经74LS74触发器2分频,得到500kHz的时钟信号,与0809的时钟端CLK相连。(2) 通道选择三位通道选择端ADDA、ADDB、ADDC与数据线P0口的低三位P0.0、P0.1、P0.2相连,用数据线进行通道选择,由P0.0、P0.1、P0.2三位决定选择哪一通道。也可以用地址线选择通道。(3) 0809的启动0809的启动端START、地址锁存端ALE均为高电平有效。将START与ALE端连在一起,与74L

6、S02的输出端相连。或非门74LS02的两个输入端WR和Y0均为低电平时,其输出为高电平。当译码器74LS138的3个输入端P2.7、P2.6和P2.5为0时,Y0为低电平,执行外部I/O口写操作时,WR为低电平。执行下列操作将启动0通道转换: MOVA,#00H;数据线低3位为0,选择0通道MOVDPTR,#1FFFH;P2.7、P2.6、P2.5均为0,Y0为0MOVXDPTR,A;执行外部I/O口写操作时WR为低电平(4) 转换数据的读取当转换结束时,EOC端输出高电平。可用查询或中断的方法进行数据读取处理。输出允许OE端为高电平,8位转换数据D0D7输出到数据线上。只有译码器输出Y0和

7、RD同时为低电平时,OE端才为高电平。执行外部I/O口读操作RD为低电平。执行下列操作将读取转换数据: MOVDPTR,#1FFFH;P2.7、P2.6、P2.5均为0,Y0为0MOVXA,DPTR;执行外部I/O口读操作时RD为低电平(5) 转换结束标志EOC转换结束标志EOC端经反向器与单片机的INT0相连,即转换一旦结束,外部中断0则申请中断。资源分配:R0: 数据指针R2: 通道计数器内部RAM的40H以后的若干单元数据堆栈区内部RAM的60H67H单元: 存放8个转换数据5. 参考程序ORG0000H;CPU起始地址AJMPMAIN;跳转到主程序ORG0003H;外部中断0入口地址A

8、JMPJINT0;跳转到外部中断0处理程序MAIN: NOP;主程序段MOVSP,#40H;设定堆栈MOVR0,#60H;设置数据存储区首地址MOVR2,#00H;选通道0MOVA,R2MOVDPTR,#1FFFH;初始化ADC0809SETBIT0;设定外部中断0为边沿触发SETBEX0;EX0=1(开放外部中断0)SETBEA;开总中断,EA=1(开放总中断)LOOP1:MOVX DPTR,A;启动0809 MOVX DPTR,A;再启动0809LOOP2: RETI;中断返回END6. 总结与提高本节所介绍的程序采用中断方式读取A/D转换值,读者还可以用查询法(查询P3.2)或者用软件延

9、时法(延时128s以上)来编制采集程序。在实际单片机应用系统中,对于模拟信号变化较快的场合需要增加采样保持器。对于一般传感器输出的模拟信号还要经过调理电路处理成标准信号,才能输入A/D转换器。1. 实训目的掌握12位A/D转换器AD574A的工作原理及基本性能指标掌握A/D转换器AD574A与单片机的接口技术及编程方法11.2 12位A/D转换器AD574A的应用2. 功能设计设计单片机与12位A/D转换器AD574组成的数据采集系统,编写AD574的数据采集程序。A/D转换后的12位数字量存入内部RAM区60H和61H单元,61H单元存放低4位。3. 背景知识AD574A是美国AD公司研制的

10、12位逐次逼近型A/D转换器,适合在高精度和快速采样系统中应用。(1) 主要特点 内部集成有转换时钟、参考电压源和三态输出锁存器。 转换时间为25s。 输入模拟电压可以为单极性也可以为双极性,单极性输入时电压为0+10V或0+20V;双极性输入时电压为-5+5V或-10+10V。 转换位数可以设定为8位,也可以设定为12位。(2) AD574A的引脚AD574A的引脚如图11-4所示。图11-4 AD574A的引脚图 模拟量输入10VIN10V量程的模拟电压输入线。单极性时为010V,双极性时为-5+5V。20VIN20V量程的模拟电压输入线。单极性时为020V,双极性时为-10+10V。AC

11、模拟电压公共地线。 数字量输出DB11DB012位数字量输出线,DB11为最高位。DC数字量接地线,常和AC相连后接地。 控制线CS片选线,低电平有效。CE片选使能线,高电平有效。和CS共同用于片选控制。当CS为0,CE为1时,选中本片工作;否则本片处于禁止状态。R/C读出/转换控制输入线。若R/C为0,则本片启动工作;若使R/C为1,则本片处于允许读出数字量状态。A0地址线。用来启动A/D转换。12/8决定进行12位转换还是8位A/D转换。STS 转换状态输出线。STS为高电平,表示AD574A正处于A/D转换状态,若STS变为低电平,则A/D转换完成。因此,在实用中STS线可供CPU查询,

12、也可作为MCS-51的外中断请求输入线。控制功能见表11-2。(见书195页) 测试/调零线REF IN内部解码网络所需参考电压输入线。REF OUT内部参考电压输出线。通常,REF IN和REF OUT之间跨接一个l00电位器,用来调整各量程的增益。BIP OFF补偿调整线,用于在模拟输入为零时把ADC输出的数字量调整为零。 电源线VL接+5VVCC接+12+15VVEE接-1-1V4. 硬件原理与资源分配单片机与AD574A的接线图如图11-5所示。图11-5 AD574与单片机的连接(1) AD574的口地址见书196页。(2) 模拟电压输入极性的设定利用BIP、RIN和ROUT 3端与

13、外接电阻的不同连接方法,可以把AD574A设定为单极性输入或双极性输入。图11-5为双极性输入。如果输入电压在-5+5V之间,模拟量应从10VIN端输入;如果输入电压在-10+10V之间,模拟量应从20VIN端输入。单极性输入时: 输出数字量D=212VIN/VFS,其中为输入电压,VFS为满刻度电压分辨率1LSB=VFS/212,其中VFS=10V,1LSB2.4mV 双极性输入时: 输出数字量D=211(1+2VIN/VFS)=2048(1+2VIN/VFS)分辨率1LSB=VFS/212,其中VFS=10V,1LSB2.4mV(3) 零点调整: R1用于零点调整 单极性输入时,使VIN=

14、LSB/21.2mV。调整R1使输出数字量在000H001H间跳动。 双极性输入时,使VIN= -VFS /2+LSB/2- 4.99mV。调整R1使输出数字量在000H001H间跳动。(4) 增益调整: R2用于增益调整 单极性输入时,调整R2,使VIN= +VFS 1LSB9.9976V,输出数字量FFFH;VIN= +VFS 2LSB9.9952V,输出数字量FFEH。 双极性输入时,调整R2,使VIN= +VFS /21LSB4.9976V,输出数字量FFFH;VIN= +VFS /22LSB4.9952V,输出数字量FFEH。资源分配:R0: 数据指针R2: 通道计数器内部RAM的4

15、0H以后的若干单元: 数据堆栈区内部RAM的60H61H单元: 存放1个12位转换数据5. 参考程序ORG0000HAJMPMAIN;跳转到主程序ORG0003H;外部中断0入口地址AJMPJINT0;跳转到外部中断0处理程序MAIN: NOP;主程序段MOVSP,#40H;设定堆栈MOVR1,#60H;数据存放首地址SETBIT0;设定外部中断0为边沿触发MOVDPTR,#1FF0H;送口地址MOVX DPTR,A;启动12位A/D转换SETBEX0;开放外部中断0SETBEA;开总中断LOOP: AJMPLOOP;等待中断JINT0: NOP;外部中断0处理程序CLREX0;关外部中断0M

16、OVX A,DPTR;读高8位数据MOVR1,A;存储高8位INCDPTR;选定低4位口INCR1;数据存储单元加1MOVX A,DPTR;读低4位数据ANLA,#0FH;屏蔽高4位MOVR1,A;存储低4位RETI;中断返回END6. 总结与提高本节为12位A/D转换的实训,使用了中断处理方法,读者也可以尝试使用查询方式进行数据采集。1. 实训目的掌握串行A/D转换器MAX1247的工作原理及使用方法掌握串行A/D转换器MAX1247与单片机的接口技术及编程方法2. 功能设计设计由单片机与12位串行A/D转换器MAX1247构成的数据采集系统,并编写数据采集程序。11.3 串行A/D转换器M

17、AX1247的应用3. 背景知识MAX1247是MAXIM公司研制的12位4通道串行A/D转换器,适合在高精度和高速度的采样系统中应用。(1) 主要特点: 4通道(单极性)12位串行A/D转换,也可接2通道(双极性)。 单一电源供电(+5V)。 低功耗。 SPI/QSPI接口(串行接口)。(2) MAX1247引脚MAX1247引脚如图11-6所示。图11-6 MAX1247引脚图各管脚功能如下:VCC电源(+5V)。CH0、CH1、CH2、CH34通道模拟信号输入端。COM模拟输入参考基准端。VREF基准电压输入。CS片选线,低电平有效。SHDN低电平时,器件将关闭并进入掉电节能状态,否则为

18、正常状态。REFADJ缓冲放大器输入端,接VCC时内部缓冲放大器无效。AGND数字地。DGND模拟地。DOUT串行数据输出端。SSTRB 转换结束。DIN串行数据输入端(控制字),时钟上升沿有效。SCLK串行时钟输入。(3) MAX1247工作方式MAX1247可通过设定控制字的PD1、PD0位进行工作模式的选择。 外时钟模式使用外部时钟不仅能将串行数据移进、移出,还可控制模数转换的速度。 内时钟模式使用内部时钟转换模式,转换时钟取自内部的时钟发生器,这是一种转换时钟与串行数据移位锁定时钟相互分离的模式。 软掉电模式软掉电模式在SHDN为高电平或悬空时,通过设置控制字的PD1位和PD0位,可选

19、择满掉电和快速掉电的软掉电模式,以便在两次转换的闲置时段使器件进入低耗能的掉电状态。在软掉电模式中,串行移位寄存器保留了掉电前的操作数,但不进行模数转换。 硬掉电模式将SHDN置于低电平,可以在任何时刻完全关闭转换,并以“0”替换控制字的PD1位和PD0位,而且不受此两位的控制。(4) MAX1247的控制字START: 启动位,为“1”有效。SEL2、SEL1、SEL0: 通道选择端,见表11-3。(见书199页)UNI/BIF: 极性选择位,为“1”选择单极性,为“0”选择双极性。SGL/DIF: 单端/差动方式选择端。PD1、PD0: 模式选择端。见表11-4。(见书200页)(5) M

20、AX1247数据操作时序MAX1247的数据操作时序如图11-7所示。图11-7 MAX1247数据操作时序4. 硬件原理与资源分配MAX1247与单片机的连接图如图11-8所示。P1.0为串行输出控制字,P1.1为输出串行时钟,P1.2为片选线,P1.3为A/D转换数字量由P1.3串行输入。对MAX1247操作时,单片机首先送出8位控制字,然后读取16位串行A/D数据,其中最后的4位数据为无效位。因此对MAX1247的一次操作需要24个串行时钟SCLK。图11-8 MAX1247与单片机的连接5. 参考程序DINEQU P1.0;定义P1.0为DINSCLKEQU P1.1;定义P1.1为S

21、CLKCSEQU P1.3;定义P1.2为CSDOUTEQU P1.4;定义P1.3为DOUTORG0000HAJMPMAIN;跳转到主程序MAIN: NOP;主程序段MOVR1,#60H;0通道转换的数据存储于60H、61HMOVA,#9FH;选通0通道、单极性、外时钟LCALL AD10;调用A/D控制字写入子程序LCALL AD11;A/D转换子程序MOVR1,62H;1通道转换的数据存储于62H、63HMOVA,#0DFH;选通1通道、单极性、外时钟LCALL AD10;调用A/D控制字写入子程序LCALL AD11;A/D转换子程序MOVR1,64H;2通道转换的数据存储于64H、6

22、5HMOVA,#0AFH;选通2通道、单极性、外时钟LCALL AD10;调用A/D控制字写入子程序LCALL AD11;A/D转换子程序MOVR1,66H;3通道转换的数据存储于66H、67HMOVA,#0EFH;选通3通道、单极性、外时钟LCALL AD10;调用A/D控制字写入子程序LCALL AD11;A/D转换子程序ENDAD10: CLRDIN;MAX1247控制字写CLRSCLKCLRCSMOVR0,#08HL1:NOPNOPCLRCCLRSCLKRLCAMOVDIN,CNOPSETBSCLKDJNZR0,L1NOPCLRSCLKSETBCS CLRDINNOPNOPNOPNOP

23、RETAD11:NOP;A/D转换子程序CLRCCLRCSNOPNOP CLRSCLKMOVR0,#08H;高8位数据LL3: NOPSETBSCLKNOPNOPMOVC,DOUTRLCANOPCLRSCLKDJNZR0,LL3MOVR1,AMOVR0,#08H;低4位数据LL2:CLRCNOPNOPSETBSCLKNOPNOPMOVC,DOUTRLCANOPCLRSCLKDJNZR0,LL2INCR1ANLA,#0F0HSWAPAMOVR1,ASETBCSRET6. 总结与提高A/D转换器广泛应用于便携式设备、医用仪器、电池供电系统、远程数据采集和过程控制等各个领域。应根据实际任务要求来确定

24、选用8位、12位或更高位,以及并行芯片或串行芯片A/D转换器。1. 实训目的掌握8位D/A转换器DAC0832的工作原理及使用方法掌握8位D/A转换器DAC0832与单片机的接口技术及编程方法2. 功能设计设计8位D/A转换器DAC0832与单片机的硬件电路连接,并编写DAC0832的数据输出程序。11.4 8位D/A转换器DAC0832的应用3. 背景知识由图11-1所示单片机测控系统可知,单片机与被控对象之间要经过D/A(数/模)转换环节,该环节把单片机输出的数字量转换成模拟量,从而对被控对象进行控制。D/A转换环节在单片机应用系统中作为输出信号。DAC0832是8位电流输出型D/A转换芯

25、片。(1) DAC0832主要技术指标分辨率为8位,增益温度系数为0.02,单电源供电,电源范围为+5+15V,转换速度约1s。(2) DAC0832的外部引脚DAC0832的内部结构及引脚图如图11-9所示。图11-9 DAC0832内部结构及引脚图(3) DAC0832工作方式通过控制端CS、ILE、WR1、WR2、XFER的不同接线方式,可以控制DAC0832工作在不同方式下。 单缓冲方式: 两个输入寄存器中有一个处于直通方式,另一个处于受控锁存方式。适用于只有一路模拟信号输出或虽有几路模拟信号但不需要同步输出的场合。 双缓冲方式: 两个锁存器都接成受控方式ILE接高电平。(4) DAC

26、0832的输出极性图11-10(a)为DAC0832的单极性输出电路。其输出为: 图11-10(b)为DAC0832的双极性输出电路。其输出为: 式中B为输入数字量,其范围为0255,VREF为参考电压。图11-10 DAC0832电压输出电路4. 硬件原理如图11-11所示电路是由单片机与D/A转换器构造一个波形发生器。DAC0832为单缓冲方式和双极性输出,LM358为双运算放大器。P2.7、P2.6、P2.5三位均为0,选通DAC0832,选通地址为译码输出1FFFH。图11-11 DAC0832构造的波形发生器5. 参考程序(1) 0832输出矩形波单片机连续255次输出数字量0,然后

27、连续255次输出数字量FFH。如此重复,0832即可输出连续矩形波。ORG0000HMOVDPTR,#1FFFH;指向0832DD0: MOV A,#0MOVR2,#255DD1: MOVX DPTR,A ;向D/A送0DJNZR2,DD1 ;循环255次,形成矩形波的低电平MOV A,#255;将FFH送到AMOVR2,#255DD2: MOVX DPTR,A ;向D/A送255,D/A输出为高DJNZR2,DD2 ;循环255次,形成矩形波的高电平LJMPDD0;重复上述过程,形成多个矩形波END(2) 0832输出梯形波单片机从输出数字量0开始,逐次加1直到255,保持255次,然后从输

28、出255逐次减1直至为0。如此重复,0832即可输出连续梯形波。ORG0000H;CPU起始地址MOVDPTR,#1FFFHDD0: MOV A,#00HDD1: MOVX DPTR,A;D/A输出INCACJNEA,#255,DD1 ;循环255次,形成梯形波的上升沿MOVA,#0FFH;将FFH送AMOVR2,#0FFHDD2: MOVX DPTR,A ;向D/A送255,D/A输出为高DJNZR2,DD2 ;循环255次,形成梯形波的上底DD3: MOVX DPTR,A ;D/A输出DECACJNEA,#0,DD3 ;循环255次,形成梯形波的下降沿LJMPDD1 ;重复上述过程,形成多

29、个梯形波END(3) 0832输出三角波单片机从输出数字量0开始,逐次加1直到255,然后从输出255逐次减1直至为0。如此重复,0832即可输出连续三角波。ORG0000HMOVDPTR,#1FFFHDD0: MOV A,#00HDD1: MOVX DPTR,A ;D/A输出INCACJNEA,#255,DD1 ;循环256次,形成三角波的上升沿DD2: MOVX DPTR,A ;D/A输出DECACJNEA,#0,DD2 ;循环256次,形成三角波的下降沿LJMPDD0 ;重复上述过程,形成多个三角波END6. 总结与提高上述三段程序通过DAC0832输出端输出的波形为直线型的波形,没有考

30、虑波形频率。改变程序即可使0832输出满足频率要求的各种曲线。1. 实训目的掌握串行D/A MAX525的工作原理及使用方法掌握12位串行D/A转换器MAX525与单片机的接口技术及编程方法2. 功能设计设计由12位D/A转换器MAX525与单片机构成的模拟输出电路,并编写MAX525的数据输出程序。11.5 串行D/A MAX525的应用3. 背景知识MAX525是MAXIM公司生产的4通道12位串行D/A转换器。(1) 主要特点 4通道12位串行D/A转换 单电源供电(+5V) 3线串行,可程控数字输出 SPI/QSPI传输工作模式(2) MAX525的引脚MAX525的引脚如图11-12

31、所示。图11-12 MAX525引脚图(3) MAX525工作模式MAX525的数据形式为16位,其中最高位和次高位为地址位,第14位和第13位为控制位,后12位为数字位。如图11-13所示。MAX525的工作模式由4位地址控制位和12位数据位确定,见表11-5。(见书208页)图11-13 MAX525数据格式(4) MAX525工作时序如图11-14所示。图11-14 MAX525时序图4. 硬件原理与资源分配如图11-15所示为单片机8051与MAX525芯片的连接图。LM385是精密的基准电源(+2.5V),MAX525是串行D/A转换芯片,接口方式为SPI。本电路中使用单片机的P1口

32、模拟SPI的串行接口与MAX525相连接。其中P1.0为串行数据输入,P1.1为MAX525的时钟输入,P1.2为MAX525的片选,如图11-15所示。图11-15 MAX525与单片机的连接图5. 参考程序DIN EQU P1.0;定义P1.0为DIN,串行数据输入端SCLK EQU P1.1;定义P1.1为SCLK,串行时钟输入端CS EQU P1.2;定义P1.2为CS,片选端DOUTEQU P1.3;定义P1.3为DOUT,串行数据输出,用于级联ORG0000HAJMPMAIN;跳转到主程序MAIN:NOP;主程序段SETBCSCLRSCLKCLRCS;选中MAX525MOVR0,#

33、16;发16位数,前4位为控制字MOVA,#80H;控制字,所有输出寄存器从输入寄存器加载CLRC L1: RLCAMOV DIN,CSETB SCLKNOPCLRSCLKDJNZR0,L1;MAX525初始化NOP;开始4路D/A转换MOVR4,#60H;A通道待转换的数据存储于60H、61H MOVR3,#30H;选通A转换通道LCALL DA10;调用D/A转换子程序MOVR4,62H;B通道待转换的数据存储于62H、63HMOVR3,#70H;选通B转换通道LCALL DA10;调用D/A转换子程序MOVR4,#64H;C通道待转换的数据存储于64H、65HMOVR3,#0B0H;选通

34、C转换通道LCALL DA10;调用D/A转换子程序MOVR4,#66H;D通道待转换的数据存储于66H、67HMOVR3,#0F0H;选通D转换通道LCALL DA10;调用D/A转换子程序DA10:NOP;D/A转换子程序MOVR1,R4;数据存放首地址MOVR0,#04H;送4位控制字MOVA,R3LL1:CLRCRLCAMOVDIN,CSETBSCLKNOPCLRSCLKDJNZR0,LL1MOVR0,#08H;高8位数据MOVA,R1LL2:CLRCRLCAMOVDIN,CSETBSCLKNOPCLRSCLKDJNZR0,LL2MOVR0,#04H;低4位数据INCR1MOVA,R1

35、SWAPALL3:CLRCRLCAMOVDIN,CSETBSCLKNOPCLRSCLKDJNZR0,LL3RETEND6. 总结与提高本节介绍的系统使用了4路12位串行D/A转换器MAX525,在输出端没有给出执行机构,读者如有此方面的应用需求可自行加接被控对象。1. 实训目的学习A/D、D/A转换器PCF8591的使用方法掌握I2C总线数据操作的基本时序掌握PCF8591与单片机的接口技术及编程方法2. 功能设计设计由单片机与PCF8591组成的数据采集与输出处理系统,编写PCF8591数据采集及数据输出程序。11.6 8位A/D、D/A转换器PCF8591 的应用3. 背景知识PCF859

36、1是一个具有I2C总线接口的8位A/D、D/A转换器。(1) 主要特点 4端口模拟输入,可单端也可差分输入。 低功耗。 8位A/D转换,内有多路开关、采样及保持电路。 一路D/A模拟输出。 I2C总线接口。(2) PCF8591的引脚PCF8591的引脚如图11-16所示。图11-16 PCF8591的引脚图(3) 控制字格式PCF8591控制字用于设置芯片实现不同功能。控制字格式如下:D7、D3: 标志位,置“0”。D6: 模拟输出允许位(D/A转换输出允许),1有效。D5、D4: 模拟量输入方式选择,见表11-6。 (见书212页)D2: 自动增量选择位,若此位有效,则A/D转换通道自动增

37、1。D1、D0: 模拟通道选择。见表11-7。(见书212页)D7D6D5D4D3D2D1D000(4) I2C总线的数据操作格式I2C总线由时钟线SCL和数据线SDA组成,SCL和SDA是双向传输线。I2C总线传输数据时需要起始信号S和终止信号P。为了保证I2C总线数据的可靠传送,每传送一个字节都必须跟随一个应答信号A,发送数据时高位在前。在全部数据传送结束后,主控制器发送终止信号P。 I2C总线上传送的每一个字节均为8位,但每启动一次I2C总线,其后的数据传输字节数是没有限制的。PCF8591控制字设置与D/A转换均执行对I2C总线的写操作。而A/D转换则执行对I2C总线的读操作。(5)

38、I2C总线操作时序I2C总线数据传送启动、终止、应答和非应答时序如图11-17所示。 I2C总线写1位数据操作时序如图11-18(a)所示。 I2C总线读1位数据操作时序如图11-18(b)所示。图11-17 I2C总线数据传送的典型时序图11-18 I2C总线读写时序(6) PCF8591器件的地址I2C器件的地址是由硬件构成的,对于每一个I2C器件都有一个地址编号,如PCF8591的地址编号为1001,地址引脚为A2A1A0。若此三个引脚接地,则PCF8591的写地址为10010000B(90H),读地址为10010001(91H)。4. 硬件原理与资源分配图11-19为单片机8051与P

39、CF8591芯片的连接图。LM385是精密的基准电源(+2.5V)。P1.0模拟I2C的时钟信号,P1.1模拟I2C的数据线。本实训将通过编程实现图11-16所示的时序,完成I2C总线的启动与终止、PCF8591初始化、4通道A/D转换、D/A转换和等待应答。图11-19 PCF8591与单片机的连接(1) A/D转换选择4路模拟信号独立输入,通道自动增量方式。 控制字为: 0 0 0 0 0 1 0 0 B(04H)。(2) D/A转换允许模拟输出。控制字为: 0 1 0 0 0 0 0 0 B(40H)。(3) 对I2C发送一个字节后,检查应答。从I2C读取一个字节后,单片机应发送应答信号

40、。资源分配R0: D/A转换数据指针,初值为50H。R1: A/D转换数据指针,初值为60H。R2: A/D转换数据个数,初值为4;D/A转换数据个数,初值为2。R3: 循环计数器,初值为8。R4: 暂存A/D。F0: 应答标志位,F00有应答,F01无应答。内部RAM50H51H: 2个待D/A转换的数据。内部RAM60H64H: 4路A/D转换值。5. 参考程序I2C接口的数据操作程序由下列几个基本操作子程序组成: PCFD为A/D转换子程序,PCFX为D/A转换子程序,STR为I2C启动子程序(图11-17时序(a),ED0为I2C终止子程序(图11-17时序(b),YIDA为发送应答子

41、程序(图11-17时序(c),YIDAF为发送非应答子程序(图11-17时序(d),CHEK为检查应答信号子程序,WR0为读一个字节子程序(图11-18时序(a),DR0为发送一个字节子程序(图11-18时序(b)。ORG0000HAJMPMAINMAIN: NOPMOVR2,#04H;R2存放A/D转换的数据个数LCALL PCFD;PCF8591A/D转换MOVR2,#03H;存放D/A转换的数据个数LCALL PCFX;PCF8591D/A转换PCFX:NOPLCALL STR;总线启动MOVA,#90H;PCF8591D/A寻址字LCALL WR0;写入LCALL CHEK;检查应答位JBF0,PCFX;错误,重发WRD1: MOVA,#40H ;写入MOVR1,#50HWRD2:LCALL WR0LCALL CHEK;检查应答位JBF0,PCFX;错误重发MOVA,R1INCR1;61H存放D/A待转换的数据DJNZR2,WRD2LCAL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论