网站大量收购独家精品文档,联系QQ:2885784924

ADC0809模块转换设计.doc

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
ADC0809模块转换设计

ADC0809模块转换设计 主要特性 1)8路8位A/D转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100μs。 4)单个+5V电源供电 。 5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。 2、 内部结构 ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如上图1所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近 外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。 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转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 ADC0809工作的时序图 tws: 0.1us twe: 0.1us teoc: 8*T+2us tc:100us f:500khz 5、ADC0809外接电路 由于没有选用外部分频器所以应用89S52的定时器2让它产生一个500KHZ的时钟信号。 应用ADC0809做一个多探点的0~5V的数字电压表,电路图如下 设计要求: 五位数码管动态显示,第一位显示通道状态(0、7)第二位显示C,第三位是个数,第三位和第四位数码管分别显示十分位和百分位;按键SW1选择通道数加1,按键SW2选择通道数减1,并且蜂鸣器短时间鸣叫;用按键选择显示的通道,数码管显示该通道的数值,调节滑动变阻器数码管的示数能在0.00~5.00之间变化。 程序如下: /********************************************* 中国民航大学 电子信息工程学院 Yaye ***********************************************/ #includeat89x52.h #includeintrins.h #define uchar unsigned char sbit ST=P1^7; sbit EOC=P1^6; sbit OE=P1^5; sbit key=P1^4; sbit addC=P1^3; sbit addB=P1^2; sbit addA=P1^1; bit adc_flg; //AD转换控制位 bit keydownflg; //按键控制位 uchar dat; uchar channel; //通道变量 uchar disp_cnt; //显示位变量 uchar Beep_cnt; //蜂鸣器时间变量 uchar count4ms; uchar P2_buffer; //数码管位 uchar keybuffer; //按键 uchar disp_buff[5]; //显示缓存 uchar code Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E}; //共阳数码表 uchar code Tab1[]={0x7f,0xbf,0xdf,0xef,0xf7}; //数码管位选表 void FillDispBuffer(void) //显示缓存 { disp_buff[0]=channel; //The fri

您可能关注的文档

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档