ADC0809进行AD转换

合集下载

adc0809模数转换器用户手册

adc0809模数转换器用户手册

ADC0809模数转换芯片概述ADC0809是8位逐次逼近型A/D 转换器。

它由一个8路模拟开关、一个地址 锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见下图)。

多路开关 可选通8个模拟通道,允许8路模拟量分时输入,共用A/D 转换器进行转换。

三 态输出锁存器用于锁存A/D 转换完的数字量,当0E 端为高电平时,才可以从三 态输出锁存器取走转换完的数据。

ADC0809内部结构图ADC0809的工作原理图XX 是ADC0809的引脚图。

引脚功能说明如下:• IN0〜IN7: 8个输入通道的模拟输入端 • DO (2一8)〜D7 (2'1): 8位数字量输出端 • START :启动信号,加上正脉冲后,A/D 转换开始进行• ALE :地址锁存信号。

由低至高电平时,把三位地址信号送入通道号地址锁存器,并经译码器得到地址输出,以选择相应的模拟输入通道。

• EOC:转换结束信号,是芯片的输出信号。

转换开始后,EOC 信号变低: 转换结束时,EOC 返回高电平。

这个信号可以作为A/D 转换的状态信号 来査询,也可以直接用作中断请求信号。

• 0E :输出允许控制端(开数字星输出三态们)。

• CLK :时钟信号。

最高允许值为640kHzo地锁与码址存译8路二A/D____态 转输换----------------出器----------------存器▲ ▲IN3 EOCIN1DODiIN4 D2IN5D3D4D6 D7LVREFX*)VREFX-)8模 拟开 关• $EF+和%EF-:A/D 转换器的参考电压。

• Vcc-电源电斥。

由于是CMOS 芯片,允许电斥范鬧宽,可以是+5V 〜+15V 。

ADC0809两种封装形式8位模拟开关地址输入通道的关系见表XXo 模拟开关的作用和8选1的 CD4051作用相同表XX 8位模拟开关功能表ADDC ADDB ADDA 输入通道号 0 0 0 INO 0 0 1 INI 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 111IN7ADC0809芯片的转换速度在最高时钟频率卞为lOOus 左右。

实验六 ADC0809AD转换实验

实验六 ADC0809AD转换实验

实验六 ADC0809AD转换实验一、实验目的1、掌握ADC0809AD芯片的工作原理和使用方法。

2、掌握如何使用51单片机配合ADC0809AD芯片实现模拟量转换。

二、实验原理ADC0809AD是一种8位分辨率、并行输出、单通道,3MHz 工作速率的A/D转换器。

ADC 有两个输入电压端子,IN+和IN-,它们之间加入了一个内部参考电压源(RE),所以在输入模拟信号时常在IN+端连接信号输入,而IN-端接地。

当选用RE = +2.5 V时,IN+的输入范围约为0-VREF,在本实验中选用的是RE = +5 V,所以IN+的输入范围约为0-5V。

当外部触发信号TRIGGER开启后,ADC执行转换操作。

在转换时,电压采样保持时间通常为 100 ns,最长转换时间为 200 us,当转换结束时,ADC将数字输出置在低电平并发出一个中断请求(INTR)信号。

转换结果可以通过 8个输出线路(DB0-DB7)获得。

三、实验器材2、*1 9针座(1x9 Pin Socket)。

3、*1 51单片机学习板。

4、*1 电阻10KΩ。

5、*1 电压源。

6、*1 面包板。

7、*5 条杜邦线。

四、实验步骤1、根据下表将ADC0809AD芯片插入到面包板中。

ADC0809AD引脚码ADC0809AD引脚名称功能1 A0- A/D输入(低、多路)引脚17 AGND 模拟地18 VREF/2 参考电压输出19 VCC 数字电源2、将9脚座插入面包板的横向边缘上。

3、使用杜邦线将ADC0809AD转换器连接到学习板上,并根据原理部分对芯片引脚进行接线。

4、将一个10KΩ的电阻连接到ADC0809AD芯片的IN+引脚和GND之间。

6、使用杜邦线将ADC0809AD芯片的DB0-DB7引脚连接到学习板的P0.0-P0.7引脚上。

7、将学习板的P0.0-P0.7引脚转为输出模式。

五、实验代码#include <reg52.h>// SFR位定义sfr ADC_CONTR = 0xBC; // ADC控制寄存器sfr ADC_RES = 0xBD; // ADC结果寄存器sfr ADC_RESL = 0xBE; // ADC结果低字节寄存器sfr P0 = 0x80; // P0口// 公用函数void delay(int time) // 延时函数{int i, j;for (i = 0; i < time; i++) {for (j = 0; j < 125; j++);}}while (1) {ADC_CONTR |= 0x08; // 开始转换while (!(ADC_CONTR & 0x10)); // 等待转换结束P0 = ADC_RES; // 将结果输出到P0口delay(1000); // 延时1000ms}}根据程序分析,程序采用了循环语句控制ADC的转换、输出,程序中实现的是ADC的一次转换。

实验六 ADC0809转换实验

实验六   ADC0809转换实验

8位A/D转换实验1.实验目的了解A/D转换器ADC0809的基本性能;掌握A D C0809转换芯片的使用及与C P U接口方法。

学习A/D转换程序设计方法。

通过实训了解单片机的数据采集过程。

2.实验原理及内容用一片ADC0809和必要的外围器件与A T89C51进行接口连接,设计一个简易数字电压表,要求能对IN0所输入的模拟电压进行识别,将其转换成相应的二进制数并以发光二极管的形式显示;用万用表测量IN0输入的模拟电压值,并与转换结果进行对比,计算测量误差。

八路8位A/D实验电路由一片A D C0809,一片74L S02,一片74L S373组成。

A D C0809转换器引脚排布如图1所示。

图1A D C0809转换器引脚A D C0809转换芯片内部结构如图2所示。

图2A D C0809转换芯片内部结构A D C0809是一种能将8路模拟信号转换成8位数字量的A/D转换器,它采用逐次逼近法进行转换。

8路模拟开关由3位地址码经译码进行选通。

3位地址码在0809内部可锁存。

其输出的8位数字也可锁存。

控制信号及引脚功能:I N0~I N7:8个模拟输入量0~5V。

S T R A T:启动A/D转换信号,高电平有效,启动0809开始转换。

E O C:转换结束信号,A/D转换结束,发一正脉冲,此信号可用作A/D转换结束的检测信号或中断请求信号。

O E: 输出允许信号,此信号被选中时(当O E为高电平时),允许从A/D锁存器中读取数字量,高电平有效,一般由C P U发来的(C S)和读信号(R D)联合产生O E信号。

当O E为低电平时,D0~D7对外呈高阻抗。

C L K: 转换时钟,A/D转换需要时钟信号。

A L E:地址锁存允许信号,这个信号是外部加到0809上的信号,高电平有效,它的作用是把外部加来的选择模拟开关的地址码锁存到0809的地址锁存器内,A L E与外加地址码决定选哪个模拟输入通道。

ADC0809AD转换芯片的原理及应用

ADC0809AD转换芯片的原理及应用

ADC0809AD转换芯片的原理及应用的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1)ADC0809的内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

(2).引脚结构IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

选择的CBA通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7数字量输出及控制线: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单片机直接相连。

ADC0809应用

ADC0809应用
ADC0809A/D 转换器基本应用技术
1. 基本知识 ADC0809 是带有 8 位 A/D 转换器、8 路多路开关以及 微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼近式 A/D 转换器,可以和单片机直接接口。 (1). ADC0809 的内部逻辑结构
由上图可知,ADC0809 由一个 8 路模拟开关、一个地址锁存与译码器、一个 A/D 转换器和一个三态输出锁存器组成。多路开关可选通 8 个模拟通道,允许 8 路模 拟量分时输入,共用 A/D 转换器进行转换。三态输出锁器用于锁存 A/D 转换完的 数字量,当 OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。 (2). 引脚结构 IN0-IN7:8 条模拟量输入通道 ADC0809 对输入模拟量要求:信号单极性,电压范围是 0-5V,若信号太小,必 须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快, 则需在输入前增加采样保持电路。 地址输入和控制线:4 条 ALE 为地址锁存允许输入线,高电平有效。当 ALE 线为高电平时,地址锁存与译 码器将 A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟
(5). 把“模数转换模块”区域中的 A2A1A0 端子用导线连接到“单片机 系统”区域中的 P3.4 P3.5 P3.6 端子上; (6) . 把“模数转换模块”区域中的 ST 端子用导线连接到“单片机系统” 区域中的 P3.0 端子上; (7) . 把“模数转换模块”区域中的 OE 端子用导线连接到“单片机系统” 区域中的 P3.1 端子上; (8) .把“模数转换模块”区域中的 EOC 端子用导线连接到“单片机系统” 区域中的 P3.2 端子上; (9). 把“模数转换模块”区域中的 CLK 端子用导线连接到“分频模块” 区域中的 /4 端子上; (10). 把“分频模块”区域中的 CK IN 端子用导线连接到“单片机系统” 区域中的 ALE 端子上; (11). 把“模数转换模块”区域中的 IN3 端子用导线连接到“三路可调 压模块”区域中的 VR1 端子上; 6. 程序设计内容 (1). 进行 A/D 转换时,采用查询 EOC 的标志信号来检测 A/D 转换是 否完毕,若完毕则把数据通过 P0 端口读入,经过数据处理之后在 数码管上显示。 (2). 进行 A/D 转换之前,要启动转换的方法: ABC=110 选择第三通道 ST=0,ST=1,ST=0 产生启动转换的正脉冲信号 7. 汇编源程序 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

应用adc0809的ad转换设计

应用adc0809的ad转换设计

应用ADC0809的A/D转换设计摘要此次设计的主要内容是利用ADC0809设计制做A/D转换器,电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,51单片机通过8255的PA口输出到发光二极管进行显示,并将8位二进制数转换为3位BCD码并在3位数码管上进行显示,并在此基础上进行扩展。

由于热敏电阻输出量为模拟量,同样通过ADC0809进行A/D转换,并将其输出值在发光二极管以及3位数码管上进行显示,来反映温度的变化。

压力传感器的输出量经过ADC0809进行模数转换后经发光二极管以及数码管的显示来反映压力的变化。

关键词:ADC0809 A/D转换 51单片机发光二极管数码管the design of the A/D conversion based onADC0809AbstractThe main content of this design is that use the ADC0809 make a A/D conversion.The ADC0809 get Analog signal from Potentiometers. Program and transform it into Digital as Binary. The 51Single-chip sent the digital to Light-emitting diodes by the A I/O interface of 8255,change the 8 bit Binary number into 3 bit BCD code , then develops it.The output of the thermistor is analog, use the ADC0809 make a A/D conversion and sent to Light-emitting diodes and Digital tube display it the aim is to Reflect the diversification of temperature. ADC0809 change the output of pressure sensor into digital data and Be displayed by Light-emitting and Digital tube,from this we can see the change of pressure we gave.Keywords:ADC0809A/Dconversion 51Single-chip Light-emitting目录1 绪论 (1)1.1 A/D转换概述 (1)1.1.1 A/D转换的概念 (1)1.1.2 A/D转换器的类型 (1)1.2 A/D转换在现实中的应用 (1)2 A/D转换的硬件介绍 (2)2.1 总体硬件介绍 (2)2.2 电位器概述 (2)2.3 ADC0809概述 (3)2.3.1 ADC0809的内部逻辑结构 (3)2.3.2 ADC0809的外部特征 (4)2.3.3 逐次逼近型A/D转换方法 (5)2.4 MC51单片机概述[4] (6)2.5 8255可编程并行I/O接口芯片概述 (7)2.5.1芯片引脚及其内部结构 (7)2.5.2 8255的内部结构 (8)2.6 发光二极管概述 (9)2.7 LED数码管概述 (10)3 A/D转换的具体设计及程序实现 (11)3.1 A/D转换的总体设计 (11)3.2 51单片机的中断 (11)3.2.1 中断的基本概念 (11)3.2.2 程序的入口地址 (12)3.2.3 中断响应的条件、过程与时间 (12)3.3 ADC0809的工作过程 (13)3.3.1 ADC0809与51单片机的连接 (15)3.3.2 ADC0809工作流程图及程序实 (16)3.4 8255的工作方式 (16)3.4.1 8255的工作方式及编程 (17)3.4.2 8255A的三种工作方式的功能及应用 (17)3.4.3 8255与51单片机的连接及工作 (19)3.5 发光二极管以及LED数码管的显示 (21)3.5.1 发光二极管的显示 (21)3.5.2 LED动态显示方式及实现 (21)4.设计扩展 (24)扩展1:利用热敏电阻检测温度的变化 (24)扩展2:利用压力传感器检测压力的变化 (25)5.总结 (26)参考文献 (27)致谢 (28)1 绪论1.1 A/D转换概述1.1.1 A/D转换的概念模数转换亦称模拟一数字转换,与数/模转换相反,是将连续的模拟量(如象元的灰阶、电压、电流,电压,温度等)通过取样转换成离散的数字量。

实验十三 AD转换器ADC0809实验

实验十三 AD转换器ADC0809实验

实验十三A/D转换器ADC0809实验五、实验步骤1、单通道采集接线⑴使用2×10的排线连接D7区的J28接到A7区的J84;⑵将D2区10K电位器的左端金属孔通过导线连接到该区的GND金属孔,而右端金属孔通过导线连接到该区的VCC金属孔;⑶D2区10K电位器的中间金属孔连接到A7区的P2_IO2金属孔(IN0);⑷将A7区的P2_IO3~P2_IO5分别连接到A2区的A2~A0;⑸将A7区的P2_CS连接到A2区的A15;⑹用排线将A2区的J61与D1区的J52相连。

2、实验步骤⑴运行编写好的软件程序,每次跑到断点就会停止,此时观察转换的结果和用数字万用表测量的结果相比较是否正确(所需观察的存储单元或者变量在程序中依照注释执行);⑵改变10K电位器的旋钮位置,用数字万用表测量中间金属孔的电压,再次运行程序至断点处,观察转换的结果是否正确。

⑶扭动电位器,改变IN0模拟输入电压,再次运行程序到断点处,观察30H单元的数值是否随之改变,同时观察8个发光二极管显示的转换结果的二进制数(1亮,0灭),改变的是否正确?⑷数据换算成实际电压值是否与万用表的测量结果相等?3、实验参考程序清单ORG 8000HLJMP MAINORG 8100HMAIN: MOV SP,#70HMAIN1: MOV R1,#30H ;置数据区首地址,用于存放A/D转换结果MOV DPTR,#7FF8H ;P2.0=0,且指向通道0LOOP:MOVX @DPTR,A;启动A/D转换CALL DELAYMOVX A,@DPTR ;读取转换结果MOV @R1,A;转存LCALL P1ZHCPL AMOV P1,ALJMP MAIN1P1ZH: MOV C,ACC.0MOV 07H,CMOV C,ACC.1MOV 06H,CMOV C,ACC.2MOV 05H,CMOV C,ACC.3MOV 04H,CMOV C,ACC.4MOV 03H,CMOV C,ACC.5MOV 02H,CMOV C,ACC.6MOV 01H,CMOV C,ACC.7MOV 00H,CMOV A,20HRETDELAY:MOV R6,#0H ;软件延时,等待转换结束DELAY1:MOV R5,#0FFHDJNZ R5,$DJNZ R5,$DJNZ R6,DELAY1RETEND调试程序的说明:在标有 的指令处设置一个断点,采用连续运行程序,在断点处观察30H 单元的内容,30H单元的内容;继续执行程序,观察8个发光二极管显示的采集结果二进制数。

A-D转换典型芯片ADC0809

A-D转换典型芯片ADC0809

A/D 转换典型芯片ADC0809
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 主要信号引脚的功能说明如下:。

实验三 A_D转换实验

实验三 A_D转换实验
#include<absacc.h>
//start由P2.3控制,用高位地址作为通道选择和AD片选
#define IN0 XBYTE[0xF0FF]
sbit AD_BUSY=P3^2; //转换结束引脚--EOC
unsigned char LED_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段码
D7~D0:数据线,三态输出,由OE(输出允许信号)控制输出与否。
OE:输出允许,该引线上的高电平,打开三态缓冲器,将转换结果放到D0~D7上。
ALE:地址允许锁存,其上升沿将ADDA,ADDB,ADDC三条引线的信号锁存,经译码选择对应的模拟通道。ADDA,ADDB,ADDC可接单片机的地址线,也可接数据线。ADDA接低位线,ADDC接高位线。
本实验用的ADC0809属第二类,是八位A/D转换器。每采集一次一般需100μS,A/D转换结束后会自动产生EOC信号。
1)ADC0809引脚含义
IN0~IN7:8路模拟通道输入,由ADDA,ADDB,ADDC三条线选择。
ADDA、ADDB、ADDC:模拟通道选择线,比如000时选择0通道,111时选择7通道。
P1=LED_bit[i];
delay(100);
}
}
void main(void) //主函数
{
unsigned int a=0; 图8-4 AD变换流程图
convert(a);
display();
n=n/10;i++;
}
}
void display(void) //显示函数

AD转换电路(ADC0809)

AD转换电路(ADC0809)

程序清单: ORG 0000H START:AJMP MAIN ORG 0003H AJMP EXINT0 ORG 0050h MAIN: MOV PSW,#00H ;设置第0工作区 MOV R0,#40H ;采样数据存放首址 MOV R1,#78H ;IN0通道地址 MOV R2,#08H ;模拟量通道数 MOVX @R1 ,A ;启动A/D转换 SETB IT0 ;外部中断0为边沿触发方 式 SETB EX0 ;允许外部中断0中断 SETB EA ;开放CPU中断 HERE:SJMP HERE


分辨率为8位,精度为8位。 转换时间:100微秒 8个模拟输入通道,有通道地址锁存。 数据有三态输出能力。 输入电压范围为0~+5v 零偏差和满量程误差均小于1/2LSB,不需要校准 单一+5v电源供电工作温度范围为-40~+85℃ 功耗为15mw




D0~D7:8位数字量输出引脚。 IN3 IN0~IN7:8路模拟量输入引脚。 IN4 IN5 Vcc:+5V工作电源。 IN6 GND:地。 IN7 VREF(+):参考电压正端。 START VREF(-):参考电压负端。 EOC D3 START:A/D转换启动信号输入端。 OE ALE:地址锁存允许信号输入端。 CLK EOC:转换结束输出引脚。 V OE:输出允许控制端。 V (+) CLK:转换时钟信号。500kHz左右。 GND ADDA、ADDB、ADDC:地址输入线。 D1
被选通的通道 IN0 IN1 IN2 IN3 ADDC 0 0 0 0 ADDB 0 0 1 1 ADDA 0 1 0 1 被选通的通道 IN4 IN5 IN6 IN7 ADDC 1 1 1 1 ADDB 0 0 1 1 ADDA 0 1 0 1

模数转换器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 转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

( 2).引脚结构IN0- IN7:8 条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线: 4 条ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将 A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B 和 C 为地址输入线,用于选通 IN0-IN7 上的一路模拟量输入。

通道选择表如下表所示。

C B A 选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线: 11 条ST 为转换启动信号。

当 ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行 A/ D 转换;在转换期间, ST应保持低电平。

EOC为转换结束信号。

当 EOC为高电平时,表明转换结束;否则,表明正在进行 A/D 转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE= 1,输出转换得到的数据; OE=0,输出数据线呈高阻状态。

D7- D0为数字量输出线。

ADC0809做AD转换器.doc

ADC0809做AD转换器.doc

一.实验要求利用实验板上的ADC0809做A/D转换器,利用实验板上的电位器W1提供模拟量输入.编制程序,将模拟量转换成二进制数字量,用发光二极管显示.二.实验目的1.掌握A/D转换与单片机的接口方法.2.了解A/D芯片ADC0809转换性能及编程.3.通过实验了解单片机如何进行数据采集.三.实验电路及连线CS0809接8000H. 模块电位器V-OUT点(即中心抽头)接至ADC0809的IN0(通道0).EOC 连P3.2(INT0).将单片机的P1.0~P1.7接至八位发光二极管L1 -- L8.四.实验说明ADC0809是八位逐次逼近法A/D转换器,每采集一次一般需100us.中断方式下,A/D转换结束后会自动产生EOC信号,经一级74LS14反向后与8031的INT0相接.本示例程序采取了中断处理来正确读取A/D转换的结果.用户也可以用延时来保证A/D转换完成.读取结果由P1口送至八位发光二极管显示.五.实验程序框图六.实验程序A_DPORT EQU 8000H ;0809通道0地址ORG 0000HLJMP STARTORG 0003HLJMP INT_0ORG 0040HSTART:MOV SP,#60HMOV R7,#0FFH ;初始化SETB IT0SETB EASETB EX0 ;INT0 允许A_D:MOV DPTR,#A_DPORTMOVX @DPTR,A ;启动A_DCJNE R7,#00H,$ ;等待A_D 转换结束CPL AMOV P1,A ;数据输出MOV R7,#0FFH ;清读数标志SJMP A_DINT_0:MOVX A,@DPTR ;读A_D 数据MOV R7,#00H ;置读数标志RETIEND。

使用ADC0809的AD转换实验

使用ADC0809的AD转换实验

实验二 使用ADC0809的A/D 转换实验一、实验目的加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D 输入程序的设计和调试方法。

二、预备知识逐次逼近法A/D 也称逐次比较法A/D 。

它由结果寄存器、D/A 、比较器和置位控制逻辑等部件组成,如图5-1所示。

图5-1三、实验内容1 、实验原理本实验采用 ADC0809 做 A/D 转换实验。

ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D 器件,转换时间约100us ,转换精度为±1/512,适用于多路数据采集系统。

ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。

IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42E OC7IN-53ADD-A 25IN-64ADD-B 24ADD-C 23IN-75ALE22ref(-)16E NABL E 9ST ART 6ref(+)12CLOCK 10UB43ADC0809123UB42A 74L S02456UB42B 74L S02E B4122U/16VCB41103RB41510IORIOWVCCADD0ADD1ADD2GNDGNDGNDVre f+5VIN6IN7IN1IN2IN3IN4IN5D7D0D1D2D3D4D5D6E OC/EOCIN0CS_0809CLK_080912UA32A 74L S04WA5110K VCCGNDRA51100V1Y61MHZ图中ADC0809的CLK 信号接CLK=,基准电压Vref(+)接Vcc 。

一般在实际应用系统中应该接精确+5V ,以提高转换精度,ADC0809片选信号0809CS 和/IOW 、/IOR 经逻辑组合后,去控制ADC0809的ALE 、START 、ENABLE 信号。

AD0809的工作原理

AD0809的工作原理

AD0809的工作原理1. AD0809的芯片说明:ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1)ADC0809的内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

(2).引脚结构IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

C B A 选择的通道000IN0数字量输出及控制线: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单片机直接相连。

实验五 0809AD转换实验

实验五   0809AD转换实验

专业班级学号姓名成绩实验五0809 A/D转换实验一、实验目的1、了解ADC0809的工作原理。

2、了解用扫描方式驱动七段码管显示的工作原理。

3、了解时序电路FPGA的实现。

4、学习状态机设计二、硬件要求1、可变时钟源。

2、七段码显示。

3、A/D转换芯片ADC08094、主芯片EP1K30TC144—3。

5、三个拨动开关,进行地址选择。

三、实验原理该实验是利用FPGA控制ADC0809的时序,进行AD转换,然后将ADC0809 转换后的数据以十六进制的数据显示出来。

1、ADC0809的管脚功能ADC0809是8位8通道的逐次比较式AD转换芯片。

该芯片管脚如右图所示。

芯片引脚及其说明如下:D0-D7(2-8-2-1):8位双先三态数据线。

ADDA、ADDB、ADDC:通道选择地址。

OUTPUT ENABLE:输出允许控制。

Clock:ADC转换时钟。

Vref+、Vref-:正负参考电压。

IN0-IN7:8个模拟信号输入通道。

START:AD转换启动信号。

EOC:AD转换结束信号。

ALE:通道地址锁存信号。

2、ADC0809的工作时序:如下图所示。

其详细工作过程可查阅其他资料。

3、ADC0809工作流程简介首先将要转换的ADC0809的地址输出(略,固定),然后产生ALE信号的,在该信号的上升沿,地址被打入ADC0809的地址锁存器,这样就选中了对应的通道。

地址产生结束后,便可产生START信号,使ADC0809开始进行AD转换,需要注意的是,在ADC0809转换期间,输入的模拟信号必须稳定,否则可能出现比较大的误差。

在地址锁存并且启动转换后,EOC便会呈现低电平,直到AD转换结束,所以FPGA在EOC从低电平变成高电平之前,不能读取ADC的转换数据。

在EOC变成高电平之后,FPGA便可将OUTPUT INPUT信号拉高,这样ADC转换的数据就会呈现在数据线上,FPGA读入该数据后,在8位七段码管上显示出来,这就是整个实验过程的工作流程。

51单片机与ADC0809应用做AD转换(电路图附程序)

51单片机与ADC0809应用做AD转换(电路图附程序)
#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 AD()
{
ST=0;
ADDCS=0; //选择通道IN0
delay(10);
ST=1; //启动AD转换
delay(10);
ST=0;
while(0==EOC);
OE=1;
AD_DATA[0]=P2;
OE=0;
ST=0;
ADDCS=1; //选择通道IN1
delay(10);
ST=1; //启动AD转换
d0d751单片机的p2口p20p27adin1adin2为通道in0in1的电压模拟量输入05v应用程序如下
ADC0809与51单片机应用程序
电路原理图如下:
说明:D0~D7接51单片机的P2口(P2.0~P2.7)
ADIN1和ADIN2为通道IN0和IN1的电压模拟量输入(0~5V)
应用程序如下:
delay(10);
ST=0;
whilபைடு நூலகம்(0==EOC);
OE=1;
AD_DATA[1]=P2;
OE=0;
}
/*****************主函数**************/
void main()
{
init();
while(1)
{
AD();
}
}

模数转换ADC0809实验

模数转换ADC0809实验

微机原理与接口实验报告实验名称:模数转换ADC0809实验班级:学号:姓名:指导老师:实验报告要求一.实验目的1.掌握ADC0809接口电路与微机的硬件电路连接方法。

2.掌握A/DADC0809接口电路的程序设计和调试方法。

二.实验仪器1.微型计算机一台。

DVCC-5286JH型微机原理与接口实验系统,排线、导线若干。

三.实验原理1、实验要求本实验采用 ADC0809做A/D 转换实验。

ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为±1/512,适用于多路数据采集系统。

ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。

ADC0809的CLK信号接CLK=2.385MHZ,基准电压Vref(+)接Vcc。

一般在实际应用系统中应该精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。

ADC0809的转换结束信号EOC 未接,如果以中断方式实现数据采集,需将EOC信号线接至中断控制器8259A的中断源输入通道。

本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C 接系统数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H 、06H、07H。

调节电位器W1,以改变模拟电压值,显示器上会不断显示新的A/D转换结果。

用ADC0809做A/D转换,其模拟量与数字量对应关系的典型值为+5V-FFH,2.5V-80H,0V-00H。

2、实验电路原理及连接3、实验程序流程图三.实验源程序CODE SEGMENTASSUME CS:CODE ADPORT E QU 0010hORG 1000HSTART: JMP ADCONTORL ADCONTORL:CALL FORMAT ADCON: MOV AX,00MOV DX,ADPORTOUT DX,ALMOV CX,0500H DELAY: LOOP DELAYMOV DX,ADPORTIN AL,DXCALL CONVERSCALL DISPJMP ADCON CONVERS:MOV AH,ALAND AL,0FHMOV BX,077AHMOV DS:[BX],ALINC BXMOV AL,AHAND AL,0F0HMOV CL,04HSHR AL,CLMOV DS:[BX],ALRETdisp: mov dx,077Fhmov ah,20hdisp0: mov cx,00ffhmov bx,dxmov bl,ds:[bx]mov bh,0hpush dxmov dx,0ff22hmov al,cs:[bx+1060h]OUT DX,ALmov dx,0ff21hmov al,ahOUT DX,ALdisp1: loop disp1pop dxdec dxshr ah,01hjnz disp0mov dx,0ff22hmov al,0ffhOUT DX,ALretdata1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0ah db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfhFORMAT: MOV BX,0MOV WORD PTR DS:[BX+077AH],0000HADD BX,2MOV WORD PTR DS:[BX+077AH],0009HADD BX,2MOV WORD PTR DS:[BX+077AH],0008HRETCODE ENDSEND START四.实验结果分析取一个中间结果:58五.心得体会通过本次实验掌握了ADC0809接口电路与微机的硬件电路连接方法、A/DADC0809接口电路的程序设计和调试方法、加深理解逐次逼近法模数转换器的特征和工作原理以及掌握ADC0809的接口方法,以及A/D输入程序的设计和调试方法。

ADC0809模数转换技术

ADC0809模数转换技术

附页:实验线路图:编译程序:源程序代码:1 汇编语言程序清单CS8279C EQU 0FFFFHCS8279D EQU 0FFFEHCS0809 EQU 0A007HADRESULT EQU 3AHADBAK EQU 3BH; DISPLAY BUFF 30H(low) ~ 35H (high)ORG 0000HMAIN:MOV SP, #60HACALL INI8279MOV ADRESULT, #00HMOV ADBAK, #0FFHMAINLP:ACALL DISPLAYACALL EXINT1SJMP MAINLPEXINT1:MOV DPTR,#CS0809MOVX @DPTR,A ;START CONVERTMOV R6,#30DLY: NOPNOPNOPDJNZ R6,DLYMOVX A,@DPTR ; READ CONVERT RESULTMOV ADRESULT,ARET; subprogram name :INI8279; function: initial 8279 as 8 digtal left in ALE/10; input parameter : none; output parameter: none; others 8279 command port address 0FFE9H;8279 data port address 0FFE8H; the subprogram affect A、 DPTRINI8279:MOV DPTR,#CS8279CMOV A,#0DDH ; First set all display RAM as 0FFHMOVX @DPTR,AIL0:MOVX A,@DPTR ;wait clearJB ACC.7,IL0LCALL DLT ; WAIT 400MSLCALL DLTMOV A,#0D1H ; clear all display RAM as 00HMOVX @DPTR,AIL1:MOVX A,@DPTRJB ACC.7,IL1LCALL DLTLCALL DLTMOV A,#00H ;key/display mode command word 000DDKKK MOVX @DPTR,A ;8 char left inMOV A,#2AH ; ALE/10MOVX @DPTR,ARETDLT: MOV R7,#200 ; Delay 400 ms(6M)DLT1: MOV R6,#250 ; 12TDLT2: DJNZ R6,DLT2 ; 24TDJNZ R7,DLT1RET; NAME:DISPLAY 显示子程序DISPLAY:MOV A,ADRESULTCJNE A,ADBAK,REDISPSJMP DSPEXITREDISP:MOV ADBAK, ADRESULTACALL CONVBCDMOV DPTR,#CS8279CMOV A,#90H ;write display RAM commandMOVX @DPTR,AMOV R7,#6MOV DPTR,#CS8279DMOV R0,#30HDISPL1:PUSH DPLPUSH DPHMOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRPOP DPHPOP DPLMOVX @DPTR,AINC R0DJNZ R7,DISPL1DSPEXIT:RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB 0FFH,00H,73H ; 全亮;全灭;PConvert ADRESULT to BCD; send to 30H ~ 35H locationCONVBCD:MOV A,ADRESULTMOV B,#100DIV ABMOV 32H,AMOV A,BMOV B,#10DIV ABMOV 31H,AMOV A,BMOV 30H,AMOV A,32HCJNE A,#00,CONB1MOV A,31HCJNE A,#00,CONB2MOV R7,#5SJMP CONB3CONB2:MOV R7,#4SJMP CONB3CONB1:MOV R7,#3CONB3:MOV R0,#35HMOV A,#0BHCONBLP:MOV @R0,ADEC R0DJNZ R7,CONBLPRETEND ; program end2 C 语言程序清单#include <AT89X51.H>#include <absacc.h>#define uchar unsigned char#define COM XBYTE[0xffff] // 8279命令端口#define DAT XBYTE[0xfffe] // 8279数据端口#define CS0809 XBYTE[0xA007] // 通道7#define adresult DBYTE[0x3A] // 用于存放A/D转换结果#define adbak DBYTE[0x3B] // 备份A/D转换结果#define hun DBYTE[0x3C] // A/D转换结果的百位#define ten DBYTE[0x3D] // A/D转换结果的十位#define one DBYTE[0x3E] // A/D转换结果的个位//共阴数码管段码:0~9,全亮,全灭,Puchar code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xFF,0x00,0x73};void ini8279(){ COM=0xD1; //8279显示RAM和键盘RAM清零do{ACC=COM;}while(CY); //等待清除完毕//显示方式设为8个字符左边输入COM=0; //键盘工作方式设为编码扫描键盘方式,双键互锁COM=0x2A; // 外部信号的频率是1MHz,需要进行10分频}void exint1(void){uchar i;CS0809=0; //启动A/D转换for(i=19;i>0;i--); //延时100usadresult=CS0809; //读取A/D转换结果值}void convbcd(void){hun=adresult/100; //求得百位ten=adresult%100/10; //求得十位one=adresult%10; //求得个位if(hun==0) //如果百位为0,则该位对应的数码管灭 { hun=11;if(ten==0) //如果十位为0,则该位对应的数码管灭 ten=11;}}void display(void){if(adresult!=adbak){adbak=adresult;convbcd();COM=0x90; //写显示RAM命令DAT=tab[one]; //送个位的段码到显示RAM DAT=tab[ten]; //送十位的段码到显示RAM DAT=tab[hun]; //送百位的段码到显示RAM DAT=tab[11]; //送全灭的段码到显示RAM DAT=tab[11];DAT=tab[11];}}void main(void){SP=0x60;ini8279(); //初始化8279adresult=0;adbak=0xff;do{display(); //显示A/D转换结果值exint1(); //执行一次A/D转换}while(1);}。

ADC0809简介(模数转换器)

ADC0809简介(模数转换器)

ADC0809概述ADC0809是M美国国家半导体公司生产的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转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D 转换器、逐次逼近3.外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。

下面说明各引脚功能。

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:地。

编辑本段ADC0809的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

ADC0809进行AD转换

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<reg51.h>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<reg51.h>#include<absacc.h> /*包含绝对地址操作预定义头文件*/#define ADC 0x00f0; /*定义ADC0809端口地址*/#define ADCdata 0X1000 /*定义数据缓冲器地址*/unsigned char I;void main( ){I=8; / *ADC0809有8个模拟输入通道*/EA=1;ex1=1;it1=1; / *开中断*/XBYTE[ADC]=I; /*启动0809 */While(i); /*等待8个通道转换完毕*/}void int1() interrupt2 {unsigned char tmp;tmp=XBYTE[ADC]; /*读取A/D转换结果*/i--;XBYTE[ADCdata+I]=tmp; /**结果值存储到数据缓冲器*/XBYTE[ADC]=I; /*启动下一个模拟输入通道A/D转换*/}利用单片机AT89S51与ADC0809设计一个数字电压表(图)[ 来源:机电论文| 类别:技术| 时间:2009-2-24 10:47:12 ] [字体:大中小]1.实验任务利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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<reg51.h>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<reg51.h>#include<absacc.h> /*包含绝对地址操作预定义头文件*/#define ADC 0x00f0; /*定义ADC0809端口地址*/#define ADCdata 0X1000 /*定义数据缓冲器地址*/unsigned char I;void main( ){I=8; / *ADC0809有8个模拟输入通道*/EA=1;ex1=1;it1=1; / *开中断*/XBYTE[ADC]=I; /*启动0809 */While(i); /*等待8个通道转换完毕*/}void int1() interrupt2 {unsigned char tmp;tmp=XBYTE[ADC]; /*读取A/D转换结果*/i--;XBYTE[ADCdata+I]=tmp; /**结果值存储到数据缓冲器*/XBYTE[ADC]=I; /*启动下一个模拟输入通道A/D转换*/}利用单片机AT89S51与ADC0809设计一个数字电压表(图)[ 来源:机电论文| 类别:技术| 时间:2009-2-24 10:47:12 ] [字体:大中小]1.实验任务利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。

2.电路原理图3.系统板上硬件连线a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH 端口用8芯排线连接。

b) 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。

c) 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。

d) 把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。

e) 把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。

f) 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。

g) 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。

h) 把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。

i) 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。

4.程序设计内容由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK 是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。

因此产生CLK信号的方法就得用软件来产生了;由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。

实际显示的电压值(D/256*VREF)5.汇编源程序6.C语言源程序#include <AT89X52.H>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,0,0,0,0};unsigned char dispcount;unsigned char getdata;unsigned int temp;unsigned char i;sbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit CLK=P3^3;void main(void){ST=0;OE=0;ET0=1;ET1=1;EA=1;TMOD=0x12;TH0=216;TL0=216;TH1=(65536-4000)/256; TL1=(65536-4000)%256; TR1=1;TR0=1;ST=1;ST=0;while(1){if(EOC==1){OE=1;getdata=P0;OE=0;temp=getdata*235;temp=temp/128;i=5;dispbuf[0]=10;dispbuf[1]=10;dispbuf[2]=10;dispbuf[3]=10;dispbuf[4]=10;dispbuf[5]=0;dispbuf[6]=0;dispbuf[7]=0;while(temp/10) {dispbuf[i]=temp%10;temp=temp/10;i++;}dispbuf[i]=temp;ST=1;ST=0;}}}void t0(void) interrupt 1 using 0 {CLK=~CLK;}void t1(void) interrupt 3 using 0 {TH1=(65536-4000)/256;TL1=(65536-4000)%256;P1=dispcode[dispbuf[dispcount]]; P2=dispbitcode[dispcount];if(dispcount==7){P1=P1 | 0x80;}dispcount++;if(dispcount==8){dispcount=0;}}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主要信号引脚的功能说明如下:IN7~IN——模拟量输入通道ALE——地址锁存允许信号。

对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。

START——转换启动信号。

START上升沿时,复位ADC0809;S TART下降沿时启动芯片,开始进行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为最低位,D7为最高OE——输出允许信号。

用于控制三态输出锁存器向单片机输出转换得到的数据。

OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。

Vcc—— +5V电源。

Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。

其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V).9.2.2 MCS-51单片机与ADC0809的接口ADC0809与MCS-51单片机的连接如图9.10所示。

电路连接主要涉及两个问题。

一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。

1. 8路模拟通道选择图9.10 ADC0809与MCS-51的连接如图9.11所示模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A 2即(P0.0、P0.1、P0.2),而地址锁存允许信号ALE由P2.0控制,则8路模拟通道的地址为0FEF8H~0FEFFH.此外,通道地址选择以作写选通信号,这一部分电路连接如图9.12所示。

相关文档
最新文档