文档库 最新最全的文档下载
当前位置:文档库 › ADC0809

ADC0809

ADC0809
ADC0809

ADC0809芯片

A/D转换典型芯片ADC0809 来源:作者: 关键字:ADC0809A/D转换芯片 8位8通道逐次逼近式A/D转换器,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间 为100us左右。 1.ADC0809的内部逻辑结构 ADC 0809内部逻辑结构如图10.1所示。 图10.1 ADC0809的内部逻辑结构 图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D 转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存和译码,其译码输出用于通道选择。 2.芯片引脚 ADC0809芯片为28引脚双列直插式封装,其引脚排列见图10.2。 对ADC0809主要信号引脚的功能说明如下:

ü IN0~IN7—模拟量输入通道信号单极性,电压范围0-5V,若信号过小还需进 行放大。模拟量输入在A/D转换过程中,其值不应当变化,对变化速度快的模拟量,在输入前应增加采样保持电路。 ü A、B、C地址线 A为低位地址,C为高位地址,模拟通道的选择信号,引脚图中为ADDA、ADDB 和ADDC。其地址状态与通道对应关系见表10.2。 图10.2 ADC0809引脚排列图 表10.2选择的通道 √ ALE 地址锁存允许信号 对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。 √ START 转换启动信号

START上跳沿时,所有内部寄存器清“0”;START下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。 √ D7~D0 数据输出线 为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高位。 √ OE 输出允许信号 用于控制三态输出锁存器向单片机输出转换得到的数据。 OE=0,输出数据线呈高电阻; OE=1,输出转换得到的数据。 √ CLK 时钟信号 ADC 0809的内部没有时钟电路,所需时钟信号由外界提供。通常使用频率为500kHz的时钟信号。 √ EOC 转换结束信号 EOC=0,正在进行转换; EOC=1,转换结束。 使用中该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。 √ Vcc +5V电源 √ Vref 参考电源 参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V,Vref(一)=0V)。 1. 单片机与ADC0809接口 需解决三个问题: ①要给START线送一个100ns宽的起动正脉冲,如图10.3、10.4所示; ②获取EOC线上的状态信息,因为它是A/D转换的结束标志,如图10.5所示; ③要经“三态输出锁存器”输出一个端口地址,也就是给OE端送一个输出转换得到数据的信号,如图10.5所示。

51单片机控制ADC0809的电路图和源程序

ADC0809数模转换与显示 /* 名称:ADC0809数模转换与显示 说明:ADC0809采样通道3输入的模拟量,转换后的结果显示在数码管上。*/ #include #define uchar unsigned char #define uint unsigned int //各数字的数码管段码(共阴) uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit CLK=P1^3; //时钟信号 sbit ST=P1^2; //启动信号 sbit EOC=P1^1; //转换结束信号 sbit OE=P1^0; //输出使能 //延时 void DelayMS(uint ms) { uchar i; while(ms--) for(i=0;i<120;i++); } //显示转换结果 void Display_Result(uchar d) { P2=0xf7; //第4个数码管显示个位数 P0=DSY_CODE[d%10]; DelayMS(5); P2=0xfb; //第3个数码管显示十位数 P0=DSY_CODE[d%100/10]; DelayMS(5); P2=0xfd; //第2个数码管显示百位数 P0=DSY_CODE[d/100]; DelayMS(5); } //主程序 void main() { TMOD=0x02; //T1工作模式2 TH0=0x14; TL0=0x00; IE=0x82; TR0=1; P1=0x3f; //选择ADC0809的通道3(0111)(P1.4~P1.6) while(1) {

ADC0809引脚图和接口电路图

ADC0809引脚图与接口电路 2008-06-28 19:04 ADC0809引脚图与接口电路 作者:佚名 来源:本站原创 点击数: 859 更新时间:2007年07 月29日 A/D 转换器芯片ADC0809 简介 8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs 左右。 图9.8 《ADC0809引脚图》 1. ADC0809的内部结构 ADC0809的内部逻辑结构图如图9-7所示。

图9.7 《ADC0809内部逻辑结构》 图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。 表9-1 通道选择表 2.信号引脚 ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。

对ADC0809主要信号引脚的功能说明如下: IN 7~IN ——模拟量输入通道 ALE——地址锁存允许信号。对应ALE上跳沿,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,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。 D 7~D ——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。 D 0为最低位,D 7 为最高 OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。 Vcc—— +5V电源。 Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基 准。其典型值为+5V(Vref (+)=+5V, Vref (-) =-5V). 9.2.2 MCS-51单片机与ADC0809的接口 ADC0809与MCS-51单片机的连接如图9.10所示。

ADC0809模数转换与显示

ADC0809模数转换与显示 ADC0809模数转换与显示(第四次实验) 华侨大学08自动化 实验目的: 1. 掌握ADC的使用控制方法。实验内容:基本要求:设计一程序采集ADC0809第3通道的电压值,将其转换为数字量,并在数码管上显示;5V显示为255, 0V显示为000。扩展要求:将转换结果以两位小数精确显示,5V显示5.00, 2.3V显示2.30,依次推广之。 一、实验原理图: 二、程序流程图:

1 开始定时器初始化,对ADC0809初始化,选择通道3 给START一个脉冲,启动信号输入端判断EOC是否为0 N Y 将OE置1 读P3口数字数字处理,调用显示OE置0 返回三、源程序 1、基本要求: OE EQU P1.0 MOV SP,#60H EOC EQU P1.1 MOV TMOD,#02H ST EQU P1.2 MOV TH0,#14H CLK EQU P1.3 MOV TL0,#00H SHU EQU 30H MOV IE,#82H TEMP EQU 31H SETB TR0 ORG 0000H MOV A,#3FH AJMP MAIN MOV P1,A ORG 000BH MOV SHU,#0 CPL CLK SCAN: RETI CLR ST ORG 0100H SETB ST MAIN: CLR ST 2 M0: JNB EOC,M0 SETB OE

MOV A,#0FFH MOV P3,A M1: MOV A,P3 MOV SHU,A LCALL CHANGE LCALL DISP CLR OE AJMP SCAN DISP: MOV R0,#TEMP MOV R2,#00H DISP1:MOV A,R2 MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P2,A MOV A,@R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV R5,#5 ACALL DELAY INC R0 INC R2 2、扩展部分: OE EQU P1.0 EOC EQU P1.1 ST EQU P1.2 CLK EQU P1.3 SHU EQU 30H TEMP EQU 20H ORG 0000H AJMP MAIN ORG 000BH CPL CLK RETI ORG 0100H MAIN: MOV SP,#60H CJNE R2,#3,DISP1 MOV P0,#00H RET

ADC0809数模转换程序

/******************** //版权和版本声明 * 文件标识: * 摘要: * 当前版本:1.0 * 作者:输入作者(或修改者)名字 * 完成日期:2013年3月25日 **********************************/ #include //头文件 unsigned char code Tab[11]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,}; unsigned char dat[]={0,0,0,0}; unsigned char adc; unsigned int i,j,k; /***********ADC0808************************/ sbit LED = P2^3; sbit ST=P2^4; //定义ADC0809 位 sbit EOC=P2^5; sbit OE=P2^6; sbit CLK =P2^7; /************ 数码管位码****************/ sbit wei1=P3^7; //定义数码管为码位 sbit wei2=P3^6; sbit wei3=P3^5; sbit wei4=P3^4; /**************************** * 函数名称:延时函数

* 函数功能:延时函数 * 输入/输出参数: * 返回值: ***************************************/ void delay(unsigned int xms) //延时及clk 0809时钟{ for(i=0;i

ADC0809芯片资料

ADC0809概述 ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片 1.主要特性 1)8路输入通道,8位A/D转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)4)单个+5V电源供电 5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。 2.内部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。 3.外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。 IN0~IN7:8路模拟量输入端。 2-1~2-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进入转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。

ADC0809进行AD转换

ADC0809进行A/D转换(C描述) 2008-06-24 16:53 指针:可对内存地址直接操作 基于存贮器的指以贮器类为参量,它在编译时才被确定。因此为指针选择存贮器的方法可以省掉,以这些指针的长度可为1个字节(idata *,data *,pdata *)或2个这节(code *,xdata *)。 char xdata *address; ADC0809具有8个模拟量输入通道,采用中断方式,在中断函数中读取8个通道的A/D 转换值,分别存储在外部RAM的1000H~1007H单元。ADC0809端口地址为00F0H。 程序定义了两个指针变量* ADC和* ADCdata,分别指向ADC0809端口地址(00F0H)和外部RAM单元地址(1000H~1007H) 由*ADC=I送入通道数,启动ADC0809进行A/D转换,转换结束时产生INT1中断。在中断服务函数int1()中通过temp=*ADC和*ADCdata=temp;读取A/D转换结果并存到外部RAM中。 #include unsigned int xdata *ADC; /*定义ADC0809端口指针*/ unsigned int xdata *ADCdata; /*定义ADC0809数据缓冲器指针*/ unsigned char I; void main( ) { ADC=0x00f0; /*定义端口地址和数据缓冲器地址*/ ADCdata=0x1000; I=8; /* ADC0809有8个模拟输入通道*/ EA=1; EX1=1;IT1=1; /*开中断*/ *ADC=I; /*启动ADC0809*/ WHILE(I); /*等待8个通道A/D转换完*/ } void int1() interrupt 2 { unsigned char tmp; temp=*ADC; /*读取A/D转换结果*/ *ADCdata=temp; /*结果值存到数据缓冲区*/ ADCdata++; /*数据缓冲区地址加1*/ i—; *ADC=I; /*启动下一个模拟输入通道A/D转换*/ } 除了用指针变量来实现对内存地址的直接操作外,c51编译器还提供一组宏,该宏定义文件为:“absacc.h”,利用它可十分方便地实现对任何内存空间的直接操作,改写上面的程序: #include #include /*包含绝对地址操作预定义头文件*/ #define ADC 0x00f0; /*定义ADC0809端口地址*/

FPGA与ADC0809接口电路详解

FPGA与ADC0809接口电路详解 注:(1)本程序基于FPGA和vhdl编写 有详尽的程序解释和原理分析 以及原理图,状态图 (2)对于adc0809具体资料可上网查在此不累述 一.FPGA与ADC0809的接口电路图原理 二.关于ADC0809的说明(重点) (1)ale信号(引脚):高电平时把三个地址信号送入地址锁存器,并经译码器得到地址数据,以选择相应的模拟输入通道。 (2)oe信号(引脚)en使能信号:电平由低变高时,打开数据输出锁存器,将转换数据送到数据总线上 (3)eoc信号(引脚):eoc为高电平时完成转换,为低电平时正在转换。 (4)start信号(引脚):要给start线送一个100ns宽的启动正脉冲,start下跳沿时,开始进行A/D转换,在转换期间start以保持低电平。

三.转换状态图 对于状态图的真值表未列出 注意对应的注释为vhdl 语句 ale<='1';start<='0';en<='0'; ----eoc='1' ale<='0';start<='0';en<='0';--再次检测数据是否转换完 if eoc='0' then next_state<=st4; else next_state<=st5; 器,将数据送入数据总线 存器 四.ADC0809采样接口电路程序 --*********ADC0809采样控制************* --******因为FPGA 的时钟频率为50MHz ,则256分频后,即ADC0809输入时钟为195KHz****** --******对ADC0809进行简单的采样控制,得到的数据进FPGA 送到8个并排的数码管显示***** library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity PL_AD is port ( d : in std_logic_vector(7 downto 0); --ADC0809输出的采样数据输入FPGA clk,eoc: in std_logic; --clk 为系统时钟,eoc 为ADC0809转换结束信号输入FPGA lock1,start, ale,en: out std_logic; --ADC0809控制信号FPGA 输出信号 abc_in :in std_logic_vector(2 downto 0); --模拟选通信号 abc_out :std_logic_vector(2 downto 0);--ADC0809模拟信号选通信号 q : out std_logic_vector(7 downto 0));送至8个并排数码管信号FPGA 输出数字信号 end pl_AD; architecture behav of PL_AD is type states is ( st0,st1, st2, st3, st4,st5,st6);--定义状态类型枚举类型

ADC0809简介

A/D转换器芯片ADC0809简介 8路模拟信号的分时采集,片内有8路模拟选通 开关,以及相应的通道抵制锁存用译码电路,其 转换时间为100μs左右。 图9.8 《ADC0809引脚图》1. ADC0809的内部结构 ADC0809的内部逻辑结构图如图9-7所示。 图9.7 《ADC0809内部逻辑结构》 图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对 A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。

表9-1 通道选择表 2.信号引脚 ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。 对ADC0809主要信号引脚的功能说明如下: IN 7~IN ——模拟量输入通道 ALE——地址锁存允许信号。对应ALE上跳沿,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,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。

ADC0809功能及程序介绍

ADC0809引脚图与接口电路 作者:来源:本站原创点击数:更新时间:2007年07月29日 A/D转换器芯片ADC0809简介 8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右。 图9.8 《ADC0809引脚图》 1. ADC0809的内部结构 ADC0809的内部逻辑结构图如图9-7所示。

图9.7 《ADC0809内部逻辑结构》 图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D 转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。 表9-1 通道选择表 2.信号引脚 ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。

对ADC0809主要信号引脚的功能说明如下: IN 7~IN ——模拟量输入通道 ALE——地址锁存允许信号。对应ALE上跳沿,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,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。 D 7~D ——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。 D 0为最低位,D 7 为最高 OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。 Vcc—— +5V电源。 Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基 准。其典型值为+5V(Vref (+)=+5V, Vref (-) =-5V). 9.2.2 MCS-51单片机与ADC0809的接口ADC0809与MCS-51单片机的连接如图9.10所示。

ADC0809中文说明

1.ADC0809简介 ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 2.主要特性 1)8路输入通道,8位A/D转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)4)单个+5V电源供电 5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。 3.内部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近 图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D 转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连 4.外部特性(引脚功能)

对ADC0809主要信号引脚的功能说明如下: IN7~IN0——模拟量输入通道 ALE——地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地 START——转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST. A、B、C——地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。 CLK——时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号EOC——转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。 D7~D0——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高 OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。 Vcc—— +5V电源。 Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V).

ADC0809与51单片机接口电路及应用程序

ADC0809与51单片机接口电路及应用程序 最近研究了下ADC0809这个芯片,做了个电路,和大家分享 电路原理图如下: 500)this.width=500;" border=0> 说明:D0~D7接51单片机的P2口(P2.0~P2.7) ADIN1和ADIN2为通道IN0和IN1的电压模拟量输入(0~5V) 应用程序如下: #include"reg52.h" #define uchar unsigned char sbit ST=P1^0; sbit EOC=P1^1; sbit OE=P1^2; sbit CLK=P1^3; sbit ADDCS=P1^4; uchar AD_DATA[2]; //保存IN0和IN1经AD转换后的数据

/**********延时函数************/ void delay(uchar i) { uchar j; while(i--) { for(j=125;j>0;j--) ; } } /*********系统初始化***********/ void init() { EA = 1; //开总中断 TMOD = 0x02; //设定定时器T0工作方式 TH0=216; //利用T0中断产生CLK信号 TL0=216; TR0=1; //启动定时器T0 ET0=1; ST=0; OE=0; } /***********T0中断服务程序************/ void t0(void) interrupt 1 using 0 { CLK=~CLK; } /***********AD转换函数**********/ void AD() { ST=0; ADDCS=0; //选择通道IN0 delay(10); ST=1; //启动AD转换 delay(10); ST=0; while(0==EOC) ; OE=1; AD_DATA[0]=P2;

ADC0809驱动FPGA实现的verilog程序

/*FPGA实现的程序:(verilog) 贴子回复于:2008-4-27 15:26:01*/ module AD0809(clk500K, //脉宽(至少100ns) rst_n, EOC, //约100us后EOC变为高电平转换结束 START, //启动信号,上升沿有效(至少100ns) OE, //高电平打开三态缓冲器输出转换数据 ALE, //高电平有效,选择信道口 ADDA, //因为ADDB,ADDC都接地了,这里只有ADDA为变量 DATA, //转换数据 DATA_R); output START,OE,ALE,ADDA; input EOC,clk500K,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'b100 00; always @(posedge clk500K) 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 clk500K) if(!rst_n) CS<=IDLE;

ADC0809做AD转换的C程序

ADC0809做AD转换的C程序 #include<> unsigned char code dispbitcode[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; unsigned char dispbuf[4]; unsigned int i; unsigned int j; unsigned char getdata; unsigned int temp; unsigned int temp1; unsigned char count; unsigned char d; sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3; sbit P34=P3^4; sbit P35=P3^5; sbit P36=P3^6; sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; sbit P23=P2^3; sbit P17=P1^7; void TimeInitial(); void Delay(unsigned int i);// void TimeInitial()

{ TMOD=0x10; TH1=(65536-200)/256;//定时时间为2us,亦即CLK周期为 TL1=(65536-200)%256; EA=1; ET1=1; TR1=1; } void Delay(unsigned int i)//延时函数 { unsigned int j; for(;i>0;i--) { for(j=0;j<125;j++) {;} } } void Display()// { P1=dispbitcode[dispbuf[3]];//十位 P20=0; P21=1; P22=1; P23=1; Delay(10); P1=0x00; P1=dispbitcode[dispbuf[2]];//个位

ADC0809中文资料

ADC0809中文资料 1.主要特性 1)8路8位A/D转换器,即分辨率8位. 2)具有转换起停控制端. 3)转换时间为100μs 4)单个+5V电源供电 5)模拟输入电压围0~+5V,不需零点和满刻度校准. 6)工作温度围为-40~+85摄氏度 7)低功耗,约15mW. 2.部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,部结构如图13.22所示,它由8路模拟开关,地址锁存与译码器,比较器,8位开关树型D/A转换器,逐次逼近 图13.22 ADC0809部结构框图 寄存器,三态输出锁存器等其它一些电路组成.因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作.输入输出与TTL兼容. 图13.23 ADC0809引脚图 3.外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示.下面说明各引脚功能. IN0~IN7:8路模拟量输入端. 2-1~2-8:8位数字量输出端. ADDA,ADDB,ADDC:3位地址输入线,用于选通8路模拟输入中的一路.如表13.2所示. 表13.2 ADDA,ADDB,ADDC真值表 ALE:地址锁存允许信号,输入,高电平有效. START: A/D转换启动信号,输入,高电平有效. EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平). OE:数据输出允许信号,输入,高电平有效.当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量. CLK:时钟脉冲输入端.要求时钟频率不高于640KHZ. REF(+),REF(-):基准电压. Vcc:电源,单一+5V. GND:地. ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中.此地址经译码选通8路模拟输入之一到比较器.START上升沿将逐次逼近寄存器复位.下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行.直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请.当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上. ADC0809中文资料 2009-08-16 19:00 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的

adc0809上机参考程序

1、A/D0809实验 地址(16进制)机器码(16进制)汇编语言ASM 1100 BAA004 MOV DX, 04A0H ; 1103 B83400 MOV AX, 34H ; 1106 EF OUT DX, AX ; 1107 BAB004 MOV DX, 04B0H ; 110A BD0010 MOV BP, 1000H ; 110D 4D LAY1: DEC BP ; 110E 83FD00 CMP BP, 0 ; 1111 75FA JNE LAY1 ; 1113 ED WAIT1: IN AX, DX ; 1114 250100 AND AX, 1 ; 1117 3D0100 CMP AX, 1 ; 111A 75F7 JNE WAIT1 ; 111C BAA004 MOV DX, 04A0H ; 111F ED IN AX, DX ; 1120 25FF00 AND AX, 0FFH ; 1123 8BC8 MOV CX, AX ; 1125 BAA204 MOV DX, 04A2H ; 1128 B83400 MOV AX, 34H ; 112B EF OUT DX, AX ; 112C BD0010 MOV BP, 1000H ; 112F 4D LAY2: DEC BP ; 1130 83FD00 CMP BP, 0 ; 1133 75FA JNE LAY2 ; 1135 BAB004 MOV DX, 04B0H ; 1138 ED WAIT2: IN AX, DX ; 1139 250100 AND AX, 1 ; 113C 3D0100 CMP AX, 1 ; 113F 75F7 JNE WAIT2 ; 1141 BAA204 MOV DX, 04A2H ; 地址(16进制)机器码(16进制)汇编语言ASM 1144 ED IN AX, DX ; 1145 25FF00 AND AX, 0FFH ; 1148 8BD8 MOV BX, AX ; 114A BAA404 MOV DX, 04A4H ; 114D B83400 MOV AX, 34H ; 1150 EF OUT DX, AX ; 1151 BD0010 MOV BP, 1000H ; 1154 4D LAY3: DEC BP ; 1155 83FD00 CMP BP, 0 ; 1158 75FA JNE LAY3 ; 115A BAB004 MOV DX, 04B0H ; 115D ED WAIT3: IN AX, DX ;

ADC0809重点总结资料

一、ADC0809引脚结构功能说明图: 1~5、26~28,IN0~IN7:8路模拟量输入端。 14~15、8、17~21,D0~D7:8位数字量输出端。 23~25,ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路22,ALE:地址锁存允许信号,输入,高电平有效,对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。 6,START:A/D转换启动信号,输入高电平有效,START上升沿时,复位ADC0809; START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START 应保持低电平。本信号有时简写为ST. 7,EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9,OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量,用于控制三态输出锁存器向单 片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得 到的数据。 10,CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ,EOC=0,正在进行转换; EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为 中断请求信号使用。 12、16,REF(+)、REF(-):基准电压。 11,Vcc:电源,单一+5V。 13,GND:地。 二、ADC0809与51单片机的接口电路 1、说明: D0~D7接51单片机的P2口(P2.0~P2.7) ADIN1和ADIN2为通道IN0和IN1的电压模拟量输 入(0~5V)

应用程序如下: #include"reg52.h" #define uchar unsigned char sbit ST=P1^0; sbit EOC=P1^1; sbit OE=P1^2; sbit CLK=P1^3; sbit ADDCS=P1^4; uchar AD_DATA[2];//保存IN0和IN1经AD 转换后的数据 /*******延时函数*******/ void delay(uchar i) { uchar j; while(i--) { for(j=125;j>0;j--) ; } } /******系统初始化*******/ void init() { EA = 1; //开总中断 TMOD = 0x02; //设定定时器T0工作方式 TH0=216; //利用T0中断产生CLK信号 TL0=216; TR0=1; //启动定时器T0 ET0=1; ST=0; OE=0; } /******T0中断服务程序********/ void t0(void) interrupt 1 using 0 { CLK=~CLK; } /******AD转换函数*******/ void AD() { ST=0; ADDCS=0; //选择通道IN0 delay(10); ST=1; //启动AD转换 delay(10); ST=0; while(0==EOC); OE=1;

基于51单片机的ADC0809c程序代码

基于51单片机的ADC0809c程序代码

#include #define uchar unsigned char #define uint unsigned int sbit st=P3^2; //ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零; //下跳沿时,开始进行 A/D 转换;在转换期间,ST 应保持低电平 sbit oe=P3^1; // OE 为输出允许信号,用于控制三条输出锁存器向 //单片机输出转换得到的数据,OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态 sbit eoc=P3^0; //EOC 为转换结束信号。当EOC 为高电平时,表明转 //换结束;否则,表明正在进行 A/D 转换 uchar code tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41 ,0x1f,0x01,0x09};// 数码管显示段码 uchar code td[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60, 0x70};// 通道先择数组

uint ad_0809,ad_data1,ad_data2,ad_data3,ad_dat a0; uchar m,number; uchar x[8];//八通道数据待存数组 void delaynms(uint x);//nms 延时程序void display();//显示程序 void ad0809();//芯片启动程序 void key();//键扫描程序 void main() { number=1; P1=0x00; while(1) { ad0809();//调 AD0809 启动子程序 key();//调按键子程序 ad_0809=x[number];//把相关通道数据给ad_0809 display();//调显示 }} //nms 延时程序

相关文档