当前位置:文档之家› 数模模数转换实验报告

数模模数转换实验报告

数模模数转换实验报告
数模模数转换实验报告

数模模数转换实验报告

一、实验目的

1、了解数模和模数转换电路的接口方法及相应程序设计方法。

2、了解数模和模数转换电路芯片的性能和工作时序。

二、实验条件

1、DOS操作系统平台

2、数模转换芯片DAC0832和模数转换器ADC0809芯片。

三、实验原理

1、数模转换:

(1)微机处理的数据都是数字信号,而实际的执行电路很多都是模拟的。因此微机的处理结果又常常需要转换为模拟信号去驱动相应的执行单元,实现对被控对象的控制。这种把数字量转换为模拟量的设备称为数模转换器

(DAC),简称D/A。

(2)实验中所用的数模转换芯片是DAC0832,它是由输入寄存器、DAC 寄存器和D/A 转换器组成的CMOS 器件。其特点是片内包含两个独立的8 位寄存器,因而具有二次缓冲功能,可以将被转换的数据预先存在DAC 寄存器中,同时又采集下一组数据,这就可以根据需要快速修改DAC0832 的输出。

2、模数转换:

(1)在工程实时控制中,经常要把检测到的连续变化的模拟信号,如温度、压力、速度等转换为离散的数字量,才能输入计算机进行处理。实现模拟量到数字量转换的设备就是模数转换器(ADC),简称A/D。

(2)模数转换芯片的工作过程大体分为三个阶段:首先要启动模数转换过程。其次,由于转换过程需要时间,不能立即得到结果,所以需要等待一段时间。一般模数转换芯片会有一条专门的信号线表示转换是否结束。微机可以将这条信号线作为中断请求信号,用中断的方式得到转换结束的消息,也可以对这条信号线进行查询,还可以采用固定延时进行等待(因为这类芯片转换时间是固定的,事先可以知道)。最后,当判断转换已经结束的时候,微机就可以从模数转换芯片中读出转换结果。

(3)实验采用的是8 路8 位模数转换器ADC0809 芯片。ADC0809 采用逐次比较的方式进行A/D 转换,其主要原理为:将一待转换的模拟信号与一个推测信号进行比较,根据推测信号是大于还是小于输入信号来决定增大还是减少该推测信号,以便向模拟输入逼近。推测信号由D/A 转换器的输出获得,当推测信号与模拟信号相等时,向D/A 转换器输入的数字就是对应模拟信号的数字量。ADC0809 的转换时间为64 个时钟周期(时钟频率500K 时为128S)。分辨率为8 位,转换精度为±LSB/2,单电源+5V 供电时输入模拟电压范围为04.98V。

四、实验内容

1、把DAC0832 的片选接偏移为10H 的地址,使用debug 命令来测试DAC0832

的输出,通过设置不同的输出值,使用万用表测量Ua 和Ub 的模拟电压,

检验DAC0832 的功能。选取典型(最低、最高和半量程等)的二进制值进

行检验,记录测得的结果。实验结果记录如下:

2、ADC0809 功能检测:将实验箱的直流信号输出接到ADC0809 的IN-0 端口,

编程不断将模数转换的结果输出到屏幕上,设置一定的延时让数据每秒钟

更新一次,以免屏幕更新太快无法读取数据。实验代码如下:

STACK SEGMENT PARA STACK

DW 128H DUP(0)

STACK ENDS

CODE SEGMENT

ASSUME CS: CODE, SS:STACK

START:

MOV AX,CS

MOV DS,AX

RE:

MOV DX,0E498H

OUT DX,AL

CALL DELAY

PUSH AX

PUSH CX

IN AL,DX

MOV CL,4

SHR AL,CL

CALL DISP

POP CX

POP AX

IN AL,DX

CALL DISP

MOV DL,0DH INT 21H

MOV DL,0AH INT 21H

MOV AH,1

INT 16H

JNZ EXIT

JMP RE

EXIT:

MOV AH,4CH INT 21H

DELAY PROC NEAR

PUSH AX

PUSH CX

PUSH DX

MOV AH,86H

MOV CX,0FH

MOV DX,4240H

INT 15H

POP DX

POP CX

POP AX

RET

DELAY ENDP

DISP PROC NEAR

PUSH DX

AND AL,0FH MOV DL,AL CMP DL,9 JLE NUM

ADD DL,7 NUM:

ADD DL,30H MOV AH,02H INT 21H

POP DX

RET

DISP ENDP

CODE ENDS

END START

3、编写一个简单的电子琴程序,通过键盘输入17,控制扬声器的输出为C 调的do 到si。按其它键程序退出。实验代码如下:

STACK SEGMENT PARA STACK

DW 128H DUP(0)

STACK ENDS

DATA SEGMENT

SIN DB 080H,096H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDH

DB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,096H

DB 080H,066H,04EH,038H,025H,015H,009H,004H

DB 000H,004H,009H,015H,025H,038H,04EH,066H

TIME DB 077H,06AH,05FH,059H,050H,047H,03FH

NUM DB (?)

DATA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA, SS:STACK

START:

MOV AX,DATA

MOV DS,AX

RE:

MOV AH,07H

INT 21H

SUB AL,31H

CMP AL,0

JL EXIT

CMP AL,6

JG EXIT

MOV NUM,AL

MOV CX, 60

LP:

MOV SI,0

LP1:

MOV AL,SIN[SI]

MOV DX,0E490H

OUT DX,AL

CALL DELAY

INC SI

CMP SI,20H

JL LP1

LOOP LP

JMP RE

EXIT:

MOV AH,4CH

INT 21H

DELAY PROC NEAR

PUSH AX

PUSH DX

PUSH DI

MOV AL,10H

MOV DX,0E483H

OUT DX,AL

MOV BL,NUM

AND BX,00FFH

MOV DI,BX

MOV AL,TIME[DI]

MOV DX,0E480H

OUT DX,AL

RSRT:

MOV DX,0E488H

IN AL,DX

AND AL,01H

CMP AL,0

JZ RSRT

POP DI

POP DX

POP AX

RET

DELAY ENDP

CODE ENDS

END START

五、实验体会

1、掌握了数模和模数转换电路芯片的使用方法

2、掌握了数模和模数转换电路的接口方法及相应的程序设计方法

相关主题
文本预览
相关文档 最新文档