A:analog,D:digital

AD,就是模拟量转换为数字量,DA就是数字量转换为模拟量

为什么要转换?

单片机是数字芯片,内部只有0和1,没法表示模拟量

比如我们如果需要2.5V怎么办?其实是由单片机控制DA加上功率放大实现的(因为还需要电流)

如果是一个8位的DA,8个1表示5V,0个1表示0V,中间呈线性变化。

DA转换器内部有很多种构成方式,这是其中一种

VREF参考电压的输入端,D7~D0是数字控制端,每个上面有一个0和1,1越多,IO1越大。

看到IO2这里接地了,说明D0上的电阻2R和其右侧电阻是并联,那么电阻之和就是R,然后又和前面一个电阻串联,总电阻就是2R,又和D1上电阻并联,那么总电阻就是R,以此类推,那么D7电阻右侧所有电阻串并联之和是2R,和D7上电阻之和是R。如果D7~D0全是1,那么电流全流入IO1,那么电流就是VREF/R。如果只有D7是1,由于D7上电阻右侧所有电阻之和是2R,那么电阻分为了相等的两部分,所以IO1=I/2=VREF/2R。如果D7和D6都是1,那么又多分了一半的一半,就是2的2次方分支1,一次类推

图中2的7次方是最高位,把I/2的八次方带进去就得到了I/2,所以是最高位的。

所以DA芯片是通过内部电阻分流产生变化的模拟量的值

位数越高,对功率要求就越高,DA还有转换速度,刚刚看到的内部电路网络,跟温度、线性关系什么的都有关系

线性度是最大的误差,常用最大的误差比满量程值表示。线性度越好,DA性能越好

绝对精度类似于刚刚的线性度,线性度是用百分比,这个不用。

建立时间:就是比如数字量变化一个刻度是1V,那么到0.5V的时间就是建立时间。

今天讲直通方式

下面这些看看就好,无所谓

这个好好看看吧

现在就要进行对芯片的操作了,操作前要先下载datesheet(数据手册)

介绍下下载datesheet的网站:

www.21ic.com

www.alldatasheet.com


DA到这就结束了,编程就先算了...发现郭天祥视频单片机的DA、AD芯片和清翔的不是一个,清翔的是两个在一个芯片PCF8591,他这个是DAC0832,


接下来是AD知识点

用的最多的是逐次逼近式和双积分式。当然这里只看逐次逼近式就好

可以看到AD芯片里面就有一个DA转换器。

将VREF作为参考电压,DA转换器相对于VREF就会输出一个电压值,先将DA转换器的最高位置1,会产生1/2倍参考电压的值,从VN这里输出,从VN这里和VIN作对比,如果大于这个1/2倍的VREF,那么就在移位寄存器中保存下来,移位寄存器的最高位就是1,如果小就存0,然后DA转换器的第二位置1,再进行比较,大于则移位寄存器保存1,小于则是0,以此类推,直到移位寄存器的8位都保存完01,最终把模拟量转换为数字量。然后通过EOC发出信号,产生中断,告诉单片机转换结束,OE输出低电平,把锁存缓存器的数据取走。

红色标注这里就是误差

往上数第二张图就能看到中点连线的转移特性曲线

正是由于AD用到了DA,所以才会使得AD比DA慢。


DS18B20数字温度传感器

T592封装格式,中间I/O是数据口,是单总线芯片,就是数据在一根线上来回跑,读写数据都通过这根线,电阻是上拉电阻。可以检测出现在的温度,例程的代码可以把温度显示到数码管上。


实验板上的贴片、小元件的封装都是0805(还有各种型号的:1206、3216、0604、0302)封装。

看看电路图就会发现,到现在单片机的大部分东西就都讲完了。

郭天祥的是AD0804,和我的不同,所以不看了。

51单片机学习笔记(郭天祥版)(6)——键盘的作业题、AD、DA、DS18B20(这里之后看清翔的补一下好了)的更多相关文章

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

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

  2. 51单片机学习笔记(郭天祥版)(9)——IIC、EEPROM

    IIC是两根线,单总线,只有一根数据线,发送数据和读取收据都是一根线,像我们之前学的AD.DA都是许多线,许多线的话,这样做系统可以少浪费资源,少浪费控制IO口的资源,这种并行的处理速度快.所以线越多 ...

  3. 51单片机学习笔记(清翔版)(13)——LED点阵、74HC595

    如图3,点阵屏分单色和彩色,点阵屏是由许多点组成的,在一个点上,只有一颗一种颜色的灯珠,这就是单色点阵屏,彩色的在一个点上有三颗灯珠,分别是RGB三原色. 图4你可能没看出来,那么大块黄色的就是点阵屏 ...

  4. 51单片机学习笔记(清翔版)(21)——ADDA数模转换

    A:anolog模拟的         D:digital数字的 AD模拟转数字,DA数字转模拟 生活中的基本都是模拟量,如温度,可以是10℃,10.1℃等 手机的背光亮度自动调节,拿到太阳光下,亮度 ...

  5. 20145316许心远《Java学习笔记(第8版)》课程总结

    20145316许心远<Java学习笔记(第8版)>课程总结 每周读书笔记链接汇总 ▪ 第一周读书笔记 ▪ 第二周读书笔记 ▪ 第三周读书笔记 ▪ 第四周读书笔记 ▪ 第五周读书笔记 ▪ ...

  6. Directx11学习笔记【二十一】 封装键盘鼠标响应类

    原文:Directx11学习笔记[二十一] 封装键盘鼠标响应类 摘要: 本文由zhangbaochong原创,转载请注明出处:http://www.cnblogs.com/zhangbaochong/ ...

  7. 学习笔记︱Nvidia DIGITS网页版深度学习框架——深度学习版SPSS

    DIGITS: Deep Learning GPU Training System1,是由英伟达(NVIDIA)公司开发的第一个交互式深度学习GPU训练系统.目的在于整合现有的Deep Learnin ...

  8. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

  9. Linux程序设计学习笔记(独乐乐版)

    在Android的开发过程中经常会遇到Linux相关的问题,为了更彻底的了解Linux准备整点没用的,找到一本 <Linux程序设计>开始系统的学习. 期间记录下自认为重要的内容,本以为是 ...

随机推荐

  1. 理解Linux文件权限

    任何完整的系统都应该具备有某种形式的安全性.必须用过某种机制来保护文件不被未授权的用户查看或修改:Linux系统遵循了Unix的文件权限的方法,来根据用户与用户组授权,实现文件安全访问. 1.Linu ...

  2. 彻底解决windows10+matlab2018a调用libsvm时出现找不到编译器问题

    本文转载自:Shane Zhao博客(CSDN) https://blog.csdn.net/silence2015/article/details/53106156 个人申明,只是因为解决这个问题花 ...

  3. memory_profiler的使用

    作用:memory_profiler是用来分析每行代码的内存使用情况 使用方法一: 1.在函数前添加 @profile 2.运行方式: python -m memory_profiler memory ...

  4. Spring获取URL相关信息

    获取请求的URL:request.getRequestURL().toString(); 获取上下文名称(项目名称):request.getContextPath()

  5. 判断单向连通图(拓扑排序+tarjan缩点)

    题意: 给你一个有向图,如果对于图中的任意一对点u和v都有一条从u到v的路或从v到u的路,那么就输出’Yes’,否则输出’No’. 理解:当出现两个及以上入度为0的点(有一个就可能是别人到它,有两个的 ...

  6. TestLink环境搭建及用例导入

    以下是笔者亲身实践,精心挑选出来的比较好的博文: CentOS7下TestLink环境的部署 https://blog.csdn.net/fxsok244969309/article/details/ ...

  7. Tmux 常用快捷键

    Ctrl-b : Send the prefix key through to the application. " : Split the current pane into two, t ...

  8. Android 开发 View的API 转载

    转载地址:https://blog.csdn.net/lemonrabbit1987/article/details/47704679 View类代表用户界面组件的基本构建块.一个View占据屏幕上的 ...

  9. (7/24) 插件配置之html文件的打包发布

    从前面几节到现在,其实我们的项目结构是有问题的,因为我们直接把index.html文件放到了dist文件夹目录下.这肯定是不正确的,应该放到我们src目录下,然后打包到dist目录下,前面为了学习,才 ...

  10. python 之修饰器

    from functools import update_wrapper def debug(func): def wrapper(): print "[DEBUG]: enter {}() ...