DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

单极性输出:

由运算放大器进行电流→电压转换,使用内部反馈电阻。输出电压值VOUT和输入数字量D的关系:

VOUT = - VREF ×D/256

D = 0~255, VOUT = 0 ~ - VREF ×255/256

比如:

VREF = -5V, VOUT =0~5×(255/256)V

VREF = +5V, VOUT = 0 ~ -5×(255/256)V;

双极性输出:

如果实际应用系统中要求输出模拟电压为双极性,则需要用转换电路实现。

如图双极性电压输出电路

其中 R2=R3=2R1

VOUT= 2×VREF×D/256 -VREF= (2D/256-1)VREF

比如:

D = 0, VOUT= -VREF;

D = 128, VOUT= 0;

D = 255, VOUT= (2×255/256-1)×VREF= (254/255)VREF

即:输入数字为0~255时,输出电压在- VREF ~+ VREF之间变化。

DAC0832 芯片:

* D0~D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
* ILE:数据锁存允许控制信号输入线,高电平有效;
* CS:片选信号输入线(选通数据锁存器),低电平有效;
* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
* IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;
* IOUT2:电流输出端2,其值与IOUT1值之和为一常数;
* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
* Vcc:电源输入端,Vcc的范围为+5V~+15V;
* VREF:基准电压输入线,VREF的范围为-10V~+10V;
* AGND:模拟信号地;
* DGND:数字信号地。

相关仿真电路图:

按照单极性计算公式如下:

VOUT = - VREF ×D/256

D = 0~255, VOUT = 0 ~ - VREF ×255/256

D7---D0 为 0010 1001 =0x29=41 , Vout= - (+2.5)*41/256=-0.400390625 也就是 -0.40 ,实验正确

参考代码

  1. #include<reg52.h>
  2. #define uchar8 unsigned char
  3. #define uint16 unsigned int
  4. #define out P1
  5. sbit DAC_cs = P2^;
  6. sbit DAC_wr = P2^;
  7. void main(void)
  8. {
  9. uchar8 temp;
  10. uint16 i=;
  11. while()
  12. {
  13.  
  14. out=temp;
  15. DAC_cs=; // 选中芯片,低电平有效
  16. DAC_wr=; // 数据锁存器写选通输入线, 向 DAC0832芯片写入转换的数字量
  17.  
  18. DAC_cs=; // 为什么要关闭呢,当然换做我写,好像也会关闭
  19. DAC_wr=; // 我也会关闭,先锁存起来
  20. temp++; // 数字量加1 ,当然也可以 加 其他的,比如2 ,那么 电压一次就会跳 2*256/2.5=0.02 A
  21. while(--i); // 延时吧,有用,不然跳的太快
  22.  
  23. }
  24.  
  25. }

(七)DAC0832 数模转换芯片的应用 以及运算放大器的学习 01的更多相关文章

  1. OSI七层协议模型、TCP/IP四层模型学习笔记

    1. OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行 ...

  2. FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 删除留言

    之前文章FastAPI(七十三)实战开发<在线课程学习系统>接口开发-- 回复留言,那么我们这次分享删除留言接口的开发 可以对留言进行删除,这里的删除,我们使用的是逻辑的删除,不是物理删除 ...

  3. FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发

    之前我们分享了FastAPI(七十一)实战开发<在线课程学习系统>接口开发-- 查看留言,这次我们分享留言列表开发. 列表获取,也需要登录,根据登录用户来获取对应的留言.逻辑梳理如下. 1 ...

  4. 20155307 2016-2017-2 《Java程序设计》第七周学习总结

    学号 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 认识Lambda语法,方法参考在重用现有API上扮演了重要角色,重用现有方法操作,可避免到处写下Lamb ...

  5. 深度 | AI芯片终极之战

    深度 | AI芯片终极之战 https://mp.weixin.qq.com/s?__biz=MzA4MTQ4NjQzMw==&mid=2652712307&idx=1&sn= ...

  6. 学号 20175313《Java程序设计》 第七周学习总结

    目录 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 一.教材学习内容总结 第八章主要内容 了解String类 常量对象:常量池中的数据 ...

  7. 20155236 2016-2017-2 《Java程序设计》第七周学习总结

    20155236 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 Calendar是个抽象类,java.util.GregorianCalendar是其子类, ...

  8. 20155330 2016-2017-2 《Java程序设计》第七周学习总结

    20155330 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 学习目标 了解Lambda语法 了解方法引用 了解Fucntional与Stream API ...

  9. 2016-2017-2 20155309南皓芯《java程序设计》第七周学习总结

    教材学习内容总结 Lambda 一种匿名方法 表达式构成 括号以及括号里用逗号分隔的参数列表 仅有一个参数的可以省略括号 ->符号 花括号以及花括号里的语句 仅有一条语句时可以省略花括号,并且这 ...

随机推荐

  1. 读书笔记——《图解TCP/IP》(4/4)

    经典摘抄 第八章 应用层协议概要 1.应用协议是为了实现某种应用而设计和创造的协议. 2.TCP/IP的应用层包含了管理通信连接的会话层功能.转换数据格式的表示层功能,还包括与对端主机交互的应用层功能 ...

  2. Qt 自定义 滚动条 样式(模仿QQ)

    今天是时候把软件中的进度条给美化美化了,最初的想法就是仿照QQ. 先前的进度条是这样,默认的总是很难受欢迎的:美化之后的是这样,怎么样?稍微好看一点点了吧,最后告诉你实现这个简单的效果在Qt只需要加几 ...

  3. 使用多种客户端消费WCF RestFul服务(三)——.net4.5篇

    .net 4.5篇 在.net 4.5下面微软提供了System.Net.Http.dll可以非常方便的使用HTTP请求(其实是用来支持Asp.Net Web Api的,不过我们可以拿过来用) 服务仍 ...

  4. SQLSERVER 16进制转10进制

    原码.补码.反码参考: http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html 进制转换参考: http://ww ...

  5. C++中string转化为常用数值类型

    //模板类 用于将string类型转化为 常用数值类型 template <class Type> Type stringToNum(const string& str) { is ...

  6. Partial Tree---hdu5534(完全背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534 题意:有n个节点,让这n个节点形成一棵树,这棵树的种类有很多种,现在告诉n-1个f[i],表示度 ...

  7. sell-- 英文网站产品显示404?

    1. 简介: 通过在主页(header.jsp)查询B22212,在localhost本地, cn和us查询的结果search.jsp中显示都是没有找到! 但是在外网(www),cn能够查询到,并展示 ...

  8. LeetCode Longest Palindrome

    原题链接在这里:https://leetcode.com/problems/longest-palindrome/ 题目: Given a string which consists of lower ...

  9. OSG绘制几何图形

    在OSGMFC程序基础上修改OSG_MFC类的方法,如下: void cOSG::InitSceneGraph(void) { // Init the main Root Node/Group mRo ...

  10. jQuery页面加载后执行的事件(3种方式)

    $(function () { }); $(document).ready(function () { }); window.onload = function () { }