产品选型

adc0809与单片机的连接 学习笔记单片机的40个经典实验之32:ADC0809AD 转换器基本应用技术

小编 2024-10-08 产品选型 23 0

学习笔记单片机的40个经典实验之32:ADC0809AD 转换器基本应用技术

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 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和 C 为地址输入线,用于选通 IN0-IN7 上的一路模拟量输入。通道选择表如下表所示。

数字量输出及控制线: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). 把“单片机系统板”区域中的 P1 端口的 P1.0-P1.7 用 8 芯排线连接到“动态数码显示”区域中的 A B C D E F G H 端口上,作为数码管的笔段驱动。

(2). 把“单片机系统板”区域中的 P2 端口的 P2.0-P2.7 用 8 芯排线连接到“动态数码显示”区域中的 S1 S2 S3 S4 S5 S6 S7 S8 端 口 上 ,作为数码管的位段选择。

(3). 把“单片机系统板”区域中的 P0 端口的 P0.0-P0.7 用 8 芯排线连接到“模数转换模块”区域中的 D0D1D2D3D4D5D6D7 端口上,A/D 转换完毕的数据输入到单片机的 P0 端口

(4). 把“模数转换模块”区域中的 VREF 端子用导线连接到“电源模块”区域中的 VCC 端子上;

(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

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

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 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 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

8. 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,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

P1=dispcode[dispbuf[dispcount]];

P2=dispbitcode[dispcount];

dispcount++;

if(dispcount==8)

{

dispcount=0;

阅读本文用了: 秒,转发只需1秒

转载是一种智慧 分享是一种美德❀

单片机入门-C51语言实现数字电压表ADC0808通道选择解说

单片机入门-C51语言实现数字电压表ADC0808通道选择视频教程如下:

视频教程

在编写ADC0808通道选择代码的时候,要根据使用手册规定的颜色设置高电平和低电平的持续时间,视频教程因为演示的是仿真的情况,没有设计延时代码进去,这一点要注意。

ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

地址信号与选择通道关系如下表:

地址信号与选择通道关系

相关问答

adc0809 跟51 单片机连接的 时候需要加锁存器和反向器,为什么呢?AD7705跟51相连还需要加?

adc0809跟51单片机连接的时候需要加锁存器和反向器,这是因为adc0809采用并行输出形式,单片机需要正确的时序逻辑才能正确操作adc0809。AD7705是16位串行控制A...

adc0809 是什么 单片机 ?

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟...

利用 单片机 串行口怎么跟ad转换芯片 连接 -ZOL问答

你是用的什么ADC,不同的芯片通信不一样的。有单片机、机电液、软件等问题可找我的。可以不用霍尔传感器,价格太高。直接和负载并联一个电阻大很多的电阻,采出...

51 单片机 中ucharidataad[10]的含义#include& lt;absacc.h& gt...

[最佳回答]ucharidataad[10]表示定义一个unsignedchar型的长度为10的数组,数组分配在idata也就是间接寻址访问的片内ram中不用改就行ucharidataad[10]表....

如何扩展 单片机的 模拟输入接口(除了加单片机)?

模拟输入口扩展可以用ADC0809来实现,一片ADC0809可以扩展8个模拟输入口。模拟输入口扩展可以用ADC0809来实现,一片ADC0809可以扩展8个模拟输入口。

0809 芯片属于什么类?

电子类,ADC0809优点是美国国家半导体公司产品,它是逐次逼近型芯片,片内带有锁存功能的8路模拟多路开关,可对8路0~~5V的输入模拟电压信号分时进行转换,片内具...

求助贴,用51 单片机 利用按键实现AD通道的选取?

这个很好实现,一般是8个通道,比如0809,三个通道选择控制口,000~111,选择通道,用一个按钮就可以实现了,检测按键,按一下选择一个通道,一直到按8下,再重...这个...

单片机 是否一般自带采样保持器?

不管是ADC0809或是单片机自带,只要是在发出第二次采样指令之前,前一次采样值是始终保持在AD输出的,只要单片机去读引脚或读AD寄存器不管是ADC0809或是单片机...

信号机报警器的原理?

随着超大规模数字集成电路、单片机技术的飞速发展,利用单片机及其它外围芯片实现对瓦斯的监测成为一种可能,并且成为一种发展趋势。它具有体积小、操作...

at89s52的 单片机 怎样设置输入状态啊?-ZOL问答

这款单片机是很老的型号了,io口结构就是上拉+OD,所以没有高阻(输入)状态。照刷...因为ALE引脚如果不关闭的话,输出一个相对固定的FOSC/12的脉冲,符合ADC0809/08...

猜你喜欢