机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
dac0832引脚图电路及程序
dac0832引脚图电路及程序
 更新时间:2009-12-23 16:41:51  点击数:0
【字体: 字体颜色
 DAC0832是采样频率为八位的D/A转换器件,下面介绍一下该器件的中文资料以及电路原理方面的知识。
    DAC0832内部结构资料:芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过RFB端引用片内固有电阻,海可以外接。
    该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图
    DAC0832引脚图和内部结构电路图

电路图如上图所示,此接法是用DAC0832的直通方式,只要二进制数据送到DAC0832的数据口,则会自动把数据转为相应的电压.但运放是如图的电压则输出一般不可能达到基准电压.要想达到基准电压则要提高运放的电压.当基准为负是,只要提高运放的正电压就可以使输出达到基准电压了,当基准为正是,则为提高运放的负电压,一般的运放提高两伏就可以了,但不同的运放会有些区别.

程序如下:

1.输出固定电压的程序

#include "reg51.h"
void DAC0832(unsigned char x)
{
  P2=x;
}
void main()
{
  DAC0832(255);
  while(1){
  ;}
}

2.输出三角波与正弦波程序.

#include<AT89X52.H>
unsigned char flag;   //波型输出标置变量
bit time;            
unsigned char sin(unsigned char x)
{
unsigned char code sin_tab[]={125,128,131,134,138,141,144,147,150,153,156,159,
         162,165,168,171,174,177,180,182,185,188,191,193,196,198,201,203,
   206,208,211,213,215,217,219,221,223,225,227,229,231,232,234,235,
   237,238,239,241,242,243,244,245,246,246,247,248,248,249,249,250,
   250,250,250,250,250,250,250,249,249,248,248,247,246,246,245,244,
   243,242,241,239,238,237,235,234,232,231,229,227,225,223,221,219,
   217,215,213,211,208,206,203,201,198,196,193,191,188,185,182,180,
   177,174,171,168,165,162,159,156,153,150,147,144,141,138,134,131,
   128,125,122,119,116,112,109,106,103,100,97,94,91,88,85,82,79,76,73,
   70,68,65,62,59,57,54,52,49,47,44,42,39,37,35,33,31,29,27,25,27,29,27,25,23,21,
   19,18,16,15,13,12,11,9,8,7,6,5,4,4,3,2,2,1,1,0,0,0,0,0,0,0,0,1,1,2,
   2,3,4,4,5,6,7,8,9,11,12,13,15,16,18,19,21,23,25,27,29,31,33,35,37,
   39,42,44,47,49,52,54,57,59,62,65,68,70,73,76,79,82,85,88,97,94,97,
   100,103,106,109,112,116,119,122};
   return sin_tab[x];
   }
void DAC0832(unsigned char x)
{
  P2=x;
}
void main()
{
unsigned char i;
TMOD=0X02;        //定时器0用于控制输出波的频率
TH0=256-40;
ET0=1;     //按键接于外部中断0,与中断1
IT0=1;
IT1=1;
EX0=1;
EX1=1;
EA=1;
TR0=1;
flag=0;     //开始时无输出
i=0;
 while(1)
   {
      if(time==1)
     {
       time="0";
    if(i>249)
       i="0";
    else
       i++;
   switch(flag)     //当按键1的为输出三角波,按键2时输出正弦波
     {
        case 0:DAC0832(0);break;
     case 1:
             if(i>125)
         DAC0832(250-i);
       else
         DAC0832(i);
         break;
    case 2:
             DAC0832(sin(i));
       break;
    default:  break;
     }
      }
    }
}
void time0() interrupt 1
{
  time="1";
}
 
 void int0() interrupt 0
 {         //按键1接于外部中断0
    flag="1";
}
 
  void int1() interrupt 2     //按键2接于外部中断1
  {
    flag="2";
}

  • 上一篇: DS18B20数字温度计使用
  • 下一篇: 没有了
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1