一、DAC0832芯片----电流输出型D/A转换器

  • 8位并行输入方式
  • 分辨率19.5mV (VREF = 5V
  • 电流建立时间1μS
  • 输入与TTL电平兼容
  • 单一电源供电(+5V~+15V
  • 低功耗,20mw

1、引脚功能:

DI0DI78位数字信号输入端,与单片机的数据总线P0口相连,用于接收单片机送来的待转换为模拟量的数字量,DI7为最高位。

        片选端,为低电平时,本芯片被选中。

ILE数据锁存允许控制端,高电平有效。

:第一级输入寄存器写选通控制,低电平有效。当  

         =0,ILE=1, =0时,待转换的数据信号被锁存到第一级8位输入寄存器中。

       :数据传送控制,低电平有效。

 :DAC寄存器写选通控制端,低电平有效。当   

=0, =0时,输入寄存器中待转换的数据传入8DAC寄存器中。

IOUT1D/A转换器电流输出1端,输入数字量全为“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。

IOUT2D/A转换器电流输出2端,IOUT2 + IOUT1 = 常数。

Rfb外部反馈信号输入端,内部已有反馈电阻Rfb,根据需要也可外接反馈电阻。

VCC电源输入端,在+5V+15V范围内。

2、DAC0832的结构

内部组成:

  • 18位输入锁存器
  • 18DAC寄存器
  • 18D/A转换器
  • 5个控制逻辑(2级控制

工作过程8位数据并行送入锁存器→在1控制信号作用下进入寄存器→在2控制信号作用下进入转换器→转换结果由Iout1电流输出。

3、DAC0832的3种控制方式

  • 直通方式—— 两个寄存器都处于直通状态
  • 直通方式不能直接与系统的数据总线相连,需另加锁存器,故较少应用。
  • 单缓冲方式—— 一个寄存器处于直通,另一个处于受控状态
  • 双缓冲方式—— 两个寄存器都分别处于受控状态

二、STC89C52与DAC0832的接口

1、直通控制方式---两个寄存器都处于直通状态

电路采用I/O口方式接线,直通控制方式——4个控制端都接低电平,ILE接高电平。数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。

2、单缓冲方式---内部的两个数据缓冲器有一个处于直通方式,另一个处于受单片机控制的锁存方式。在实际应用中,如果只有一路模拟量输出,或虽是多路模拟量输出但并不要求多路输出同步的情况下,可采用单缓冲方式。

单极性输出的正负极性由VREF的极性确定。

图中ILE接+5V,IOUT2接地,IOUT1输出电流经运算放大器变换后输出单极性电压,范围为0~+5V。 DAC0832的“8位DAC寄存器”工作于直通方式。“8位输入寄存器”处于受控状态,由P2.7来控制。

当单片机执行如下指令就可在   和    上产生低电平,使DAC0832接收STC89C52送来的数字量。

MOV   DPTR,#7FFFH

MOV    A,#data

MOVX  @DPTR,A

【例】、 DAC0832用作波形发生器。写出产生三角波和矩形波的程序。

三角波

#include <absacc.h>
#define  DAC0832  XBYTE[0x7fff]       //设置DAC0832的访问地址
unsigned char num;
void main() {while(1){for (num=0;num<0xff;num++)   //上升段波形DAC0832=num;for (num=0xff; num > 0 ; num--)     //下降段波形DAC0832=num;                 //DAC0832转换输出}
}

矩形波

#include<absacc.h>
#define  DAC0832  XBYTE[0x7fff]    //设置DAC0832的访问地址
unsigned int  i;
void main() {while (1) {for(i=0;i<10000;i++)      //置上限电平对应的数字量,延时DAC0832=255;for(i=0;i<20000;i++)         //置下限电平对应的数字量,延时DAC0832=0;}
}

3、双缓冲方式——两个寄存器都分别处于受控状态。

对于多路D/A转换需要同步转换输出的系统,应该采用双缓冲器同步方式。DAC0832工作于双缓冲器工作方式时,数字量的输入锁存和D/A转换是分两步完成的。首先,CPU的数据总线分时地向各路D/A 转换器输入要转换的数字量并锁存在各自的输入锁存器中,然后CPU对所有的D/A 转换器发出控制信号,使各个D/A转换器输入锁存器中的数据打入DAC 寄存器,实现同步转换输出

在需要多路D/A转换输出的场合,除了采用上述方法外,还可以采用多通道DAC芯片。这种DAC芯片在同一个封装里有两个以上相同的DAC,它们可以各自独立工作,例如AD7528是双通道8位DAC芯片,可以同时输出两路模拟量;AD7526是四通道8位DAC芯片,可以同时输出四路模拟量。

【例】、根据下图,实现两路D/A同步输出,产生上行、下行两路锯齿波。

#include <absacc.h>
#define  DAC1  XBYTE[0xdfff]//设置1#DAC0832输入锁存器的访问地址
#define  DAC2  XBYTE[0xbfff]//设置2#DAC0832输入锁存器的访问地址
#define  DAOUT XBYTE[0x7fff]//两个DAC0832的DAC寄存器访问地址
void main (void){unsigned char num;           //需要转换的数据while(1){for(num =0; num <=255; num++){DAC1 = num;       //上锯齿送入1#DACDAC2 = 255-num;    //下锯齿送入2#DACDAOUT = num;       //两路同时进行D/A转换输出}}
}

三、双极性电压输出

在需要用到双极性电压输出的场合,可以按照图11-14接线。图中DAC0832的数字量由单片机送来,A1和A2均为运算放大器, 通过2R电阻反馈到运算放大器A2输入端,G点为虚拟地。由基尔霍夫定律列出的方程组可解得

STC89C52与8位D/A转换器DAC0832的接口设计相关推荐

  1. 12位A/D转换器ADS7804与51单片机的接口及程序设计

    摘要:ADS7804是美国BURR-BROWN公司推出的一种新型12位A/D转换器.文中介绍了它的特性与功能, 给出了一种简洁而新颖的与51单片机的接口方法,同时给出了用C语言编写的数据采集的应用程序 ...

  2. c语言编程TLC2543AD采集,基于C语言的89C51与TLC2543AD转换器的驱动程序的设计 实训报告...

    电子信息技术综合实训报告 竞赛题名称:基于C语言的89C51与TLC2543AD转换器的驱动程序的设计 队员名称: 评阅人签名:设计思路描述: 设计思路: 硬件部分基于80C51单片机和TLC2543 ...

  3. 微型计算机汇编语言与接口技术答案,32位微机原理、汇编语言及接口技术教程课后习题答案.doc...

    32位微机原理.汇编语言及接口技术教程课后习题答案.doc 16/32位微机原理.汇编语言及接口技术教程部分习题参考解答第1章 微型计算机系统概述习题1.2什么是通用微处理器.单片机(微控制器).DS ...

  4. ultraedit许可证id 7位数字_优雅的数据库ID设计

    数据库表设计是项目开发中逃不掉的问题,每一张表,我们都会设计一个ID主键字段,关于表ID的生成方式,每个人都有自己的见解,我们就来讨论如何优雅的设计数据库ID 自增ID 这种方式用起来最简单,也是很多 ...

  5. at89s51数码管秒表c语言程序,基于AT89C51单片机的一个2位的LED数码显示作为“秒表”设计【基于单片机系统的00-99s的定时器】...

    基于AT89C51单片机的一个2位的LED数码显示作为"秒表"设计[基于单片机系统的00-99s的定时器] 工程技术学院 课程设计 题 目:用单片机AT89C51设计一个2位的LE ...

  6. 51单片机c语言dac0832产生波形,基于51单片机的DAC0832波形发生器设计

    波形发生器是一种常用的信号源,广泛的应用于电子电路.自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一.在研制.生产.测试和维修各种电子元件.部件以及整机设备时,都需要有信号源. ...

  7. 3位格雷码的顺序编码_FPGA 设计之 跨时钟域(四 - 格雷码)

    上一篇文章总结了四种常用的多比特跨时钟域的设计.这篇我们主要来看一下 格雷码,文章目录如下: 什么是格雷码 格雷码转二进制码 二进制码转格雷码 N比特格雷码转N-1比特格雷码 什么是格雷码 ? A G ...

  8. 2440 8字数码管 显示0到10 c语言,51单片机对8位数码管依次显示0-7的设计

    共阳极数组0~9:display[]={0xC0,0xF9,0xA4,0xB0,0x91,0xA2,0x82,0xF8,0x80,0x90} 共阳极数组A~F:display[]={0x88,0x83 ...

  9. 12位串行AD转换器TLC2543与单片机的接口设计与编程

    第一次做光学仪器的小项目中的一部分是数据采集后经过模数转换,把采集到的电压用数字量输入到单片机中进行处理.此处总结下TLC2543的相关资料和与单片机接口方面的编程.主要的参考资料是TLC2543的d ...

最新文章

  1. vuerouter3种模式_Vue-router的三种传参方式
  2. Space X和NASA到底有什么关系?
  3. Tomcat 配置安装
  4. javamail发送邮件的简单实例[转]
  5. Coding: 整数反转
  6. redius mysql_采用Linux系统的Freeradius+MySQL实现RADIUS认证服务器
  7. kubernetes(三)k8s中通信和Service
  8. python多人游戏服务器_Python在线多人游戏开发教程
  9. 【华为云动态】华为云DevCloud助力DevOps标准体系建设
  10. 运行java黑窗口是什么意思_黑窗口运行java文件步骤
  11. 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建项目
  12. 使用mysql innodb 使用5.7的json类型遇到的坑和解决办法
  13. jsp面试问题_JSP面试问答
  14. java 工具类库 Apache Commons
  15. 机器学习、神经网络、深度学习的关系
  16. 公司年终总结新年计划PPT模板
  17. python100天从新手到大师下载_GitHub - chenqiyi/Python-100-Days: Python - 100天从新手到大师...
  18. 让同事主动配合工作的三点技巧|智测优聘总结
  19. 按照ID降序排列方法
  20. NLP冻手之路(4)——pipeline管道函数的使用

热门文章

  1. 方寸知识篇 - 数字集成电路(三)- 存储器
  2. UWA性能诊断又添新利器,开启资源优化新篇章 !
  3. PDF如何旋转页面以及替换页面
  4. mallox勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  5. atmega8a -pu设置熔丝位,atmega8a -pu最小系统
  6. 研发中心居家隔离制度,疫情常态化期间,既不为难领导,也保障了员工利益
  7. Linux 日志管理
  8. 水泵控制器,适用于0.55-37KW 小功率水泵
  9. JS获取页面数据并打印
  10. 在桌面上用鼠标点击一个图标,结果附近若干个图标都被选中的原因?