9.19AD和DA操作
下载芯片说明书的网站:http://www.21ic.com/
D/A digital是数字信号,analog是模拟信号,单片机属于数字芯片,内部只有0和1,这两种信息无法表示一个模拟量,如果是一个8位的D/A,全部送11111111为8V.全部送00000000为0V,等等
DA转换器与单片机的接口
T型电阻网络D/A转换器:

由图中可知,I=V/R,I7占的权重为二分之一,I6为四分之一,以此类推
D/A转换的主要性能指标,分辨率,线性度,绝对误差,相对误差,建立时间
分辨率:分辨率是指输入数字量的最低有效位变化时,所对应的输出模拟量(电压或电流)的变化量他反应了输出模拟量的最小变化值
分辨率与输入数字量的位数有明确的关系,可以用FS /2的n次方来表示,FS表示满量程输入值,n为二进制数,对于5V的满量程,采用8位的DAC时,分辨率为5/256 = 19.5mv,采用12位的DAC时,分辨率则为5/4096=1.22mv,显然,位数越多分辨率就越高
线性度:
线性度也称为是(非线性误差)是实际转换曲线与理想直线特性之间的最大偏差,常以相对满量程的百分数表示,如-1%到+1%之间,表示实际输出值与理论值之间在满刻度-1%到+1%以内
建立时间:电流型的DAC的建立时间短,电压输出型DAC的建立时间DAC主要决定运算放大器的响应时间,因为电压输出的是要经过运算放大器
注意,精度与分辨率具有一定的联系,但是概念不同,DAC的位数多时,分辨率会提高,但对于影响精度的量化误差会减小,但其他误差(如温度漂移,线性不良)的影响仍然会使DAC的精度变差
操作时序:
DAC0832芯片是非常常用的DAC转换器,
CS,片选信号,低电平有效
AD转换的原理参数指标:一般的AD转化过程是通过保持,量化,编码三个步骤完成的,即首先对模拟信号进行采样,采样结束后进入保持时间,在这段时间将电压量转化为数字量,并按照一定的编码方式给出转换结果
采样定理,采样的频率要大于2倍v1最高频率分量的频率
量化和编码:用数字量来表示采样电压时,必须把它换成这个最小数量单位的整数倍,这个转化的过程叫做量化
量化误差:量化误差是指不能被整除时带来的误差,为了减小量化时带来的误差,现在把每个二进制编码代表的模拟电压规定为他所对应的模拟电压范围的中点,所以这个时候最大的量化误差自然就缩小到(单位1)/2
AD小结:不同的AD转化方式具有各自的特点,在要求转化速度比较高的场合,选用并行AD转换器,在要求精度比较高的情况下,可采用双积分A/D转换器,当然也可以使用其他A/D转化器,但会增加成本;逐次比较型A/D转换器在一定的程度上兼有以上两种A/D转换器的优点,因此得到普遍的应用
这里我们不讲转化原理了,在这里我们讲应用,怎么样使得板子上的PCF8591与单片机之间进行通信

未完待续~~~
9.19AD和DA操作的更多相关文章
- Documentum常见问题11-xplore全文检索时找不到相关内容
最近帮助同事处理了一个关于全文检索的问题,随手记录下来供以后参考. 问题一 某些Cabinet下的文件可以全文检索到,但某些Cabinet下的数据全文检索不成功. 新建了一个Docbase-AADCT ...
- Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同步
对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...
- 缓存方案 通过SqlDependency实现Cache和Database的同步
对于一个真正的企业级的应用来说,Caching肯定是一个不得不考虑的因素,合理.有效地利用Caching对于增强应用的Performance(减少对基于Persistent storage的IO操作) ...
- GNU汇编 伪指令
伪指令 本身并没有所对应的机器码 它只是在编译的时候起作用,或者转换为其他的实际指令来运行 global ascii byte word data equ align @ 下面的例子是在数据段存放数据 ...
- Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...
- C#操作access和SQL server数据库代码实例
在C#的学习中,操作数据库是比较常用的技术,而access和sql server 数据库的操作却有着不同.那么,有哪些不同呢? 首先,需要引用不同的类.因为有着不同的数据引擎. access:usin ...
- access基本操作(c#操作,远程连接,执行sql,加密,备份)
前言 最近项目用到了access,是的就是access,工作在桌面型的小数据库应用还是会用到的,如果你确定永远不会遇到access的操作,请忽略此篇文章 1.vs配置access 既然是数据库,就少不 ...
- LightMysql:为方便操作MySQL而封装的Python类
原文链接:http://www.danfengcao.info/python/2015/12/26/lightweight-python-mysql-class.html mysqldb是Python ...
- python对缓存(memcached,redis)的操作
1.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
随机推荐
- java第三课:分支结构、循环结构
分支结构 1.if后面可以不加{},但是不建议,容易产生误解2.写程序的时候先防屌丝测试,再写逻辑,否则会出错3.if:一条分支 if else:两条分支 if...else if...:多条分支(结 ...
- Extjs4.2布局——Ext.container.ViewportView
先贴出官方文档的关于此布局的描述:“ 一个专门的容器用于可视应用领域(浏览器窗口). Viewport渲染自身到网页的documet body区域, 并自动将自己调整到适合浏览器窗口的大小,在窗口大小 ...
- jQuery,javascript获得网页的高度和宽度
网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWi ...
- The 7th Zhejiang Provincial Collegiate Programming Contest->Problem B:B - Somali Pirates
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3323 题意:去掉字符串里面的数字然后按输入顺序输出 #include< ...
- DLL搜索路径和DLL劫持
DLL搜索路径和DLL劫持 环境:XP SP3 VS2005 作者:magictong 为什么要把DLL搜索路径(DLL ORDER)和DLL劫持(DLL Hajack)拿到一起讲呢?呵呵,其实没啥深 ...
- vimrc for windows
set nobackupsource $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswin:color deser ...
- Linux 下常用命令
linux 下常用命令: 1.删除文件命令为 rm 2.创建目录的命令是:mkdir 3.删除目录的命令是rmdir(空目录) 4.切换到root帐号:su 5.查看所有进程:ps -aux 6.杀死 ...
- ActiveMQ之 TCP通讯机制
ActiveMQ支持多种通讯协议TCP/UDP等,我们选取最常用的TCP来分析ActiveMQ的通讯机制.首先我们来明确一个概念: 客户(Client):消息的生产者.消费者对ActiveMQ来说都 ...
- Git教程(6)常用技巧之远程分支简单示例
基础 1,"master" 与"origin" “master” 是当你运行 git init 时默认的起始分支名字,原因仅仅是它的广泛使用,“origin” ...
- Fast scroller styles
<!-- Fast scroller styles --> <!-- Drawable to use as the fast scroll thumb. --> <att ...