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

合集下载

ADC0809引脚图与接口电路

ADC0809引脚图与接口电路

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;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,转换结束。

使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。

D7~D0——数据输出线。

为三态缓冲输出形式,可以和单片机的数据线直接相连。

D0为最低位,D7为最高OE——输出允许信号。

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

ADC0809程序

ADC0809程序

/*---------------------------------------------------------------------------------------------------程序说明:adc0809接到51单片机的P1口,P1口接有8个LED,每次转换结束都可以通过LED观察到转换结果(低电平亮),ADC参考电压与单片机的电源要一致通过验证:输入5v则LED全灭输入0v则LED全亮通过电位器控制输入0~5v则1602显示输出从0~255逐次增加------------------------------------------------------------------------------------------------------*/#include<reg52.h>#include<intrins.h>#include"1602.c"#define uchar unsigned char#define uint unsigned intsbit ADC_START=P2^0;sbit ADC_ALE =P2^1;sbit ADC_OE =P2^2;sbit ADC_EOC =P2^3;sbit D0=P1^0;sbit D1=P1^1;sbit D2=P1^2;sbit D3=P1^3;sbit D4=P1^4;sbit D5=P1^5;sbit D6=P1^6;sbit D7=P1^7;uchar ad_dat;/*---------------------------------函数名:delayus(i)功能:延时t=(12*i+14)us参数:i返回值:无备注: 晶振12MHz-----------------------------------*//*void delayus(i){for(i;i>0;i--);}*//*---------------------------------dac0809初始化----------------------------------*/void init0809(){ADC_START=0;ADC_OE =0;_nop_();ADC_ALE=0;_nop_();_nop_();_nop_();ADC_ALE=1; //ALE=1时地址进入锁存器_nop_();_nop_();_nop_();ADC_ALE=0; //ALE=0时地址被锁存住_nop_();_nop_();_nop_();}/*---------------------------------dac0809模数转换----------------------------------*/void ADC_0809(){ADC_START=1; //上升沿复位_nop_();_nop_();_nop_();ADC_START=0; //下降沿开始_nop_();_nop_();_nop_();while(!ADC_EOC); //等待转换结束ADC_OE =1;w_dat_1602(0x30+(uchar)D0);w_dat_1602(0x30+(uchar)D1);w_dat_1602(0x30+(uchar)D2);w_dat_1602(0x30+(uchar)D3);w_dat_1602(0x30+(uchar)D4);w_dat_1602(0x30+(uchar)D5);w_dat_1602(0x30+(uchar)D6);w_dat_1602(0x30+(uchar)D7);delayus(5);ADC_OE =0;}void main(){init0809();init_1602();delayus(10);while(1){w_com_1602(0x80);ADC_0809();}}#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=P2^4; //1602io引脚sbit rw=P2^5; //1602io引脚sbit e=P2^6; //1602io引脚/*---------------------------------函数名:delayusus(i)功能:延时t=(12*i+14)us参数:i返回值:无备注: 晶振12MHz-----------------------------------*/ void delayus(i){for(i;i>0;i--);}/*---------------------------------函数名:w_com_1602(uchar com) 功能:写命令参数:uchar com返回值:无-----------------------------------*/ void w_com_1602(uchar com) {e=0;rs=0;rw=0;delayus(2);P0=com;e=1;delayus(2);e=0;delayus(2);}/*---------------------------------函数名:w_dat_1602(uchar dat)功能:写数据参数:uchar dat返回值:无-----------------------------------*/void w_dat_1602(uchar dat){e=0;rs=1;rw=0;delayus(2);P0=dat;e=1;delayus(2);e=0;delayus(2);}/*---------------------------------函数名:init_1602()功能:1602初始化参数:无返回值:无-----------------------------------*/void init_1602(){P0=0xff; //端口初始化w_com_1602(0x38); //功能设置w_com_1602(0x0f); //开光标但不闪烁w_com_1602(0x06); //设置输入方式w_com_1602(0x01); //清屏delayus(5);}投标人在《招标投标法实施条例》中应重点关注的19个法律问题《招标投标法实施条例》(以下简称《条例》)日前已公布,将于2012年2月1日起施行。

51单片机使用ADC0809采样

51单片机使用ADC0809采样

void delayms( uint time )
{
unsigned int j=0;
for(;time>0;time--)
{
for(j=0;j<125;j++);
}
}
/************************************************************ //功能:实现将 AD 的值在数码管和 LED 灯上显示出来;
{ *ad=520;
//开始转换;
delayms(1);
xdp=0x8888; P1=*xdp; temp=*xdp;
//读外部 ADC; //使用 P1 口显示;//将转换Fra bibliotek的数给 temp;
a=temp/100; b=temp%100; c=b/10; d=b%10;
//百位;
//十位; //个位;
//入口参数:无 //出口参数:无
************************************************************/
void main ()
{
unsigned char temp,a,b,c,d;
ad=0x8000;
//ad 指向 IN0 通道;
while(1)
temp=ADdata[a]; //当前显示的段码;
xp=0x9004;
//数码管的地址;
*xp=temp;
//段码写入数码管:
temp=ADen[0]; //当前显示的位码; xp=0x9002; //数码管地址; *xp=temp; //位码写入数码管;
delayms(1);
temp=ADdata[c]; //当前显示的段码;

MCS-51单片机与DA转换器的接口和应用

MCS-51单片机与DA转换器的接口和应用

A/D和D/A转换接口技术难点•DAC0832工作方式•ADC0809工作方式要求掌握:•MCS-51单片机与D/A转换器的接口连接•MCS-51单片机与A/D转换器的接口连接•初始化编程及应用了解:•典型D/A转换器芯片DAC0832的管脚功能•典型A/D转换器芯片ADC0809的管脚功能3.1 MCS-51单片机与D/A转换器的接口和应用3.1.1典型D/A转换器芯片DAC0832DAC0832是一个8位D/A转换器芯片,单电源供电,从+5V~+15V均可正常工作,基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。

其内部结构如图9.1所示,它由1个8位输入寄存器、1个8位DAC寄存器和1个8位D/A转换器组成和引脚排列如图1所示。

图1 DAC0832引脚功能该D/A转换器为20引脚双列直插式封装,各引脚含义如下:(1)D7~D0——转换数据输入。

(2)——片选信号(输入),低电平有效。

(3)ILE——数据锁存允许信号(输入),高电平有效。

(4)——第一信号(输入),低电平有效。

该信号与ILE 信号共同控制输入寄存器是数据直通方式还是数据锁存方式:当ILE=1和=0时,为输入寄存器直通方式;当ILE=1和=1时,为输入寄存器锁存方式。

(5)——第2写信号(输入),低电平有效.该信号与信号合在一起控制DAC寄存器是数据直通方式还是数据锁存方式:当=0和=0时,为DAC寄存器直通方式; 当=1和=0时,为DAC寄存器锁存方式。

(6)——数据传送控制信号(输入),低电平有效 。

(7)Iout2——电流输出“1”。

当数据为全“1”时,输出电流最大;为全“0”时输出电流最小。

(8)Iout2——电流输出“2”。

DAC转换器的特性之一是:Iout1 +Iout2=常数。

(9)R fb——反馈电阻端既运算放大器的反馈电阻端,电阻(15KΩ)已固化在芯片中。

因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,R fb 即为运算放大器的反馈电阻,运算放大器的接法如图2所示。

浅谈ADC0809在MCS-51单片机中的作用

浅谈ADC0809在MCS-51单片机中的作用

浅谈ADC0809在MCS-51单片机中的作用[摘要] 由于在MCS-51单片机中大部分不带A/D转换器,所以模拟量的采集就必须靠A/D来实现。

因此我们有必要掌握用来采集模拟量的扩展芯片,以及我们要解决MCS-51单片机与这些扩展芯片的接口问题,在这里以ADC0809芯片为例,进行阐述说明。

[关键词] ADC0809 MCS-51 模拟量接口MCS-51系列单片机目前在工业控制以及仪器仪表中的应用越来越广泛,但在应用过程中,避免不了的是要与外围芯片进行对接,这就引出了新的问题,MCS-51单片机如何与外围的芯片有机的结合起来,以扩展其功能。

下面就以ADC0809芯片为例,进行说明。

一、ADC0809概述ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。

图(1)为该芯片的引脚图。

各引脚功能如下: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:芯片的电源端和地端。

二、ADC0809的逻辑结构ADC0809 是8位逐次逼近型A/D转换器。

它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成,ADC0809内部逻辑结构如图(2)所示。

ADC0809程序

ADC0809程序
sbit D4=P1;
sbit D5=P1 ;
sbit D6=P1;
sbit D7=P1;
ucharad_dat;
/*---------------------------------
函数名:delayus(i)
功能:延时t=(12*i+14)us
参数:i
返回值:无
备注:晶振12MHz
-----------------------------------*/
}
/*---------------------------------
函数名:w_com_1602(uchar com)
功能:写命令
参数:uchar com
返回值:无
-----------------------------------*/
void w_com_1602(uchar com)
{
e=0;
while(!ADC_EOC); //等待转换结束
ADC_OE =1;
w_dat_1602(0x30+(uchar)D0);
w_dat_1602(0x30+(uchar)D1);
w_dat_1602(0x30+(uchar)D2);
w_dat_1602(0x30+(uchar)D3);
w_dat_1602(0x30+(uchar)D4);
dac0809模数转换
----------------------------------*/
void ADC_0809()
{
ADC_START=1; //上升沿复位
_nop_();
_nop_();
_nop_();
ADC_START=0; //下降沿开始

基于ADC0809的声音采集电路,程序和仿真

基于ADC0809的声音采集电路,程序和仿真
SD和RD接至基本RS触发器的输入端,它们分别是预置和清零端,低电平有效。当SD=1且RD=0时(SD的非为0,RD的非为1,即在两个控制端口分别从外部输入的电平值,原因是低电平有效),不论输入端D为何种状态,都会使Q=0,Q非=1,即触发器置0;当SD=0且RD=1(SD的非为1,RD的非为0)时,Q=1,Q非=0,触发器置1,SD和RD通常又称为直接置1和置0端。我们设它们均已加入了高电平,不影响电路的工作。
ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。
管脚说明如下:
VCC
GND
P0
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FLASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
工作过程如下:
1.
同时,由于Q3至Q5和Q4至Q6的反馈信号将这两个门打开,因此可接收输入信号D,Q5=D,Q6=Q5非=D非。
2.
这时G3和G4打开,它们的输入Q3和Q4的状态由G5和G6的输出状态决定。Q3=Q5非=D非,Q4=Q6非=D。由基本RS触发器的逻辑功能可知,Q=Q3非=D。
3.
这是因为G3和G4打开后,它们的输出Q3和Q4的状态是互补的,即必定有一个是0,若Q3为0,则经G3输出至G5输入的反馈线将G5封锁,即封锁了D通往基本RS触发器的路径;该反馈线起到了使触发器维持在1状态和阻止触发器变为0状态的作用,故该反馈线称为置1维持线,置0阻塞线。Q4为0时,将G3和G6封锁,D端通往基本RS触发器的路径也被封锁。Q4输出端至G6反馈线起到使触发器维持在0状态的作用,称作置0维持线;Q4输出至G3输入的反馈线起到阻止触发器置1的作用,称为置1阻塞线。因此,该触发器常称为维持-阻塞触发器。

9.2.1 ADC0809 的使用_快速学通51单片机C语言程序设计_[共2页]

9.2.1 ADC0809 的使用_快速学通51单片机C语言程序设计_[共2页]

第9章 数/模与模/数转换接口设计 193║9.2.1 ADC0809的使用1.ADC0809的功能与结构ADC0809是8位逐次逼近型A/D 转换器,具有8个模拟量输入通道,并带有通道地址译码锁存器,输出配有三态数据锁存器。

ADC0809采用脉冲启动方式,每一通道的转换时间大约为100μs 。

ADC0809由两大部分组成,一部分是输入通道,包括8位模拟开关,3条地址线的锁存器和译码器,可以实现8路模拟输入通道的选择。

另一部分是一个逐次逼近型A /D 转换器。

ADC0809的芯片引脚如图9.6所示。

ADC0809各引脚的功能如下。

• IN0~IN7:8个模拟通道输入端。

• START :启动转换信号。

• EOC :转换结束信号。

• OE :输出允许信号。

信号由CPU 读信号和片选信号组合产生。

• CLOCK :外部时钟脉冲输入端,典型值为640K 。

• ALE :地址锁存允许信号。

• A 、B 、C :通道地址线,CBA 的8种组合状态000~111对应8个通道的选择,并在ALE 有效时才被锁存。

• V REF+、V REF-:参考电压输入端。

• V CC :接+5V 电源。

• GND :接电源地。

ADC0809工作的过程是:先由通道地址线选择要采样的通道,然后发出启动信号START 启动转换,由于EOC 信号在START 下降沿之后才会变为低电平,所以在读取采样值前,必须对EOC 的状态进行判定。

地址码与模拟通道的关系如下。

地 址 码模 拟 通 道CB A 01111 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN72.ADC0809的接口设计图9.7是ADC0809与8031的接口电路,电路中0809的启动信号START 是由片选线P2.7图9.6 ADC0809芯片引脚。

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

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;
OE=0;
ST=0;
ADDCS=1; //选择通道IN1 delay(10);
ST=1; //启动AD转换
delay(10);
ST=0;
while(0==EOC)
;
OE=1;
AD_DATA[1]=P2;
OE=0;
}
/*****************主函数**************/。

相关文档
最新文档