ADC0809重点总结资料2 .docx

上传人:C****o 文档编号:13045039 上传时间:2022-04-27 格式:DOCX 页数:15 大小:815.11KB
返回 下载 相关 举报
ADC0809重点总结资料2 .docx_第1页
第1页 / 共15页
ADC0809重点总结资料2 .docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《ADC0809重点总结资料2 .docx》由会员分享,可在线阅读,更多相关《ADC0809重点总结资料2 .docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品名师归纳总结一、 ADC0809引脚结构功能说明图:15 、2628, IN0 IN7 : 8 路模拟量输入端。1415、8、1721, D0D7 : 8 位数字量输出端。2325,ADDA 、ADDB 、ADDC : 3 位的址输入线,用于选通8 路模拟输入中的一路22, ALE :的址锁存答应信号,输入,高电平有效,对应ALE上跳沿, A、 B、 C 的址状态送入的址锁存器中。6,START :A D 转换启动信号, 输入高电平有效,START上升沿时, 复位 ADC0809。 START下降沿时启动芯片,开头进行 A/D 转换。 在 A/D 转换期间, START 应保持低电平。本信

2、号有时简写为ST.7,EOC:A D 转换终止信号,输出,当A D 转换终止时,此端输出一个高电平(转换期间始终为低电平)。9, OE:数据输出答应信号,输入,高电平有效。当A D 转换终止时,此端输入一个高电平,才能打开输出三态门,输出数字量,用于掌握三态输出锁存器向单片机输出转换得到的数据。OE=0 ,输出数据线呈高阻。OE=1 ,输出转换得到的数据。10, CLK :时钟脉冲输入端。要求时钟频率不高于640KHZ, EOC=0, 正在进行转换。EOC=1, 转换终止。使用中该状态信号即可作为查询的状态标志,又可作为中断恳求信号使用。12、 16, REF ( +)、 REF ( - ):

3、基准电压。11, Vcc :电源,单一5V 。13, GND :的。二、 ADC0809 与 51 单片机的接口电路1、说明: D0 D7 接 51 单片机的 P2 口P2.0P2.7 ADIN1 和 ADIN2 为通道 IN0 和 IN1 的电压模拟量输入( 0 5V )可编辑资料 - - - 欢迎下载精品名师归纳总结EA = 1; /开总中断应用程序如下:#includereg52.h#define uchar unsigned charTMOD = 0x02; /设定定时器 T0 工作方式TH0=216; /利用 T0 中断产生 CLK 信号TL0=216;sbit ST=P10;sbi

4、t EOC=P11;TR0=1; /启动定时器 T0 ET0=1;sbit OE=P12;ST=0;sbit CLK=P13;OE=0;sbit ADDCS=P14;uchar AD_DATA2;/储存转换后的数据IN0和 IN1经 AD/*T0中断服务程序 */void t0void interrupt 1 using 0/*延时函数 */void delayuchar iCLK=CLK;uchar j;whilei-/*AD转换函数 */ void ADforj=125;j0;j-ST=0;ADDCS=0; /挑选通道 IN0delay10;/*系统初始化 */ void initST=1

5、;/启动 AD 转换delay10;ST=0;while0=EOC;OE=1;可编辑资料 - - - 欢迎下载精品名师归纳总结AD_DATA0=P2; OE=0;ST=0;ADDCS=1; /挑选通道 IN1/* void main主函数 */delay10;init;ST=1;/启动 AD 转换delay10;while1ST=0;AD;while0=EOC;OE=1;AD_DATA1=P2;OE=0;注: 由于 ADC0809 内部不带时钟电路,因此用51 单片机的定时器T0 来产生时钟信号。在通道挑选时,由于B,C 接的,当 A( ADDCS)为低电平常挑选 IN0 ,A 为高电平常挑选

6、 IN12、利用单片机 AT89S51与 ADC0809 设计一个数字电压表,试验任务利用单片机AT89S51 与 ADC0809 设计一个数字电压表, 能够测量 0 5V 之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。可编辑资料 - - - 欢迎下载精品名师归纳总结3 系统板上硬件连线(1) 把 “单片机系统 ”区域中的 P1.0 P1.7与“动态数码显示 ”区域中的 ABCDEFGH端口用 8 芯排线连接,数码管段码掌握。(2) 把 “单片机系统 ”区域中的 P2.0 P2.3与“动态数码显示 ”区域中的 S1S2S3S4 端口用 8 芯排线连接,数码管位码掌握。(3) 把“

7、单片机系统 ”区域中的 P3.0与“模数转换模块 ”区域中的 ST 端子用导线相连接,转换启动掌握。(4) 把“单片机系统 ”区域中的 P3.1与“模数转换模块 ”区域中的 OE 端子用导线相连接,数据输出掌握。(5) 把“单片机系统 ”区域中的 P3.2与“模数转换模块 ”区域中的 EOC 端子用导线相连接, 转换终止标志。(6) 把“单片机系统 ”区域中的 P3.3与“模数转换模块 ”区域中的 CLK 端子用导线相连接, 为转换器供应脉冲。(7) 把“模数转换模块 ”区域中的 A2A1A0 端子用导线连接到 “电源模块 ”区域中的 GND端子上, 始终挑选IN0 单通道(8) 把 “模数转

8、换模块 ”区域中的 IN0 端子用导线连接到 “三路可调电压模块 ”区域中的 VR1 端子上,调剂电压变化。(9) 把 “单片机系统 ”区域中的 P0.0 P0.7用 8 芯排线连接到 “模数转换模块 ”区域中的D0D1D2D3D4D5D6D7端子上,数字结果输出。4 程序设计内容i. 由于 ADC0809在进行 A/D 转换时需要有 CLK信号,而此时的 ADC0809的 CLK是接在 AT89S51 单片机的 P3.3 端口上,也就是要求从P3.3 输出 CLK信号供 ADC0809使用。因此产生 CLK 信号的方法就得用软件来产生了。ii. 由于 ADC0809的参考电压 VREF VC

9、C,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值D/256*VREF5 C 语言源程序#include 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 dispbuf8=10,10,10,10,10,0,0,0;unsigned char dispcount; unsigned

10、 char getdata; unsigned int temp; unsigned char i;sbit ST=P30; sbit OE=P31; sbit EOC=P32; sbit CLK=P33; void mainvoidST=0;OE=0;ET0=1;ET1=1;EA=1;TMOD=0x12;TH0=216;TL0=216;TH1=65536-4000/256;TL1=65536-4000%256;TR1=1;TR0=1;ST=1;ST=0;while1可编辑资料 - - - 欢迎下载精品名师归纳总结ifEOC=1OE=1;getdata=P0;OE=0;temp=getdata

11、*235; temp=temp/128; i=5;dispbuf0=10; dispbuf1=10; dispbuf2=10; dispbuf3=10; dispbuf4=10; dispbuf5=0; dispbuf6=0; dispbuf7=0; whiletemp/10dispbufi=temp%10; temp=temp/10;i+;dispbufi=temp;ST=1;ST=0;void t0void interrupt 1 using 0CLK=CLK;void t1void interrupt 3 using 0TH1=65536-4000/256;TL1=65536-4000%

12、256;P1=dispcodedispbufdispcount;/显示电压值P2=dispbitcodedispcount;/位码掌握ifdispcount=7P1=P1 | 0x80;dispcount+; ifdispcount=8dispcount=0;三、 ADC0809应用说明1、( 1 ) ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。(2) 初始化时,使 ST 和 OE 信号全为低电平。(3) 送要转换的哪一通道的的址到A, B,C 端口上。(4) 在 ST 端给出一个至少有 100ns宽的正脉冲信号。(5) 是否转换完毕,我们依据EOC 信号来判定。(6

13、) 当 EOC 变为高电平常,这时给OE 为高电平,转换的数据就输出给单片机了。2 、ST 为转换启动信号。当ST 上跳沿时,全部内部寄存器清零。下跳沿时,开头进行A/D 转换。在转换期间, ST 应保持低电平。 EOC 为转换终止信号。当 EOC 为高电平常,说明转换终止。否就,说明正在进行 A/D 转换。 OE为输出答应信号, 用于掌握三条输出锁存器向单片机输出转换得到的数据。OE 1,可编辑资料 - - - 欢迎下载精品名师归纳总结输出转换得到的数据。 OE0,输出数据线呈高阻状态。 D7 D0 为数字量输出线。 CLK 为时钟输入信号线。因 ADC0809 的内部没有时钟电路,所需时钟

14、信号必需由外界供应,通常使用频率为500KHZ ,VREF(), VREF()为参考电压输入 。( 1 ) 进行 A/D 转换时,采纳查询 EOC 的标志信号来检测 A/D 转换是否完毕, 如完毕就把数据通过 P0 端口读入,经过数据处理之后在数码管上显示。 ( 2)进行 A/D 转换之前,要启动转换的方法:ABC 110 挑选第三通道 ST 0,ST 1 ,ST 0 产生启动转换的正脉冲信号 .3 、ADC0809 的工作过程是:第一输入3 位的址,并使 ALE=1 ,将的址存入的址锁存器中。此的址经译码选通 8 路模拟输入之一到比较器。START 上升沿将逐次靠近寄存器复位。下降沿启动A

15、D转换,之后 EOC 输出信号变低,指示转换正在进行。直到A D 转换完成, EOC变为高电平,指示 A D 转换终止,结果数据已存入锁存器,这个信号可用作中断申请。当OE 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。4 、C 语言源程序#include unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f。/ 位码数组unsigned char codedispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/段

16、码数组unsigned char dispbuf8=10,10,10,10,10,0,0,0; unsigned char dispcount;sbit ST=P30; sbit OE=P31; sbit EOC=P32;unsigned char channel=0xbc;/IN3 unsigned char getdata;void mainvoidTMOD=0x01;TH0=65536-4000/256;TL0=65536-4000%256;TR0=1;ET0=1;EA=1;P3=channel;while1 ST=0; ST=1; ST=0;whileEOC=0;OE=1;getdat

17、a=P0;OE=0;dispbuf2=getdata/100;/分别百位getdata=getdata%100;/除去百位dispbuf1=getdata/10;/分别 10 位dispbuf0=getdata%10;/分别各位void t0void interrupt 1 using 0TH0=65536-4000/256;TL0=65536-4000%256;P1=dispcodedispbufdispcount;/采样数据P2=dispbitcodedispcount;/打开所要显示数据的位码dispcount+; ifdispcount=8可编辑资料 - - - 欢迎下载精品名师归纳总

18、结dispcount=0; 四、 ADC0809 的内部结构1 、ADC0809 的内部规律结构图如图9-7所示。.表.表 9-1 通道挑选可编辑资料 - - - 欢迎下载精品名师归纳总结2. 转换数据的传送A/D 转换后得到的数据应准时传送给单片机进行处理。数据传送的关键问题是如何确认 A/D 转换的完成,由于只有确认完成后,才能进行传送。为此可采纳下述三种方式。(1) 定时传送方式对于一种 A/D 转换其来说, 转换时间作为一项技术指标是已知的和固定的。 例如 ADC0809 转换时间为 128s,相当于 6MHz 的 MCS-51 单片机共 64 个机器周期。可据此设计一个延时子程序,

19、A/D 转换启动后即调用此子程序,推迟时间一到,转换确定已经完成了,接着就可进行数据传送。(2) 查询方式A/D 转换芯片由说明转换完成的状态信号,例如 ADC0809 的 EOC 端。因此可以用查询方式,测试 EOC 的状态,即可却只转换是否完成,并接着进行数据传送。(3) 中断方式把说明转换完成的状态信号( EOC)作为中断恳求信号,以中断方式进行数据传送。不管使用上述那种方式, 只要一旦确定转换完成, 即可通过指令进行数据传送。第一送出口的址并以信号有效时, OE 信号即有效,把转换数据送上数据总线,供单片机接受。不管使用上述那种方式,只要一旦确认转换终止, 便可通过指令进行数据传送。所

20、用的指令为 MOVX 读指令,仍以图 9-17所示为例,就有MOV DPTR , #FE00H MOVX A , DPTR该指令在送出有效口的址的同时,发出有效信号,使 0809 的输出答应信号 OE 有效,从而打开三态门输出,是转换后的数据通过数据总线送入A 累加器中。这里需要说明的是, ADC0809 的三个的址端 A、B、C 即可如前所述与的址线相连,也可与数据线相连,例如与D0 D2 相连。这是启动 A/D 转换的指令与上述类似,只不过A 的内容不能为任意数,而必需和所选输入通道号IN0 IN7 相一样。可编辑资料 - - - 欢迎下载精品名师归纳总结我为了这个 ADC0809已经痛楚

21、了好几天了, 今日最终胜利了。算是一个里程碑了。为了纪念它,把东西发上来。电路图PCB图可编辑资料 - - - 欢迎下载精品名师归纳总结实物图可编辑资料 - - - 欢迎下载精品名师归纳总结程序可编辑资料 - - - 欢迎下载精品名师归纳总结#include #include sbit CLOCK=P27; sbit OE=P26;sbit START=P25; unsigned char _data;void initSM0=0;/SM01 组合代表 8 位 uart 方式,波特率可变SM1=1;REN=1;/答应串行接受TH1=0xF3;/波特率 2400,误差 0.12% TL1=0XF

22、3;TMOD=0X20;/ 定时器 1 工作于 8 位自动重载模式 , 用于产生波特率EA=1;/总开关中断方式 ET1=0;/定时器 1 不答应中断ES=1;/ 答应串口中断TR1=1;/ 计时器启动掌握位START=0;OE=0;void waitunsigned char time / 产生时钟unsigned char i,j; fori=0;itime;i+forj=0;j125;j+CLOCK=0;_nop_;_nop_;_nop_;_nop_;_nop_;CLOCK=1;_nop_;_nop_;_nop_;_nop_;_nop_;void get/ 猎取数据 START=1;wait10; START=0;wait10;wait10;OE=1;_data=P0;OE=0;START=0;void show/ 发送到串口与 led 灯P1=_data;TI=0;SBUF=_data; while.TI; TI=0;void mainunsigned char i; int j=0;init;/ 初始化while1P2=0;可编辑资料 - - - 欢迎下载精品名师归纳总结j=0;fori=0;i10;i+/测 10 次后显示get;/ 获得数据j+=_data;_data=j/10; show;/ 发送数据可编辑资料 - - - 欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁