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

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(这里之后看清翔的补一下好了)的更多相关文章
- 51单片机学习笔记(郭天祥版)(1)——单片机基础和点亮LED灯
关于单片机型号的介绍: STC89C52RC40C-PDIP 0721CV4336..... STC:STC公司 89:89系列 C:COMS 52(还有51,54,55,58,516,):2表示存储 ...
- 51单片机学习笔记(郭天祥版)(9)——IIC、EEPROM
IIC是两根线,单总线,只有一根数据线,发送数据和读取收据都是一根线,像我们之前学的AD.DA都是许多线,许多线的话,这样做系统可以少浪费资源,少浪费控制IO口的资源,这种并行的处理速度快.所以线越多 ...
- 51单片机学习笔记(清翔版)(13)——LED点阵、74HC595
如图3,点阵屏分单色和彩色,点阵屏是由许多点组成的,在一个点上,只有一颗一种颜色的灯珠,这就是单色点阵屏,彩色的在一个点上有三颗灯珠,分别是RGB三原色. 图4你可能没看出来,那么大块黄色的就是点阵屏 ...
- 51单片机学习笔记(清翔版)(21)——ADDA数模转换
A:anolog模拟的 D:digital数字的 AD模拟转数字,DA数字转模拟 生活中的基本都是模拟量,如温度,可以是10℃,10.1℃等 手机的背光亮度自动调节,拿到太阳光下,亮度 ...
- 20145316许心远《Java学习笔记(第8版)》课程总结
20145316许心远<Java学习笔记(第8版)>课程总结 每周读书笔记链接汇总 ▪ 第一周读书笔记 ▪ 第二周读书笔记 ▪ 第三周读书笔记 ▪ 第四周读书笔记 ▪ 第五周读书笔记 ▪ ...
- Directx11学习笔记【二十一】 封装键盘鼠标响应类
原文:Directx11学习笔记[二十一] 封装键盘鼠标响应类 摘要: 本文由zhangbaochong原创,转载请注明出处:http://www.cnblogs.com/zhangbaochong/ ...
- 学习笔记︱Nvidia DIGITS网页版深度学习框架——深度学习版SPSS
DIGITS: Deep Learning GPU Training System1,是由英伟达(NVIDIA)公司开发的第一个交互式深度学习GPU训练系统.目的在于整合现有的Deep Learnin ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
- Linux程序设计学习笔记(独乐乐版)
在Android的开发过程中经常会遇到Linux相关的问题,为了更彻底的了解Linux准备整点没用的,找到一本 <Linux程序设计>开始系统的学习. 期间记录下自认为重要的内容,本以为是 ...
随机推荐
- vue-cli · Failed to download repo vuejs-templates/webpack: connect ETIMEDOUT 13.229.188.59:443
初始化vue项目 vue init webpack vue-demo 之后 一直报vue-cli · Failed to download repo vuejs-templates/webpack: ...
- MJRefresh在Xode6中报错处理
MJRefresh在Xcode6中会报错,objc_msgSend(self.beginRefreshingTaget, self.beginRefreshingAction, self),简单调 ...
- git 推送远程仓库和删除远程仓库文件
提交到远程仓库需要现在GitHub或gitlab上创建项目,然后才能连接到远程仓库 1.连接远程仓库 # git remote add origin https://github.com/xxxxx ...
- bootstrapvalidator的简单校验【必填校验、长度校验、是否存在校验(remote)】
需求:输入框的"供应商编码"不能为空而且不能与数据库重复,供应商名称不能为空. 解决: 1.input如下 <input id="ssupplierNo" ...
- Tomcat 控制台出现乱码
本地在启动tomcat时,控制台启动显示乱码 这是因为windows默认编码集为GBK,用startup.bat启动tomcat时,它会读取catalina.bat的代码并打开一个新窗口运行,打开的c ...
- 【Java基础】While循环详解
循环结构分两大类,一类是当型,一类是直到型. 当型: 当布尔值表达式条件为True时,反复执行某语句,当布尔表达式的值为False时才停止循环,例如:while 与 for循环. 直到型: 先执行某语 ...
- 秋日上新!H5活动之家营销平台升级大盘点!
H5活动之家活动营销平台,免费定制使用抽奖.投票.砍价.红包.互动.游戏等不同类型的微信营销活动. 近期多个活动进行了升级改造,更有集福卡持续热度,微助力火热上线等亮点:同时平台也进行了提高访问速度. ...
- 使用css设置三角形
1.在开发中,有时候会用到一些小三角形来强调或者标记元素,这样以便区分不同的项目,然后把三角形绘制成一个比较明显的颜色,就达到效果了,那怎么才能画出三角形呢,之前我也不清楚,最近看到了有些网页在使用, ...
- EL表达式与JSTL标签map遍历varStatus属性下标使用
在JSP页面开发中,JSTL标签库迭代标签<c:forEach>为我们迭代遍历数组集合提供了一种选择. 遍历过程中varStatus属性为我们遍历集合提升了很大操作空间. 贴一下具体使用 ...
- Linux 下安装 apache
1.检查是否已经安装过 apache (linux 中 apache 的名字是 httpd) rpm -qa httpd 2.如果没有安装过,运行如下命令 yum install httpd -y ...