串行AD转换器ADC0832的使用.doc_第1页
串行AD转换器ADC0832的使用.doc_第2页
串行AD转换器ADC0832的使用.doc_第3页
串行AD转换器ADC0832的使用.doc_第4页
串行AD转换器ADC0832的使用.doc_第5页
全文预览已结束

下载本文档

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

文档简介

串行AD转换器ADC0832的使用单片机控制系统中通常要用到AD转换,根据输出格式,常用的AD转换方式可分为并行AD和串行AD。并行方式一般在转换后可直接接收,但芯片的引脚比较多;串行方式所用芯片引脚少,封装小,但需要软件处理才能得到所需要的数据。可是单片机I/O引脚本来就不多,使用串行器件可以节省I/O资源。ADC0832是位逐次逼近模数转换器,可支持两个单端输入通道和一个差分输入通道。相同功能的器件还有ADC0834,ADC0838,ADC0831。所不同的是它们的输入通道数量不同。它们的通道选择和配置都是通过软件设置。AD0832的主要特点如下: 易于和微处理器接口或独立使用; 可满量程工作; 可用地址逻辑多路器选通各输入通道; 单供电,输入范围为; 输入和输出与、电平兼容; ADC0832通过内部多路器来控制选择通道,处理器的控制命令通过DI引脚输入。引脚图如右图所示,通道配置命令和通道选择命令如下:输入配置可在多路器寻址时序中进行。多路器地址可通过端移入转换器。多路器地址选择模拟输入通道可决定输入是单端输入还是差分输入。当输入是差分时,应分配输入通道的极性,并应将差分输入分配到相邻的输入通道对中。例如通道和通道可被选为一对差分输入。另外,在选择差分输入方式时,极性也可以选择。一对输入通道的两个输入端的任何一个都可以作为正极或负极。通常ADC0832在输出以最高位()开头的数据流后,会以最低位()开头重输出一遍(前面的数据流)。(因此,编程时要发两轮脉冲,第一次取数据,第二次若不要从低到高的数据,也要发一轮8 个脉冲将0832中寄存器的数据移出。是的,)其工作时序如下所示:ADC0832有8只引脚,CH0和CH1为模拟输入端,CS为片选引脚,只有CS置低才能对ADC0832进行配置和启动转换。CLK为ADC0832的时钟输入端。CS在整个转换过程中都必须为低,当CS为低时,在数据输入端DI(数据输入端)加一个高电平(这个高电平是否算在送到DI的一位之中?如果算,那么后面就只要再送两位。是的,这个高电平是作为起始标志),接着在CLK上加一个时钟,DI上的逻辑1就会使ADC0832的DI脱离高阻态,然后通道配置数据拌随着时钟通过DI端移入多路器,当最后一位数据移入多路器时(数据是三位吗?还是可以有更多位?是否因为是仅仅作状态设置,所以只须三位?数据是三位,前一位标志输入开始,后两位是用来作通道设置和选择),DI变为高阻态,在这以前DO(数据输出端)都为高阻态(这个“以前”的概念是什么?就是CS从高跳到低到现在)。在经过一个时钟(是指在最后一个数据从DI移入后,还要再经过一个时钟?是的,当最后一位数据移入DI,需要再加一个时钟使DO脱离高阻态),DO脱离高阻态并启动转换。接着从处理器接收时钟信号,每经过一个时钟,转换后的数据就会从高位到低位逐次从DO移出,经过8个时钟后,数据又以从低位到高位的形式从DO移出(也是每个时钟移一位)。当最后一位数据移出时转换完成。当CS从低变为高时,ADC0832内部所有寄存器清零。如想要进行下一次转换,CS必须做一个从高到低的跳变,后跟着地此配置数据重复上面的过程。在进行单片机和ADC0832的连接时,因为DI和DO并不是同时使用,所以DI和DO可以共用单片机的一条I/O线,再加上一条时钟线和一条片选线就可以实现单片机和ADC0832的连接,电路连接例子如下图所示:ADC0832在51单片机上的AD转换程序的设计也不复杂,下面给出以上图为例的51单片机程序: adc_0832_cs bit p2.2adc_0832_clk bit p2.1adc_0832_di bit p2.0adc_0832_ch0 equ 38h ;buf of ch0 adc_0832_conv: push a push psw push 0 clr adc_0832_clk ;clear clok clr adc_0832_di setb adc_0832_cs ;set CS to enable converters clr adc_0832_cs ; cs作一个从高到低的跳变。 setb adc_0832_di ;set start bit to enable data input setb adc_0832_clk ; clk作一个从高到低的跳变,并不是从高到低跳变,而是一个上升脉冲,因为在这步以前clk处于低电平,现在是先高,然后又低,形成一个上升脉冲 clr adc_0832_clk ;上面指令中di的1进入寄存器。 setb adc_0832_di ;MSB address select CH0 setb adc_0832_clk ; clk第二个从高到低的跳变, clr adc_0832_clk ;上面指令中di再进一个1到寄存器。 clr adc_0832_di ;LSB address setb adc_0832_clk clr adc_0832_clk ;上面指令中,di进入的数据为110。 setb adc_0832_clk ;设高位先行进入。 clr adc_0832_clk ;上面说的再进一个时钟就是最后的这个吧?是的,这个时钟使DO脱离高阻态 adc_conv: mov r0,#08h ;该段从0832取数。adc_next_bit: mov c,adc_0832_di rlc a setb adc_0832_clk clr adc_0832_clk nop djnz r0,adc_next_bit mov r0,#08h ;该段就是所说的0832又从低位到高位再送一次数,adc_skip_byte: setb adc_0832_clk ;但这里不作保存,只空操作8个时钟, clr adc_0832_clk ;将0832从低位到高位的8个数据扔出去。 djnz r0,ad

温馨提示

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

评论

0/150

提交评论