您的位置 首页 应用

51单片机—DAC0832—06—①

DAC0832~相信大家都不陌生,想整理整理这个,三种方法吗~~所以这个也得两三篇吧~~慢慢来~~这一篇还是比较简单的介绍,不过也有注意的~~1、D

DAC0832~信任我们都不生疏,想收拾收拾这个,三种办法吗~~所以这个也得两三篇吧~~慢慢来~~

这一篇仍是比较简单的介绍,不过也有留意的~~

1、DAC0832的简介

1)DAC0832的引脚

当然榜首就得是引脚,因为网上的这个东西比较多,那我就粘贴了~~

2)DAC0832的内部结构(这个关于了解1仍是很重要的~~,呵呵,这个应该放在1处)

这儿必定留意了:

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

8位DAC寄存器用于寄存待转化的数字量,由/LE2操控

都是低电平有用啊~~(当他们所对应的引脚都有用的时分,它们俩是高电平~~
3)DAC0832的接口方法和运用

好了,剩余的便是我的图~~

总算好了,程序

main.c

//——————————————————————————
//主文件
#include”reg52.h”
#include”macroandconst.h”
#include”dac0832.h”
#include”delay.h”
//——————————————————————————
sbitk1=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”
//——————————————————————————
#definestep 4//界说锯齿波主动加4~
ucharpdataDAC0832;//设置DAC0832的地址,这便是51系列的单片机有A/D的优点
uchark;//uchar型变量,用于计数
ucharcodesin[]={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);
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/258611.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部