A:anolog模拟的         D:digital数字的

AD模拟转数字,DA数字转模拟

生活中的基本都是模拟量,如温度,可以是10℃,10.1℃等

手机的背光亮度自动调节,拿到太阳光下,亮度会增亮,拿到暗的地方光线会减暗,是因为,手机上有一个感光头,采集环境光的亮度,采集到的的是模拟量,经过内部的AD转换器,把模拟量转换成数字量给CPU,CPU通过亮度值再输出一个数字量,输出的数字量再转换为模拟量去控制背光屏的电压,手机后面有一个背光板,手机液晶屏自身是不发光的,为什么能看到字?是因为手机屏上有背光,很多LED灯组成的还有背光板导光片等,LED灯的亮度决定了屏幕的亮度,光线强的时候,要把亮度调高,先通过感光元件返回的模拟量,转化为数字量,通过这个数字量控制LED背光亮度,背光亮度是一个电压,电压大,会变亮,就是把数字量又输出出去,控制灯的亮度。

所以手机自动调节用了AD和DA。还有重力感应、打电话时靠近面部息屏等等,以及烟雾传感器,压力传感器等。

光线不充足下,发出声音,灯会被打开,在下面有孔的铁罩内,有一个咪头(咪头,是将声音信号转换为电信号的能量转换器件,是和喇叭正好相反的一个器件(电→声)。是声音设备的两个终端,咪头是输入,喇叭是输出。)模块,能检测到震动或声音,这些都是模拟量,通过这个模块,通过内部的电路,把模拟量转换为数字量,去控制灯的开关,同时在红罩内,内有光敏电阻,开发板上也有,当光线充足,无论发出多大声音,灯是不会亮的,只有光线暗,发出声响,才会亮。它就是靠这声音检测和光线检测结合来控制的。

我们开发板也有AD和DA,我们也可以模拟手机背光,控制LED亮暗。

初学了解技术指标就好,以后设计产品的时候就需要关注ADDA性能了,不同应用场合使用不同的AD。

假设从1变到2,两个相邻数码,那电压需要变化多大呢?假设电压从0.1V变到0.2V,数码就可以从1到2了,如果从0.1边到0.19V,数字量还是1,这就是说之间有0.1V的变化量,有的AD变化0.05V就可以检测到,这就是分辨率,分辨率越高,电压发生一个很小的变化都能识别到。

再例如图中例子,满量程10V,是说能采集的最大电压为10V,从0到10V间发生任何变化,只要在分辨率以内,都可以用一个数字量表示出来,通过这个数字量,通过计算,我们就能知道电压变化了多少。12位的ADC,电压每变化2.4mV,它的数字量就会变化一位。如果是2.4mV,数字量是1,通过这个1,就知道电压是2.4mV,若电压为4.8mV,那么数字量是2,如果变到5.9mV,那么数字量还是2,因为变化量小于2.4mV,所以不会识别到,这就是分辨率的问题。

例如称黄金的称就需要分辨率很高的,每发生几毫克的变化我都需要知道,因为1g几百块是很贵的,所以如果我们要设计一个电子秤,它的用途是称首饰珠宝的,就需要分辨率高的,如果是批发蔬菜的,那么分辨率就可以低些,少那几克也没事,因为AD分辨率越高价格越贵。我们开发板上AD是八位的。满量程是5V。可以算出没变化,0.01953125V就可以检测到。

比如你模拟量能变到0.0000几,小数点后好几位,但数字量就不能做到,因为硬件的局限性。

从左面的图就可以看出,模拟电压从0到1LSB(最小变化量),数字电压始终是0。

偏移误差的图就是上一个图的右边的图像。

上述两个误差都是AD内部的误差,生产工艺决定的,价格不同,误差也不同,价格越贵,误差越低,精度越高。当然也不是价格越高越好,要看用到什么场合。总不能称白菜的称拿一个做导弹的高速AD去做,一个AD就几百块,还需要外部晶振,做出来卖给谁去。

线性度

我们开发板用的是第二种逐次逼近式。

里面有DA转换器、N位寄存器、控制器、比较器、D0~D7数据输出、VIN数据模拟量输出、VREF参考电压。

例如我们开发板,参考电压是5V,八位,首先把8位最高位置1,其它为0,那么参考电压就取了一半,VREF/2,拿到VN这里与VIN比较,假设模拟输入电压是3.75V(要将他转换为数字量),如果模拟输入大,那么比较器会输出1,保存到移位寄存器,然后把次高位置1(就是又取了剩下的2.5V的一半,也就是1.25V),加上前面你的2.5V,就是3.7V5,然后比较器还是输出1,下一次又把下一位也置1,这时肯定模拟输入电压小,比较器就输出0,然后再加一个1,比较器又输出一个0,直到8位,然后就把这个N位寄存器的数字量输出出去,输出到锁存缓冲器,然后输出。


DA:把数字量转换成模拟量

内部采用电阻分压的方式,输出一个数字量,内部有多个开关,控制从哪一个通路走,从不同通路走,通过分压后,电压不一样。

可以输出0~5V的电压。而AD可以检测0~5V的输入电压。


我们用的5516光敏电阻。

通过光敏电阻就能采集到的环境光的亮度,在通过AD,电阻分压的方式,只要电阻值变小,电压就会发生变化。

开发板上也是NTC热敏电阻,比较常用。

音量调节就是用的电位器。

4个模拟输入,就是4个AD,1个输出,即DA。用的I²C总线。

三个地址引脚,和前面的AD24C02,即EEPROM很像,就是在总线上最多运行挂几个,2的3次方=8个。不需要额外的硬件就可以配置它的地址。

自动增量通道,即检测完1通道自动增到2通道进行检测。

量化电压的时候要根据参考电压来,接的是5V,所以最多识别0~5V。

EXT时钟输入选择,配置为内部或者外部,我们配置为内部。

1(通道0):模拟输入0,接了光敏电阻到地,中间接了4.7k电阻到VCC,通过分压的方式。

  

当光敏电阻阻值越大,模拟输入电压就越大,电阻越小,电压就越小,例如如果拿到强光下时电阻变为0.3k,分压后,模拟输入为0.3V,若光线弱,电阻为4.7k,那么模拟输入为2.5V。有点人会说为什么分压而不直接把光敏和电源还有地连接?当光敏为0.3k时,电流就很大了,功率浪费了很多,而且很多器件承受不了这么大电流,而且光线再强,若为0,那么等于直接电源接地了,输入为5V,发热更严重。而若有4.7k电阻,当光敏为0Ω,电流也才1.06..A,功率就很小了。所以采集电压一般用分压的方式。

2(通道1):热敏,也是采用这种分压方式。

3(通道2):接了10k电位器。

4(通道3):排针引出去。如果要接一些外部器件,有些同学买些模块,模块上除了VCC和GND,还有一个叫DO(数字输出脚),AO(模拟输出脚),DO随便接一个IO口就可以,可以检测到数字量的变化,AO可以用杜邦线接到AIN3这里了。

AOUT数字量转模拟量的输出,

有一个跳线帽,如果把它拔掉,模拟输出可以接到别的地方去,比如我要用一个3.3V电源,我就可以给一个数字量让他输出3.3V电源,通过J6上那个1脚输出到别的地方。

只要功耗不大,都可以采用这种方式。

默认时,AOUT是通过300Ω电阻接到DA指示灯上,数字量变化,输出的模拟电压变化,灯的亮度就不同。

有时候,你采集来的值,8位的,最大256,实际表示0~255,你给他5V,可能不是255,参考电压接了VCC,可能不是标准的5V,有时候你电脑输出5V,但是板子上有用电设备,电压会拉低一点,如4.95等。

A2~A0我们都接了0,所以地址就是0x90+读写位

alldata下载数据手册,或百度找中文。

第二位,模拟输出使能标志脚,如果允许模拟输出要置1。其它为0,那么就是0100 0000

先发地址0x90,再发0x40,就是模拟输出,再发送数字量,就会输出相应的模拟电压。

第3、4位,设置输出方式,单端输入,差分输入。

我们开发板就是采用单端输入,光敏、热敏和AD芯片就很短。我们那些输入信号都接了开发板的地。

差分输入用于长距离传输。

第3、4位为00就是单端输入。

第6位为自动增量标志位,置1,通道自动增量检测,检测完1就检测2...

最后两位是通道选择位,00位0通道,01为1通道,10为2通道,11为3通道。

之后开始编程,逻辑是:起始信号,发送8591地址+读写方向,控制信号(DA输出还是单端输入),做输入之后就读DA的值,做DA输出,发一个数字量,让他转为模拟量输出。

转载于:https://www.cnblogs.com/Lieyuanbingshi/p/10770422.html

51单片机学习笔记(清翔版)(21)——ADDA数模转换相关推荐

  1. 单片机c语言北航,【下载资料】《51单片机学习笔记》北航版

    原标题:[下载资料]<51单片机学习笔记>北航版 如果手机下载有问题,请移步至电脑端,链接:https://forum.mianbaoban.cn/t/topic/36906 内容简介 本 ...

  2. 51单片机学习笔记-1简介及点灯

    51单片机学习笔记 文章目录 51单片机学习笔记 1. 51单片机简介 1.1 安装软件 1.2 单片机简介 2. LED灯 2.1点亮一个LED 2.1.1原理分析 2.1.2 创建工程 2.2LE ...

  3. [51单片机学习笔记TWO]----蜂鸣器

    蜂鸣器音乐播放实验 首先应该了解一下蜂鸣器音乐播放的原理,在这里我只讲一下电磁式蜂鸣器驱动原理(还有一种是压电式蜂鸣器): 电磁式蜂鸣器驱动原理: 蜂鸣器发声原理是电流通过电磁线圈,使电磁圈产生磁场来 ...

  4. AutoLeaders控制组—51单片机学习笔记

    文章目录 AutoLeaders控制组-51单片机学习笔记 1.1单片机及开发板介绍 单片机介绍 单片机应用领域 STC89C52单片机 内部结构 开发板介绍 2.1点亮一个Led 新建工程 编程 认 ...

  5. 51单片机学习笔记2 仿真器的使用及STC89Cxx简介

    51单片机学习笔记2 仿真器的使用及STC89Cxx简介) 一.连接步骤 1. 硬件连接 2. 安装软件驱动 3. 检查是否安装成功 二.仿真步骤 1. 打开一个51工程 2. 选择仿真设备 3. S ...

  6. 51单片机学习笔记5 流水灯实现及蜂鸣器控制

    51单片机学习笔记5 流水灯实现及蜂鸣器控制 一.流水灯 1. 硬件电路 2. 代码实现 (1) 点亮一个LED的基本操作 (2) 使用算术左移实现流水灯 (3) 使用库文件左移函数 二.蜂鸣器 1. ...

  7. 51单片机学习笔记1 简介及开发环境

    51单片机学习笔记1 简介及开发环境 一.51单片机 1. STC89C52单片机简介 2. 命名规则 3. 封装 (1)PDIP (2)LQFP (3)PLCC (4)PQFP 二.STC8051结 ...

  8. 51单片机学习笔记(清翔版)(25)——LCD1602和指针

    常说的有LCD液晶和LED液晶 通常是背光源不同,LCD液晶的液晶面板是LCD的,背光源是荧光灯做的,LED液晶的面板也是LCD做的,背光源是LED灯做的. 看到的这个暗黄色的就是液晶面板,如果没有背 ...

  9. 51单片机学习笔记(郭天祥版)(3)——引脚讲解、数码管静态显示、中断系统(外部中断,定时器中断)...

    学习引脚的功能 9引脚 复位管脚,当给2个机器周期(24个时钟振荡周期)的高电平时会复位,单片机正常工作时会给0.5v的低电平 VPD备用电源的输入端,当主电源VCC发生故障降低到某一规定的低电平时, ...

  10. 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯

    关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...

最新文章

  1. JAVA GUI关闭按钮不起作用(用SwingWorker解决)
  2. python with contextmanager yield 语法糖
  3. manual php,PHP - Manual: 介绍 (官方文档)
  4. python随机生成k个不重复的随机数_python 生成不重复的随机数的代码
  5. uniapp怎么引入css_Uniapp怎么引入外部js
  6. JAVA实现汉字转换为拼音 pinyin4j/JPinyin
  7. TI Inside,情报协同的最佳实践
  8. A+B Problem(高精)(洛谷-P1601)
  9. jps 显示有问题 解决方法
  10. 01_Redis基础
  11. 网页中调用Google地图
  12. 压力测试的轻量级具体做法
  13. 这些堪称神器的Chrome插件,提升效率不止10倍
  14. 一个SAP开发人员的2017总结:编程与游泳
  15. Java获得随机数的几种方法
  16. Delphi 2006(DeXter) VS.NET 2005[原创]
  17. 网络摄像头100万至500万分辨率多少?传输带宽占用多少?存储空间是多少?
  18. 《红色警戒2·尤里复仇》-第四章 随地建设
  19. dnf史诗计算机手机版,DNF手游终于要来了!可端游的史诗级装备该咋办…
  20. Circular view path xxx would dispatch back to the current handler URL

热门文章

  1. SpringMVC的概念
  2. 将excel的数据导入到mysql数据表
  3. Python 技术篇-百度语音API鉴权认证获取Access Token实例演示
  4. MATLAB中inputdlg的使用
  5. 【MPI程序】向量乘法,向量点积(高性能计算)
  6. 第一章:1.2.2系统分类(二)
  7. Execution failed for task ':compileArmv7DebugJavaWithJavac' 解决办法
  8. Java基础总结之数组
  9. DSP6455的EMIFA口
  10. 编写Ogre插件的一般方法