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

下载本文档

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

文档简介

会计学1AD转换与DA转换实训11.1

8位A/D转换器ADC0809的应用实训目的掌握A/D转换器ADC0809的原理及基本性能指标掌握ADC0809与单片机的接口方法及编程方法功能设计设计由单片机与A/D转换器

ADC0809构成的第数1页/共据120页采集系统,使其依次采集8路模拟量,经0809进第3页/共120页A/D转换器形式很多,按A/D转换器输入模拟量的极性分类,可分为单极型和双极型两种;按A/D转换器的数字量输出方式分类,可分为并行方式、串行方式及串/并行方式;按A/D转换器的转换原理分类,可分为积分型、逐次逼近型和并行转换型。第4页/共120页(1)关于ADC0809ADC0809是一个典型的逐次逼近型8位A/D转换

器。它由8路模拟开关、8位A/D转换器、三态输出锁存器及地址锁存译码器等组成。它允许8路模拟量分时输入,转化后的数字量输出是三态的(总线型输出),可以直接与单片机数据总线相连接。

ADC0809采用+5V电源供电,外接

工作时钟。当第5典页/共1型20页工作时钟为

500kHz时,转换时间约为128μs。(2)

ADC0809的引脚说明

ADC0809引脚如图11-2所示。第6页/共120页第7页/共120页IN0~IN7D0~D78路模拟通道输入端。8位数字量输出端。VREF(+)、VREF(-)

正、负参考电压输入端。CLOCK

时钟输入端,时钟最高允许频率为640kHz。START

转换启动信号,高电平有效。道选择端。通道与地址对应关系见第8页/共120页ADDA、ADDB、ADDC模拟通ALE地址锁存信号。高电平时,

将三位地址信号送入地址锁存器,经译码选择相应的模拟输入通道。使用时该信号可以和START信号连在一起,以便同时锁存通道地址和启动A/D转换。EOC

A/D转换结束信号,此信号常被用来作为中断请求信号。OE

允许输出信号。当OE端为电平上升沿时第9,页/共1输20页出锁存器将转换结果送到数据线,供单片机读取。4.硬件原理与资源分配硬件原理图如图11-3所示。图11-3

ADC0809与单片机的连接第10页/共120页(1)时钟信号由于0809无片选端,因此电路增加了或非门74LS02及译码器74LS138,以便对0809进行读/写控制。单片

机采用6MHz的晶振,ALE输出

6MHz/s时钟信号,经74LS74触发

器2分频,得到500kHz的时钟信号,与0809的时钟端CLK相连。第11页/共120页(2)通道选择三位通道选择端ADDA、ADDB、ADDC与数据线P0口的低三位P0.0、P0.1、P0.2相连,用数据线进行通道选择,由P0.0、P0.1、P0.2三位决定选择哪一通道。也可以用地址线选择通道。第12页/共120页(3)

0809的启动0809的启动端

START、地址锁存端ALE均为高电

平有效。将START与ALE端连在一

起,与74LS02的输出端相连。或非门74LS02的两个输入端WR和Y0均为低电平时,其输出为高电平。当译码器74LS138的3个输入端P2.7、P2.6和P2.5为0时,Y0为低电平,执行外部I/O口写操作时,WR为低第电13页/平共120。页执行下列操作将启动0通道转换:MOVA,#00H

;数据线低3位为0,选择0通道MOV#1FFFHDPTR,;P2.7、P2.6、P2.5均为0,MOVX@DPTR,A

;执行外部I/O口写操作时WR为低电平第14页/共120页(4)转换数据的读取当转换结束时,EOC端输出高电平。可用查询或中断的方法进行数据读取处理。输出允许OE端为高电平,

8位转换数据D0~D7输出到数据线

上。只有译码器输出Y0和RD同时

为低电平时,OE端才为高电平。

执行外部I/O口读操作RD为低电平。执行下列操作将读取转换数据:MOV

DPTR,#1FFFH

;P2.7、P2.6、第15页/共120页(5)转换结束标志EOC转换结束标志EOC端经反向器与单片机的INT0相连,即转换一旦结束,外部中断0则申请中断。资源分配:

R0:数据指针

R2:通道计数器内部RAM的40H以后的若干单元数据第堆16页/栈共120区页内部RAM的60H~67H单元:存放5.参考程序ORG;CPU起AJMP;跳转到ORG;外部中AJMP0000H始地址MAIN主程序0003H断0入口地址JINT0外部中断0处MAIN:NOPMOVMOVSP,#40HR0,#60HMOV;跳转到理程序;主程序段;设定堆栈;设置数据存储区首地址;选通道0A,R2MOVR2,#00HMOVDPTR,#1FFFH;初始化ADC0809第17页/共120页SETB

IT0;设定外部中断0为边沿触发;EX0SETB

EX0=1(开放外部中断0);开总SETB

EA中断,EA=1(开放总中断)LOOP1:MOVX

@DPTR,AMOVX

@DPTR,ALOOP2:RETI;启动0809;再启动0809;中断返回END第18页/共120页6.总结与提高本节所介绍的程序采用中断方式读取A/D转换值,读者还可以用查询法(查询P3.2)或者用软件延时法(延时128μs以上)来编制采集程序。在实际单片机应用系统中,对于模拟信号变化较快的场合需要增加采样保持器。对于一般传感器输出的模拟信号还要经过调理电路处输入A/D转换理成标准信号,第19页才/共12能0页器。1.实训目的掌握12位A/D转换器AD574A的工作原理及基本性能指标掌握A/D转换器AD574A与单片机的接口技术及编程方法11.2

12位A/D转换器AD574A的应用第20页/共120页2.功能设计设计单片机与12位A/D转换器

AD574组成的数据采集系统,编写

AD574的数据采集程序。A/D转换后的12位数字量存入内部RAM区60H和61H单元,61H单元存放低4位。第21页/共120页3.背景知识AD574A是美国AD公司研制的12位逐次逼近型A/D转换器,适合在高精度和快速采样系统中应用。(1)主要特点①内部集成有转换时钟、参考电压源和三态输出锁存器。②转换时间为25μs。③输入模拟电压第22页可/共1以20页为单极性也可以为双极性,单极性输入时电压为

0~+10V或0~+20V;双极性输入(2)

AD574A的引脚

AD574A的引脚如图11-4所示。图11-4

AD574A的引脚图第23页/共120页10VIN①模拟量输入10V量程的模拟电压输入线。单极性时为0~10V,双极性时为-5~+5V。20VIN

20V量程的模拟电压输入线。单极性时为0~20V,双极性时为-10~+10V。AC

模拟电压公共地线。②数字量输出DB11~DB0DB11为最高位。第24页/共120页12位数字量输出线,CSCE③控制线片选线,低电平有效。片选使能线,高电平有效。和CS共同用于片选控制。当

CS为0,CE为1时,选中本片工作;否则本片处于禁止状态。R/C

读出/转换控制输入线。若R/C为0,则本片启动工作;若使R/C为1,则本片处于允许读出数字量状态。第25页/共120页A012/8地址线。用来启动A/D转换。决定进行12位转换还是8位A/D转换。STS转换状态输出线。STS为高电平,表示AD574A正处于A/D转换

状态,若STS变为低电平,则A/D转换完成。因此,在实用中STS线可供CPU查询,也可作为MCS-51入线。控制功能见表11-2。(见书195页)的外中断第请26页/求共120输页④测试/调零线REF

IN内部解码网络所需参考电压输入线。REF

OUT内部参考电压输出线。通常,REF

IN和REF

OUT之间跨接一个l00Ω电位器,用来调整各量程的增益。BIP

OFF

补偿调整线,用于在模拟输入为零时把ADC输出的数字量调整为零。⑤电源线第27页/共120页4.硬件原理与资源分配单片机与AD574A的接线图如图11-5所示。第28页/共120页第29页/共120页AD574的口地址见书196页。模拟电压输入极性的设定利用BIP、RIN和ROUT

3端与外接电

阻的不同连接方法,可以把

AD574A设定为单极性输入或双极

性输入。图11-5为双极性输入。如果输入电压在-5~+5V之间,模拟量应从10VIN端输入;如果输入电压在-10~+10V之间,模拟量应从

20VIN第端30页/共输120页入。单极性输入时:输出数字量

D=212VIN/VFS,其中为输入电压,VFS为满刻度电压分辨率

1LSB=VFS/212,其中VFS=10V,1LSB=2.4mV双极性输入时:输出数字量D=211(1+2VIN/VFS)=2048(1+2VIN/V

)第31页F/S共120页分辨率

1LSB=VFS/212,其中V

=10V,1LSB=2.4mV(3)零点调整:R1用于零点调整①单极性输入时,使VIN=LSB/2=1.2mV。调整R1使输出数字量在000H~001H间跳动。②双极性输入时,使VIN=-VFS/2+LSB/2=-4.99mV。调整R1使输出数字量在000H~001H间跳动。第32页/共120页(4)增益调整:R2用于增益调整①单极性输入时,调整R2,使

VIN=+VFS-1LSB=9.9976V,输出数字量FFFH;VIN=+VFS-2LSB=9.9952V,输出数字量FFEH。②双极性输入时,调整R2,使

VIN=+VFS

/2-1LSB=4.9976V,输出数字量FFFH;VIN=

+VFS

/2-2LSB=4.9952V,第33页输/共120出页

数字量FFEH。资源分配:

R0:数据指针

R2:通道计数器内部RAM的40H以后的若干单元:数据堆栈区内部RAM的60H~61H单元:存放

1个12位转换数据第34页/共120页0000HAJMP;跳转到主5.参考程序ORGMAIN程序ORG0003H0入口地址;外部中断部中断0处AJMPJINT0;跳转到外理程序MAIN:NOP;主程序段MOVSP,#40H;设定堆栈MOVR1,#60H;数据存放首地址中断0为边SETBIT0;设定外部沿触发MOVDPTR,#1FF0H;送口地址MOVX@

DPTR,A;启动12位A/D转换第35页/共120页SETB;开放外部SETBEX0中断0EAAJMPLOOPLOOP:JINT0:NOPCLREX0;开总中断;等待中断;外部中断0处理程序;关外部中MOVINC;读高8位数据;存储高8位;选定低4INC;数据存储ANLMOV断0MOVX

A,@DPTR@R1,ADPTR位口R1单元加1MOVX

A,@DPTRA,#0FH@R1,ARETI;读低4位数据;屏蔽高4位;存储低4位;中断返回END第36页/共120页6.总结与提高本节为12位A/D转换的实训,使用了中断处理方法,读者也可以尝试使用查询方式进行数据采集。第37页/共120页实训目的掌握串行A/D转换器MAX1247的工作原理及使用方法掌握串行A/D转换器MAX1247与单片机的接口技术及编程方法功能设计设计由单片机与12位串行A/D转换器MAX1247构成的数据采集系统,并编写数据采集程序。11.3串行A/D转换器MAX1247的应用第38页/共120页3.背景知识

MAX1247是MAXIM公司研制的12位4通道串行A/D转换器,适合在

高精度和高速度的采样系统中应用。(1)主要特点:①4通道(单极性)12位串行A/D转换,也可接2通道(双极性)。②单一电源供电(+5V)。③低第39页功/共1耗20页。④SPI/QSPI接口(串行接口)。第40页/共120页各管脚功能如下:

VCC电源(+5V)。CH0、CH1、CH2、CH3

4通道模COM拟信号输入端。模拟输入参考基准端。VREF基准电压输入。CS

片选线,低电平有效。SHDN

低电平时,器件将关闭并进入掉电节能第41状页/共1态20页,否则为正常状态。REFADJ

缓冲放大器输入端,接VCC时内部缓冲放大器无效。AGNDDGND数字地。模拟地。DOUT串行数据输出端。SSTRB

转换结束。DIN串行数据输入端(控制字),时钟上升沿有效。SCLK串第42行页/共1时20页钟输入。(3)

MAX1247工作方式

MAX1247可通过设定控制字的PD1、PD0位进行工作模式的选择。①外时钟模式使用外部时钟不仅能将串行数据移进、移出,还可控制模数转换的速度。②内时钟模式使用内部时钟转换模式,转换时钟取自内部的时钟发生器,这是一种转换时钟与串行数据移位锁定时钟相互分离的模式。第43页/共120页③软掉电模式软掉电模式在

SHDN为高电平或悬空时,通过设置控制字的PD1位和PD0位,可选择满掉电和快速掉电的软掉电模式,以便在两次转换的闲置时段使器件

进入低耗能的掉电状态。在软掉电

模式中,串行移位寄存器保留了掉

电前的操作数,但不进行模数转换。④硬掉电模式将SHDN置于低电平,可以在任何第4时4页/共刻120页完全关闭转换,并以“0”替换控制字的PD1位和(4)

MAX1247的控制字

START:启动位,为“1”有效。SEL2、SEL1、SEL0:通道选择端,见表11-3。(见书199页)UNI/BIF:极性选择位,为“1”选择单极性,为“0”选择双极性。SGL/DIF:单端/差动方式选择端。

PD1、PD0:模式选择端。见表11-4。(第见45页/共书120页200页)(5)

MAX1247数据操作时序

MAX1247的数据操作时序如图11-7所示。第46页/共120页第47页/共120页4.硬件原理与资源分配

MAX1247与单片机的连接图如图11-8所示。P1.0为串行输出控制字,

P1.1为输出串行时钟,P1.2为片选线,P1.3为A/D转换数字量由P1.3串行输入。对MAX1247操作时,单片机首先

送出8位控制字,然后读取16位串行A/D数据,其中最后的4位数据为无效位。因第此48页/共对120页MAX1247的一

次操作需要24个串行时钟SCLK。第49页/共120页5.参考程序DINSCLKCSDOUT;定义P1.0为DIN;定义P1.1为SCLK;定义P1.2为CS;定义P1.3为DOUT0000HAJMP;跳转到主EQU

P1.0EQU

P1.1EQU

P1.3EQU

P1.4ORGMAIN程序MAIN:NOPMOVR1,#60HMOVA,#9FHLCALL

AD10;主程序段;0通道转换的数据存储于60H、61H;选通0通道、单极性、外时钟;调用A/D控制字写入子程序第50页/共120页MOVLCALL

AD11R1,62HMOVA,#0DFHLCALL

AD10MOVLCALL

AD11R1,64HMOVA,#0AFHLCALL

AD10;A/D转换子程序;1通道转换的数据存储于62H、63H;选通1通道、单极性、外时钟;调用A/D控制字写入子程序;A/D转换子程序;2通道转换的数据存储于64H、65H;选通2通道、单极性、外时钟;调用A/D控制字写入子程序第51页/共120页LCALL

AD11MOV

R1,66H存;A/D转换子程序;3通道转换的数据储于MOV66H、67HA,#0EFH性、LCALL

AD10LCALL

AD11;选通3通道、单极外时钟;调用A/D控制字写入子程序;A/D转换子程序…ENDAD10:

CLRDINCLRCLR;MAX1247控制字写

SCLKCS第52页/共120页L1:MOV

R0,#08HNOPNOPCLR

CCLR

SCLKRLC

AMOV

DIN,CNOPSETBDJNZCLRSCLKR0,L1NOPSCLKSETB

CS第53页/共120页CLRDINNOPNOPNOPNOPRETAD11:

NOP;A/D转换子程序CLRCLRCCSNOPNOPSCLKMOV;高8位CLRR0,#08H数据第54页/共120页LL3:

NOPSETBSCLKMOVRLCNOPNOPC,DOUTANOPSCLKR0,LL3@R1,AMOV;低4位CLRDJNZMOVR0,#08H数据LL2:

CLRCNOP第55页/共120页NOPSETBSCLKNOPNOPMOV

C,DOUTARLCNOPCLRSCLKDJNZ

R0,LL2INC

R1ANL

A,#0F0HSWAP

A第56页/共120页MOV

@R1,ASETB

CSRET第57页/共120页6.总结与提高A/D转换器广泛应用于便携式设备、医用仪器、电池供电系统、远程数据采集和过程控制等各个领域。应根据实际任务要求来确定选用8位、

12位或更高位,以及并行芯片或串行芯片A/D转换器。第58页/共120页实训目的掌握8位D/A转换器DAC0832的工作原理及使用方法掌握8位D/A转换器DAC0832与单片机的接口技术及编程方法功能设计设计8位D/A转换器DAC0832与单片机的硬件电路连接,并编写

DAC0832的数据输出程序。11.4

8位D/A转换器DAC0832的应用第59页/共120页3.背景知识由图11-1所示单片机测控系统可知,单片机与被控对象之间要经过D/A(数/模)转换环节,该环节把单片机输出的数字量转换成模拟量,从而对被控对象进行控制。D/A转换环节在单片机应用系统中作为输出信号。第60页/共120页DAC0832是8位电流输出型D/A转换芯片。DAC0832主要技术指标分辨

率为8位,增益温度系数为0.02%,单电源供电,电源范围为+5~+15V,转换速度约1μs。DAC0832的外部引脚

DAC0832的内部结构及引脚图如图

11-9所示。第61页/共120页第62页/共120页(3)

DAC0832工作方式通过控制端CS、ILE、WR1、WR2、XFER的不同接线方式,可以控制

DAC0832工作在不同方式下。①单缓冲方式:两个输入寄存器中有一个处于直通方式,另一个处于受控锁存方式。适用于只有一路模拟信号输出或虽有几路模拟信号但不需要同步输出的场合。②双缓冲方式第:63页/共两120页个锁存器都接成受控方式ILE接高电平。(4)

DAC0832的输出极性图11-10(a)为DAC0832的单极性输出电路。其输出为:图11-10(b)为DAC0832的双极性输出电路。其输出为:式中B为输入数字量,其范围为0~第64页/共120页第65页/共120页4.硬件原理如图11-11所示电路是由单片机与

D/A转换器构造一个波形发生器。

DAC0832为单缓冲方式和双极性输

出,LM358为双运算放大器。P2.7、P2.6、P2.5三位均为0,选通DAC0832,选通地址为译码输出

1FFFH。第66页/共120页第67页/共120页5.参考程序(1)

0832输出矩形波单片机连续255次输出数字量0,然后连续255次输出数字量FFH。如此重复,0832即可输出连续矩形波。ORG

0000HDPTR,#1FFFH;指向0832MOVDD0:

MOVDD1:MOVMOVX

@DPTR,AA,#0R2,#255;向D/A送0DJNZ

R2,DD1255次,形成矩MOV

A,#255;循环形波的低电平;将FFH送到A第68页/共120页DD2:MOVX

@DPTR,AD/AMOV

R2,#255;向D/A送255,输出为高;循环DJNZ

R2,DD2255次,形成矩形波的高电平;重复LJMP

DD0上述过程,形成多个矩形波END第69页/共120页(2)

0832输出梯形波单片机从输出数字量0开始,逐次加1直到255,保持255次,然后从输出255逐次减1直至为0。如此重复,0832即可输出连续梯

形波。ORG;CPU起DD0:DD1:0000H始地址MOVMOVMOVX

@DPTR,ADPTR,#1FFFHA,#00H;D/A输出CJNEINC

AA,#255,DD1MOVA,#0FFHMOV;循环255次,形成梯形波的上升沿;将FFH送AR2,#0FFHDD2:MOVX

@DPTR,A;向D/A送255,D/A输出为高第70页/共120页DJNZ

R2,DD2255次,形成梯;循环形波的上底DD3:MOVX

@DPTR,ACJNE成梯;D/A输出A;循环255次,形形波DECA,#0,DD3的下降沿LJMP

DD1上述过程,形;重复成多个梯形波END第71页/共120页(3)

0832输出三角波单片机从输出数字量0开始,逐次加1直到255,然后从输出255逐次减1直至为0。如此重复,0832即可输出连续三角波。ORGMOV0000HDPTR,#1FFFHDD0:DD1:MOVXMOV@DPTR,AA,#00H;D/A输出CJNEINC

AA,#255,DD1;循环256次,形成三角波的上升沿DD2:MOVX@DPTR,A;D/A输出ACJNEDECA,#0,DD2;循环256次,形成三角波的下降沿第72页/共120页LJMP

DD0;重复上述过程,形成多个三角波END第73页/共120页6.总结与提高上述三段程序通过DAC0832输出端输出的波形为直线型的波形,没有考虑波形频率。改变程序即可使0832输出满足频率要求的各种曲线。第74页/共120页实训目的掌握串行D/A

MAX525的工作原理及使用方法掌握12位串行D/A转换器MAX525与单片机的接口技术及编程方法功能设计设计由12位D/A转换器MAX525与

单片机构成的模拟输出电路,并编写MAX525的数据输出程序。11.5串行D/A

MAX525的应用第75页/共120页3.背景知识MAX525是MAXIM公司生产的4通道12位串行D/A转换器。主要特点①4通道12位串行D/A转换②单电源供电(+5V)③3线串行,可程控数字输出④SPI/QSPI传输工作模式MA第7X6页5/共21205页的引脚

MAX525的引脚如图11-12所示。第77页/共120页(3)

MAX525工作模式

MAX525的数据形式为16位,其中最高位和次高位为地址位,第14位和第13位为控制位,后12位为数字位。如图11-13所示。MAX525的工作模式由4位地址控制位和12位数据位确定,见表11-5。(见书208页)第78页/共120页第79页/共120页(4)

MAX525工作时序如图11-14所示。第80页/共120页第81页/共120页4.硬件原理与资源分配如图11-15所示为单片机8051与MAX525芯片的连接图。LM385是精密的基准电源(+2.5V),MAX525是串行D/A转换芯片,接

口方式为SPI。本电路中使用单片机的P1口模拟SPI的串行接口与

MAX525相连接。其中P1.0为串行数据输入,P1.1为MAX525的时钟输入,P1.2为第M82A页/X共15202页5的片选,如图11-15所示。第83页/共120页5.参考程序DIN

EQU

P1.0;定义P1.0为DIN,串行数据SCLK输入端EQU

P1.1CSEQU

P1.2DOUTEQU

P1.3ORGAJMP;定义P1.1为SCLK,串行时钟输入端;定义P1.2为CS,片选端;定义P1.3为DOUT,串行数据输出,用于级联

0000H;跳转到主MAIN程序MAIN:

NOP;主程序段SETBCS第84页/共120页CLRSCLKCLR;选中MOVCSMAX525R0,#16为MOVA,#80HL1:CLRRLCMOVSETBDJNZCLRR0,L1;发16位数,前4位控制字;控制字,所有输出寄存器从输入寄存器加载CADIN,CSCLKNOPSCLK;MAX525初始化第85页/共120页NOP;开始4路MOVD/A转换R4,#60HMOVR3,#30HLCALL

DA10MOVR4,62HMOVR3,#70HLCALL

DA10MOVR4,#64HMOVR3,#0B0H;A通道待转换的数据存储于60H、61H;选通A转换通道;调用D/A转换子程序;B通道待转换的数据存储于62H、63H;选通B转换通道;调用D/A转换子程序;C通道待转换的数据存储于64H、65H;选通C转换通道第86页/共120页LCALLDA10MOVR4,#66HR3,#0F0HMOVLCALL

DA10;调用D/A转换子程序;D通道待转换的数据存储于66H、67H;选通D转换通道;调用D/A转换子程序…DA10:NOPMOVMOV;D/A转换子程序;数据存放首地址;送4位控制字A,R3LL1:R1,R4R0,#04HMOVCLRC第87页/共120页RLCMOVSETBADIN,CSCLKNOPSCLKR0,LL1MOV;高8位A,@R1LL2:CCLRDJNZR0,#08H数据MOVCLRRLCMOVSETBADIN,CSCLKNOP第88页/共120页SCLKR0,LL2MOV;低4位CLRDJNZR0,#04H数据INC

R1MOV

A,@R1SWAP

ALL3:CLR

CRLCMOVSETBADIN,CSCLKNOPCLRDJNZSCLKR0,LL3第89页/共120页RETEND第90页/共120页6.总结与提高本节介绍的系统使用了4路12位串行D/A转换器MAX525,在输出端

没有给出执行机构,读者如有此方面的应用需求可自行加接被控对象。第91页/共120页11.6

8位A/D、D/A转换器PCF8591的应用实训目的学习A/D、D/A转换器PCF8591的使用方法掌握I2C总线数据操作的基本时序掌握PCF8591与单片机的接口技术及编程方法功能设计第92页/共120页设计由单片机与PCF8591组成的数据采集与输出处理系统,编写3.背景知识PCF8591是一个具有I2C总线接口的8位A/D、D/A转换器。(1)主要特点①4端口模拟输入,可单端也可差分输入。②低功耗。③8位A/D转换,内有多路开关、采样及第保93页/持共120页电路。④一路D/A模拟输出。第94页/共120页(3)控制字格式PCF8591控制字用于设置芯片实现不同功能。控制字D7D6D5格D式4如D下3:D2D1D000D7、D3:标志位,置“0”。

D6:模拟输出允许位(D/A转换输出允许第)95页/,共120页1有效。D5、D4:模拟量输入方式选择,见(4)

I2C总线的数据操作格式I2C总线由时钟线SCL和数据线SDA组成,SCL和SDA是双向传输线。I2C总线传输数据时需要起始信号S和终止信号P。为了保证I2C总线数据的可靠传送,每传送一个字节都必须跟随一个应答信号A,发送数据时高位在前。在全部数据传送结束后,主控制器发送终止信号P。I2C总线上传送的每一个字节均为8位,但每启动一次I2C总线,其后第96页/共120页(5)

I2C总线操作时序I2C总线数据传送启动、终止、应答和非应答时序如图11-17所示。

I2C总线写1位数据操作时序如图

11-18(a)所示。I2C总线读1位数据操作时序如图11-18(b)所示。第97页/共120页第98页/共120页图11-18

I2C总线读写时序第99页/共120页(6)

PCF8591器件的地址I2C器件的地址是由硬件构成的,对于每一个I2C器件都有一个地址编号,如PCF8591的地址编号为

1001,地址引脚为A2A1A0。若此三个引脚接地,则PCF8591的写地址为10010000B(90H),读地址为10010001(91H)。第100页/共120页4.硬件原理与资源分配图11-19为单片机8051与PCF8591芯片的连接图。LM385是精密的基准电源(+2.5V)。P1.0模拟I2C的时钟信号,P1.1模拟

I2C的数据线。本实训将通过编程

实现图11-16所示的时序,完成I2C总线的启动与终止、PCF8591初始化、4通道A/D转换、D/A转换和等待第10应1页/共答120页。第102页/共120页A/D转换选择4路模拟信号独立输入,通道自动增量方式。控制字为:0

0

0

0

0

1

0

0

B(04H)。D/A转换允许模拟输出。控

制字为:0

1

0

0

0

0

0

0

B(40H)。对I2C发送一个字节后,检查应答。从I2C读取一个字节后,单片机应发送应答信号。第103页/共120页资源分配R0:D/A转换数据指针,初值为

50H。R1:A/D转换数据指针,初值为

60H。R2:A/D转换数据个数,初值为4;D/A转换数据个数,初值为2。R3:循环计数器,初值为8。R4:第暂104页存/共12A0页/D。F0:应答标志位,F0=0有应答,5.参考程序I2C接口的数据操作程序由下列几个基本操作子程序组成:PCFD为A/D转换子程序,PCFX为D/A转换子程序,STR为I2C启动子程序(图11-17时序(a)),ED0为I2C终止子程序(图11-17时序(b)),YIDA为发送应答子程序(图11-17时序(c)),YIDAF为图11-17时序(d)),CHEK为检查应答信号发送非应答子程第105页序/共12(0页0000HMAINORGAJMPMAIN:

NOP;R2存放A/D转换的数据个数;PCF8591A/D转换…MOV

R2,#04HLCALL

PCFDMOV

R2,#03HLCALL

PCFX;存放D/A转换的数据个数;PCF8591D/A转换…PCFX:

NOPLCALL

STR;总线启动第106页/共120页MOV

A,#90HLCALL

WR0LCALL

CHEKJBWRD1:MOV;PCF8591D/A寻址字;写入;检查应答位;错误,重发;写入

R1,#50HWRD2:F0,PCFXA,#40HMOVLCALL

WR0LCALL

CHEKJB;检查应答位;错误重发F0,PCFXMOVA,@R1INC;61H存R1放D/A待转换的数据第107页/共120页DJNZR2,WRD2LCALL

EDORETNOPPCFD:LCALL

STRMOV

A,#90HLCALL

WR0LCALL

CHEKJBMOVF0,PCFDA,#04HLCALL

WR0LCALLCHEK;总线启动;写PCF8591A/D寻址字;写入;检查应答位;错误重发;A/D控制字;写入;检查应答位第108页/共120页F0,PCFDPCFD1:JBLC

温馨提示

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

评论

0/150

提交评论