新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机—DAC0832(详细介绍)—06—①

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

作者: 时间:2016-11-25 来源:网络 收藏





总算好了,程序

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);
}
}



上一页 1 2 下一页

关键词:51单片机DAC083

评论


相关推荐

技术专区

关闭