1、AD及DA实验报告微机原理及接口技术之AD及DA实验一实验目的:1了解A/D芯片ADC0809和D/A芯片DAC0832的电气性能;外围电路的应用性搭建及有关要点和注意事项;与CPU的接口和控制方式;相关接口参数的确定等;2了解数据采集系统中采样保持器的作用和采样频率对拾取信号失真度的影响,了解香农定理; 3了解定时计数器Intel 8253和中断控制器Intel 8259的原理、工作模式以及控制方式,训练控制定时器和中断控制器的方法,并学习如何编写中断程序。4熟悉X86汇编语言的程序结构和编程方法,训练深入芯片编写控制程序的编程能力。二实验项目:1完成05v的单极性输入信号的A/D转换,并与
2、实际值(数字电压表的测量值)比较,确定误差水平。要求全程至少10个点。2完成-5v+5v的双极性输入信号的A/D转换,并与实际值(数字电压表的测量值)比较,确定误差水平。要求全程至少20个点。3把0FF的数据送入DAC0832并完成D/A转换,然后用数字电压表测量两个模拟量输出口(OUT1为单极性,OUT2双极性)的输出值,并与计算值比较,确定误差水平。要求全程至少16个点。三仪器设备:Aedk-ACT实验箱1套(附电源线1根、通信线1根、实验插接线若干、跳线子若干);台式多功能数字表1台(附电源线1根、表笔线1付(2根)、);PC机1台;实验用软件:Windows98+LcaACT(IDE)
3、。四实验原理一)ADC0809模块原理1)功能简介A/D转换器芯片8路模拟信号的分时采集片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路转换时间为100s左右2)内部结构 ADC0809内部逻辑结构图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连。右图即为通道选择表。3)引脚功能IN7IN0模拟量输入通道IN7IN0模拟量输入通道ALE地址锁存允许信号。对应ALE
4、上跳沿,A、B、C地址状态送入地址锁存器中。START转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST.A、B、C地址线。 通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1。CLK时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号EOC转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可
5、作为中断请求信号使用。D7D0数据输出线。为三态缓冲输出形式。D0为最低位,D7为最高OE输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。Vcc +5V电源。Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V).4)转换过程连接线路后,在IN-0IN-5中输入单极性电压信号,经ADC0809芯片后由D0D7输出8位数字信号,变化范围为00HFFH,通过汇编指令传入AL寄存器中,通过单步运行调试,调节输入电压观察并记录AX的变化数值。
6、输出的8位数字信号是输入值与VREF(+5V)之间的比例,即通过该公式获得AD转换的理论值,与实验测得的数据进行比较。双极性AD转换实验同理。连接线路后,在IN-6IN-7中输入单极性电压信号,经ADC0809芯片后由D0D7输出8位数字信号,变化范围为00HFFH,通过汇编指令传入AL寄存器中,通过单步运行调试,调节输入电压观察并记录AX的变化数值。输出的8位数字信号是输入值与输出值之间有如下关系通过该公式获得AD转换的理论值,与实验测得的数据进行比较。二)DAC0832模块原理1)功能简介DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。采样频率为八位的D/A转换器件转
7、换时间为100s左右 2)内部结构 它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟量V0为: 由上式可见,输出的模拟量 与输入的数字量() 成正比,这就实现了从数字量到模拟量的转换。一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。3)引脚功能DI0DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存
8、器的写选通信号。XFER:数据传送控制信号输入线,低电平有效。WR2:为DAC寄存器写选通输入线。Iout1:电流输出线。当输入全为1时Iout1最大。Iout2: 电流输出线。其值与Iout1之和为一常数。Rfb:反馈信号输入线,芯片内部有反馈电阻.Vcc:电源输入线(+5v+15v)Vref:基准电压输入线(-10v+10v)AGND:模拟地,摸拟信号和基准电源的参考地.DGND:数字地,两种地线在基准电源处共地比较好.4)转换过程连接线路后,将要输出的8位数字信号值放入AL寄存器中,通过数据总线传到DAC0832芯片的DI0DI7输入接口,DI0为低位,DI7为高位。经过DAC0832芯
9、片采样后,在OUT1中输出单极性电压值在OUT2中输出双极性电压值,使用多功能数字表测量并记录OUT1与OUT2中的值,将数据处理并分析误差。从DAC0832原理和结构图中可以看出,数字信号的值和实际电压值并不一致,仅仅是输出值与基准值之间的一种比例关系。 单极性理论输出电压值与输入数值之间的关系如下 双极性理论输出电压值与输入值之间的关系如下 通过上述公式获得DA转换的理论值,与实验测得的数据进行比较。五:实验接线本实验由实验箱提供现成的电路模块,需手工连接的线路如下:实验1:C4模块和B5模块作如图1所示连接:(图1)单极性信号AD变换接线图模拟输入部分有8路多路开关,可由3位地址输入A0
10、、A1、A2的不同组合来选择(这三条地址信号可所存)。主体部分是采用逐次逼近式的A/D转换电路,由CLK信号控制内部电路的工作,由START信号控制转换开始。转换后的数字在内部锁存,然后输出。其中START为启动命令,高电平有效。由它启动以上芯片的A/D转换过程。当转换完成,输出信号EOC低电平有效。OE为输出允许信号,高电平有效。当在此输入端共给一个有效信号,打开输出三态缓冲器,把转换后的结果输至数据总线。ADC0809由接口A1结+5V与地实现单极性连接,ADC0809是八位模数转换器,输出信号为(00000000-11111111),将输出信号转换为十进制*5/255即为模拟信号的测量值
11、,通过比较,计算误差。实验2:C4模块和B5模块作如图2所示连接: (图2)双极性信号AD变换接线图ADC0809由接口A6或A7接+5V与-5V实现双极性连接,ADC0809是八位模数转换器,输出信号为(00000000-11111111),将输出信号转换为(十进制*10/255-10)即为模拟信号的测量值,通过比较,计算误差。实验3:实验电路不需要另外接线,只需用电压表测B1模块的OUT1和OUT2的输出电压值,如图3所示。 (图3)数据的DA变换实验接线图 DAC0832工作过程:1 CPU执行输出指令,输出8位数据给DAC0832;2 在CPU执行输出指令的同时,使ILE、/CS、/W
12、R1三个控制信号端都有效,8位数据锁存在8位输入寄存器中;3 当/WR2、/XFER两个控制信号端都有效时,8位数据再次被锁存到8位DAC寄存器,这时8位D/A转换器开始工作,8位数据转换为相对应的模拟电流,从Iout1和Iout2输出。依次改变输入信号,分别测量单极性和双极性电压。由计算可得输出准确值,与测量值相比较即可得出误差。六实验步骤:1单极性输入信号的A/D转换:按线:按 六/实验1 接线编程:程序结构设计-程序框图设计-代码编辑-编译-链接程序清单CODE SEGMENTASSUME CS:CODESTART: MOV DX,00A1HMOV AL,01HLOP: OUT DX,A
13、LCALL DELAYIN AL,DXJMP LOPDELAY PROCMOV CX,2NOPNOPLOOP $RETDELAY ENDPCODE ENDSEND START调试:加载-调试运行:运行程序改变输入信电平值,记录转换结果(数据)结果: y=5x/255序号转换数据转换(计算)值实测值误差10019H0.4900.496-1.21%20034H1.0201.0150.49%3004AH1.4511.506-3.65%40067H2.0202.0040.80%5007FH2.4902.493-0.12%6009BH3.0393.0031.20%700B3H3.5103.5070.08
14、%800CCH4.0003.9980.05%900E4H4.4714.4700.02%1000F1H4.7254.7080.36%数据曲线对比图(系列1:计算值,系列2:实测值)2双极性输入信号的A/D转换:按线:按 六/实验2 接线警告:如果双极性信号连在ADC的单极性输入端(IN0IN5)很可能烧毁芯片。编程:程序结构设计-程序框图设计-代码编辑-编译-链接程序清单CODE SEGMENTASSUME CS:CODESTART: MOV DX,00A6HMOV AL,01HLOP: OUT DX,ALCALL DELAYIN AL,DXJMP LOPDELAY PROCMOV CX,2NO
15、PNOPLOOP $RETDELAY ENDPCODE ENDSEND START调试:加载-调试运行:运行程序改变输入信电平值,记录转换结果(数据)结果: y=10x/255-5序号转换数据转换(计算)值实测值误差10000H-5.000-4.725-0.27520013H-4.255-3.982-0.2433002BH-3.314-3.025-0.28940043H-2.373-2.083-0.2905005FH-1.275-1.047-0.22860078H-0.294-0.020-0.27470092H0.7251.001-0.276800ACH1.7452.007-0.262900C
16、5H2.7253.016-0.2911000DFH3.7454.006-0.2611100F2H4.6474.723-0.076数据曲线对比图(系列1:计算值,系列2:实测值)3数据的D/A转换:按线:不用接线。按线:按 六/实验2 接线警告:如果双极性信号连在ADC的单极性输入端(IN0IN5)很可能烧毁芯片。编程:程序结构设计-程序框图设计-代码编辑-编译-链接程序清单CODE SEGMENTASSUME CS:CODESTART: MOV DX,0000HMOV AL,00HLOP: OUT DX,ALCALL DELAYADD AL,11H JMP LOPDELAY PROCMOV C
17、X,2NOPNOPLOOP $RETDELAY ENDPCODE ENDSEND START调试:加载-调试运行:运行程序改变输入的数据,记录转换后OUT1口和OUT2口的输出电平值。结果:序号输入数据转换(计算)值实测值误差OUT1口OUT2口OUT1口OUT2口OUT1口OUT2口100H0.000-5.0000.001-5.121-0.0010.121211H0.333-4.3330.320-4.4440.0130.111322H0.667-3.6670.637-3.7750.0300.108433H1.000-3.0000.954-3.1070.0460.017544H1.333-2.
18、3331.272-2.4370.0610.104655H1.667-1.6671.590-1.7680.0770.101766H2.000-1.0001.907-1.1100.0930.110877H2.333-0.3332.224-0.4310.1090.098988H2.6670.3332.5420.2430.1250.0901099H3.0001.0002.8590.9120.1410.088110AAH3.3331.6673.1761.5800.1570.087120BBH3.6672.3333.4932.2470.1740.086130CCH4.0003.0003.8112.9160
19、.1890.084140DDH4.3333.6674.1283.5840.2050.083150EEH4.6674.3334.4454.2510.2220.082160FFH5.0005.0004.7634.9180.2370.082OUT1口数据曲线对比图(系列1:计算值,系列2:实测值) OUT2口数据曲线对比图(系列1:计算值,系列2:实测值)六误差分析与实验结论一)误差分析:1单极性输入信号的A/D转换的误差用的而是百分数表示,是因为单极性信号是一直增加的,用百分数相对误差表示结果更清新,可以看到误差相当小,从曲线图中也可看到两条曲线基本上重合,基本可以忽略不计,但是双极性输入信号的A
20、/D转换和数据的D/A转换的误差用的是数值差来表示,是因为测得数据从负增加到正,要经过0,用百分数误差表示结果会很大,从曲线图中可以看到他们的曲线也基本重合,误差不大。2由于实验设备不精确而引起的系统误差,例如:实验设备制作不精确,使用时间过长引起的设备老化,而引起的误差。比如实验2中的误差都比较大,但是误差读是差不多的,这就很可能是设备的原因,设备输出的电压比标准的差0.2。3读数不精确引起的偶然误差。在电压表读数未稳定时读数,或者由于电压表精确度不够,而造成的读数误差。4在处理数据时,由于取值以及计算精确度取值不够而造成的误差。5试验线路连接不稳定,或接触点电阻引起的误差。二)实验结论:在误差允许的范围内,ADC0809将0-5V的单级型电压或-5-5V的双极型电压转换为相应的八位二进制输出。在误差允许范围内,DAC0832能将八位二进制数转化为相应的双极型和单级型电压输出。七实验总结 经过ADC0809模数转换和DAC0832数模转换实验,1.对数模模数转换电路的原理有了深入的了解,模数转换电路是由逐渐逼近的方式完成转换的,数模转换是由分压电路实现的。2.对汇编语言的编程的应用,有了更熟练的掌握,实验中三个汇编程序编程。3.对于实验接口电路有了深入的了解,改变芯片需要改变相应的接口。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1