adc0809(学习笔记单片机的40个经典实验之32:ADC0809A/D 转换器基本应用技术)

学习条记单片机的40个经典实行之32: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 三条地点线的地点信号举行锁存,经译码后被选中的通道的模仿量进转换器举行转换。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秒

?转载是一种伶俐?分享是一种美德?

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享