ADC0809典型应用

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

号。
(2) 通过控制 ADDA、ADDB、ADDC 选通转换地址,如果固定输入通道,硬件已经控制选通,可略去此步。
(3) 给START端一个正脉冲信号转换开始,开始后EOC自动拉低,不用人为控制。
(4) 转换结束后EOC自动拉高,可通过这点确认转换完成。
(5) 看最后三条线,显然告诉我们转换完成后拉高OE,数字信号就输出了,此时读取单片机I/O口的值就O
/*********************************包含头文件********************************/
#include<reg52.h>
#include<intrins.h>
/*****************************宏定义无符号型变量****************************/
{ uint x,y; for(x=m;x>0;x--) for(y=110;y>0;y--);
} /******************************动态扫描显示函数****************************/ void display(uchar a,uchar b,uchar c,uchar d) {
P0=0xff; wei1=1; P0=table[a]; delay(1); wei1=0;
P0=0xff; //消影 wei2=1; P0=table[b]; delay(1); wei2=0; P0=0xff; wei3=1; P0=table[c]; delay(1); wei3=0; P0=0xff; wei4=1; P0=table[d];
sbit wei3=P1^2; sbit wei4=P1^3; sbit clk=P1^4 ; sbit EOC=P1^6; sbit OE=P1^7; sbit ST=P1^5; uint ad_data; /*******************************共阳 LED 段码表*******************************/ unsigned char code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0x40}; /******************************延时函数************************************/ void delay(uint m)
这时9脚输出的时钟频率为2M/2/2Hz=500KHz<640KHz 以上就是我们这次设计利用 74LS74 进行分频的全部过程。。。。。。。。。。。。。。。。。。。。
2、编写 C 语言程序驱动 ADC0809:
在此之前还是应该看看它的时序图:
从以上时序图可以看出以下几点:
(1) 初始化时OUTPUT ENABLE(输出使能 OE)、START、还有伴随 START 变化的 ALE 全部给低电平信
/*
09 计算机 2 班 孙兴林
*/
/*
2010 年八月一日
*/
/*
ADC0809 试验程序
*/
/*
目标器件:AT89C52
*/
/*
晶振:12.0000MHZ
*/
/*
编译环境:Keil uVision3
*/
/***************************************************************************/
ADC0809: ADC0809 是 CMOS 单片型逐次逼近式 A/D 转换器,它由 8 路模拟开关、地址锁存与译码器、比较器、8 位开关树型 D /A 转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809 可处理 8 路模拟量输入,且 有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与 TTL 兼容。其引脚图如下:
#define uchar unsigned char
#define uint unsigned int
/*********************************端口定义**********************************/
sbit wei1=P1^0;
sbit wei2=P1^1;
delay(1); wei4=0; } /*******************************主函数开始***********************************/ void main() { uchar ad1,ad2,ad3; TMOD=0x01; TH0=(65536-2)%256; TL0=(65536-2)/256; EA=1; ET0=1; TR0=1;
ADC0809 引脚功能如下: ADC0809 芯片有 28 条引脚,采用双列直插式封装 IN0~IN7:8 路模拟量输入端。 2-1~2-8:8 位数字量输出端。 ADDA、ADDB、ADDC:3 位地址输入线,用于选通 8 路模拟输入中的一路. ALE:地址锁存允许信号,输入,高电平有效。 START: A/D 转换启动信号,输入,高电平有效。 EOC: A/D 转换结束信号,输出,当 A/D 转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当 A/D 转换结束时,此端输入一个高电平,才能打开输出三态
while(1)
{
ad1=ad_data*20/1000;//测量范围是 0-5V 大约可以由 8 个 I/O 口的数字表示出来
ad2=ad_data*20%1000/100;//每位十进制数表示 20mV //20*255=5100
ad3=ad_data*20%100/10;//测量结果有点误差 为 0-5.1V
adc08机时钟的16位只需要给09要求时钟频6单片机时给它一个低电平频率小于640钟我们选用的是12mhz利用74ls这时9脚输以上就是我们2编写c在此之前还是那么输入s74进行二次输出的时钟频们这次设计利用语言程序驱动是应该看看它的74ls74次分频
ADC0809 模数转化应用实例
1、 用到的原件介绍
OE = 0;
//送完数据拉低输出使能
}
}
void timer() interrupt 1 //利用中断产生时钟信号
{
TH0=(65536-2)%256;
TL0=(65536-2)/256;
clk=~clk;
}
3、仿真图参考
4、实际硬件AD部分电路图
门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于 640KHZ。 REF(+)、REF(-):基准电压。
Vcc:电源 ,单一+5V。 GND:地。
ADC0809 的输入端选择:
从引脚功能上我们可以看到,ADDA、ADDB、ADDC 三个引脚用于选择模拟信号的输入端,也就是说我们可以通过 对这三个引脚进行编码来选择输入端,那么如果我们需要不断地转换输入端时,我们就可以将这三个引脚与单片机 的 I/O 口相连,通过操作单片机实现输入端的轻松转换。如果需要固定的输入端,只需要将这三个脚和高低电平相 连即可。具体编码如下:
Input
PR CLR CLK






LXXLLXX


UP



UP





Output

/Q




H*
H*





/Q
从上表可以看出,要使触发器正常工作 CLR 端PR端不能置位于低电平,只有他们同为高时输出端才受控于输
入端,事实上,也可以将他们悬空,上电时默认为高电平。如果我们想让他复位或者置位,只需要给它一个低电平 即可。 74LS74 的 AC WAVEFORMS:
display(ad1,ad2,ad3,0);
OE = 0;
ST = 0;
ST = 1;
_nop_();
//提供足够长的上升沿脉冲
ST = 0;
while(!EOC); //转换完成后 EOC 会由硬件拉高,此处等待转换完成
OE = 1;
//拉高输出使能端输出数字信号
ad_data=P2; //把送到单片机口的信号读走
7 4LS74: 该芯片是带有预置和清除端的两组 D 型触发器,双列直插式 74LS74 的逻辑图如下:
引 出端符号: CLK1、CL K2 D1、D2
时钟输入端 数据输入端
Q1、Q2、|Q1、|Q2 数据输出端
CLR1、CL R2
直接复位端 低电平有效
PR1、PR2
直接置位端 低电平有效
真 值表:
K了。
以下是完整程序代码(不知为何在Proteus仿真时单片机ALE口没有信号,这里采用I/O口发生信号。
实际电路,经过试验是完全可以接在通过74LS74分频的ALE口):
/***************************************************************************/
从上图可以看到 74LS74 有一个很重要的作用就是输出 2 倍于时钟周期的时钟。ADC0809 要求时钟频率小于 640K hz,我们从89C52的30脚(ALE)得到的外部时钟频率是单片机时钟的1/6,单片机时钟我们选用的
是12MHz,那么输入74LS74的时钟频率是2MHz输出的将是1MHz,还不能达到要求。那么就应该 利用74LS74进行二次分频。电路图如下:
相关文档
最新文档