实验七 DA与AD转换

时间:2025-07-05

实验七D/A与A/D转换

专业:微电子学姓名:

【实验目的】

1.学习D/A转换的基本原理和D/A转换芯片DAC0832的性能及编程方法。 2.了解单片机系统中扩展D/A转换芯片的基本方法。 3.学习A/D芯片ADC0809的转换性能及编程方法。 4.了解A/D转换芯片与写单片机的接口方法。 5.通过实验掌握单片机进行数据采集的方法。

【实验原理】

1. D/A 转换是把数字量转换成模拟量的变换,从D/A 输出的是模拟信号。实验程序一是通

过在D/A的输入端送入有一定规律的数字量,在输出端产生锯齿波、三角波、正弦波的

波形,通过示波器观察来直观地了解D/A的转换功能。产生锯齿波、三角波只需由A存放的数字量(送入D/A的输入寄存器)的增减来控制;要产生正弦波,较简单的方法是造一张正弦数字量的表,取值范围为一个周期,采样点愈多,精度愈高。如果电压幅值为M,D/A 转换器的位数是N 位,那么其精度计算公式为:M/(2N-1)。

图6-1 D/A转换逻辑

例如,D/A转换器的位数是8位,电压幅值为5V,则转换精度为, 5/(28-1)= 0.0196(V)

在EL-8051-III实验台上DAC0832与单片机的连接图6-1所示。

由图可以看出,输入寄存器占偶地址端口(A0=0),DAC 寄存器占较高的奇地址端口(A0=1)。两个寄存器均对数据独立进行锁存。要把一个数据通过0832输出,要经两次锁存。典型的程序如下:

MOV DPTR, #PORT

MOV A , #DATA

MOVX @DPTR,A

INC DPTR

MOVX @DPTR,A

其中,第二次写入是一个虚拟写的过程,其目的是产生一个/WR信号,启动D/A。

2.A/D转换是把模拟量转变为数字量的变换。A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。 本实验用的是ADC0809属逐次逼近法A/D转换器,是八位的A/D转换器。每采集一次需100us。实验电路如下图:

图6-2 A/D转换逻辑

ADC0809 的START 端为A/D转换启动信号,ALE 端为通道选择地址的锁存信号。实验电路中将二者相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需两条指令:

MOV DPTR, #PORT MOVX @DPTR,A

A中是什么内容是不重要的,这是一次虚拟写,其目的是产生一个/WR信号。

A/D 转换期间EOC脚(A/D 转换结束信号输出端口)为低电平,一旦转换结束时输出高电平。如果我们把EOC脚接至一个反相器的输入端,反相器的输出端就得到一个负跳变的触发信号,它正好可以用来作为8051的外中断源的边缘触发信号。

在一个数据转换完毕后,我们向ENABLE 脚送一个高电平,用以打开三态数据锁存器,就可以读出数据,因此可以使用如下指令读取A/D转换结果:

MOV DPTR, #PORT MOV A, @DPTR

【实验内容】

1. 利用DAC0832编程产生锯齿波、三角波、正弦波。三种波形轮流显示。

连线方法:0832的CS0832接CS0。输出DAOUT接示波器探头,示波器探头地线接实验板地线。

程序清单见D61.ASM。

2.A/D转换实验:用中断方法来读取AN0的输入模拟电压,通过P1口输出到LED上显示。运行程序后,读出LED上显示的数据(灯亮表示1,化为十六进制数)。用万用表测量AN0 的输入模拟电压,与读出的LED 上显示的数据 进行比较。

连线方法:,

1、0809的片选信号CS0809接CS0。

2、电位器的输出信号AN0 接ADC0809的ADIN0。 3、EOC接CPU板的INT0。 4、P1.0-P1.7连L1-L8。 程序清单见D62.ASM。

3.用查EOC电位法作上述测量,调节电位器的值进行连续不断地测量(数据不用存储),测量的数据在LED数码管上显示(两位16 进制数)。编写程序上机运行。然后,修改程序用中断法再作测量,再运行程序。

【实验程序与实验现象】

程序一

实验程序及注释:

;D61.asm

ORG 4000H LJMP MAIN

ORG 401BH LJMP DELAY

PORT EQU 0CFA0H

ORG 4100H

MAIN: MOV TMOD, #10H ; 定时器1工作在定时方式,方式1

SETB EA

SETB ET1

MOV TL1, #0AFH

MOV TH1, #3CH ; 置定时0.1S的初值

SETB TR1

DISP: MOV R1, #50H

LCALL PRG1 ; 调用产生锯齿波子程序 MOV R1, #50H

LCALL PRG2 ; 调用产生三角波子程序 MOV R1, #50H

LCALL PRG3 ; 调用产生正弦波子程序

LJMP DISP

DELAY: CLR TR1 ; 中断服务程序

MOV TL1, #0AFH MOV TH1, #3CH DEC R1 SETB TR1 RETI

;

PRG1: MOV A, #00H ; 产生锯齿波子程序开始.

LOOP: MOV DPTR, #PORT ; 输入寄存器端口地址#PORT

MOVX @DPTR, A ; 送出数据

INC DPTR ; DAC寄存器端口地址#PORT+1

MOVX @DPTR, A ; 启动转换 INC A ; 数据加1

CJNE R1, #00H, LOOP ; 计数值减到00H了么? RET ; 没有则继续产生锯齿波. ;

PRG2: MOV A, #00H ; 产生三角波子程序 LP1: MOV DPTR, #PORT ; 上升部分

MOVX @DPTR,A INC DPTR MOVX @DPTR,A INC A

CJNE A, #0FFH, LP1 MOV R2,A

LP2: MOV DPTR, #PORT ; 下降部分

MOV A, R2 MOVX @DPTR,A INC DPTR

MOVX @DPTR,A DJNZ R2, LP2

CJNE R1, #00H, LP1

RET

PRG3: MOV R2, #02H ; 产生正弦波子程序

MOV R4, #0FFH ; 一个正弦周期的数据个数 SJMP SUBDATA

LP3: MOV DPTR, #PORT

MOVX @DPTR,A INC DPTR MOVX @DPTR,A INC R2

DJNZ R4, SUBDATA MOV R4, #0FFH M …… 此处隐藏:5008字,全部文档内容请下载后查看。喜欢就下载吧 ……

实验七 DA与AD转换.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219