1、ADC0809模数转换器的使用详解与程序带我们的王老师刚评上硕导了,下学期开始带研究生了。 从他那里了解到每做一次实验或者实践,应该把它用规范的格式记录下来,一来自己可以日后查看,二来同学间可以相互交流,共通过进步,甚为必要。现将本次实验记录如下。 实验名称:根据光强控制外围器件的通断。 实验原理;使用AD芯片将太阳能电池产生的光生伏打电压转化为数字信号,再通过单片机处理后,在数码管上显示电压,同时根据设定电压伐值,控制外围器件的通断。 实验所需的设备:51单片机烧写器一个,电脑一台,数字式示波器一个,数字式万用表一个 实验所需的元件:太阳能电池一片,单片机一片,1k排阻一个,四位连体的数码管
2、一个,排针若干排,导线,万用版一块,焊锡。 实验前的理论准备;能熟练使用51单片机,示波器,keil软件,isp下载软件,看懂AD0809的英文pdf说明 实验的难点:难点一就是AD0809芯片的使用。 难点二就是将AD0809产生的0256的数字换算成05.000的精确度,而又不至于溢出出错。 难点三就是以上的理论准备全部系自学,呵呵 下面着重说明AD0809的使用难点。 ADC0809是采样频率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 1主要特性 1)8路8位AD转换器,即分辨率
3、8位。 2)具有转换起停控制端。 3)转换时间为100s 4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 2内部结构 ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近 3外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通
4、8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此 地址经译码选通8路模拟输入之一到比较器。
5、START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可 用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 值得一提的是,我按照上面电路,把AD的ABC三脚共同接接地时,AD0809088始终输出高电平,最后当我把BC共同接地,在程序中给A一个0,则AD0809正常运行,有输出,并且发现当所给的时钟频率越低,最高精度的那位输出越稳定,具体参数范围从芯片资料里有详细介绍,不过十全英文,专业词汇哦。哈哈 现将程序记录如下:完整的程
6、序从这里下载: #include #define uint unsigned int #define uchar unsigned char uchar aa,qian,bai,shi,ge; uint temp; sbit clock=P20; sbit start=P21; sbit eoc=P22; sbit oe=P23; sbit ale=P24; sbit adda=P25; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 ; /
7、void display(uchar bai,uchar shi,uchar ge); void delay(uint z); void main() TMOD=0x20; /设置定时器1为工作方式2 TH1=0x216; /216 TL1=0x216; /216 EA=1; /开总中断 ET1=1; /开t1中断 TR1=1; start=0; /复位 oe=0; /输出 adda=0; /eoc=0; ale=0; /关闭地址选择 while(1) start=0; /delay(10); start=1; / 复位 ale=1; / 打开地址选择 adda=0; /delay(10);
8、start=0; / 开始转换 ale=0; / 关地址 /delay(1); while(eoc=0); / 等待eoc变为1 /delay(1); oe=1; / 打开输出 /delay(1); /P1=0xff; temp=P1; / 取p1到p3 oe=0; / 关输出 temp=temp*50; temp=temp/256; qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; P3=0x00; P0=0xfe; P3=tableqian; delay(50); P3=0x00; P0=0xfd; P3=tab
9、lebai; delay(50); P3=0x00; P0=0xfb; P3=tableshi; delay(50); P3=0x00; P0=0xf7; P3=tablege; void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=1;y0;y-); void cl() interrupt 3 clock=!clock; 模数转换器模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。 通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模
10、数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。 模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。 A/D转换一般要经过采样、保持、量化及编码4个过程。在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。 一般来说,AD比DA贵,尤其是高速的AD,因为在某些特殊场合,如导弹的摄像头部分要求有高速的转换能力。一般那样AD要上千美元。还有通过AD的并联可
11、以提高AD的转换效率,多个AD同时处理数据,能满足处理器的数字信号需求了。 编辑本段转换方法 模数转换器模数转换过程包括量化和编码。量化是将模拟信号量程分成许多离散量级,并确定输入信号所属的量级。编码是对每一量级分配唯一的数字码,并确定与输入信号相对应的代码。最普通的码制是二进制,它有2n个量级(n为位数),可依次逐个编号。模数转换的方法很多,从转换原理来分可分为直接法和间接法两大类。 直接法是直接将电压转换成数字量。它用数模网络输出的一套基准电压,从高位起逐位与被测电压反复比较,直到二者达到或接近平衡(见图)。控制逻辑能实现对分搜索的控制,其比较方法如同天平称重。先使二进位制数的最高位Dn-
12、11,经数模转换后得到一个整个量程一半的模拟电压VS,与输入电压Vin相比较,若VinVS,则保留这一位;若VinVS还是VinV 来决定是否保留这一位。经过n次比较后,n位寄存器的状态即为转换后的数据。这种直接逐位比较型(又称反馈比较型)转换器是一种高速的数模转换电路,转换精度很高,但对干扰的抑制能力较差,常用提高数据放大器性能的方法来弥补。它在计算机接口电路中用得最普遍。 间接法不将电压直接转换成数字,而是首先转换成某一中间量,再由中间量转换成数字。常用的有电压-时间间隔(V/T)型和电压-频率(V/F)型两种,其中电压-时间间隔型中的双斜率法(又称双积分法)用得较为普遍。 模数转换器的选
13、用具体取决于输入电平、输出形式、控制性质以及需要的速度、分辨率和精度。 用半导体分立元件制成的模数转换器常常采用单元结构,随着大规模集成电路技术的发展,模数转换器体积逐渐缩小为一块模板、一块集成电路。 编辑本段举例说明例1:对于一个2位的电压模数转换器,如果将参考设为1V,那么输出的信号有00、01、10、11,4种编码,分别代表输入电压在0V-0.25V, 0.26V-0.5V, 0.51V-0.75V, 0.76V-1V时的对应输入。分为4个等级编码,当一个0.8V的信号输入时,转换器输出的数据为11。 例2:对于一个4位的电压模数转换器,如果将参考设为1V,那么输出的信号有0000、0001、0010、0011、0100、0101、011
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1