ADC0809引脚图与程序c语言_第1页
ADC0809引脚图与程序c语言_第2页
ADC0809引脚图与程序c语言_第3页
ADC0809引脚图与程序c语言_第4页
ADC0809引脚图与程序c语言_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ADC0809引脚图与接口电路A/D转换器芯片ADC0809简介8路模拟信号的分时釆集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100ps左右。7cnO521;.W30809?2192d21m4a1516al彷ALED12STARTEOCOE巩巩ADDAAPDBAPDCCLOCKV认GND图9.8ADC0809引脚图1.ADC0809的内部结构ADC0809的内部逻辑结构图如图9-7所示。t+irjSTARTCLKOE图9.7ADC0809内部逻辑结构图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方

2、法。地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表9-1为通道选择表。表9-1通道选择表CBk被选择的通道000001巩010III011珥100III.101110巩111IH.2.信号引脚ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8。对ADC0809主要信号引脚的功能说明如下:IN。一一模拟量输入通道ALE一一地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。START转换启动信号。START上升沿时,复位ADC0809;START下降

3、沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST.A、B、C一一地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1。CLK时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号EOC一一转换结束信号。EOC二0,正在进行转换;E0C二1,转换结束。使用中该状态信号即可作为查询的状态标志,乂可作为中断请求信号使用。D:D。一一数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。Do为最低位,D:为最

4、高0E一一输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。0E二0,输出数据线呈高阻;0E二1,输出转换得到的数据。Vcc+5V电源。Vref一一参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V,VrefPo.:P0.2),而地址锁存允许信号ALE由匕。控制,则8路模拟通道的地址为0FEF8H0FEFFH.此外,通道地址选择以碾作写选通信号,这一部分电路连接如图9.12所示。A,ALESTART图9.11ADC0809的部分信号连接START抱址徴存JILEUn自动寄存瞬0,r图9.12信号的时间配合从图中可以看到,把A

5、LE信号与START信号接在一起了,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。图9.19是有关信号的时间配合示意图。启动A/D转换只需要一条MOVX指令。在此之前,要将巳。清零并将最低三位与所选择的通道好像对应的口地址送入数据指针DPTR中。例如要选择I汕通道时,可采用如下两条指令,即可启动A/D转换:MOVDPTR,#FEOOH:送入0809的口地址MOVXDPTR,A;启动A/D转换(INo)注意:此处的A与A/D转换无关,可为任意值。2.转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认

6、完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D转换其來说,转换时间作为一项技术指标是己知的和固定的。例如ADC0809转换时间为128us,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定己经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用

7、上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以更信号有效时,0E信号即有效,把转换数据送上数据总线,供单片机接受。不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。所用的指令为MOVX读指令,仍以图9-17所示为例,则有MOVDPTR,#FEOOHMOVXA,DPTR该指令在送出有效口地址的同时,发出更有效信号,使0809的输出允许信号0E有效,从而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。这里需要说明的示,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D。D:相连。这是启动A/D转换

8、的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN。1%相一致。例如当A、B、C分别与D。、D:、D相连时,启动巩的A/D转换指令如下:MOVDPTR,#FEOOH:送入0809的口地址MOVA,#07H;D2D1DO=111选择IN7通道MOVXDPTR,A;启动A/D转换9.2.3A/D转换应用举例#include#include/沐穴水穴承沐末定义全局变量床*/unsignedchardat=OxOO;/AD值unsignedcharcount=OxOO;/定时器计数unsignedcharchannel;/通道变量/ADC0832引脚sbitADCS=P1A4;/

9、片选信号,使能选择sbitADDI=P1A6;/通道输入sbitADDO二P6;通道输出sbitADCLK=P1A5;/时钟信号sbitSPK=P1AO;/蜂鸣器sbitLED1=PIT;/红灯sbitLED2=P2;绿灯unsignedchardispbitcode8=0 xfe,0 xfd,0 xfb/0 x07/0 xef,0 xdf/0 xbf/0 x7f;/位码unsignedchardispcodell=0 xC0/0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,OxF&0 x80,0 x90,0 xff;共阳数码管字段码unsignedchardispbu

10、f3;共阳LED段码表*/unsignedcharcodetab=0 xc0,0 xf9,0 xa4,0 x60,0 x99,0 x92,0 x82,0 x(8,0 x80,0 x90,;unsignedinttemp;unsignedchardat;获取转换回来的值*p*4c*4c*p*4c*4c*p*4c*p*p*p*p*p*p*p4c*p*p*p4c*p*p*p*p*4c*p*函数功能:AD转换子程序入口参数:CH出口参数:datHe*/采集并返回unsignedintAdc0832(charchannel)/AD转换,返回结呆unsignedchari=0;unsignedcharj;

11、unsignedintdat=O;unsignedcharndat=O;if(channel=O)channel=2;if(channel=l)channel=3;ADDI=1;op_();_nop;ADCS=O;拉低CS端_nop;_nop;ADCLK=1;/拉高CLK端_nop;_nop;ADCLK=O;/拉低CLK端,形成下降沿1_nop;_nop;ADCLK=1;/拉高CLK端ADDI=channel&Oxl;op_();op_();ADCLK=O;/拉低CLK端,形成下降沿2op_();op_();ADCLK=1;/拉高CLK端ADDI=(channell)&Oxl;op_();op

12、_();ADCLK=O;/拉低CLK端,形成下降沿3ADDI=1;控制命令结束_nop_();op_();for(i=0;i8;i+)dat|=ADDO;/接收数据ADCLK=1;_nop_();_nop_();ADCLK=O;/形成一次时钟脉冲op_();_nop_();dat=l;if(i=7)dat|=ADD0;for(i=0;i8;i+)*Vj=0;j=j|ADDO;/收数据ADCLK=1;_nop_();op_();ADCLK=O;/形成一次时钟脉冲op_();op_();j=j7;ndat二ndat|j;if(i7)ndat=l;ADCS=1;/拉低CS端ADCLK=O;/拉低CL

13、K端ADDO=1;/拉高数据端,回到初始状态dat=8;dat|=ndat;return(dat);voiddelay(void)intk;for(k=0;k500;k+);函数功能:数码管显示入口参数:出口参数:voiddisplay(void)P2=Oxff;PO=tabdispbuf2;/显示各位和小数点P2=Oxfb;delay();P2=Oxff;PO=tabdispbufl;/显示小数点后第一位P2=0 xfd;delay();P2=Oxff;PO=tabdispbufO;/显示小数点后第二位P2=Oxfe;delay();函数功能:定时器中断延时程序这一段的作用时隔一段时间抽样一次否则显示的最后一位会不稳定入口参数:出口参数:voidtimerO(void)interrupt1count+;if(count=OxOA)count=OxOO;dat=AdcO832(channel);函数功能:主程序入口参数:出11参数:voidAlarm(unsignedchart)unsignedcharizj;for(i=0;i200;i+)SPK=SPK;for(j=0;jt;j+);voidmain(void)P2=0 xff;端II初始化PO=Oxff;channel=0 x00;/0通道TMOD=0 x01;TH0=0 x00;TL0=0 x0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论