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. (整理)REHL6.5_Yum安装Reids

    1.yum添加epel源 yum install epel-release 默认安装,遇到“确定吗?”输入Y 2.yum安装Redis yum install redis  默认安装,遇到“确定吗?” ...

  2. 0011 删除链表的倒数第N个节点

    给 定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...

  3. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3' ...

  4. windows 杀死进程

    查看所有进程: tasklist 查看某一个进程: tasklist | findstr python 杀死进程:taskkill /F /PID python.exe 查看端口占用情况:netsta ...

  5. vue 组件自定义v-model

    参考资料:vue官网在vue 中使用v-model双向绑定 <input v-model="something"> 其实是语法糖 <input :value=&q ...

  6. Linux查看版本(centos)

    1.查看内核版本 1.1.uname -a 1.2.cat /proc/version 2.查看发行版本 cat /etc/redhat-release

  7. Android 开发 Fresco框架点击小图显示全屏大图实现 ZoomableDraweeView

    目标需求 实现一张小图片,被点击后变成一个在整个屏幕上显示的大图片.类似于微信朋友圈的图片. 实现流程 1.Fresco基本初始化 2.下载并且导入ZoomableDraweeView 它是实现大图的 ...

  8. 通过SID查找历史执行的SQL语句

    这次某系统发生严重的阻塞,但是去查顶级会话,发现已经没有该对应的sql_id了,于是我们只用通过 v$active_session_history 视图来寻找.下面是查找的过程: 1.查找顶层ASH历 ...

  9. python模块 os&sys&subprocess&hashlib模块

    os模块 # os模块可根据带不带path分为两类 # 不带path print(os.getcwd()) # 得到当前工作目录 print(os.name) # 指定你正在使用的操作系统,windo ...

  10. java学习过程中遇到的坑及解决方法

    1. Table 'my_data_base.gjp_zhangwu' doesn't exist Query: select * from gjp_zhangwu Parameters: 数据库中的 ...