文档库 最新最全的文档下载
当前位置:文档库 › 模数转换器ADC0809应用原理

模数转换器ADC0809应用原理

精品文档

AD0809应用原理--很全面的资料

1.0809 的芯片说明:

ADC0809是带有 8 位 A/D 转换器、 8 路多路开关以及微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼近式 A/D 转换器,可以和单片机直接接口。

(1) ADC0809的内部逻辑结构

由上图可知, ADC0809由一个 8 路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用 A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当O

E端为高电平时,才可以从三态输出锁存器取走转换完的数据。

( 2).引脚结构

IN0- IN7:8 条模拟量输入通道

ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在

输入前增加采样保持电路。

地址输入和控制线: 4 条

ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将 A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。 A,B 和 C 为地址输入线,用于选通 IN0-IN7 上的一路模拟量输入。通道选择表如下表所示。

C B A 选择的通道

000IN0

001IN1

010IN2

011IN3

100IN4

101IN5

110IN6

111IN7

数字量输出及控制线: 11 条

ST 为转换启动信号。当 ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行 A/ D 转换;在转换期间, ST应保持低电平。 EOC为转换结束信号。当 EOC为高电平时,表明转换结束;否则,表明正在进行 A/D 转换。 OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。 OE= 1,输出转换得到的数据; OE=0,输出数据线呈高阻状态。 D7- D0为数字量输出线。

CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界

提供,通常使用频率为500KHZ,

VREF(+), VREF(-)为参考电压输入。

2. ADC0809应用说明

(1). ADC0809内部带有输出锁存器,可以与 AT89S51单片机直接相连。(2).初始化时,使 ST和 OE信号全为低电平。

(3).送要转换的哪一通道的地址到 A,B,C端口上。

(4).在 ST端给出一个至少有 100ns 宽的正脉冲信号。

(5).是否转换完毕,我们根据 EOC信号来判断。

(6).当 EOC变为高电平时,这时给 OE为高电平,转换的数据就输出给单片机了。3.实验任务

如下图所示,从 ADC0809的通道 IN3 输入 0-5V 之间的模拟量,通过 ADC0809转换成数字量在数码管上以十进制形成显示出来。 ADC0809的 VREF接+ 5V 电压。

4.电路原理图

5. 程序设计:

(1).进行 A/D 转换时,采用查询 EOC的标志信号来检测 A/D 转换是否完毕,若完毕则把数据通过 P0端口读入,经过数据处理之后在数码管上显示。

(2).进行 A/D 转换之前,要启动转换的方法:

ABC= 110 选择第三通道

ST=0,ST= 1, ST=0 产生启动转换的正脉冲信号.

( 3) .关于0809的计算:

ad0809 是根据逐位逼近的方法产生数据的。。

参考电压为 0-5V 的话。以 0809 八位 255 的转换精度每一位的电压值为 (5-0)/255 ≈0. 0196V

设输入电压为X 则:

X-27*0.0196>=0 则 AD7=1否则 AD7=0。

X-26*0.0196>=0 则 AD6=1否则 AD6=0。

X-20*0.0196>=0 则 AD0=1否则 AD0=0。

(27指2的7次方。 26-------20同理)

若参考电压为0-1V

(1-0)/255≈0.0039V精度自然高了。。可测量范围小了。

1)汇编源程序:

CH EQU 30H

DPCNT EQU 31H

DPBUF EQU 33H

GDATA EQU 32H

ST BIT P3.0

精品文档

OE BIT P3.1

EOC BIT P3.2

ORG 00H

LJMP START

ORG 0BH

LJMP T0X

ORG 30H

START: MOV CH,#0BCH

MOV DPCNT,#00H

MOV R1,#DPCNT

MOV R7,#5

MOV A,#10

MOV R0,#DPBUF

LOP: MOV @R0,A

INC R0

DJNZ R7,LOP

MOV @R0,#00H

INC R0

MOV @R0,#00H

INC R0

MOV @R0,#00H

MOV TMOD,#01H

MOV TH0,#(65536-4000)/256

MOV TL0,#(65536-4000) MOD 256

SETB TR0

SETB ET0

SETB EA

WT: CLR ST

SETB ST

CLR ST

WAIT: JNB EOC,WAIT

SETB OE

MOV GDATA,P0

CLR OE

MOV A,GDATA

MOV B,#100

DIV AB

MOV 33H,A

精品文档

MOV A,B

MOV B,#10

DIV AB

MOV 34H,A

MOV 35H,B

SJMP WT

T0X: NOP

MOV TH0,#(65536-4000)/256

MOV TL0,#(65536-4000) MOD 256

MOV DPTR,#DPCD

MOV A,DPCNT

ADD A,#DPBUF

MOV R0,A

MOV A,@R0

MOVC A,@A+DPTR

MOV P1,A

MOV DPTR,#DPBT

MOV A,DPCNT

MOVC A,@A+DPTR

MOV P2,A

INC DPCNT

MOV A,DPCNT

CJNE A,#8,NEXT

MOV DPCNT,#00H

NEXT: RETI

DPCD: DB 3FH,06H,5BH,4FH,66H

DB 6DH,7DH,07H,7FH,6FH,00H

DPBT: DB 0FEH,0FDH,0FBH,0F7H

DB 0EFH,0DFH,0BFH,07FH

END

2)C 语言源程序

#include

unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsigned char dispbuf[8]={10,10,10,10,10,0,0,0}; unsigned char dispcount;

精品文档

sbit ST="P3"^0;

sbit OE="P3"^1;

sbit EOC="P3"^2;

unsigned char channel="0xbc";//IN3 unsigned char getdata;

void main(void)

{

TMOD=0x01;

TH0=(65536-4000)/256;

TL0=(65536-4000)%256;

TR0=1;

ET0=1;

EA=1;

P3=channel;

while(1)

{

ST=0;

ST=1;

ST=0;

while(EOC==0);

OE=1;

getdata=P0;

OE=0;

dispbuf[2]=getdata/100;

getdata=getdata%10;

dispbuf[1]=getdata/10;

dispbuf[0]=getdata%10;

}

}

void t0(void) interrupt 1 using 0

{

TH0=(65536-4000)/256;

TL0=(65536-4000)%256;

P1=dispcode[dispbuf[dispcount]];

P2=dispbitcode[dispcount];

dispcount++;

if(dispcount==8)

{

精品文档

dispcount=0;

}

}

3)FPGA实现的程序:( verilog)

module AD0809(clk, //脉宽(至少100ns)

rst_n,

EOC, //约100us后EOC变为高电平转换结束

START, //启动信号,上升沿有效(至少100ns)

OE, //高电平打开三态缓冲器输出转换数据

ALE, //高电平有效,选择信道口

ADDA,// 因为 ADDB,ADDC都接地了,这里只有ADDA为变量

DATA,// //转换数据

DATA_R);

output START,OE,ALE,ADDA;

input EOC,clk,rst_n;

input[7:0]DATA;

output[7:0] DATA_R;

reg START,OE,ALE,ADDA;

reg[7:0]DATA_R;

reg[4:0]CS,NS;

parameter IDLE=5''b00001,START_H=5''b00010,START_L=5''b00100, CHECK_END=5''b01000,GET_DATA=5''b10000;

always @(*)

case(CS)

IDLE:

NS=START_H;

START_H:

NS=START_L;

START_L:

NS=CHECK_END;

CHECK_END:

精品文档

if(EOC)

NS=GET_DATA;

else

NS=CHECK_END;

GET_DATA:

NS=IDLE;

default:

NS=IDLE;

endcase

always @(posedge clk)

if(!rst_n)

CS<=IDLE;

else

CS<=NS;

always @(posedge clk)

case(NS)

IDLE:

begin

OE<=0;

START<=0;

ALE<=0;ADDA<=1;

end

START_H:

begin

OE<=0;

START<=1; //产生启动信号

ALE<=1;ADDA<=1;//选择信道口 IN0

end

START_L:

begin

OE<=0;

START<=0;

ALE<=1;// 启动信号脉宽要足够长 , 在启动的时候 ALE要一直有效end

CHECK_END:

begin

OE<=0;

START<=0;

ALE<=0;

end

GET_DATA:

begin

OE<=1; // 高电平打开三态缓冲器输出转换数据

DATA_R<=DATA;//提取转换数据 START<=0;

ALE<=0;

end

default:

begin

OE<=0;

START<=0;

ALE<=0;ADDA<=0;

end

endcase

endmodule

4)FPGA实现的程序:(VHDL)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY AD0809 IS

PORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLK,EOC: IN STD_LOGIC; CLOCK:IN STD_LOGIC;

ALE,START,OE,LOCK0: OUT STD_LOGIC;

DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);

SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));

END AD0809;

ARCHITECTURE behav OF AD0809 IS

TYPE states IS (st0,st1,st2,st3,st4);

SIGNAL current_state,next_state:states:=st0;

SIGNAL REGL :STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK :STD_LOGIC;

SIGNAL CNT1:STD_LOGIC_VECTOR(0 DOWNTO 0); SIGNAL A :INTEGER RANGE 0 TO 1;

SIGNAL LOWDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL HIGHDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL LOWLED7S:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL HIGHLED7S:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN

LOCK0<=LOCK;

PROCESS(REGL)

BEGIN

LOWDATA<=REGL(3 DOWNTO 0);

HIGHDATA<=REGL(7 DOWNTO 4);

CASE LOWDATA IS

WHEN "0000" => LOWLED7S<="0111111";

WHEN "0001" => LOWLED7S<="0000110";

WHEN "0010" => LOWLED7S<="1011011";

WHEN "0011" => LOWLED7S<="1001111";

WHEN "0100" => LOWLED7S<="1100110";

WHEN "0101" => LOWLED7S<="1101101";

WHEN "0110" => LOWLED7S<="1111101";

WHEN "0111" => LOWLED7S<="0000111";

WHEN "1000" => LOWLED7S<="1111111";

WHEN "1001" => LOWLED7S<="1101111";

WHEN "1010" => LOWLED7S<="1110111";

WHEN "1011" => LOWLED7S<="1111100";

WHEN "1100" => LOWLED7S<="0111001";

WHEN "1101" => LOWLED7S<="1011110";

WHEN "1110" => LOWLED7S<="1111001";

WHEN "1111" => LOWLED7S<="1110001";

WHEN OTHERS => Null;

END CASE;

CASE HIGHDATA IS

WHEN "0000" => HIGHLED7S<="0111111";

WHEN "0001" => HIGHLED7S<="0000110";

精品文档

WHEN "0010" => HIGHLED7S<="1011011";

WHEN "0011" => HIGHLED7S<="1001111";

WHEN "0100" => HIGHLED7S<="1100110";

WHEN "0101" => HIGHLED7S<="1101101";

WHEN "0110" => HIGHLED7S<="1111101";

WHEN "0111" => HIGHLED7S<="0000111";

WHEN "1000" => HIGHLED7S<="1111111";

WHEN "1001" => HIGHLED7S<="1101111";

WHEN "1010" => HIGHLED7S<="1110111";

WHEN "1011" => HIGHLED7S<="1111100";

WHEN "1100" => HIGHLED7S<="0111001";

WHEN "1101" => HIGHLED7S<="1011110";

WHEN "1110" => HIGHLED7S<="1111001";

WHEN "1111" => HIGHLED7S<="1110001";

WHEN OTHERS => Null;

END CASE;

END PROCESS;

PROCESS(CLOCK)

BEGIN

IF CLOCK'EVENT AND CLOCK='1' THEN CNT1<=CNT1+1; END IF;

END PROCESS;

PROCESS(CNT1)

BEGIN

CASE CNT1 IS

WHEN "0" =>SEL<="111"; A<=0;

WHEN "1" =>SEL<="110"; A<=1;

WHEN OTHERS =>NULL;

END CASE;

END PROCESS;

PROCESS(A)

BEGIN

CASE A IS

WHEN 0 =>DOUT<=LOWLED7S;

WHEN 1 =>DOUT<=HIGHLED7S;

WHEN OTHERS =>NULL;

END CASE;

END PROCESS;

COM: PROCESS(current_state,EOC)

BEGIN

CASE current_state IS

WHEN

st0=>ALE<='0';START<='0';LOCK<='1';OE<='0';next_state<=st 1; WHEN

st1=>ALE<='1';START<='0';LOCK<='1';OE<='0';next_state<=st 2; WHEN st2=>ALE<='0';START<='1';LOCK<='0';OE<='0';

IF (EOC='1') THEN next_state<=st3;

ELSE next_state<=st2;

END IF;

WHEN

st3=>ALE<='0';START<='0';LOCK<='0';OE<='1';next_state<=st 4; WHEN

st4=>ALE<='0';START<='0';LOCK<='1';OE<='1';next_state<=st 0; WHEN OTHERS=>next_state<=st0;

END CASE;

END PROCESS COM;

REG: PROCESS(CLK)

BEGIN

IF(CLK'EVENT AND CLK='1') THEN current_state<=next_state; END IF;

END PROCESS REG;

LATCH1: PROCESS(LOCK)

BEGIN

IF LOCK='1' AND LOCK'EVENT THEN REGL<=D;

END IF;

END PROCESS LATCH1;

END behav;

模数转换器ADC0809实验(2)

编程提示:(1)发出启动A/D转换新号;(2)将转换信号读入内存。 程序: DA TA SEGMENT IOPORT EQU 0D880H-280H IO0809A EQU IOPORT+298H ;0809通道0地址 CRT DB 'SPIN"SW1"SWITCH,VIEW ON THE DISPLAY',0DH,0AH DB 'ENTER ANY KEY CAN EXIT TO DOS',0DH,0AH,'$' DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET CRT MOV AH,09H INT 21H LAB: MOV DX,IO0809A ;IN0端口 OUT DX,AL MOV CX,0FFFFH DELAY: LOOP DELAY ;延时 IN AL,DX ;读数据 MOV BL,AL MOV CL,4 SHR AL,CL CALL DISP ;显示高四位 MOV AL,BL AND AL,0FH CALL DISP ;显示低四位 MOV AH,02 MOV DL,20H ;显示空格 INT 21H INT 21H PUSH DX MOV AH,06H ;有键按下退出 MOV DL,0FFH INT 21H POP DX JE LAB ;没键按下继续 MOV AX,4C00H INT 21H DISP PROC NEAR ;显示字符子程序 MOV DL,AL CMP DL,9 JLE DDD ADD DL,7

DDD: ADD DL,30H MOV AH,02 INT 21H RET DISP ENDP CODE ENDS END START 2.实验原理 ADC0809是CMOS型的8位逐次逼近式单片A/D转换器,模拟开关通过位地址输入组合选择模拟输入通道,转换结束信号的处理方式有查询方式、冲断方式、延时方式 三、主要仪器设备 1.TPC-2003A实验系统 2.计算机 四、实验方法及实验步骤 1.连接试验电路 ADC0809有8个模拟输入端IN7~IN0,输入模拟量电压范围为0V~+5V,旋转电位器SW1产生不同的模拟电压,作为模拟输入量。实验电路中只开通了IN0一路模拟量输入,其它端未使用。ADC0809的D7~D0引脚与主机数据总线相连接。ADC0809的START端为A/D转换启动信号,ALE端为通道地址的锁存信号。线路中将START端与ALE端连接,以便锁存通道地址,同时启动A/D采样并进行转换。ADC0809的CLOCK端的时钟频率范围为10~1280KHz,本实验中采用1MHz。ADC0809的结束信号EOC用来产生中断请求信号,请求CPU读入转换后的结果。 2.打开主机进入DOS环境:开始—运行—cmd确定 3.编辑、汇编、链接汇编语言程序 E: CD MASM (1)编辑汇编语言源程序: EDIT adc.ASM 编辑源程序。 (2)汇编链接源程序: ML adc.ASM 没有语法错误,继续下一步,有错,则返回上一部编辑状态,改错。 4.打开扩展卡I/O端口地址 (1)进入DOS全屏模式: Alt+Enter (2)打开I/O端口地址: RUN 5.运行和调试汇编程序 试验箱通电 (1)直接运行汇编、链接所产生的可执行的文件 adc (2)调试器运行汇编语言可执行文件。 五、实验数据记录及处理

实验5:A∕D转换和D∕A转换实验

A/D转换实验 一、实验目的 1.学习理解模/数信号转换的基本原理。 2.掌握模/数转换芯片ADC0809的使用方法。 3.掌握模/数转换芯片ADC0809的接口扩展、程序设计及调试方法。 二、实验设备 PC机一台,TD-NMC+教学实验系统一台,万用表一只。 三、实验内容 编写实验程序,将ADC单元中提供的0V~5V信号源作为ADC0809的模拟输入量,进行A/D转换,转换结果通过寄存器或变量进行显示。 四、实验原理 ADC0809包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。ADC0809的主要技术指标为:·分辨率:8位 ·单电源:+5V ·总的不可调误差:±1LSB ·转换时间:取决于时钟频率 当时钟频率CLOCK=640kHz时,转换时间为100μs 当时钟频率CLOCK=500kHz时,转换时间为128μs ·模拟输入范围:单极性0~5V ·时钟频率范围:10KHz~1280KHz ADC0809的外部管脚如图3-2-1所示,地址信号 与选中通道的关系如表3-2-1所示。 图3-2-1 ADC0809外部引脚图 表3-2-1地址信号与选中通道的关系 A/D转换单元原理图如图3-2-2所示。

图3-2-2 A/D转换单元原理图 五、实验步骤 1.按图3-2-3连接实验线路,AD的时钟线需要与实验平台中的系统总线单元的CLK 相连; 2.编写实验程序,经编译、链接无误后装入系统,启动调试; 3.在AD模拟信号采集程序调用语句之后设置断点,使用万用表测量ADJ端的电压值,计算对应的采样值,然后运行程序; 4.程序运行到断点处停止运行,查看寄存器窗口中R0的值,与计算的理论值进行比较,看是否一致(可能稍有误差,相差不大); 5.调节电位器,改变输入电压,继续执行程序,程序再次运行到断点处停止运行,比较此时R0的值与理论计算值; 6.反复进行步骤5的操作,验证程序功能,制表并记录结果。 图3-2-3 A/D转换实验接线图 思考题: 1.如何修改程序,将转换后的数据存入变量ADV中,将变量ADV添加到变量监视窗口中,执行程序,观察其值的变化。 2.MCS-51单片机与A/D接口通常可以采用软件延时、查询和中断三种方式。上述实验中属于哪种方式?如果不是中断方式,那么如何修改程序,采用中断方式读取A/D转换的结果并保存【提示:可参考教材104页5.3节的内容】。如何修改电路接线,能否实现?

ADC0809芯片的原理及应用

ADC0809芯片的原理及应用 1. 原理介绍: ADC0809芯片是一种8位串行输出模数转换器(ADC),用于将模拟信号转换为数字信号。它采用了逐次逼近型转换技术,具有高精度和稳定性。其工作原理如下: a. 输入信号采样:ADC0809芯片具有一个多路复用器,可以选择8个不同的模拟输入通道。输入信号经过采样保持电路进行采样,并转换为对应的模拟电压。 b. 逐次逼近型转换:ADC0809芯片采用逐次逼近型转换技术,即从最高位开始逐位逼近,通过比较DAC输出与输入信号的大小来确定每一位的数字值。 c. 数字输出:转换完成后,ADC0809芯片将结果以串行方式输出,可以通过微处理器或其他数字设备进行接收和处理。 2. 主要特点: a. 8位分辨率:ADC0809芯片可以将模拟信号转换为8位的数字信号,提供256个离散的输出值。 b. 内部参考电压:芯片内部集成了一个参考电压源,可以提供稳定的参考电压,减少外部元器件的需求。 c. 串行输出:转换结果以串行方式输出,可以方便地与其他数字设备进行通信和数据传输。 d. 多路复用输入:芯片具有8个模拟输入通道,可以选择不同的输入信号进行转换。 e. 快速转换速率:ADC0809芯片的转换速率可达到100,000次/秒,适用于高速数据采集和实时控制应用。

3. 应用领域: a. 数据采集系统:ADC0809芯片广泛应用于各种数据采集系统,如温度采集、压力采集、光强度采集等。它可以将模拟传感器信号转换为数字信号,方便存储、处理和分析。 b. 仪器仪表:ADC0809芯片可用于各种仪器仪表,如多功能测试仪、示波器等,用于测量和分析模拟信号。 c. 自动控制系统:ADC0809芯片可以将模拟控制信号转换为数字信号,用于 自动控制系统的输入和输出接口,实现对各种设备和过程的控制。 d. 通信系统:ADC0809芯片可用于通信系统中的信号处理和调制解调等功能,将模拟信号转换为数字信号进行传输和处理。 e. 电力系统:ADC0809芯片可用于电力系统中的电流、电压等参数的测量和 监控,实现对电力系统的智能化管理和控制。 总结: ADC0809芯片是一种高精度的8位串行输出模数转换器,具有多路复用输入、内部参考电压、串行输出等特点。它在数据采集、仪器仪表、自动控制、通信系统和电力系统等领域有广泛的应用。通过将模拟信号转换为数字信号,ADC0809芯 片为各种应用提供了数字化处理和控制的能力,提高了系统的精度和稳定性。

adc模数转换器工作原理

adc模数转换器工作原理 ADC模数转换器(Analog-to-Digital Converter)是一种将模拟信号转换为数字信号的电子设备。其工作原理是通过将连续变化的模拟信号转换成离散的数字信号,从而实现对模拟信号的数字化处理和传输。 ADC模数转换器的工作原理基于采样和量化两个基本过程。采样是指将模拟信号在一定的时间间隔内进行离散抽样,将连续的模拟信号转换为一系列离散的采样点。而量化则是将采样得到的连续模拟信号值映射为离散的数字信号值。 在ADC模数转换器中,采样过程由采样保持电路完成。采样保持电路通过一个开关,将模拟信号输入到一个电容器中进行存储,然后再通过一个采样保持放大器将存储的电荷转换为电压输出。采样保持电路的作用是在一定时间内对模拟信号进行抽样,以确保在量化过程中能够准确地表示原始信号。 量化过程是将采样得到的模拟信号值进行离散化表示的过程。量化器将连续的模拟信号值映射为离散的数字信号值。量化器通常由比较器和数字逻辑电路组成。比较器将模拟信号与参考电压进行比较,根据比较结果输出高电平或低电平。数字逻辑电路则将比较器输出的结果编码为二进制形式的数字信号。 ADC模数转换器中的量化器通常采用的是逐次逼近型量化器。逐次

逼近型量化器是一种通过逐步逼近的方式来实现高精度量化的方法。它通过不断调整比较参考电压的大小,使得比较器输出与模拟信号的差距逐渐减小,最终达到所需的精度要求。逐次逼近型量化器的精度可以通过增加比特数来提高,比特数越大,精度越高。 除了采样和量化过程外,ADC模数转换器还包括数字信号处理电路和数字信号输出接口。数字信号处理电路用于对量化后的数字信号进行进一步处理,如滤波、编码等,以提高信号质量和可靠性。数字信号输出接口则用于将数字信号传输给后续的数字系统或计算机进行处理和分析。 总结起来,ADC模数转换器通过采样和量化两个基本过程,将连续变化的模拟信号转换为离散的数字信号。它的工作原理是在一定时间间隔内对模拟信号进行离散抽样,并将抽样得到的模拟信号值映射为离散的数字信号值。通过逐次逼近型量化器和数字信号处理电路的配合,实现对模拟信号的数字化处理和传输。ADC模数转换器在各种电子设备中广泛应用,如通信系统、音频设备、工业控制等领域,为模拟信号的数字化提供了重要的技术支持。

实验三 ADC0809模数转换实验

实验三ADC0809模数转换实验 一、实验目的 1、掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用。 2、掌握用查询方式、中断方式完成模/数转换程序的编写方法。 二、实验说明 本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。下图为该芯片的引脚图。 各引脚功能如下: IN0~IN7:八路模拟信号输入端。 ADD-A、ADD-B、ADD-C:三位地址码输入端。八路模拟信号转换选择由这三个端口控制。CLOCK:外部时钟输入端(小于1MHz)。 D0~D7:数字量输出端。 OE:A/D转换结果输出允许控制端。当OE为高电平时,允许 A/D转换结果从D0~D7端输出。 ALE:地址锁存允许信号输入端。八路模拟通道地址由A、B、 C输入,在ALE信号有效时将该八路地址锁存。 START:启动A/D转换信号输入端。当START端输入一个正 脉冲时,将进行A/D转换。 EOC:A/D转换结束信号输出端。当A/D转换结束后,EOC输出高电平。 Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。 VCC和GND:芯片的电源端和地端。 三、实验步骤 1、单片机最小应用系统1的P0口接A/D转换的D0~D7口,单片机最小应用系统1的Q0~Q7口接0809的A0~A7口,单片机最小应用系统1的WR、RD、P2.0、ALE、INT1分别接A/D转换的WR、RD、P2.0、CLOCK、INT1,A/D转换的IN接入+5V,单片机最小应用系统1的RXD、TXD连接到串行静态显示实验模块的DIN、CLK。 2、基于KEIL建立A/D转换程序。要求将采集到的电压等间隔分为0~9共10级,并用一位共阴级数码管显示出来。 四、流程图及源程序 1.流程图如图2所示。 2.源程序自己编写C语言程序。 五、思考题 1、A/D转换程序有三种编制方式:中断方式、查询方式,实验中使用了中断方式,请用另一种方式编制程序。 2、P0口是数据/地址复用的端口,请说明实验中ADC0809的模拟通道选择开关在利用P0口的数据口或地址地位口时,程序指令和硬件连线的关系。 六、电路图

adc0809模数转换原理

adc0809模数转换原理 ADC0809是一种集成电路模拟到数字信号转换器,它将模拟信号转换成数字信号在数字电路中使用。该芯片有许多用途,其中包括数据 采集、仪器控制、自动测试和智能控制系统。 ADC0809输入端须接同一电源,实为解决了模拟与数字之间的接口。ADC0809的8位模数转换器具有较高的精度和灵敏度,可以在2.7至6 伏的电源电压下工作。输入信号的范围可以从0到电源电压不等。 ADC0809还含有内部参考电压源。 ADC0809的模数转换原理基于积分器、比较器和计数器的原理。积分器积分输入信号,比较器确定信号是否超过阈值,计数器记录比较 器的输出。然后将计数器的值转换为二进制数字,并存储在输出寄存 器中。 ADC0809模数转换器的主要组成部分包括: 1.输入多路选择器:ADC0809有8个输入通道,支持多种输入源。

2.输入样本保持电路:保持电路的作用是捕捉输入信号值并在采 样期间保持该值不变。它还允许单一转换器采样多个通道。 3.模数转换器:使用积分器、计数器和比较器将输入模拟信号转 换为数字信号,并存储在输出寄存器中。 4.内部参考电压源:提供比较器引脚的基准电压。 5.输出寄存器:将数字输出存储在寄存器中,以便在需要时读取。 ADC0809的模数转换速度是由时钟信号控制的,时钟信号从外部提供。增加时钟信号的速度可以提高ADC转换的速度,但是会降低其精度。ADC0809的模数转换具有高精度和稳定性。它的输出信号是二进制代码,在数字电路中可以直接使用。 此外,ADC0809的应用还需要提供一个数量适当的电容来滤除输入信号的高频噪声。这个电容通常为盆式电容,它可以过滤高频噪声, 从而提高ADC的精度。 总之,ADC0809是一种常用的模数转换器,可以将模拟信号转换成数字信号,并在数字电路中使用。它主要由输入多路选择器、输入样 本保持电路、模数转换器、内部参考电压源和输出寄存器等组成。

模数转换器ADC0809应用原理

模数转换器ADC0809应用原理 模数转换器(Analog-to-Digital Converter,简称ADC)是一种将模拟信号转换 为数字信号的电子元件。在电子领域中,模数转换器有着广泛的应用,其中最常见的就是采集模拟信号,并将其转换为数字信号进行处理。 ADC0809是一种八位分辨率的8通道模数转换器,它可以将输入模拟信号转 换为一个八位的二进制数字。 ADC0809的工作原理 ADC0809采用了单倍增量逐次比较式ADC,其基本工作原理是,将输入的模 拟信号与一个参考电压进行比较,输出相应的数字信号。具体工作流程如下图所示: ___________________________________ ________________________ | 时钟 | |______________________________________ _____________________________| ______________ ________ _______ _ ________ ________ | 输入模拟信号 | | 比较器0 | | 比较器 1 | | ...... | | 比较器7 | |_____________| _________ |________| |________ | |________| |________| | | | | | | | ___________ | __ _________ | ___________ | | |__| |__|__| |__|__| |__| | 串—并串—并串—并串—并八个比较结果反相器(INV) | _______ _ ________ ________ |______________________________| 反相器 | | 反相器 | | ...... | | 反相器 | |___ _____| |________| |________| |________| | | | | | | | | | | | |

模数转换器

模数转换器(ADC)接口技术 1.ADC基本构成 A/D转换电路和计算机的发展相似,经历了电子管、晶体管、中小规模和大规模集成电路3个阶段,超导技术等也开始应用于超高速A/D转换中。目前,单片集成型ADC的应用最为广泛。单片ADC在一块芯片上集成了多种高性能的模拟和逻辑部件,控制逻辑大多数与微处理器和控制器相兼容。为适应系统集成的需要,有些转换器还将多路转换开关、时钟电路、基准电压源、二/十进制译码器和转换电路等集成在一个芯片内,构成数据采集系统和输入输出装置。 A/D转换器可分成直接型ADC和间接型ADC。前者输入的模拟电压被直接转换成数字代码,不经任何中间变量;后者首先把输入的模拟电压转换成某种中间变量(时间、频率、脉冲宽度等),然后再把这个中间变量转换为数字代码输出。直接型ADC又可分为电荷再分配型、反馈比较型和非反馈比较型,间接型ADC则可分为电压—时间变换型、电压—频率(V/F)变换型和∑-△型等。 由于A/D转换器的设计思想和制造技术不断创新,同时为满足不同的检测和控制任务,结构不同、性能各异的A/D转换电路层出不穷。目前应用较广泛的类型主要有逐次逼近式ADC、双积分式ADC、V/F变换式ADC和∑-△型ADC。逐次逼近式ADC在精度、速度和价格上较为适中,因而经常使用;双积分式ADC精度高,抗干扰性能好,但转换速度较慢;∑-△型ADC综合了上述两者的优点,抗干扰能力强,速度快,应用越来越广泛;V/F变换ADC多用于转换速度要求不高和信号需要远距离传输的场合。 ADC的发展趋势主要表现在速度和精度两个方面,目前的速度已达到l 000 MHz,而分辨率可达到24位。但速度和精度实际上是矛盾的,如1 000 MHz高速ADC的精度只有8位,而24位A/D转换器ADSl210/121 1在保证精度时的转换速度仅为10 Hz。

ADC0809数字电压表报告

摘要 数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。 A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片STC89C52来完成,其负责把ADC0809传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外它还控制着ADC0809芯片工作。 此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。 关键字:STC89C52、ADC0809、数字电压表、A/D转换 一、设计任务与要求 1.1 设计任务 基于单片机制作一个简易数字电压表,利用ADC0809芯片将电位器102的电阻值转换为电压值显示在数码管上。 1.2 设计要求 (1)以STC89C52系列单片机为核心器件组成一个简单的直流数字电压表; (2)采用1路模拟量输入,能够测量0-5V之间的直流电压; (3)电压显示用4位一体的共阴级LED数码管显示,至少能够显示两位小数; (4)A/D转换采用ADC0809实现,与单片机的接口为P1口和P3口部分引脚。LED数码管的段码输入由并行端口P0产生,位码输入用并行端口P2高四位产生。 二、方案设计 2.1 硬件设计 2.1.1单片机模块设计 单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路、复位电路组成。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器,其引脚如下图所示:

ADC08_09电压测量实验(基于查询、中断两种方式的数据读取)汇总

·数字电压表 1.实验任务 利用单片机STC89C52与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,两位数码显示。 2.现有元件 模数转换器ADC0809,STC89C52单片机,两个共阴极数码管。 3.硬件设计 3.1模数转换器ADC0809与单片机STC89C52的连接 (1) ADC0809规格及引脚分配图如下图3-1所示: 图3-1 ADC0809引脚图 (2) STC89C52各个引脚分布如下图3-2所示: 图3-2 STC89C52引脚图 (3) 硬件连线 (a) 把“单片机系统”区域中的P3.0与”模数转换模块ADC0809“区域中的ST端子用导线

相连接。 (b) 把“单片机系统”区域中的P3.1与”模数转换模块ADC0809“区域中的ALE端子用导线相连接。 (c) 把“单片机系统”区域中的P3.2与”模数转换模块ADC0809“区域中的EOC端子用导线相连接。 (d) 把“单片机系统”区域中的P3.6与”模数转换模块ADC0809“区域中的OE端子用导线相连接。 (e) 把“单片机系统”区域中的P3.7与”模数转换模块ADC0809“区域中的CLK端子用导线相连接。 (f) 把“模数转换模块ADC0809”区域中的ADDA、ADDB、ADDC端子用导线连接到单片机的VCC端子上。把“模数转换模块ADC0809”区域中IN7与外接输入电压相连。 (g) 把“单片机系统”区域中的P2.0-P2.7连接到“模数转换模块ADC0809”区域中D0D1D2D3D4D5D6D7端子上。 (h) 把“单片机系统”区域中的P1.0-P1.7连接到“数码管”区域中ABCDEFGH端子上,且在P1.0-P1.7上分别接上0.5KΩ的上拉电阻。把“单片机系统”区域中的P0.0-P0.1分别连接到两个共阴极“数码管”的GND。 4. 电路原理图 图4 电路原理图

ADC0809_多路数据采集和控制系统设计说明

1.设计目的 本设计包括确定控制任务、系统总体设计、硬件系统设计、软件程序的设计等,使学生进一步学习理解计算机控制系统的构成原理、接口电路与应用程序,巩固与综合专业基础知识和相关专业课程知识,提高学生运用理论知识解决实际问题的实践技能。 2. 设计内容 设计一由微机控制的A/D数据采集和控制系统,该卡具有对八个通道上0-5V的模拟电压进行采集的能力,且可以用键盘选择装换通道,选择ADC0809作为A/D转换芯片。并在显示器上动态显示采集的数据。 3. 设计要求 〔1根据题目要求的指标,通过查阅有关资料,确定系统设计方案,并设计其硬件电路图。 〔2画出电路原理图,分析主要模块的功能及他们之间的数据传输和控制关系。 〔3用protel软件绘制电路原理图。 〔4软件设计,给出流程图及源代码并加注释。 4. 系统总体设计步骤 第一步:信号调理电路 第二步:8路模拟信号的产生与A/D转换器 被测电压要求为0~5V的直流电压,可通过电位器调节产生。 考虑本设计的实际需要,我选择八位逐次比较式A/D转换器〔ADC0809。 第三步:发送端的数据采集与传输控制器

第四步:人机通道的借口电路 第五步:数据传输借口电路 用单片机作为控制系统的核心,处理来之ADC0809的数据。经处理后通过串口传送,由于系统功能简单,键盘仅由两个开关和一个外部中断组成,完成采样通道的选择,单片机通过接口芯片与LED数码显示器相连,驱动显示器相应同采集到的数据。 串行通信有同步和异步两种工作方式,同步方式传送速度快,但硬件复杂;异步通信对硬件要求较低,实现起来比较简单灵活,适用于数据的随机发送和接受。采用MAX485芯片的转换接口。 经过分析,本系统数据采集部分核心采用ADC0809,单片机系统采用8051构成的最小系统,用LED动态显示采集到的数据,数据传送则选用RS-485标准,实现单片机与PC机的通信。 数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端〔单片机、PC或其它设备组成。系统框图如4-1所示 图4-1 总体设计的系统框图 5.硬件系统的设计 5.1信号调理 信号调理的任务:将被测对象的输出信号变换成计算机要求的输入信号。 多路数据采集输入通道的结构图如下图: 图5-1-1多路数据采集输入通道结构图

模数转换器ADC0809应用原理

AD0809应用原理――很全面的资料 1. 0809的芯片说明: ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS 组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1)ADC0809的内部逻辑结构 由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当O E端为高电平时,才可以从三态输出锁存器取走转换完的数据。 (2).引脚结构 IN0 —IN7: 8条模拟量输入通道 ADC0809寸输入模拟量要求:信号单极性,电压范围是0 —5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增

加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0 —IN7上的一路模拟量输入。通道选择表如下表所示。 数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/ D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OB 1,输出转换得到的数据;OE= 0,输出数据线呈高阻状态。D7- D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809勺内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ VREF( + ), VREF(—)为参考电压输入。 2. ADC0809应用说明 (1). ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 (2).初始化时,使ST和OE信号全为低电平。 (3).送要转换的哪一通道的地址到A,B,C端口上。 (4).在ST端给出一个至少有100ns宽的正脉冲信号。 (5).是否转换完毕,我们根据EOC言号来判断。 (6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。 3. 实验任务 如下图所示,从ADC0809勺通道IN3输入0 —5V之间的模拟量,通过ADC0809专换成数字量在数码管上以十进制形成显示出来。ADC0809勺VREF接+ 5V电压。

!8路输入模拟信号数值显示电路_单片机课程设计

单片机课程设计 8路输入模拟信号数值显示电路

摘要 本系统是基于AT89S52单片机设计的,由具有8通道的模数转换芯片ADC0809采集模拟信号,并将采集到的数据送入AT89S52进行处理,其中ADC0809的1MHZ 时钟脉冲直接由单片机的ALE脚输出的六分频时钟信号经过74LS74二分频得到。在设计中采用了精简电路及充分利用软件资源为原则,采用了软件译码,并利用三极管扩流来驱动数码管。同时兼顾系统的性能指标,采用了四位数码管进行动态显示,分别显示模拟通道数以及采集到的模拟电压的数值。本系统经设计调试达到了预期的设计要求,能够标准地自动轮流显示8路模拟电压数值量,精度为0.02V,误差系数为0.01。 关键词 模拟信号; AT89S52; ADC0809;数值显示

目录 一、设计任务及要求 ............................................................................ - 3 - 二、总体设计方案 .................................................................................. - 3 - 三、硬件电路设计 ................................................................................ - 4 - 1、模拟信号采集电路:.......................................................................................................... - 4 - 2、数据处理模块电路.............................................................................................................. - 5 - 3、数码显示模块电路.............................................................................................................. - 6 - 四、软件设计 .......................................................................................... - 7 - 1、主程序.................................................................................................................................. - 7 - 2、初始化程序.......................................................................................................................... - 7 - 3、显示子程序.......................................................................................................................... - 7 - 4、模数转换测量子程序.......................................................................................................... - 7 - 五、检测与调试 ...................................................................................... - 8 - 六、系统改进设想 .................................................................................. - 9 - 七、总结 ................................................................................................ - 10 -参考文献................................................................................................... - 10 -附件一:总的电路原理图 ...................................................................... - 11 -附件二:程序清单 .................................................................................. - 12 -附件三:数值量模拟量转换对照表(ADC0809的参考电压为5V)- 17 - 附件四:元件清单 .................................................................................. - 19 -

ADC0809-多路数据采集和控制系统设计

ADC0809-多路数据采集和控制系统设计

1.设计目的 本设计包括确定控制任务、系统总体设计、硬件系统设计、软件程序的设计等,使学生进一步学习理解计算机控制系统的构成原理、接口电路与应用程序,巩固与综合专业基础知识和相关专业课程知识,提高学生运用理论知识解决实际问题的实践技能。 2. 设计内容 设计一由微机控制的A/D数据采集和控制系统,该卡具有对八个通道上0-5V的模拟电压进行采集的能力,且可以用键盘选择装换通道,选择ADC0809作为A/D转换芯片。并在显示器上动态显示采集的数据。 3. 设计要求 (1)根据题目要求的指标,通过查阅有关资料,确定系统设计方案,并设计其硬件电路图。 (2)画出电路原理图,分析主要模块的功能及他们之间的数据传输和控制关系。 (3)用protel软件绘制电路原理图。 (4)软件设计,给出流程图及源代码并加注释。 4. 系统总体设计步骤 第一步:信号调理电路 第二步:8路模拟信号的产生与A/D转换器 被测电压要求为0~5V的直流电压,可通过电位器调节产生。 考虑本设计的实际需要,我选择八位逐次比较式A/D转换器(ADC0809)。 第三步:发送端的数据采集与传输控制器 第四步:人机通道的借口电路 第五步:数据传输借口电路 用单片机作为控制系统的核心,处理来之ADC0809的数据。经处理后通过串口传送,由于系统功能简单,键盘仅由两个开关和一个外部中断组成,完成采样通道的选择,单片机通过接口芯片与LED数码显示器相

图5-1-1多路数据采集输入通道结构图 注:缓慢变化的信号和直流信号,采样保持电路可以省略。 5.2 A/D 转换器的选取 转换速度是指完成一次A/D 转换所需时间的倒数,是一个很重要的指标。A/D 转换器型号不同,转换速度差别很大。通常,8位逐次比较式ADC 的转换时间为100us 左右。由于本系统的控制时间允许,可选8位逐次比较式A/D 转换器。 5.3 A/D 转换 对于该八路通道输入信号,八位A/D 转换器,其精度为 8 0.39% 2 -= 输入为0~5V 时,分辨率为 8 50.019611 22Fs N V v ==-- 其中: Fs v —A/D 转换器的满量程值 N —ADC 的二进制位数 量化误差为 8 50.0098(1)2 (1)2 22Fs N Q V v = = =-⨯-⨯ ADC0809是TI 公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC 部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。

FPGA直接控制ADC0809对模拟信号进行采样.

第二章总体方案设计 2.1 系统方案设计 在以往的A/D器件采样控制设计中,多数是以单片机或CPU为控制核心,虽然编程简单,控制灵活,但缺点是控制周期长,速度慢。单片机的速度极大的限制了A/D高速性能的利用,而FPGA的时钟频率可高达100MHz以上。本设计以高集成度的芯片为核心,进行时序控制、码制变换。具有开发周期短,灵活性强,通用能力好,易于开发、扩展等优点。既降低了设计难度,又加快了产品的开发周期。 基于FPGA的信号采集系统主要有:A/D转换器,FPGA,RS232通信,PC 机组成。A/D 转换器对信号进行会采集,A/D 内部集成了采样、保持电路,可有效的降低误差,减少外围电路的设计,降低系统的功耗。A/D在接受到指令后进行采集,FPGA采集控制模块首先将采集到的通过A/D 转换城的数字信号引入FPGA,而后对数字信号送往算法实现单元进行处理,并存于FPGA内部RAM 中,再将数据由RS232传送到PC上做FFT,实现对采集信号的时域和频域的显示。 图2.1.1系统的总体框图: FPGA的设计结构如图2.1.2所示。数字倍频器的倍频输出提供ADC控制器的采样触发脉冲。根据ADC0809操作时序,ADC控制器来实现ADC0809的数据采集操作,采样的时机由倍频器来控制。控制器每控制完成一次采样操作,则停止等待下一个触发脉冲的到来。倍频器每输出一个低电平脉冲,ADC采样控制器的状态机进行一次采样操作。在倍频器的触发控制下,完成被测信号一个基波周期N个点的等间隔采样,同时数字倍频器跟踪输入信号的频率的变化,尽可能地保持N个点的采样宽度正好为被测信号一个周波的宽度。- 时钟分配及各模块的控制:在协调模块工作时,起到很重要的作用。引进晶振产的时钟信号,根据实际需要对起进行倍频或分频,使A/D的采样频率,RAM的读写频率,信号处理实现的核心模块的工作频率一致。

相关文档
相关文档 最新文档