新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 提高PIC16C711单片机片内A/D分辨率的方法

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

——
作者:中国直升机设计研究所 李艳萍 蔡春富时间:2007-08-27来源:单片机与嵌入式系统应用收藏
目前,中嵌入的一般为8位到10位,难以满足信号处理应用中高分辨率的要求;而外接高分辨率的将使成本明显提高,因为转换器的价格将随其位数的增加而成倍增加。本文介绍一种提高片内A/D分辨率的方法,将片内的8位A/D提高到11位。这种方法在PIC系列的其他也适用。

  美国Microchip公司推出的8位单片机是一种性能价格比很高的单片机。它价格低、封装小、采用CMOS工艺,具有OTP型,开发起来很方便。它内含4路8位高速A/D,将它扩展到11位后,可以大大提高单片机应用系统的性能价格比。

  一、硬件电路

  实现扩展的原理图如图1所示。8个等值的精密电阻R将0~5V基准电压分割成8档,每档范围为0.625V。8个抽头分别接CD4051八选一模拟开关的8个输入端,通道选择控制端C,B,A分别由PIC16C711单片机的RB2,RB1,RB0控制。IC2和IC3为高输入阻抗运放,IC2构成跟随器,IC3构成精密差分放大器。

实现扩展的原理图

  二、工作原理

  实现11位A/D转换由PIC16C711

做2次8位A/D转换完成。PIC16C711有4个模拟量输入通道RA0~RA3,这些模拟量输入通道复用1个采样保持器进入到A/D转换器。参考电压Vref可以来自外部也可以来自内部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位AD转换的低8位,而档位CBA就是高3位,从而实现11位A/D转换。

  举例说明如下:假设输入电压Vi为3V,程序控制PIC16C711的RA0通道先进行第1次A/D转换,所得结果是153,即3/5

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭