版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第10章章 AD及及DA转换器的接转换器的接口技术口技术单片机应用系统通常设有模拟量输入通道和输出通道,前者需要AD转换器把模拟信号转换成单片机能处理的数字信号。 后者需要DA转换器把单片机处理输出的数字信号转换成模拟信号。A/D和D/A转换器是单片机与外界联系的重要途径,AD、DA转换的芯片种类很多,转换精度有8位、10位、12位和16位。本章主要介绍常用AD、DA转换器的工作原理以及外围接口的基本结构、原理和方法。 10.1 AD转换器的接口技术转换器的接口技术单片机应用系统中,输入量通常是模拟电量,模拟电量一般由传感器检测得到,而单片机只能接收数字信号。因此,单片机应用系统通常设有模拟
2、量输入通道负责把模拟电量转换成标准的数字信号送给单片机处理。AD转换器是模拟量输入通道的核心,它将模拟电量转换成单片机能处理的数字信号或脉冲信号。 10.1.1AD转换器概述转换器概述 A/D转换器(ADC)是一种能把输入模拟电压变成与它成正比数字量的器件。AD转换器芯片的种类较多,按转换原理可分为计数器式AD、逐次逼近式AD、双积分式AD、并行AD等多种。 描述A/D转换器的性能指标主要有分辨率、转换速度、转换精度以及输出数字量格式等。各种型号的AD转换芯片均设有启动转换引脚、转换结束引脚,数据输出引脚。单片机要扩展AD转换芯片,主要是解决上述引脚与单片机之间的硬件连接问题。有些AD转换器由
3、于芯片内部数据输出寄存器具有可控三态输出功能,故AD转换的数据输出线可以直接和CPU的数据总线相连。CPU可用输入指令从AD转换器中读取转换数据。MCS-51单片机字长为8位,一般的8位AD转换器都可与单片机直接相配。对高于8位的AD转换器,单片机需要从8位数据总线上读取执行二次输入操作,即分别读取高位字节与低位字节。 逐次逼近式A/D转换器和双积分式A/D转换器是目前最常用的A/D转换器。双积分式A/D转换器的主要优点是转换精度高,抗干扰性能好,价格便宜。其缺点是转换速度较慢,因此,这种转换器主要用于速度要求不高的场合;逐次逼近式A/D转换器是一种速度较快,精度较高的转换器,其转换时间大约在
4、几s到几百s之间。下面仅介绍ADC0809、AD574A、MCl4433几种常用的AD转换器与单片机的接口及应用。10.1.2ADC0809的接口及应用的接口及应用1.ADC0809的结构及引脚 ADC0809是一种8路模拟输入的8位逐次逼近式AD转换器件。其采用CMOS工艺,具有较低的功耗,其内部结构和引脚见图10-1。ADC0809内部由八路模拟开关、地址锁存与译码器、8位AD转换电路和三态输出锁存器等组成。 8路模拟开关根据地址译码信号来选择8路模拟输入,允许8路模拟量分时输入,共用一个AD转换器进行转换。 地址锁存与译码电路完成对A、B、C三个地址位进行锁存和译码,其译码输出用于通道选
5、择,CBA=000111依次选择IN0IN7。8位A/D转换器是逐次逼近式,由控制与时序电路、比较器、逐次逼近寄存器SAR、树状开关以及256R电阻阶梯网络等组成,实现逐次比较A/D转换,在SAR中得到A/D转换完成后的数字量。 其转换结果通过三态输出锁存器输出,输出锁存器用于存放和输出转换得到的数字量,当OE引脚变为高电平,就可以从三态输出锁存器取走A/D转换结果。三态输出锁存器可以直接与系统数据总线相连。ADC0809是28引脚DIP封装的芯片,各引脚功能如下: IN0IN7(8条):8路模拟量输入,用于输入被转换的模拟电压。 D7D0为数字量输出。 A、B、C:模拟输入通道地址选择线,其
6、8位编码分别对应IN0IN7,用于选择IN7IN0上哪一路模拟电压送给比较器进行A/D转换。ALE:地址锁存允许,高电平有效。由低至高电平的正跳变将通道地址锁存至地址锁存器,经译码后控制八路模拟开关工作。 SC(START):AD转换启动信号,正脉冲有效,此信号要求保持在200ns以上。由单片机发出正脉冲,其上升沿将内部逐次逼近寄存器清0,下降沿启动AD转换。 EOC:转换结束信号,高电平表示A/D转换已结束。EOC可作中断请求信号或供CPU查询。 OE:允许输出控制信号。输入高电平有效。当OE有效时,AD的输出锁存缓冲器开放,将其中的数据放到外部的数据线上。CLK:时钟输入,为ADC0809
7、提供逐次比较所需时钟脉冲。要求频率范围在10kHz1.2MHz。Vcc:+5V电源输入线,GND:地线。VREF(+)、VREF(-):参考电压输入线,用于给电阻阶梯网络供给正负基准电压。2.ADC 0809接口及应用 图10-2 是ADC0809与8031单片机的一种常用接口电路图。8路模拟量的变化范围在05V间,ADC0809的EOC转换结束信号接803l的外部中断1上,803l通过地址线P2.0和读、写信号来控制转换器的模拟量输入通道地址锁存、启动和输出允许。模拟输入通道地址A、B、C由P0.0P0.2经锁存器提供。ADC0809时钟输入由单片机ALE经2分频电路获得,若单片机时钟频率符
8、合要求,也可不加2分频电路。电路连接主要涉及两个问题,一个是8路模拟信号的通道选择,另一个是A/D转换完成后转换数据的传送。 (1) 8路模拟通道选择 A、B、C分别接地址锁存器提供的低三位地址,只要把三位地址写入0809中的地址锁存器,就实现了模拟通道选择。对系统来说,地址锁存器是一个输出口,为了把三位地址写入,还要提供口地址。图10-2中使用的是线选法,口地址由P2.0确定,同时和 相或取反后作为开始转换的选通信号。因此,该ADC0809的通道地址确定如下:若无关位都取0,则8路通道IN0IN7的地址分别为0000H0007H,若无关位都取1,则8路通道IN0IN7的地址分别为FEF0HF
9、EF7H。当然,口地址也可以由单片机其它不用的口线,或者由几根口线经过译码后来提供,这样,8路通道的地址也就有所不同。从图中可以看到,把ADC0809的ALE信号与START信号连接在一起了,这样使得在ALE信号的前沿写入地址信号,紧接着在其后沿就启动转换。启动A/D转换只需使用1条MOVX指令。在此之前,要将P2.0清0并将低三位与所选择的通道号相对应的口地址送入数据指针DPTR中。例如要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:MOV DPTR,#FEF0H ;选中通道0,送入0809的口地址 MOVX DPTR,A ;信号有效,启动A/D转换(IN0)注意:此处的A与A/
10、D转换无关;可为任意值。(2)转换数据的传送A/D转换后得到的数据为数字量,这些数据应传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换完成,因为只有确认数据转换完成后,才能进行传送。为此,通常可采用下述三种方式。 定时传送方式对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如,ADC0809转换时间为128 s,相当于6 MHz的MCS-51单片机的64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用这个延时子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 查询方式A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端
11、。因此,可以用查询方式,软件测试EOC的状态,即可确知转换是否完成,然后进行数据传送。 中断方式 如果把表示转换结束的状态信号(EOC)作为中断请求信号,那么,便可以中断方式进行数据传送。 在图10-2中,EOC信号经过反相器后送到单片机的INT1端,因此可以采用查询该引脚或中断的方式进行转换后数据的传送。不管使用上述哪种方式,一旦确认转换完成,即可通过指令进行数据传送。 首先送出口地址,并以 作选通信号,当信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收,仍以图10-2为例,则有指令:MOV DPTR,#FEF0H ;选中通道0MOVX A, DPTR ;信号有效,输出转换后
12、的数据到A累加器 (3) A/D转换应用举例 用图10-2与某一个数据采集控制系统相接,采用中断方式巡回检测一遍8路模拟量输入,并将采集的数据依次存入外部RAM的A0HA7H单元中,采集完一遍以后即停止采集。其数据采样的初始化程序和中断服务程序如下:初始化程序: ORG 0000H ;主程序入口地址 SJMP STAR ;跳转STAR ORG 0013H ; 中断入口地址AJMP INTR1 ;跳转中断服务程序 STAR: MOV R0,#A0H ;片外RAM的首地址 MOV R2,#08H ;8路通道计数 SETB IT1 ; 为边沿触发 SETB EA ;CPU开中断 SETB EX1 ;
13、允许外部中断1中断 MOV DPTR,#FEF0H ;送入口地址并指向0809的IN0通道 READ1: MOVX DPTR,A ;启动AD转换 SETB 2FH ;2FH为一路转换的标志位 HERE: JB 2FH,HERE ;判断标志位2FH是否为1,是则等待;不是则顺序执行 DJNZ R2,READl ;8路未采样完继续中断服务程序: INTR1: PUSH PSW MOVX A,DPTR ;读取转换数据 MOVX R0,A ;存入片外RAM INC DPTR ;更新通道,指向下一个模拟通道 INC R0 ;指向数据存储区下一个单元 CLR 2FH POP PSW RETI10.1.3
14、AD574A接口及应用接口及应用1.AD574A的结构及引脚AD574A是一种使用较广的高性能12位逐次逼近式AD转换器,片内具有三态缓冲输出电路,可直接与微机总线相连接。其内部结构见图10-3。AD574A由两大部分构成:一部分是带参考电压、精确为12位的数模转换器;另一部分包括比较器、逐次逼近寄存器、时钟电路、输出缓冲器和控制电路。AD574A为28引脚双列直插式封装芯片。其引脚有12位数据线,有20V和10V两档模拟电压输入端,基准电压的输入、输出端,转换结束 ,状态输出和5位控制信号输入端,其控制信号的组合功能如表10-1 所示。2.AD574A与单片机的接口电路 图10-4 是AD5
15、74A与803l的接口电路图。 图中AD574A的 为转换结束信号,与803l的P3.3( )相连,可作为中断申请信号,也可以作为状态查询信号。3.转换程序设计按图10-4 的接口电路,采用程序查询方式进行数据采集程序如下: START:MOV R1,#60H ;数据缓冲区首地址MOV DPTR,#0FF00H ;AD的控制口地址,A0=0,R =0 MOVX DPTR,A ;启动ADLP: JB P3.3,LP ;等待AD转换结束 MOV DPTR,#0FF0lH ;AD高8位数据口地址A0=0,R l MOVX A,DPTR ;读高8位数据 MOV Rl,A ;存入片内RAM INC R1
16、 MOV DPTR,#0FF03H ;低4位数据口地址A0=1,R/ =1 MOVX A,DPTR ;读低4位数据MOV R1,A ;存入片内RAM10.1.4 MCl4433接口及应用接口及应用 MCl4433是基于双积分方式转换原理的3位半AD转换器。它具有抗干扰能力强、转换精度高(具有11999的分辨率,相当于11位二进制数),自动校零,自动极性输出,自动量程控制信号输出(具有过量程和欠量程输出标志),动态字位扫描BCD码输出,单基准电压,结构简单、外接元件少,价格低廉等特点。但由于双积分方式积分时间较长,转换速度较慢(约每秒110次),速度要求较高的场合受到限制。目前,在各种测量仪表中
17、广泛应用。1. MCl4433的结构及引脚MCl4433的内部结构及引脚见图10-5 ,MCl4433内部由模拟电路和数字电路两大部分组成。模拟电路部分包括基准电压和模拟电压的输入电路,模拟输入电压量程为199.9mV或1.999V两种,对应的基准电压为+200mV或+2V;数字电路部分由逻辑控制、BCD码及输出锁存器、多路开关、时钟以及极性判别、溢出检测等电路组成。MCl4433采用字位动态扫描BCD码输出方式,即千、百、十、个,各位BCD码轮流地在Q0Q3端输出,同时在DSlDS4端出现同步字位选通信号。MC14433的主要外接器件有时钟振荡器、外接电阻RT。失调补偿电容C0和外接积分阻容
18、元件R1、C1。 MCl4433为24引脚双列直插式封装的芯片,各引脚的功能如下:VDD:主电源,+5V。 VEE:模拟部分的负电源,-5V。VAG:VREF和VX的地(模拟地)。VSS:数字地。 VREF:基准电压输入线,其值为200mV或2V。VX:被测电压输入线,其最大输入电压为199.9mV和1.999mV。R1:积分电阻输入线,当VX量程为2V时,Rl取470,当VX量程为200mV时,R1取27k。C1:积分电容输入线,C1一般取0.1F。RlC1:R1和Cl的公共连接端。C01、C02:接失调补偿电容C0,C0的值约为0.1F。CLK0、CLK1:外接振荡器时钟频率调节电阻RT,
19、RT的典型值是470 k。EOC:转换结束输出线,有效为0.5个时钟周期的正脉冲。DU:更新转换控制信号输入线,DU若与EOC相连,则每次AD转换结束后自动启动新的转换。 :过量程状态信号输出线,低电平有效,平时为高电平,当|VX|VREF时, 低电平有效。图10-6 MC14433选通脉冲时序DS4DS1:分别是个、十、百、千位的位选通脉冲输出线,这四种选通脉冲均为18个时钟周期宽的正脉冲,它们之间的间隔时间为2个时钟周期。其脉冲输出时序如图10-6所示。 Q3Q0:BCD码数据输出线,Q0为最低位,Q3为最高位,动态地输出千、百、十、个位值。 选通信号DS4DS1与Q3Q0输出结果的关系为
20、: DS4=1时,Q3Q0的输出为个位BCD码值09; DS3=1时,Q3Q0的输出为十位BCD码值09; DS2=1时,Q3Q0的输出为百位BCD码值09; DS1=l时,Q3Q0的输出为千位BCD码值(0或1)。 另外,DS1=1时,Q3Q0还表示转换值的正负极性以及欠量程还是过量程,Q2表示转换极性(0为负,1为正);Ql无意义;Q0=1且Q3=0表示过量程(太大),而Q0=l,且Q3=l表示欠量程(太小)。 各位输出结果的具体状态表示为:Q3Q2Q1Q0= 1XX0,表示千位数为0;Q3Q2Q1Q0= 0X X1,表示千位数为1;Q3Q2Q1Q0=0 1 X 0,结果为正;Q3Q2Q1
21、Q0=X0X0,结果为负;Q3Q2Q1Q0=0X X 1,输入过量程;Q3Q2Q1Q0=1 X X 1,输入欠量程。2. MCl4433与单片机接口电路由于MCl4433的AD转换结果是动态分时输出的BCD码,所以,Q3Q0和DS4DS1可以通过8031单片机的并行口P1或通过扩展I/O 电路与其相连。图10-7为MCl4433与8031单片机P1口相连接的电路。注意:芯片工作电源为5V,正电源接VDD,模拟部分负电源接VEE,公共地(数字地)接VSS。为了提高电源抗干扰能力,正负电源端应分别通过去耦电容0.047 F、0.02 F与VSS端相连。该电路采用中断方式管理MCl4433的操作。用
22、Pl口作为MCl4433的BCD码扫描输入口,转换结束信号经非门送外部中断1。当MCl4433上电后,即对外输入模拟电压进行AD转换,因为EOC与DU相连,故每次转换完毕都有相应的BCD码及相应的选通信号出现在Q0Q3和DSlDS4上,MCl4433能自动连续转换。当8031CPU开中断,允许 中断时,则每次AD转换结束,都将发出中断请求,可在中断服务程序中处理AD转换结果。其转换程序设计见相关参考文献。10.2 DA转换器的接口技术转换器的接口技术 单片机的数字量输出,往往需要转换成模拟电量才能去驱动被控对象或用于数据显示。因此,单片机应用系统通常设有模拟量输出通道负责把单片机处理输出的标准
23、数字信号转换成模拟电量驱动被控对象。DA转换器是模拟量输出通道的核心,它将单片机处理的数字信号或脉冲信号转换成模拟电量。 10.2.1 DA转换器概述转换器概述 D/A转换器(DAC)是把数字量转换成模拟量的器件。D/A转换器可以从单片机接收数字量并转换成与输入数字量成正比的模拟量,以推动执行机构动作,实现对被控对象的控制。DAC按可转换的数字量位数分为8位、10位、12位等;按接口的数据传送格式,可分为并行和串行两种;按接口形式可分为两类D/A转换器,一类是不带锁存器的,另一类是带锁存器的;DAC还可分为电流输出和电压输出两种。 DAC的性能指标是选用DAC芯片型号的依据,也是衡量芯片质量的
24、重要参数。描述D/A转换器的性能指标很很多,主要有分辨率、线性度、转换时间、输出电压范围、温度系数、输入数字代码种类(二进制或BCD码)等。分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。数字量位数越多,转换器对输入量变化的敏感程度也就越高,使用时,应根据分辨率的需要来选定转换器的位数。转换时间表示DAC的转换速度,转换器的输出形式为电流时,建立时间较短;输出形式为电压时,由于建立时间还要加上运算放大器的延迟时间,因此建立时间要长一点。但总的来说,D/A转换速度远高于A/D转换速度,快速的D/A转换器的建立时间可达1s。DAC的详细技术性能指标,数字电子技术课程中,已做
25、详细说明,这里不再赘述。 DA转换中,参考基准电压是唯一影响输出结果的模拟参量,是DA转换接口中的重要电路,对接口电路的工作性能、电路的结构有很大影响。使用内部带有低漂移精密参考电压源的DA转换器既能保证有较好的转换精度,而且可以简化接口电路。但目前在DA转换接口中常用到的DA转换器大多不带有参考电源。为了方便地改变输出模拟电压范围、极性,须要配置相应的参考电压源。DA接口设计中经常配置的参考电压源主要有精密参考电压源和三点式集成稳压电源两种形式。 DA转换能否与CPU直接相配接,主要取决于DA转换器内部有没有输入数据寄存器。当芯片内部集成有输入数据寄存器、片选信号、写信号等电路时,DA器件可
26、与CPU直接相连,而不需另加寄存器;当芯片内没有输入寄存器时,它们与CPU相连,必须另加数据寄存器,一般用D锁存器,以便使输入数据能保持一段时间进行DA转换,否则只能通过具有输出锁存器功能的IO给DA送入数字量。目前DA转换器芯片的种类较多,对应用设计人员来说,只需要掌握DAC集成电路性能及其与计算机之间接口的基本要求,就可以根据应用系统的要求选用DAC芯片和配置适当的接口电路。本节介绍常用的DAC0832芯片与MCS-51的接口及转换应用程序的设计方法。 10.2.2 DAC0832的接口及应用的接口及应用 DAC0832是一种常用的DAC芯片,是美国国民半导体公司(NS)研制的DAC083
27、0系列DAC芯片的一种。DAC0832是一个DIP20封装的8位D/A转换器,可以很方便地与MCS-51单片机接口。DAC0832采用单电源供电,从+5 V+15 V均可正常工作,基准电压的范围为10 V;电流型输出,外接运算放大器可提供电压输出,电流建立时间为1s;CMOS工艺,低功耗20 mW;片内设置两级缓冲,有单缓冲、双缓冲和直通三种工作方式。 1. DAC0832的内部结构及引脚功能 DAC0832转换器芯片为20引脚,双列直插式封装,DAC0832内部结构及引脚见图10-8 (a)、(b)所示。主要由两个8位寄存器和一个8位DA转换器以及控制逻辑电路组成。DA转换器采用R-2RT形
28、解码网络,实现8位数据的转换。两个8位寄存器(输入寄存器和DAC寄存器)用于存放待转换的数字量,构成双缓冲结构,通过相应的控制信号可以使DAC0832工作于三种不同的方式。寄存器输出控制逻辑电路由三个与门电路组成,该逻辑电路的功能是进行数据锁存控制,当 =0时,输入数据被锁存;当 =1时,锁存器的输出跟随输入的数据。数据进入8位DAC寄存器,经8位D/A转换电路,就可以输出和数字量成正比的模拟电流。DAC0832中无运算放大器,且是电流输出,使用时需要外接运算放大器才能得到模拟输出电压。DAC0832芯片为20引脚双列直插式封装,各引脚的功能如下:(1)DI0DI7:8位数据输入线,TTL电平
29、;DI7为最高位,DI0为最低位。 (2) :片选信号输入线,低电平有效。 和ILE信号结合,可对 是否起作用进行控制。(3) ILE:数据锁存允许控制信号输入线,高电平有效。(4) :输入寄存器的写选通输入线,低电平有效(宽度应大于500ns),当 =0,ILE=1, =0时,为输入寄存器直通方式;当 =0,ILE=1, =1时,DI0DI7的数据被锁存至输入寄存器,为输入寄存器锁存方式。(5) :传送控制信号输入线,低电平有效,可作为地址线用。 (6) :DAC寄存器写选通输入线,低电平有效(宽度应大于500ns)。当 =0, =0时,输入寄存器的内容传送至DAC寄存器中。 当当 =0,
30、=0时,为DAC寄存器直通方式;当 =1和 =0时,为DAC寄存器锁存方式。(7) Iout1:输出电流1,当输入数据为全“1”时,Iout1最大;为全“0”时,输出电流最小。此输出信号一般作为运算放大器的一个差分输入信号(一般接反相端)。(8) Iout2:输出电流2,当输入数据为全“l”时,Iout2最小。它作为运算放大器的另一个差分输入信号(一般接地),Iout1与Iout2的输出电流之和总为一常数。 (9) Rfb:运算放大器的反馈电阻引线端。芯片中已设置了Rfb,片内集成的电阻为15k,只要将9脚接到运算放大器的输出端, Iout1接运算放大器的“”端,Iout2接运算放大器的“+”
31、端即可。若运算放大器增益不够,还须外加反馈电阻。(10) Vcc:数字部分的电源输入端。UCC可在+5V到+15V范围内选取(一般取+5V)。 (11) VREF基准电压输入线,其电压可正可负,范围是-10 V+10 V。(12) AGND:模拟电路地。为模拟信号和基准电源的参考地;DGND:数字电路地。为工作电源地和数字逻辑地,两种地线在基准电源处一点共地比较恰当。2.DAC0832的工作方式DAC0832利用 、 、ILE 、 控制信号可以构成三种不同的工作方式。(1)直通方式: = =0时,两个寄存器都处于常通状态,数据可以从输入端经两个寄存器直接进入DA转转器进行转换,故工作方式为直通
32、方式。直通方式不能直接与系统的数据总线相连,需另加锁存器,故较少应用。(2)单缓冲方式:两个寄存器之一始终处于直通,即 =0或 =0,另一个寄存器处于受控状态;或者说两个输入寄存器同时受控的方式。在实际应用中,如果只有一路模拟量输出,或虽有几路模拟量但并不要求同步输出时,就可采用单缓冲方式。(3)双缓冲方式:两个寄存器均处于受控状态。双缓冲方式用于多路D/A转换系统,适合于多模拟信号同步输出的应用场合。在与单片机连接时一般有单缓冲和双缓冲两种方式。 实际应用时, 要根据控制系统的要求来选择工作方式。 3.DAC0832单缓冲方式接口及应用 此工作方式适用于一路模拟量输出或几路模拟量非同步输出的
33、应用场合。它与单片机的接口如图10-9 所示。图10-9为输入寄存器和DAC寄存器同时受控的连接方法, 和 一起接8031的 , 接P0.0(A0),ILE接高电平, ILE 接译码输出(译码输入未画出,可根据实际要求选择),也可采用片选法接高位地址,以便为寄存器确定地址。图10-9 接法中,两个寄存器的地址相同,地址:xxxx xxxx xxxx xxx0。MC1403为集成稳压电路,可获得不同稳定的参考电压。DAC0832的输出端接运算放大器,由运算放大器产生输出电压,图10-9中,采用了内置反馈电阻,若输出幅度不足,可以外接反馈电阻,也可增加运放。其它如数据线连接及地址锁存等问题不再赘述
34、。采用图10-9的电路编写不同的转换程序可以产生各种不同的输出波形。图中DAC0832的地址取7FFEH。产生锯齿波的源程序清单如下: START: MOV DPTR,#7FFEH ;选中DAC0832 MOV A,#00H ;转换初值 LP: MOVX DPTR,A ;转换数据送0832 INC A ;数据加1 SJMP LP执行上述程序,在运算放大器的输出端就能得到锯齿波。若要改变锯齿波的频率,可在SJMP LP指令前插入延时程序即可。 产生梯形波的源程序清单如下: START:MOV DPTR,#7FFEH L1:MOV A,#DATAL ;置下限值 UP:MOVX DPTR,A ;输出
35、 INC A CLR C SUBB A,#DATAH ;与上限值比较 JNC DOWN ;输出值是否大于上限值,大于则转移 ADD A,#DATAH ;输出值小于上限值 SJMP UP DOWN: ACALL DEL ;调上限延时程序 MOV A,#DATAH ;上限限幅L2:MOVX DPTR,A DEC A SUBB A,#DATAL ;与下限值比较 JC L1 ;相等重复循环 SJMP L2用同样的方法也可以产生三角波、矩形波,请读者自行编写程序。 4.DAC0832双缓冲方式接口及应用 这种工作方式适用于多路模拟量同时输出的应用场合,此情况下每一路模拟量输出需要一片DAC0832才能构
36、成同步输出系统。图10-10为双路模拟量输出的接口电路。图10-10 中,两片DAC0832的输出寄存器分别由两个不同的片选信号区分开,即首先将两路数据由不同的片选分别打入对应的0832的输入寄存器;而两片DAC0832的DAC寄存器传送的控制信号 同时由一个片选信号控制,所以当选通DAC寄存器时,各自输入寄存器中的数据可以同时进入各自的DAC寄存器中以达到同时进行转换,同步输出的目的。图中,使用了两片DAC0832,由于工作在双缓冲方式,每个DAC0832内部的输入寄存器各占一个端口地址,而两片DAC0832的DAC寄存器共用一个端口地址,这是为了使两片DAC0832能同时进行转换。因此,两
37、片DAC0832DAC共占用3个外部RAM地址。10832和20832的输入寄存器地址分别为xxxx xxxx xxxx xxx0和xxxx xxxx xxxx xx0 x,取010832和20832的地址分别为00FEH和00FDH,1#和2#的DAC寄存器地址共用为00FBH。其转换程序如下:MOV DPTR,#00FEH ; 指向1#DAC0832 MOV A,#DATA1 ;数据写入1#的输入寄存器 MOVX DPTR,A MOV DPTR,#00FDH ; 指向2#DAC0832 MOV A,#DATA2 ;数据写入2#的输入寄存器 MOVX DPTR,A MOV DPTR,#00FBH ;提供WR信号,选通1#和2#的DAC寄存器MOVX DPTR,A ; 同时完成D/A转换输出 注意,最后一条指令可同时打开两片DAC0832的DAC寄存器,进行D/A转换,与累加器A的内容无关。编制不同的程序,在运放后接图形显示器就可以显示图形,也可以驱动绘图仪绘制图形。8位DAC分辨率比较低,为了提高DAC的分辨率,可采用10位、12位、16位的DAC。因为51
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论