(C)在程序中使用一条MOVX指令输出数据 (D)在程序中使用两条MOVX指令输出数据C
4、在应用系统中,芯片内没有锁存器的D/A转换器,不能直接接到80C51的P0口上使用,这是因为 ( B )
(A)P0口不具有锁存功能 (B)P0口为地址数据复用
(C)P0口不能输出数字量信号 (D)P0口只能用做地址输出而不能用做数据输出
8-3 填空题
1、DAC0832工作于 直通方式时,一般将 直接接地。
2、D/A转换器根据输出电压的极性,分为 单极性和 双极性两种极性输出。
3、DAC0832通过相应的控制信号可使其工作在三种不同的方式,即单缓冲方式方式 、双缓冲方式方式与直通方式。
4、D/A转换器一般由 输入寄存器、 DAC寄存器 和 D/A转换器 三大部分组成。
8-4 问答题与综合题
1、简述D/A转换器的主要技术指标。
2、在1个由89C51单片机与1片ADC0809组成的数据采集系统中,ADC0809的8个输入通道的地址为7FF8H~7FFFH,试画出有关接口电路图,并编写出每隔1分钟轮流采集1次8个通道数据的程序,共采样50次,其采样值存入内RAM20H单元开始的存储区中。 3、ADC0816与ADC0808/0809基本相似,但ADC0816为16个模拟输人通道。用 ADC0816循环采集16路模拟量,各采集100个数据。试设计采集(查询法)与存储的MCS-51 单片机应用系统。画出接口电路并写出控制程序。 1、答:
D/A转换器的主要性能指标有:
(1)分辨率:单位数字量所对应模拟量增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。它确定了D/A产生的最小模拟量变化,也可用最低位(LSB)表示。
(2)精度:精度是指D/A转换器的实际输出与理论值之间的误差,它是以满量程VFS的百分数或最低有效位(LSB)的分数形式表示。
(3)线性误差:D/A转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差。即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差。常以LSB的分数形式表示。
(4)转换时间TS(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。
2、解:
0~7通道地址:0FEF8h~0FEFFH ORG 0000H LJMP MAIN ORG 0003H LJMP I_INT0 ORG 000BH LJMP I_T0
ORG 050H
MAIN: MOV SP,#60H SETB IT1 SETB ET0 SETB EX1 SETB EA
MOV TMOD,#00000010B MOV TH0,#06H MOV TL0,#06H MOV R4,#240 MOV R5,#250 MOV R7,#8 MOV R6,#50 MOV R0,#20H SETB TR0 SJMP $
I_T0: DJNZ R4,GORET MOV R4,#240 DJNZ R5,GORET MOV R5,#250 MOV DPTR,#0FEF8H MOVX @DPTR,A DEC R7 GORET: RETI
I_INT0: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0
MOVX @DPTR,A DJNZ R7,GORETI MOV R7,#8
DJNZ R6,GORETI CLR TR0 CLR EX1 GORETI: RETI
3、解:MCS-51单片机应用系统还要扩展一片SRAM 6116,用来存放采集的1600个数据。用查询法采集与存储1600个数据的MCS-51单片机的接口电路如下图所示。图中,
ADC0816 16个通道的启动与锁存模拟通道地址分别为BF70H~BF7FH,查询转换是否结束地址为BF70H~BF7FH中的任一个,读取转换结果的地址为BFBFH。从中可以看出,启动、查询与锁存模拟通道的地址仅低8位不同,在P2口锁存高8位地址后,便可以用R0和R1间接址。6116的地址范围为7800H-7FFFH。
采集程序如下:
MOV DPTR,#7800H ;设置外部RAM数据区首址 MOV Rl, #0BFH ;设置读取A/D转换结果的地址 MOV P2, #0BFH ;设置ADC0816端口地址高8位 MOV R7, #100 ;设置外循环计数器 LOOP0:PUSH DPL ;DPTR进栈 PUSH DPH
MOV R0,#70H ;AD转换IN0通道地址 MOV R6,#16 ;设置内循环计数器
LOOP1: MOVX @R0,A ; 启动转换,锁存模拟通道地址 WT: MOVX A,@R0 ;查询转换是否结束 JB ACC.0,DONE ;等待转换结束 SJMP WT
DONE: MOVX A,@R1 ;读取转换结果 MOVX @DPTR,A ;存转换结果
MOV A,DPL ;DPTR+100指下一通道转换结果存放地址 ADD A,#100 MOV DPL,A MOV A,DPH ADDC A,#0 MOV DPH,A
INC R0 ;指向下一模拟通道地址 DJNZ R6,LOOP1
POP DPH ;DPTR出栈 POP DPL
INC DPTR ;各通道转换结果存放地址增1 DJNZ R7,LOOP0 SJMP $