51单片机 | ADC模数转换实验

本文详细介绍了51单片机中ADC模数转换的概念、原理,包括ADC的分辨率、转换误差和转换速率等技术指标。重点讲述了逐次逼近型和双积分型ADC的工作原理,并详细解析了XPT2046芯片,它是一款4线制电阻式触摸屏控制器,内置12位ADC。文章还涵盖了硬件设计和软件设计,包括ADC读写函数的实现,以及通过数码管显示ADC采集电位器电压值的实验现象。
摘要由CSDN通过智能技术生成


  前面我们介绍的都是对数字信号的操作也就是 0 和 1 操作,本节我们就来讲解 如何检测外部模拟信号,因为我们使用的 STC89C5x 单片机内部不含 ADC 接口,所以需要外接一个 ADC 转换芯片将模拟信号转换成数字信号供单片机处理。我们开发板上集成了一个 ADC 模数转换电路,选用的 ADC 芯片是 12 位的 AD 芯片- XPT2046。本节要实现的功能是:通过 ADC 转换电路采集电位器电压值,将采集转换后的 AD 值通过数码管显示。

一、ADC介绍

  我们知道 51 单片机系统内部运算时用的全部是数字量,即 0 和 1,因此对单片机系统而言,无法直接操作模拟量,必须将模拟量转换成数字量。所谓数字量,就是用一系列 0 和 1 组成的二进制代码表示某个信号大小的量。用数字量表示同一个模拟量时,数字位数可以多也可以少,位数越多则表示的精度越高,位数越少表示的精度就越低。

1.ADC简介

  ADCanalog to digital converter)也称为模数转换器,是指一个将模拟信号转变为数字信号。单片机在采集模拟信号时,通常都需要在前端加上 A/D 芯片
  下面我们看下 ADC主要技术指标

  1. 分辨率
      ADC 的分辨率是指对于允许范围内的模拟信号,它能输出离散数字信号值的个数。这些信号值通常用二进制数来存储,因此,分辨率经常用比特作为单位,且这些离散值的个数是 2 的幂指数。
      例如:12 位 ADC 的分辨率就是 12 位,或者说分辨率为满刻度的 1/(2^12)。一个 10V 满刻度的 12 位 ADC 能分辨输入电压变化最小值是
    10 V × 1 / ( 2 12 ) = 2.4 m V 10V×1/(2^{12})=2.4mV 10V×1/(212)=2.4mV

  2. 转换误差
      转换误差通常是以输出误差的最大值形式给出。它表示 A/D 转换器实际输出的数字量和理论上的输出数字量之间的差别。常用最低有效位的倍数表示。例如给出相对误差≤±LSB/2,这就表明实际输出的数字量和理论上应得到的输出数字量之间的误差小于最低位的半个字。

  3. 转换速率
      ADC 的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次 A/D 转换所需的时间(包括稳定时间)则是转换速率的倒数。

2.ADC 转换原理

  AD 转换器(ADC)将模拟量转换为数字量通常要经过 4 个步骤:采样、保持、量化和编码。所谓采样即是将一个时间上连续变化的模拟量转换为时间上离散变化的模拟量。如下图所示:
在这里插入图片描述
  将采样结果存储起来,直到下次采样,这个过程叫做保持。一般采样器和保持电路一起总称为采样保持电路。将采样电平归化为与之接近的离散数字电平,这个过程叫做量化。将量化后的结果按照一定数制形式表示就是编码。将采样电平(模拟值)转换为数字值时,主要有两类方法:直接比较型与间接比较型。

  • 直接比较型:就是将输入模拟信号直接与标准的参考电压比较,从而得到数字量。常见的有并行 ADC 和逐次比较型 ADC
  • 间接比较型:输入模拟量不是直接与参考电压比较,而是将二者变为中间的某种物理量在进行比较,然后将比较所得的结果进行数字编码。常见的有双积分型 ADC

  下面就以常用的逐次比较型 ADC 和双积分型 ADC 介绍其工作原理。

  • 逐次逼近型 ADC
      采用逐次逼近法的 AD 转换器是有一个比较器、DA 转换器、缓冲寄存器和控制逻辑电路组成,如下图所示:
    在这里插入图片描述
      基本原理:从高位到低位逐次试探比较,就像用天平秤物体,从重到轻逐级增减砝码进行试探。
      逐次逼近法的转换过程:初始化时将逐次逼近寄存器各位清零,转换开始时,先将逐次逼近寄存器最高位置 1,送入 DA 转换器,经 DA转换后生成的模拟量送入比较器,称为 U0,与送入比较器的待转换的模拟量 Ux进行比较,若 U0<Ux,该位 1 被保留,否则被清除。然后再将逐次逼近寄存器次高位置 1,将寄存器中新的数字量送 DA 转换器,输出的 U0 再与 Ux 比较,若 U0<Ux,该位 1 被保留,否则被清除。重复此过程,直至逼近寄存器最低位。转换结束后,将逐次逼近寄存器中的数字量送入缓冲寄存器,得到数字量的输出。逐次逼近的操作过程是在一个控制电路的控制下进行的。
  • 双积分型 ADC
      采用双积分法的 AD 转换器由电子开关、积分器、比较器和控制逻辑等部件组成。如下图所示:
    在这里插入图片描述
      基本原理:将输入电压变换成与其平均值成正比的时间间隔,再把此时间间隔转换成数字量,属于间接转换。
      双积分法 AD 转换过程:先将开关接通待转换的模拟量 ViVi 采样输入到积分器,积分器从零开始进行固定时间 T 的正向积分,时间 T 到后,开关再接通与 Vi 极性相反的基准电压 Vref,将Vref输入到积分器,进行反向积分,直到输出为 0V 时停止积分。Vi 越大,积分器输出电压越大,反向积分时间也越长。计数器在反向积分时间内所计的数值,就是输入模拟电压 Vi 所对应的数字量,实现了 AD 转换。

二、XPT2046 芯片介绍

  XPT2046 是一款 4 线制电阻式触摸屏控制器,内含 12 位分辨率 125KHz转换速率逐步逼近型 A/D 转换器。XPT2046 支持从 1.5V5.25V 的低电压I/O 接口。XPT2046 能通过执行两次 A/D 转换查出被按的屏幕位置,除此之外,还可以测量加在触摸屏上的压力。内部自带 2.5V 参考电压,可以作为辅助输入、温度测量和电池监测之用,电池监测的电压范围可以从 0V6VXPT2046 片内集成有一个温度传感器。在 2.7V 的典型工作状态下,关闭参考电压,功耗可小于 0.75mWXPT2046 采用微小的封装形式:TSSOP-16,QFN-16VFBGA-48。工作温度范围为-40℃~+85℃。与 ADS7846TSC2046AK4182A 完全兼容。

  1. 主要特性
    ①工作电压范围为 1.5V~5.25V
    ②支持 1.5V~5.25V 的数字 I/O
    ③内含 2.5V 参考电压源
    ④电源电压测量( 0V~6V
    ⑤内建结温测量功能
    ⑥触摸压力测量
    ⑦采用 3 线制 SPI 通信接口
    ⑧具有自动省电功能

  2. 芯片管脚说明
    在这里插入图片描述
    在这里插入图片描述
      XPT2046 是一种典型的逐次逼近型模数转换器(SAR ADC),包含了采样/保持、模数转换、串口数据 输出等功能。同时芯片集成有一个 2.5V 的内部参考电压源、温度检测电路,工作时使用外部时钟。XPT2046 可以单电源供电,电源电压范围为 2.7V~5.5V。参考电压值直接决定 ADC 的输入范围,参考电压可以使用内部参考电压,也可以从外部直接输入 1V~VCC 范围内的参考电压(要求外部参考电压源输出阻抗低)。XYZVBATTempAUX 模拟信号经过片内的控制寄存器选择后进入 ADCADC 可以配置为单端或差分模式。选择 VBATTemp

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值