单片机数模转换原理_51单片机数模转换 - CSDN
  • DA数模转换器的原理详解。
  • 51单片机模数转换A/D与数模转换D/A

    万次阅读 2018-01-17 09:56:41
    D/A 是数字量到模拟量的转换,依靠的是数模转换器(Digital to Analog Converter),简 称 DAC。  2.ADC 的位数:一个 n 位的 ADC 表示这个 ADC 共有 2 的 n 次方个刻度。8 位的 ADC,输出的是从 0~
        1.(概念)A/D 是模拟量到数字量的转换,依靠的是模数转换器(Analog to Digital Converter),简称ADC。D/A 是数字量到模拟量的转换,依靠的是数模转换器(Digital to Analog Converter),简

    称 DAC。

        2.ADC 的位数:一个 n 位的 ADC 表示这个 ADC 共有 2 的 n 次方个刻度。8 位的 ADC,输出的是从 0~255 一共 256 个数字量,也就是 2 的 8 次方个数据刻度。

    基准源:基准源,也叫基准电压,假如我们的基准源应该是 5V,但是实际上提供的却是 4.5V,这样误把 4.5V 当成了 5V 来处理的话,偏差也会比较大。

    分辨率:分辨率是数字量变化一个最小刻度时,模拟信号的变化量,定义为满刻度量程与 2 n -1 的比值。假定 5V 的电压系统,使用 8 位的 ADC 进行测量,那么相当于 0~255 一共 256 个刻度把 5V 平均分成了 255 份,那么分辨率就是 5/255 = 0.0196V。

    INL(积分非线性度)和 DNL(差分非线性度):INL 指的是 ADC 器件在所有的数值上对应的模拟值,和真实值之间误差最大的那一个点的误差值,是 ADC 最重要的一个精度指标,单位是 LSB。LSB(Least Significant Bit)是最低有效位的意思, 那么它实际上对应的就是 ADC的分辨率。 一个基准为5V的8位ADC,它的分辨率就是 0.0196V,用它去测量一个电压信号,得到的结果是 100,就表示它测到的电压值是 100*0.0196V=1.96V,假定它的 INL 是 1LSB,就表示这个电压信号真实的准确值是在1.9V~2.0V 之间的,按理想情况对应得到的数字应该是 99~101,测量误差是一个最低有效位,即 1LSB。DNL 表示的是 ADC 相邻两个刻度之间最大的差异,单位也是 LSB。

    转换速率:转换速率, 是指 ADC 每秒能进行采样转换的最大次数, 单位是 sps (或 s/s、 sa/s, 即 samples
    per second) ,它与 ADC 完成一次从模拟到数字的转换所需要的时间互为倒数关系。

        3 .PCF8591 的硬件接口:PCF8591 是一个单电源低功耗的 8 位 CMOS 数据采集器件,具有 4 路模拟输入,1 路模拟输出和一个串行 I 2 C 总线接口用来与单片机通信。3 个地址引脚 A0、A1、A2 用于编程硬件地址,允许最多 8 个器件连接到 I 2 C 总线而不需要额外的片选电路。


    其中引脚 1、2、3、4 是 4 路模拟输入,引脚 5、6、7 是 I 2 C 总线的硬件地址,8 脚是数字地 GND,9 脚和 10 脚是 I 2 C 总线的 SDA 和 SCL。12 脚是时钟选择引脚,如果接高电平表示用外部时钟输入,接低电平则用内部时钟,这套电路用的是内部时钟,因此 12 脚直接接 GND,同时 11 脚悬空。13 脚是模拟地 AGND。

    展开全文
  • 单片机 AD/DA数模转换

    千次阅读 2019-05-03 11:05:44
    模拟量:自然界连续变化的物理量。所谓连续,包含两个方面的含义; 一方面从时间上来说,它是随时间连续变化的;...D/A 数模转换器 (Digital - Analog Convert) A/D 模拟转换器(Analog - Digital Con...
    • 模拟量:自然界连续变化的物理量。所谓连续,包含两个方面的含义;

      一方面从时间上来说,它是随时间连续变化的;
      另一方面从数值上来说,它的数值也是连续变化的。这种连续变化的物理量通常称为模拟量。

    • 数字量:计算机中处理的是不连续变化的量,离散性的数字量。

    • D/A 数模转换器 (Digital - Analog Convert)

    • A/D 模拟转换器(Analog - Digital Convert)

    A/D转换器的主要技术指标

    1、分辨率
    ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度FS的1/2^12。

    一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V×1/2^12=2.4mV。
    2、量化误差
    ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。
    在这里插入图片描述
    3、偏移误差
    偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。
    4、满刻度误差
    满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。
    5、线性度
    线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。
    6、绝对精度
    在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。
    7、转换速率
    ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。
    A/D转换器的转速速度主要取决于转换电路的类型,不同类型的A/D转换器的转换速度相差很大。

    • 双积分A/D转换器的转换速度最慢,需几百毫秒左右;
    • 逐次逼近式A/D转换器的转换速度最快,需十几微秒;
    • 并行比较型A/D转换器的转换速度最快,仅需几十纳秒。

    逐次逼近式ADC的转换原理

    在这里插入图片描述
    逐次逼近式AD转换器与计数式A/D转换类似,只是数字量由“逐次逼近寄存器SAR”产生。SAR使用“对分搜索法”产生数字量,以8位数字量为例,SAR首先产生8位数字量的一半,即10000000B,试探模拟量Vi的大小,若Vn>Vi,清除最高位,若Vn<Vi,保留最高位。在最高位确定后,SAR又以对分搜索法确定次高位,即以低7位的一半y1000000B(y为已确定位) 试探模拟量Vi的大小。在bit6确定后,SAR以对分搜索法确定bit5位,即以低6位的一半yy100000B(y为已确定位) 试探模拟量的大小。重复这一过程,直到最低位bit0被确定,转换结束。

    PCF8591的介绍

    PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入、一个输出和一个串行I2C 总线接口。3 个地址引脚A0、A1 和A2 用于编程硬件地址,允许将最多8 个器件连接至I2C总线而不需要额外硬件。PCF8591由于其使用的简单方便和集成度高,在单片机应用系统中得到了广泛的应用。
    特点:

    • 单电源供电
    • 工作电压:2.5 V ~ 6 V
    • I2C总线串行输入/输出
    • 通过3个硬件地址引脚编址
    • 采样速率取决于 I2C 总线传输速率决定
    • 4个模拟输入可编程为单端或差分输入
    • 自动增量通道选择
    • 8位逐次比较型A/D 转换
      在这里插入图片描述

    管脚定义:

    AIN0~AIN3:模拟量输入通道
    AOUT:模拟输出通道
    A0~A2:硬件设备地址
    VDD:电源正极
    VSS:电源负极
    VREF:参考电压输入。
    EXT:振荡器输入时,内部/外部的切换开关。
    OSC:振荡器输入/输出。
    SCL:I2C BUS时钟输入。
    SDA:I2C BUS 数据输入/输出。
    AGND:模拟地,模拟信号和基准电源的参考地

    控制字格式

    在这里插入图片描述
    最高位默认为0

    第6位是选择是否允许模拟电压输出,在DA转换时设置为1,AD转换时设置为0或1均可

    第5/4位是选择模拟电压输出方式,一般选择00单端输入方式,其他的几种方式如下图所示
    在这里插入图片描述
    第3位默认为0

    第2位是自动增量使能位,如果自动增量(auto-increment)标志置1,每次A/D 转换后通道号将自动增加。

    第1/0为是在AD转换时选择哪一个通道输入的电压转换为数字量.

    PCF8591的器件地址

    每一个IIC器件都有一个器件地址,来区分不同的IIC设备,下面是PCF8591的地址
    在这里插入图片描述
    在这里插入图片描述
    它的地址是由1001和A2A1A0组成的,在原理图中可以看出,A2A1A0均为0,所以器件地址为0x90/0x91,最后一位是读写方向位,0表示下一个字节往总线上写数据,1表示下一个字节从总线上读取数据.

    展开全文
  • 数模转换芯片DA0832直通方式驱动一个发光二极管,由暗到亮循环
  • 数模转换器一般分为两种,一种为数字信号转模拟信号,,其控制器简称为DAC;另一种为模拟信号转数字信号,其控制器简称为ADC。现在主要介绍一款很常用、入门级的ADC转换芯片——ADC0832。 ADC0832 是美国国家半导体...
    一.简介

    数模转换器一般分为两种,一种为数字信号转模拟信号,,其控制器简称为DAC;另一种为模拟信号转数字信号,其控制器简称为ADC。现在主要介绍一款很常用、入门级的ADC转换芯片——ADC0832。
    ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
    在这里插入图片描述
    ADC083X是市面上常见的串行模—数转换器件系列。ADC0831、ADC0832、ADC0834、ADC0838是具有多路转换开关的8位串行I/O模—数转换器,转换速度较高(转换时间32uS),单电源供电,功耗低(15mW),适用于各种便携式智能仪表。其中ADC0832为双通道ADC转换芯片,常用封装为DIP8和SOP8。

    二.芯片电气参数
    1.电气参数
    • 8 位分辨率;
    • 双通道 A/D 转换;
    • 输入输出电平与 TTL/CMOS 相兼容;
    • 5V 电源供电时输入电压在 0~5V 之间;
    • 工作频率为 250KHZ,转换时间为 32μS;
    • 一般功耗仅为 15mW; 8P、14P—DIP(双列直插)、SOP 多种封装;
    • 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为−40°C to +85°C;
    2.引脚说明

    在这里插入图片描述
    在这里插入图片描述

    3.芯片内部连接框图

    在这里插入图片描述

    三.硬件原理图

    正常情况下 ADC0832 与单片机的接口应为 4 条数据线,分别是 CS、CLK、
    DO、DI。但由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将 DO 和 DI 并联在一根数据线上使用,可识别并转换的电压为0-VCC;当电压超过VCC时,AD的数值处于饱和状态,为255。硬件电路图,如图:
    在这里插入图片描述

    四.控制程序
    1.控制时序

    当 ADC0832 未工作时其 CS 输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行 A/D 转换时,须先将 CS 使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端 CLK 输入时钟脉冲,DO/DI 端则使用 DI 端输入通道功能选择的数据信号。在第 1 个时钟脉冲的下沉之前 DI 端必须是高电平,表示启始信号。在第 2、3 个脉冲下沉之前 DI 端应输入 2 位数据用于选择通道功能,其功能项下表。
    在这里插入图片描述
    转换时序如图,选择通道0或1的区别在于,在第3个脉冲DO/DI引脚电平的不同,低电平为选择通道0,高电平为选择通道1。
    在这里插入图片描述

    2.转换函数

    ADC0832转换程序也比较简单,只要按照以上转换时序进行编程即可实现控制。其中入口参数CH值为0或1,分别表示通道0和通道1。

    /****************************************************************************
    函数功能:AD转换子程序
    入口参数:CH
    出口参数:dat
    ****************************************************************************/
    unsigned char adc0832(unsigned char CH)
    {
    	unsigned char i,test,adval;
    	adval = 0x00;
    	test = 0x00;
    	Clk = 0;       //初始化
    	DATI = 1;
    	_nop_();
    	CS = 0;
    	_nop_();
    	Clk = 1;
    	_nop_();
    	
    	
    	if ( CH == 0x00 )      //通道选择
    	{
    		Clk = 0;
    		DATI = 1;      //通道0的第一位
    		_nop_();
    		Clk = 1;
    		_nop_();
    		Clk = 0;
    		DATI = 0;      //通道0的第二位
    		_nop_();
    		Clk = 1;
    		_nop_();
    	} 
    	else
    	{
    		Clk = 0;
    		DATI = 1;      //通道1的第一位
    		_nop_();
    		Clk = 1;
    		_nop_();
    		Clk = 0;
    		DATI = 1;      //通道1的第二位
    		_nop_();
    		Clk = 1;
    		_nop_();
    	}
    	
    	Clk = 0;
    	DATI = 1;
    	for( i = 0;i < 8;i++ )      //读取前8位的值
    	{
    		_nop_();
    		adval <<= 1;
    		Clk = 1;
    		_nop_();
    		Clk = 0;
    		if (DATO)
    		adval |= 0x01;
    		else
    		adval |= 0x00;
    	}
    	for (i = 0; i < 8; i++)      //读取后8位的值
    	{
    		test >>= 1;
    		if (DATO)
    		test |= 0x80;
    		else 
    		test |= 0x00;
    		_nop_();
    		Clk = 1;
    		_nop_();
    		Clk = 0;
    	}
    	if (adval == test)      //比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉
    	dat = test;
    	nop_();
    	CS = 1;        //释放ADC0832
    	DATO = 1;
    	Clk = 1;
    	return dat;
    }
    

    如需ADC0832相关资料, 请关注公众号,首页回复“ADC0832”获取资料
    在这里插入图片描述

    展开全文
  • AD模数转换&DA数模转换

    千次阅读 2018-04-22 01:28:23
    与模数转换相对应的是数模转换数模转换是模数转换的逆过程,在一般的工业应用系统中传感器把非电量的模拟信号变成与之对应的模拟信号,然后经模拟(Analog)到数字(Digital)转换电路将模拟信号转成对应的数字...

    模数转换

    模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的。与模数转换相对应的是数模转换,数模转换是模数转换的逆过程,在一般的工业应用系统中传感器把非电量的模拟信号变成与之对应的模拟信号,然后经模拟(Analog)到数字(Digital)转换电路将模拟信号转成对应的数字信号送微机处理。这就是一个完整的信号链,模拟到数字的转换过程就是我们经常接触到的ADC电路。

    在51单片机模数转换实验中主要的工作是:

    • 完成对XPT2046的初始化以及读取过程的设置
    • 完成对读取到AD值的数码管显示

    数模转换

    根据所需的功能完成PWM编码(PWM 是一种对模拟信号电平进行数字编码的方法。)然后通过DA电路转换成模拟电路进行呼吸灯显示。


    以上过程其实根本没有涉及到数模转换的原理,只是一个简单的设置过程。当时学完之后感觉自己好像学会一个好厉害的转换过程,回头想想感觉自己也没学到什么,仔细分析了一下,原来是实验中根本就没有用到AD/DA的原理,此过程由XPT2046芯片和DA电路完成。以后更复杂的调试中应该会用到转换原理。


    学习过后要知道自己学到了什么,这样学到的东西才能对应自己的知识体系存进去,一定要认真分析自己所学的东西是什么,有什么用处,怎么用。不然学完课程就像听了一场戏,也许一时涨了见识,过后会忘得毛都不剩。

    这一部分的内容差点就这样糊弄过去了,只是知道了AD/DA这两个名词,还好硬着头皮回顾了一下,后面再补充知识也知道从何开始了。


    展开全文
  •    本系列共6篇文章,本文作为本系列的第五篇文章,介绍实验五 :A/D 0809模数转换和DA0832数模转换实验,本系列文章基于Dais-52PRO实验箱。 一、实验目的:    了解模/数转换基本原理,掌握ADC0809的使用方法...
  • 1、描述DA0832实现DA转换的基本原理 1、 DAC0832是一个八位D/A转换器,D/A转换电路是一个R-2RT型电阻网络,可实现8位数据的转换。 2、 数据总线——DI7~DI0:转换数据输入 控制总线(控制输入寄存器的打开)——ILE...
  • 程序内有详细的讲解文档,很好的学习资料,欢迎大家下载学习
  • 1) DAC数模转换原理; 2) 寄存器和库函数介绍; 3) 相关实验代码解读。 实验功能:系统启动后,按WK_UP键,输出电压加200点,对应电压值200*3.3/4096,按KEY1,输出电压值减200点,每次按键,输出电压值会传至...
  • AD转换原理

    千次阅读 2018-06-30 22:50:34
    当模拟量的范围( 如电压范围[ UMIN, UMAX] )确定之后,分辨率就可以用来确定当D/A转换器内部二进制变化1时对应的模拟信号的变化量: 表1 左边的B列表示D/A转换器对应的二进制值,U列代表电压。...
  • DAC0832数模转换

    2019-10-09 02:35:57
    产生正弦波的代码: #include <reg52.h> #include <math.h> sbit cs1=P1^0; sbit rd=P1^1; unsigned char p,q; float f; int a; #define pi 3.1415926 void delay(unsigned char i)... ...
  • 51单片机的AD/DA转换

    万次阅读 2017-02-09 17:31:42
    一、A/D(模数)、D/A(数模转换 (一)、引脚 AOUT:模拟输出 Vref:参考电压 AGND:模拟地 EXT:接地 OSC:悬空 SCL,SDA:IIC AIN0、AIN1、AIN2:模拟输入口 (二)、电路图 从电路图...
  • 数模模数转换:DAC DA硬件上讲比较容易,就是通过运算放大器把二进制数(一系列的稳定的高低电平)转换成不稳定的、连续变换的波。 比如下面这个图,可以得到u0u_0u0​的通式就是 u0=−UREF23(d222+d121+d020)u_0 = ...
  • 2) DAC PWM数模转换原理; 3) 相关实验代码解读。 实验功能: 官方资料:《STM32中文参考手册V10》第12章——数字模拟转换DAC和第14章——通用定时器 硬件连接 定时器1通道1输出PWM,通过PA8输出,经过二阶RC滤波后...
  • 飞思卡尔XS128八位数模转换模块的实验与心得体会数模转换的编程流程:代码标注 数模转换的编程流程: ① 锁相环时钟设置,这一步不细讲,后面会有文章来专门解释锁相环的设置,将总线时钟频率升到32MHz ② ATDCTL2...
  • 13、DA数模转换(PWM输出)

    千次阅读 2019-03-01 17:07:12
    一、D/A转换器的原理及主要技术指标 一、D/A转换器的基本原理及分类 T型电阻网络D/A转换器 : 由图可知,运放两个输入端为“虚地”,所以电位都约为0。所以无论开关在0或者1,最后两个2R都是并联得R,和电阻R...
  • ADC0808数模转换电路

    2020-07-30 23:32:06
    利用adc0808实现的数模转换电路,单片机使用AT89c51控制,压缩包内包含Proteus仿真电路图以及keil源代码。
  • 51单片机PID控制(含DAC0832DA转换)程序完全代码 需安装Ceil软件来打开工程文件 转换原理可以到网上查 或书本上找 标签 单片机 数字PID 数模转换 DAC PID控制
  • DA转换原理及实现

    2020-06-18 13:18:15
    这一篇介绍D/A转换原理以及在TX-1C上的接线方式(实现方法),再用一个例子来加深理解 D/A转换原理及参数指标 1.基本原理 数字量是二进制代码位组合而来的,每位都有一定的权重,在D/A转换中,怎么样把这些权重以...
1 2 3 4 5 ... 20
收藏数 2,570
精华内容 1,028
关键字:

单片机数模转换原理