说明:此文章仅是我学习过程中的一些记录,如有侵权,请联系我删除,文章中难免有遗漏错误之处,欢迎指出。

目录

一、D/A转换器

二、D/A转换器的主要性能指标

1.分辨率(掌握)

2.线性度

3.绝对精度和相对精度

4.建立时间

三、DAC0832芯片

四、A/D转换器

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

1.分辨率

2.量化误差

3.偏移误差

4.满刻度误差

5.线性度

6.绝对精度

7.转换速率

六、AD0804芯片

七、补充,也是重点

1.想要用一个芯片,去下载芯片的文档(datasheet),可以来这个网站

2.那么我们要怎么选择合适的芯片呢,根据我们的要求,去查找合适的芯片

3.查芯片资料还有这个网站,这个网站比较齐全


一、D/A转换器

首先要知道为什么会在单片机的外围电路使用D/A转换,原因是单片机只有数字量,只能操作数字量,而实际生活中大多数的数据是模拟量,为了将单片机的数字量转换为实际生活中的模拟量,所以需要用到D/A转换。A/D转换同理。

D/A转换的具体做法是:通过D/A芯片输出特定电流或者电压。

一种经典的D/A转换器内部原理是T型电阻网络:

一般输出的内容是Io1与Io2,也可以如图所示将一个运放,将电流转换成电压输出。最终输出电压的大小与数字量具有对应的关系。具体的原理我也还不是很明白,需要回去再复习一些数电模电的知识,不过也是一些比较简单的电路知识,但是这里就不介绍了。下面是PPT的内容,揣摩一下应该就可以理解。

二、D/A转换器的主要性能指标

1.分辨率(掌握)

分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。

分辨率与输入数字量的位数有确定的关系,可以表示成FS / 2^n。FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为5V/4096=1.22mV。显然,位数越多分辨率就越高。

2.线性度

线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的±1%以内。

3.绝对精度和相对精度

绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。

相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。

4.建立时间

建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的±1/2LSB所需的时间。是描述D/A转换速率的一个动态指标。

电流输出型DAC的建立时间短。电压输出型DAC的建立时间主要决定于运算放大器的响应时间。根据建立时间的长短,可以将DAC分成超高速(<1μS)、高速(10~1μS)、中速(100~10μS)、低速(≥100μS)几档。

应当注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使DAC的精度变差。

三、DAC0832芯片

内部结构及引脚功能:

DAC0832与08C51单片机的接口方式由上面可知有三种,本次实验只选用直通方式。具体内容可以参见DAC0832的文档。

直通工作方式:

当DAC0832芯片的片选信号、写信号、及传送控制信号的引脚全部接地允许输入锁存信号ILE引脚接+5V时,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。
下面我们来写一个程序,通过给单片机的I/O口赋不同的值,通过D/A转换芯片,来使开发板上对应的LED灯亮度改变。
开发板原理图:
通过原理图可以看到,该芯片的数字输入引脚连接的是单片机的P0口,因此我们需要对P0口赋不同的值,来使D/A转换芯片输出不同的模拟量,最终的输出通过D12流向地,所以不同的输出会使D12的亮度发生改变。
现在来操作芯片,在原理图上可以看到,芯片的传送控制信号引脚已经默认接地,而且允许输入锁存信号引脚ILE也已经接上VCC及+5V了,所以根据直通工作方式原理,只需要给片选信号以及写信号软件接地,此时单片机的I/O输出什么数字量,就会直接进行DAC寄存器,进行D/A转换,从而改变D12的亮度。
具体代码如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit csda = P3^2;
sbit wr = P3^6;void main()
{csda = 0;//片选信号wr = 0;  //写信号P0 = 0;  //P0=0时D12不亮,P0=0xff时D12最亮while(1);
}

四、A/D转换器

A/D转换原理常见的有两种,逐次逼近式以及双积分式,图示如下。

逐次逼近式ADC的转换原理

双积分式ADC的转换原理

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

1.分辨率

ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度FS的1/。一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V×1/=2.4mV。

2.量化误差

3.偏移误差

偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。

4.满刻度误差

满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。

5.线性度

线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。

6.绝对精度

在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。

7.转换速率 

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

六、AD0804芯片

这是芯片文档里的一种典型接法,其中CLK是该芯片的时钟输入,每来一次时钟周期,进行一次AD转换。而图中10k的电阻以及150pF的电容构成的RC振荡电路,也可以产生时钟周期,其决定了AD转换速率,当然,芯片本身的AD转换速率是有上限的,时钟的速率不能超过上限。

在郭天祥实验板上为了焊接方便,电容选用的是104的电容,即10乘10的4次方的pF,明显大于150pF,造成AD转换速率变慢,不过影响不大,因为本身该实验板仅作学习用,实验时只需延时一下即可。

现在我们来写一个程序,通过改变滑动变阻器阻值的大小,使实验板上的一排发光二极管改变亮灭情况。

开发板原理图如下:

可以看到,对于AD芯片来说,它的模拟量输入是可以由滑动变阻器Re2来改变的,而输入模拟量的不同造成的数字量的输出通过74HC573寄存器流向发光二极管,即不同的模拟量输入代表的数字量输出最终会表示在发光二极管上。

观察AD0804芯片的文档可知,我们需要让片选信号处于低电平才能启动,并且写信号必须由高电平到低电平再到高电平,最终在读信号从低电平转向高电平的瞬间读取模拟量,因此写有程序代码如下:

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit rd = P3^7;
sbit wr = P3^6;
void delay(uint z);
void init();
void start();
void main()
{init();while(1){start();delay(10);rd = 0;delay(10);rd = 1;delay(10);}}void delay(uint z)  //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{                   //delay(500);大约延时500ms.uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}void init()
{P0 = 0x7f;//寄存器是直通的,因为上电后I/O口是高电平
}void start()
{wr = 1;wr = 0;wr = 1;
}

七、补充,也是重点

其实A/D以及D/A并不属于单片机,它属于单片机的外围电路,在大多数的单片机项目中会用到,当然也有可能不会用到。所以在本文中我没有详细的介绍相关的知识,也没有详细介绍芯片的使用,一方面是老师没有讲很多,一方面是因为在实际开发中,并不是一定要用这个芯片,需要根据自己想要实现的功能去选择合适的芯片,对于芯片,开发商会配有文档,我们要用的时候再根据文档去设计以及编写程序即可,还有就是需要常用的芯片,网上也会有需要资料补充。

现在已经有很多新型的单片机以及集成了A/D、D/A功能在其I/O口中,不需要再额外连接一个A/D转换芯片了,但是有时候由于成本的问题,我们仍需要外接一个转换芯片。

下面推荐几个老师推荐的网站:

1.想要用一个芯片,去下载芯片的文档(datasheet),可以来这个网站

https://www.21ic.com/

2.那么我们要怎么选择合适的芯片呢,根据我们的要求,去查找合适的芯片

http://www.maxim-ic.com/

但是这个网站目前我打不开

3.查芯片资料还有这个网站,这个网站比较齐全

https://www.alldatasheet.com/

第六讲:AD、DA的工作原理及实现(郭天祥)相关推荐

  1. 孙鑫vc++ 第六课 笔记 菜单的工作原理及编写应用

    菜单的工作原理及编写应用 今天赶了2场酒,累死了,但还是坚持看完了第6课,写了点笔记,大家鼓励鼓励嘛,不要看看就走了 1.菜单如果选择了pop-up属性,是不能响应命令的    菜单idm_test- ...

  2. ERP原理 : 第六节 采购管理的工作原理

    一.采购管理的功能和目标 通常,采购部门能够掌握企业近一半的销售金额,减少材料成本对一个企业的经营管理状况有着最大的效益.另外,企业可以以现有的人员,常常不需要额外的支出或投资就能降低材料成本. 尽管 ...

  3. 51单片机(十六)AD/DA

    ❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分:建议先学习51单片机,其是STM32等高级单片机的基础:这样再学习STM32时才能融会贯通. ☀️ 专栏适 ...

  4. 【科普】Web(瓦片)地图的工作原理

    [译者按:在看MapBox Guides文档时,看到这篇 How do web maps work?,这篇文档通俗易懂地阐述了Web地图是如何工作的,其实更偏向讲瓦片地图的工作原理,鉴于之前很多人不了 ...

  5. Linux设备驱动模型3——platform平台总线工作原理

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 四.platform平台总线工作原理1 1.何为平台总线? (1)属于总线中的一种,相对于usb.pci.i2c等物理总线来说,platfo ...

  6. Android学习笔记View的工作原理

    自定义View,也可以称为自定义控件,通过自定义View可以使得控件实现各种定制的效果. 实现自定义View,需要掌握View的底层工作原理,比如View的测量过程.布局流程以及绘制流程,除此之外,还 ...

  7. 了解appium自动化的工作原理(uiautomator)

    一.Appium加载的过程图解 Appium的原理 WebDriver script:我们的测试脚本(java or python) Appium: 会首先开启一个监听4723端口的server,接收 ...

  8. appium自动化的工作原理

    appium自动化的工作原理 1. Appium组件 Appium Server Appium是一个C/S结构,包括Server和Client.Appium Server是Appium的服务端,作为一 ...

  9. html5地图连线原理,Web(瓦片)地图的工作原理

    [译者按:在看MapBox Guides文档时,看到这篇How do web maps work?,这篇文档通俗易懂地阐述了Web地图是如何工作的,其实更偏向讲瓦片地图的工作原理,鉴于之前很多人不了解 ...

  10. ad转换器工作原理_AD转换中参考电压的作用

    AD转换 AD转换就是模数转换.顾名思义,就是把模拟信号转换成数字信号.主要包括积分型.逐次逼近型.并行比较型/串并行型.Σ-Δ调制型.电容阵列逐次比较型及压频变换型. A/D转换器是用来通过一定的电 ...

最新文章

  1. 2021年中国工业互联网安全大赛核能行业赛道writeup之Webshell密码
  2. 18年总结及19年展望
  3. mongodb系列01--基础篇
  4. 基于springMVC的页面跳转、转发、重定向等
  5. Python爬虫实战03:用Selenium模拟浏览器爬取淘宝美食
  6. 代理类 invoke方法没有返回值怎么办_何为动态代理?
  7. slitax 制定iso
  8. 关于GPS数据跳动问题的解决方案
  9. 怎样修改用户的计算机配置文件,用户配置文件
  10. 使用Markdown语法介绍markdown
  11. Unity自定义创建文件夹
  12. F和弦(大横按)的训练方法
  13. 新页微SOC无线充芯片NY7506A
  14. Manjaro 安装后的设置
  15. org.dom4j.DocumentException: Error on line 1 of document : Content is not allowed in prolog. Nested
  16. scal开发环境搭建
  17. 满意度模型及其应用——客户满意度
  18. 产品经理能力提升计划(高频面试问题)
  19. 北京故宫博物院钟表馆改陈完成 以新面貌与观众见面
  20. BZOJ 2246 [SDOI2011]迷宫探险 (记忆化搜索)

热门文章

  1. u盘插上电脑显示计算机无响应,为什么u盘连接电脑没反应,u盘在电脑上显示不出来...
  2. python分位数回归模型_分位数回归及其Python源码导读
  3. postgresql修改字段名
  4. 王道408排序算法总结
  5. a标签去掉下划线,html,超链接去掉下划线
  6. 123321是一个非常特殊的数,它从左边读和从右边读是一样的。   输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n
  7. vue鼠标右击事件@contextmenu.prevent
  8. ele 多个表格 tab切换后 多选, 复选出现的问题
  9. vue+ele 表格 根据表格字段名称显示前端图片文件夹对应图片 没有图片显示单独图片
  10. C++华氏温度和摄氏温度的转换