




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章模/数(A/D)与数/模(D/A)转换 7.1模/数(A/D)转换
7.2数/模(D/A)转换7.3实验习题77.1模/数(A/D)转换7.1.1模/数转换器的原理与主要技术指标
1.模/数转换器的原理模/数转换器可把模拟量转换成数字量,实际应用中是把模拟电压转换成二进制数字量。模/数转换的方法有计数式A/D转换,逐次逼近式A/D转换,双积分式A/D转换,并行A/D转换和串/并行A/D转换等。
计数式A/D转换由计数器、比较器和一个内部D/A转换器组成,线路比较简单,价格也便宜,但转换速度比较慢,现在已不常使用。双积分式A/D转换主要由积分器、零比较器、计数器以及时钟发生器组成。逐次逼近式A/D转换既具有一定的转换速度,又具有一定的精度,是目前广泛应用的8~16位ADC的主流产品。逐次逼近式A/D转换的原理如图7-1所示。图7-1逐次逼近式A/D转换2. 模/数(A/D)转换器的主要技术指标
1)分辨率分辨率是指A/D转换器能分辨的最小模拟输入电压值,常用可转换成的数字量的位数来表示(例如,8位、10位、12位、16位等)。分辨率=
其中,n是可转换成的数字量的位数。所以位数越高,分辨率也越高。例如,当输入满量程电压为5V时,对于8位A/D转换器,A/D转换的分辨率为5V/255=0.0195V。2)转换时间转换时间反映了A/D转换的速度。转换时间是启动ADC开始转换到完成一次转换所需要的时间。目前常用的A/D转换集成电路芯片的转换时间在微秒数量级。不同的ADC有不同的转换时间,转换时间是编程时必须考虑的因素。
3)量程量程是指能进行转换的输入电压的最大范围。4)绝对精度绝对精度是指ADC输出端产生一个给定的数字量时,ADC输入端的实际模拟量输入值与理论值之差,把这个差值的最大值定义为绝对精度。ADC输出端的一个确定的数字量所对应的模拟输入量是一个范围,而不是一个固定值。
5)相对精度类似于绝对精度,相对精度是指ADC输出端产生一个给定的数字量时,ADC输入端实际模拟量输入值与理论值之差的最大值与满量程值之比,一般用百分数来表示。7.1.2模/数接口芯片ADC0809ADC0809是CMOS逐次逼近式8位A/D转换器,它具有8通路模拟信号输入端,模拟输入电压范围为0~+5V,转换时间为100μs,输出端具有三态输出数据锁存器,+5V电源供电,功耗为15mW。1. ADC0809的引脚
ADC0809的引脚如图7-2所示,各引脚功能如下。
IN0~IN7:8通路模拟信号输入端,同一时刻只可有一路模拟信号输入。
ADDA、ADDB、ADDC:地址信号线,输入,用于选择控制8通路输入模拟量中的某一路工作。ADDA、ADDB、ADDC与IN0~IN7的关系见表7-1。表7-1ADDA~ADDC与IN0~IN7的关系ADDCADDBADDA模拟信号输入通路选择000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7图7-2ADC0809引脚图ALE:地址锁存允许信号,输入,高电平有效,配合ADDA、ADDB、ADDC工作。
D7~D0:8位数字量输出端。
START:A/D转换启动信号输入端,START的上升沿使逐次逼近寄存器复位,下降沿启动ADC进行A/D转换工作。
CLK:时钟脉冲输入端,CLK的频率范围为10~1280kHz。
EOC:A/D转换结束信号,输出,高电平有效,可作为中断请求信号。OE:数字量输出允许信号。
VREF(+)~VREF(-):基准参考电压正负输入端,用来提供A/D转换器内部D/A使用的标准电平,与微机接口时常对应使用+5V、0V或使用0V、-5V。
VCC:电源电压,+5V。
GND:地线。2. ADC0809的结构与工作过程
ADC0809的内部结构如图7-3所示,其功能与工作过程如下:输入到地址锁存与译码模块的ADDA、ADDB、ADDC三位地址信号用于决定IN0~IN7中哪一路模拟信号可以输入,然后使地址锁存与译码模块的ALE=1,从而使IN0~IN7中被选中的一路模拟信号经通道选择开关送达比较器的输入端。
向定时和控制模块发出启动信号START,START的上升沿使逐次逼近寄存器SAR清零,下降沿启动A/D转换。这时定时和控制模块的EOC输出信号变为低电平,表示A/D转换正在进行。当A/D转换结束后,EOC变为高电平,表示A/D转换完成。图7-3ADC0809内部结构A/D转换完成后,转换好的数字数据已送入8位三态锁存缓冲器模块。如果使8位三态锁存缓冲器模块的OE信号变为高电平,则8位三态锁存缓冲器的三态门被打开,转换好的8位数字量数据被输出到数据线上。如上所述,EOC信号变为高电平表示A/D转换完成,EOC可作为中断申请信号,通知CPU取走数据。在查询传送方式中,EOC可以作为CPU查询外设(ADC)的状态信号。
ADC0809的工作时序如图7-4所示,ADC0809在进行A/D转换前,先通过ADDA、ADDB、ADDC选择模拟输入通路。图7-4ADC0809的工作时序7.1.3ADC0809与系统的接口及应用
1. ADC0809与CPU的连接
ADC0809与计算机系统的连接主要考虑三方面,即与系统的数据总线、地址总线和控制总线的连接。由于ADC0809的输出D7~D0具有三态输出锁存缓冲器,因此ADC0809与计算机连接时可以直接和CPU的数据总线相连。地址总线的A0、A1、A2可以对应连接ADC0809的ADDA、ADDB、ADDC三位地址信号输入线,用以控制8路模拟输入中哪一路被选中输入。
系统的控制总线要进行与ADC0809的启动转换信号START、输出允许信号OE、转换结束信号EOC以及ALE等信号线的连接。启动信号START要求是一个正脉冲信号,通常可由CPU控制发出,输出允许信号OE也需要CPU提供一个正脉冲信号。在A/D转换结束时,ADC0809会发出转换结束信号EOC,通知CPU可以读取转换数据。CPU可以采取中断方式或查询方式读取转换结果。ADC0809与CPU的连接如图7-5所示,CPU控制总线的I/O写信号与片选信号经或非门后,连接到ADC0809的START与ALE引脚,这样CPU在执行OUT指令时就能对ADC0809执行写操作,产生START与ALE所需的正脉冲。图7-5ADC0809与CPU的连接
例7.1
如图7-5所示,设系统译码后使片选信号有效的端口地址为220H~227H,参考电压VREF为+5V,ADC0809的工作时钟为500kHz。如果使模拟电压信号分别从模拟输入通路2和通路4输入,分别进行一次A/D转换,转换好的数字量分别存入BL、CL寄存器,请编写实现这些功能的程序。
解参照表7-1可知IN0~IN7对应的端口地址分别为220H~227H。程序如下:MOV DX, 222H ;模拟输入通路2的端口地址OUT DX, AL ;启动A/D转换CALL DELAY ;调用延时子程序,延时约150μs,等待A/D转换完成IN AL, DX ;将A/D转换的结果读入ALMOV BL, AL ;结果存入BLMOV DX, 224H ;模拟输入通路4的端口地址OUT DX, AL ;启动A/D转换CAL DELAY ;调用延时子程序,延时约150μs,等待A/D转换完成IN AL, DX ;将A/D转换的结果读入ALMOV CL, AL ;结果存入CL
例7.2A/D转换电路如图7-5所示,请编写程序实现对图7-5中的8路模拟输入电压量的轮询输入,并把转换结果存入DI指向的存储缓冲区BUF。解程序如下:
LEA DI, BUF
;DI指向A/D转换结果的存储缓冲区
MOV CL, 8MOV DX, 220H ;模拟输入通路0的端口地址LOP:OUT DX, AL ;启动A/D转换
CALLDELAY
;调用延时子程序,延时约150μs,等待A/D转换完成INAL, DX ;将A/D转换的结果读入ALMOV[DI],AL ;结果存入DI指向的缓冲区
INCDI ;DI指向缓冲区下一个单元
INC DX
;DX为下一个模拟输入通路的端口地址
DEC CLJNZ LOP
例7.1和例7.2实现的A/D转换并没有对A/D转换结束信号EOC进行处理,而是采用软件延时的方法处理A/D转换。例7.3
设在8086/8088系统中ADC0809与系统的连接如图7-6所示,请利用A/D转换结束信号EOC作为中断请求信号,采用中断方式把从IN7输入的模拟量转换成数字量后存入BUFFER存储单元。设经译码器选中ADC0809工作的端口地址为220H~227H。
解
CPU经译码器选中ADC0809工作的端口地址为220H~227H,从图7-6可知,当CPU对端口地址为220H~227H进行写操作时,可以启动ADC0809工作;当CPU对端口地址为220H~227H进行读操作时,可以读取ADC0809的转换结果。ADDA~ADDC对应连接至地址总线的A0~A2,只有当CPU访问220H~227H端口,并且对ADC0809进行读/写操作时,ADDA~ADDC上的地址信号才有意义,IN7的有效地址为227H。A/D转换结束信号EOC连接系统的中断请求线IRQ2,图7-6ADC0809以中断方式与CPU的连接
当A/D转换结束信号EOC有效时,会经过IRQ2向CPU提出中断请求。在8086/8088系统中,IRQ2的中断类型号是0AH(请参阅第3章的表3-2),可以据此设置中断矢量。程序中采用把中断服务程序的入口地址直接存入中断矢量表的方法设置中断矢量,并且由于IRQ2是为用户保留的中断,因此在程序结束处没有再采取措施恢复原系统的中断矢量。DATASEGMENTBUFFERDB? ;定义存放结果的缓冲区DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX, DATA MOV DS, AX CLI ;关中断
MOV AX, 0 MOV ES, AXMOV DI,4*0AH
;DI获得IRQ2(0AH号)的中断矢量在内存中;的地址
MOV AX, OFFSETADCINT
;中断服务程序的入口地址的地址偏移量
MOV ES:[DI],AX
;在中断矢量表中设置中断服务程序入口地址;的偏移量
MOV AX,SEGADCINT
;中断服务程序入口地址的段地址 INC DI INC DI MOV ES:[DI],AX
;在中断矢量表中设置中断服务程序入口地址;的段地址
MOV SI, OFFSETBUFFER
;设置存放结果的存储单元地址MOVDX, 227H ;选择模拟通道IN7 OUT DX, AL ;发出启动转换信号
STI ;开中断
HLT ;等待中断
MOV AH, 4CH INT 21H ;程序结束ADCINT:CLI ;中断服务程序入口,关中断
MOV DX, 227H ;选择模拟通道IN7 IN AL, DX ;输入转换结果
MOV [SI], AL ;转换结果存入存储单元
MOV AL, 20H OUT 20H, AL ;发中断结束命令
STI ;开中断
IRET ;中断返回CODE ENDS END START2. ADC0809经8255A与系统的连接
ADC0809芯片通过Intel8255A与PC总线连接的方法如图7-7所示。图7-7ADC0809通过8255A与系统的连接Intel8255A的端口A作为8位数据的输入口,8255A的D7~D0连接系统的数据总线,ADC0809转换后生成的数字量经D7~D0送往8255的PA7~PA0。待转换的模拟信号从ADC0809的IN7~IN0输入。8255A的端口地址374H~377H由地址总线译码后产生。8255A的PC4~PC6输出,与ADDA、ADDB和ADDC相连,用来选择ADC0809模拟输入通路。
例7.4
如图7-7所示的电路构成8路模拟量输入采集系统,设有8路模拟量输入信号,信号电压规定在0~5V的范围内,分别从IN0~IN7输入。要求从0通路开始,顺序把8个通路输入的模拟量转换成数字量,存入BUF开始的存储单元中。要求以查询传送方式工作。解程序如下:;8255A工作于方式0,端口A和端口C的低4位输入,端口C的高4位输出
DATASEGMENTBUFDB8DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX, DATA MOV DS, AXMOVAL, 10010001B
;8255A的端口A输入,PC7~PC4输出,;PC3~PC0输入
MOV DX, 377H ;8255A控制字寄存器地址
OUT DX, AL MOV DI, OFFSETBUF
;设置存储单元首地址MOV CX, 8 ;模拟通路个数
MOV AL, 0H
;设定开始转换的模拟通路IN0的地址
LP0:PUSHAL ;保护转换的模拟通路地址ORAL, 80H ;选择模拟通道,且发出启动转换信号;(PC7=1) MOV DX,376H ;端口C地址
OUT DX, AL AND AL, 7FH OUT DX, AL ;启动脉冲的下降沿(PC7=0)LP1:INAL,DX ;从端口C读取数据
ANDAL, 00000l00B
;检查PC2,确定EOC电平是否变低
JZLP1 ;EOC未变低,循环等待
LP2:IN AL, DX ;变低,再读端口C AND AL, 00000100B
;根据PC2检查EOC电平是否变高
JNZ LP2 ;EOC未变高,循环等待
MOV DX, 374H ;端口A地址
INAL, DX ;EOC变高,转换结束,读入数据MOV[DI], AL ;存入BUF存储单元POPAL ;恢复当前转换的模拟通路地址ADDAL, 00010000B ;下一个模拟通路地址INCDI ;修改存储单元地址指针LOOPLP0 ;CX-1≠0,则转换下一个模拟通路MOVAH, 4CHINT21HCODEENDS END START
程序中通过使PC7先后为1和0产生START启动信号所需的正脉冲,正脉冲的宽度可参考时序图要求予以考虑。EOC是A/D转换结束信号,是一个负的方波,由高电平变为低电平表示A/D转换开始,整个转换过程中保持低电平,所以第一次根据EOC判断A/D转换是否开始;EOC由低电平再变到高电平,表示A/D转换结束,所以第二次再根据EOC判断A/D转换是否结束。先后要进行两次判断,同时还要考虑电路中EOC与PC2之间连有非门对电平的影响。7.1.416位模/数转换芯片ADC1143简介
1. ADC1143功能结构模/数(A/D)转换芯片有8位、10位、12位、16位等,一般来说,位数越多,精度越高。ADC1143是32脚DIP封装的逐次逼近式16位高精度A/D转换器,其内部结构如图7-8所示。图7-8ADC1143内部结构ADC1143的各引脚功能简述如下。Vx1、Vx2、Vx3:都是模拟电压输入端,但模拟电压输入范围随不同的连接而不同。Va+、Va-:分别为正负模拟电压输入端。Vd:数字电路电压输入端。D15~D0:16位并行数字量输出端。:二进制补码输出端,内部有数据锁存功能,但不是三态输出。SO:串行输出端,每位宽度为一个时钟周期。RO:+10V基准电压输出端。
RI:基准电压输入端,如果使用片内基准电压源,则可用一个100Ω的精密电位器把RI和RO相连,以便于增益校准。
OS:偏移校正输入端,用于0输出校正。
TR:启动A/D转换信号输入端,启动脉冲宽度应不小于1μs。ST:A/D转换状态输出端,可用于判断转换是否结束,中断方式中可作为中断请求信号。
CO:内部时钟输出引线。
AG:模拟地。
DG:数字地。2. ADC1143在计算机系统中的应用图7-9是ADCl143在计算机系统中的使用方法。该电路中使用8255A作为ADC1143与CPU之间的接口。图7-9ADCl143与CPU的连接
由于ADC1143是单路A/D转换器,因此处理多路模拟信号输入时需要使用外接模拟多路转换开关,图中使用了集成电路芯片MC14051。MC14051是CMOS8通道模拟多路转换器。图中使用了高速采样保持放大器AD346。采样保持器的作用是对输入的模拟信号进行保持,辅助A/D转换器工作,以减小误差。
ADC1143的输出具有数据锁存功能,但是没有三态控制功能,所以要使用两片三态缓冲器74LS244。7.2数/模(D/A)转换7.2.1数/模转换的工作原理数字量是由数字代码按位组合起来表示的,每一个数位都有其不同的权值。把数字量转换成模拟量的基本思想是:先把每一位数字代码根据其权值转换成相应的模拟分量,然后将各模拟分量相加,得到的总和就是与数字量对应的模拟量。例如:
1011B=1×23+0×22+1×21+1×20=11
这就是D/A转换的基本思想(式中二进制数各位的权值分别为23、22、21、20)。
D/A转换器主要由逻辑电路、电子开关、产生权电流或权电压的电阻网络、基准电压以及电压或电流放大器等部分组成,如图7-10所示。图7-10D/A转换器的基本组成D/A转换器具体实现转换的部分主要包括:电子开关、电阻网络和基准电压三部分。根据电阻网络的不同,D/A转换器可分为权电阻解码D/A,R-2R电阻解码网络D/A等。其中,R-2R电阻解码网络D/A转换器是一种被广泛使用的D/A转换器,这种D/A转换器反映了一般D/A转换器的基本工作原理。图7-11R-2R电阻解码网络D/A转换原理
以4位R-2R电阻解码网络D/A转换为例,其基本原理如图7-11所示。图7-11中4位二进制数D3、D2、D1、D0,每一位二进制数对应一位电子开关,当该位二进制数为“1”时,与该位对应的电子开关经电阻连接到参考电压VREF端;当该位二进制数为“0”时,电子开关接地。为简便起见,假设VREF=16V,根据电路原理分析可知:当D3=1,D2=D1=D0=0时,Vout=VREF/2=8V;当D3=0,D2=2,D1=D0=0时,Vout=VREF/4=4V;当D3=D2=0,D1=1,D0=0时,Vout=VREF/8=2V;当D3=D2=D1=0,D0=1时,Vout=VREF/16=1V。根据线性网络的叠加原理,该R-2R网络的输出电压为:
经分析可知:当D3=D2=D1=D0=1时,可得到最高的输出电压15V;当D3=D2=D1=D0=0时,可得到最低的输出电压0V。对于n位的D/A转换器,有一个n位的电子开关,D/A转换器的输出电压满足下式:7.2.2数/模转换器的主要技术指标数/模(D/A)转换器的主要技术指标反映了D/A转换器的性能,主要包括以下四种。
1.分辨率分辨率是指D/A转换器可输出的模拟量的最小变化量,也就是最小输出电压(输入的数字量只有D0=1)与最大输出电压(输入的数字量所有位都等于1)之比。8位D/A的分辨率为=(用百分数表示约为0.392%)
设D/A满量程输出电压为5V。8位D/A所能分辨的最小电压为
5×0.392%=19.6mV2.转换精度转换精度是指模拟输出信号的实际值与理论计算值的偏差,通常用百分数来表示。它反映了D/A转换器把数字量转换为模拟量的准确程度。
3.建立时间建立时间是指从输入待转换的数字量开始,到输出的模拟信号幅度稳定在额定值上下1/2LSB时所需的时间。4.输出电平范围输出电平范围是指当D/A转换器可输出的最低电压与可输出的最高电压的电压差值。常用的D/A转换器的输出范围是0~+5V,0~+10V,-2.5~+2.5V,-5~+5V,-10~+10V等。7.2.3数/模接口芯片DAC0832
数/模接口芯片种类很多,有通用型、高速型、高精度型等,转换位数有8位、12位、16位等,输出模拟信号有电流输出型和电压输出型,在应用中可根据实际需要进行选择。DAC0832是采用CMOS工艺制造的8位电流输出型D/A转换器,分辨率为8位,建立时间为1μs,功耗为20mW,数字输入电平为TTL电平。1. DAC0832的结构
DAC0832的结构如图7-12所示。它由一个8位的输入寄存器、一个8位的DAC寄存器和一个8位D/A转换器以及控制电路组成。D/A转换器中使用的是R-2R电阻网络。DAC0832中的输入寄存器和DAC寄存器可以分别控制,从而可以根据需要接成两级输入锁存的双缓冲方式,一级输入锁存的单缓冲方式,或接成完全直通的无缓冲方式。图7-12DAC0832内部结构2. DAC0832的引脚功能
DAC0832是有20个引脚的双列直插式芯片,其引脚排列如图7-13所示。20个引脚中包括与CPU系统连接的信号线,与外设连接的信号线以及其它引线。图7-13DAC0832的引脚1)与CPU系统相连的信号线D7~D0:8位数据输入线,用于数字量输入。ILE:输入锁存允许信号,高电平有效。:片选信号,低电平有效,与ILE结合决定是否有效。:写命令l,当为低电平,且ILE和有效时,把输入数据锁存入输入寄存器;、ILE和三个控制信号构成第一级输入锁存命令。
:写命令2,低电平有效,该信号与配合,当也有效时,可使输入寄存器中的数据传送到DAC寄存器中。:传送控制信号,低电平有效,与配合,构成第二级寄存器(DAC寄存器)的输入锁存命令。2)与外设相连的信号线
IOUT1:DAC电流输出1,它是输入数字量中逻辑电平为“1”的所有位输出电流的总和。当所有位逻辑电平全为“1”时,IOUT1为最大值;当所有位逻辑电平全为“0”时,IOUT1为“0”。
IOUT2:DAC电流输出2,它是输入数字量中逻辑电平为“0”的所有位输出电流的总和。
RFB:反馈电阻,为外部运算放大器提供一个反馈电压。RFB也可由外部提供。3)其它引线
VREF:参考电压输入端,要求外部提供精密基准电压,VREF一般在-10~+10V之间。
VCC:芯片工作电源电压,一般为+5~+15V。
AGND:模拟地。
DGND:数字地。模拟地要连接模拟电路的公共地,数字地要连接数字电路的公共地,最后把它们汇接为一点接到总电源的地线上。为避免模拟信号与数字信号互相干扰,两种不同的地线不可交叉混接。7.2.4DAC0832与系统的接口及应用
1. DAC0832与CPU的接口
DAC0832与CPU接口时要进行数据总线、地址总线和控制总线的连接。对于8位数据总线的CPU(如Intel8088),DAC0832的数据线D7~D0可直接连至CPU的数据总线。在图7-14的电路中,VCC、VREF和ILE都连接到+5V电源,从而使参考电压VREF为+5V,使ILE保持有效的高电平。图7-14DAC0832与CPU的连接
例7.5
利用图7-14所示的DAC电路产生10个对称方波,波形可通过示波器查看。假设使有效的译码地址为2A0H。解程序如下:
MOV CX, 10 ;循环次数
MOV DX, 2A0H ;使有效的地址LOP:MOVAL, 0;产生0电平的数字量
OUT DX, AL ;让DAC进行D/A转换
CALL DELAY ;延时子程序
MOV AL, 0FFH ;产生高电平的数字量
OUT DX, AL ;让DAC进行D/A转换
CALL DELAY ;延时子程序
LOOP LOP ;循环
MOV AL, 0 ;产生0电平的数字量
OUT DX, AL ;让DAC进行D/A转换,恢复0电平2. DAC0832经8255A与CPU的接口经8255A与CPU连接时,DAC0832将不直接与CPU的数据总线、地址总线和控制总线进行连接。数据总线、地址总线和控制总线应完成的功能将由8255A来实现。DAC0832经8255A与CPU的连接见图7-15。图7-15DAC0832经8255A与CPU的连接
例7.6
如图7-15所示电路,设8255A的端口地址为218H~21BH。利用该电路可以使D/A转换器产生多种波形,可以通过示波器来查看。请根据该电路编写一个产生锯齿波的程序。
解产生锯齿波的方法是把从0开始逐渐递增的数据送到D/A转换器,逐个转换,直到数据增至0FFH。数据再从0开始,重复上述过程,就可得到周期性的锯齿波电压。用这个方法得到的锯齿波,从0到最大值,中间要分为256个小台阶,但从宏观上看,就是一个线性增长的电压波形。当数据为0时,D/A转换电路输出最低电压;当数据为0FFH时,D/A转换电路输出最高电压。实现锯齿波的程序如下:
;8255A初始化
MOV DX,21BH
;8255A的控制字寄存器的端口地址
MOV AL,80H
;8255A的方式字,端口A方式0,输出,端口B
;方式0,输出
OUT DX,AL
;端口B发控制信号,设置DAC0832工作于完全直通的无缓冲方式
MOV DX,219H ;8255A的端口B地址MOVAL,00010000B
;置DAC0832为直通工作方式
OUT DX,AL
;实现锯齿波的循环
MOV DX,218H ;8255A的端口A地址
MOV AL,0H ;输出数据从0开始LOP:OUTDX,AL ;由DAC转换成模拟电压
CALL DELAY ;延时子程序
INC AL
;输出数据加1,可使模拟电压上升
JMP LOP
;AL将从0H~0FFH,0H~0FFH,…,循环变化
该程序实现的波形如图7-16所示。程序中控制延时子程序的延时时间,可以改变上升电压曲线的斜率。无论要产生什么波形都要通过改变输入的数字量的值以及延时时间来实现。图7-16生成的锯齿波波形
例7.7
如图7-15所示电路,仍设8255A的端口地址为218H~21BH。设提供给DAC0832的基准电压为5V。要求产生最小值为1V,最大值为2.5V的锯齿波波形,请编写程序。
解如例7.6所示,当数据为0时,D/A转换电路输出最低电压;当数据为0FFH时,D/A转换电路输出最高电压。数据从0到最大值,中间要分为256个小台阶。基准电压为5V,要生成的输出波形电压在1~2.5V之间,因此实际选用的数据值n可用下式计算:n=×256因此对于1V电压,有n=×256=51对于2.5V电压,有:n=×256=128编写程序如下:
MOVDX, 21BH
;8255A的控制字寄存器的端口地址
MOVAL,80H
;8255A的方式字,端口A方式0,输出,端口B
;方式0,输出
OUTDX, AL
;端口B发控制信号,设置DAC0832工作于完全直通的无缓冲方式MOV DX, 219H ;8255A的端口B地址
MOV AL, 00010000B
;置DAC0832为直通工作方式
OUT DX, AL
;实现锯齿波的循环
MOV DX, 218H
;8255A的端口A地址LOP:MOVAL, 51
;输出数据从51开始LOP1:OUTDX, AL ;由DAC转换成模拟电压
CALL DELAY ;延时子程序
INC AL ;输出数据加1,可使模拟电压上升
CMP AL, 129 ;是否超过128 JGE LOPJMP LOP1 ;AL将在51~128之间循环变化7.3实
验7.3.1
模/数转换器实验本章实验的详细实验环境请参阅附录A。
1.实验目的了解模/数转换的基本原理,掌握ADC0809的使用方法。
2.实验内容
(1)实验电路原理图如图7-17所示。通过实验台左下角电位器RW1输出0~+5V直流电压送入ADC0809通道0(IN0),利用DEBUG的输出命令启动A/D转换器,用输入命令读取转换结果,验证输入电压与转换后数字的关系。
图7-17ADC0809模/数转换电路启动IN0开始转换: MOVDX,0298HOUT DX,AL
读取转换结果:IN AL,DX(2)编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用十六进制数)。
(3)编程实现低频交流信号波形显示,将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号。(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。3.编程提示
(1)ADC0809的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国电力红外加热系统数据监测研究报告
- 2025至2030年中国环氧树脂钻石胶数据监测研究报告
- 政府征收资产合同范本
- 现代门锁控制系统的智能化管理与数据安全保障
- 2025至2030年中国牡蛎碳酸钙原料药数据监测研究报告
- 2025至2030年中国灌装机清洗系统数据监测研究报告
- 撤资退股合同范本
- 礼品供应采购合同范本
- 科技创新对现代医疗物资管理的影响
- 年产280亿粒空心胶囊厂房扩建项目可行性研究报告模板-立项备案
- 初中语文短语练习(附参考答案)
- 电影篇(二)蒙太奇课件
- MBTI职业性格测试(可直接使用)
- 2023年副主任医师(副高)-推拿学(副高)考试参考题库有答案
- 《旅游规划与开发》马勇教授
- 网络安全技术与应用PPT完整全套教学课件
- 生产车间管理制度办法
- 12j912-2常用设备用房
- 质量奖与自评报告
- 机电企业管理导论第1章课件
- 水平一足球全册教案
评论
0/150
提交评论