新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 提高PIC16C711单片机片内A/D分辨率方法

提高PIC16C711单片机片内A/D分辨率方法

作者:时间:2008-11-21来源:网络收藏

  二、工作原理

  实现11位A/D转换由PIC16C711做2次8位A/D转换完成。PIC16C711有4个模拟量输入通道RA0~RA3,这些模拟量输入通道复用1个采样保持器进入到A/D转换器。参考电压可以来自外部也可以来自内部VDD,A/D转换器属于逐次逼近式,转换结果(8位)存入ADRES寄存器。在A/D转换前必然选择适当的通道,设置足够的采样时间。用户可以通过设置A/D控制寄存器ADCON0和ADCON1来控制其转换过程,同时A/D转换的状态也会在ADCON0中体现出来。

  先将待转换的电压Vi送到PIC16C711的RA0通道做一次A/D转换。根据转换所得的数字量由软件算出Vi在8档中位置,用Vi减去Vi所在档的起始电压。将所得差值放大8位,使之变为0~5V电压信号,再送给PIC16C711的RA1通道做1次A/D转换,所得数字量是11位的低8位,而CBA就是高3位,从而实现11位A/D转换。

  举例说明如下:假设输入电压Vi为3V,程序控制PIC16C711的RA0通道先进行第1次A/D转换,所得结果是153,即3/5255=153,对应8位数字量为10011001。将低5位屏蔽,得10000000,循环右移5次,得00000100,此时低3位对应的就是Vi=3V电压时的,即第4档,CBA=100,程序将该由RB2,RB1,RB0输出,作为8选一模拟开关的通道选择,使CD4051输出2.5V,即5/84=2.5V。该电压经IC2跟随,再经IC3进行差分放大。设计时调整R11,R12,R13和R14的阻值,使放大倍数为8位,则得放大器IC3输出Vo=8(Vi-2.5)=8(3-2.5)=4.0V。选择RA1通道进行第2次A/D转换,结果为11001100,这就是11位A/D转换结果的低8位。档位100为11位A/D转换的高3位,合起来就是11位A/D转换的结果10011001100。

  三、程序

  以下是使用PIC16C711指令系统完成11位A/D转换的程序段。

  BSF STATUS,RP0;选页面1

  MOVLW 00000010B ;RA0、RA1为模拟通道

   ADCON1 ;内部参考电压

  BCF STATUS,RP0 ;选页面0



评论


相关推荐

技术专区

关闭