单片机
返回首页

51单片机—DAC0832(详细介绍)—06—①

2015-10-23 来源:eefocus

DAC0832~相信大家都不陌生,想整理整理这个,三种方法吗~~所以这个也得两三篇吧~~慢慢来~~

这一篇还是比较简单的介绍,不过也有注意的~~[转载]51单片机—DAC0832(详细介绍)—06—①

1、DAC0832的简介

1)DAC0832的引脚

当然第一就得是引脚,由于网上的这个东西比较多,那我就粘贴了~~[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

2)DAC0832的内部结构(这个对于理解1还是很重要的~~[转载]51单片机—DAC0832(详细介绍)—06—①,呵呵,这个应该放在1处)

[转载]51单片机—DAC0832(详细介绍)—06—①

这里一定注意了:

8位输入寄存器用于存放CPU送来的数字量,使得输入的数字量得到缓冲和锁存,由/LE1来控制。

8位DAC寄存器用于存放待转换的数字量,由/LE2控制

都是低电平有效啊~~[转载]51单片机—DAC0832(详细介绍)—06—①(当他们所对应的引脚都有效的时候,它们俩是高电平~~[转载]51单片机—DAC0832(详细介绍)—06—①
3)DAC0832的接口方式和应用

 [转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

好了,剩下的就是我的图~~

[转载]51单片机—DAC0832(详细介绍)—06—①

[转载]51单片机—DAC0832(详细介绍)—06—①

总算好了,程序

main.c

//------------------------------------------------------------------------------
//主文件
#include'reg52.h'
#include'macroandconst.h'
#include'dac0832.h'
#include'delay.h'
//------------------------------------------------------------------------------
sbit k1=P2^7;      //控制开关
//------------------------------------------------------------------------------
//main
void main()
{
 while(1)
 {
  if(k1==0)    //如果要一直显示正弦代码,那就设置一个标志位~~我就不改了,要睡觉了~
  {
   get_sin();    //取正弦代码并输出
  }
  else
  {
   get_jc();    //锯齿波
  }
 }
}

DAC0832.c

 //------------------------------------------------------------------------------
//DAC0832文件的函数,便于调用
//这个D/A的转换器,我感觉重点是你选择好三种方式中的一种,直通方式(较少使用,此方式不能直接与系统的数据总线连接,
//必须要另加锁存器的,比较少的使用,但是~~呵呵,51系列的单片机的P0口恰巧就是个A/D~~你懂得~~省事了~
//所以这个例程里面就果断用的直通方式
#include'reg52.h'
#include'macroandconst.h'
#include'delay.h'
#include'intrins.h'
//------------------------------------------------------------------------------
#define step 4        //定义锯齿波自动加4~
uchar pdata DAC0832;     //设置DAC0832的地址,这就是51系列的单片机有A/D的好处
uchar k;         //uchar型变量,用于计数
uchar code sin[]={0x80,0x8c,0x98,0xa5,0xb0,0xbc,0xc7,0xd1,
      0xda,0xe2,0xea,0xf0,0xf6,0xfa,0xfd,0xff,
      0xff,0xff,0xfd,0xfa,0xf6,0xf0,0xea,0xe3,
      0xda,0xd1,0xc7,0xbc,0xb1,0xa5,0x99,0x8c,
      0x80,0x73,0x67,0x5b,0x4f,0x43,0x39,0x2e,
      0x25,0x1d,0x15,0x0f,0x09,0x05,0x02,0x00,
      0x00,0x00,0x02,0x05,0x09,0x0e,0x15,0x1c,
      0x25,0x2e,0x38,0x43,0x4e,0x5a,0x66,0x73};  //正弦代码表
//------------------------------------------------------------------------------
//取正弦代码并输出
void get_sin()
{
 for(k=0;k<64;k++)
 {
  DAC0832=sin[k];
  delay(1);
 }
}
//------------------------------------------------------------------------------
//取锯齿代码并输出
void get_jc()
{
 for(k=0;k<250;k+=step)
 {
  DAC0832=k;
  delay(1);
 }
}


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 光控音效发生器电路

  • 非常简单的150W功放电路图

  • 优化电路板布局的简单方法

  • 如何使用LED驱动器LM3915制作振动计

  • 电谐波图形均衡器示意图

  • 一种构建12V和230V双直流电源的简单方法

    相关电子头条文章