dac.c
来自「c8051f020模块.rar」· C语言 代码 · 共 105 行
C
105 行
#include <c8051f020.h>
#include<intrins.h>
#include<math.h>
#define uint8 unsigned char
#define uint16 unsigned int
sfr16 DAC0=0XD2;
void SYSCLK_Init(void)
{
uint8 i;
OSCXCN = 0X67;//开始外部22.1184M晶振
for(i = 0;i < 128;i++); //等待外部起振
while(!(OSCXCN & 0X80)); //查询标志位
OSCICN = 0X88;//用外部晶振,并使能始终丢
}
void Init_DAC0(void)
{
XBR2=0X40;
REF0CN=0X03;
DAC0CN=0X80;
}
void Write_DAC0(uint16 Data)
{
uint8 m,j,k;
m=Data;
j=Data>>8;
// k=DAC0L;
DAC0L=m;
DAC0H=j;
//DAC0H=DAC0H;
//DAC0=Data;
}
void Init_System(void)
{
WDTCN=0XDE;
WDTCN=0XAD;
SYSCLK_Init();
Init_DAC0();
}
void main(void)
{
uint16 i;
Init_System();
while(1)
{
Write_DAC0(0X0ccc);
//Write_DAC0(0X0CCC);
//for(i=0;i<1000;i++);
}
}
/*
void DAC_Init(void)
{
REF0CN=0X03;
DAC0CN=0X80;
}
void main(void)
{
uint16 i,k;
uint8 m;
float y,x;
WDTCN=0XDE;
WDTCN=0XAD;
SYSCLK_Init();
//DAC_Init();
while(1);
{
for(x=0;x<(2*3.14159);x+=0.1)
{
y=2048*(sin(x)+1);
//DAC0=y;
m=DAC0L;
REF0CN=0X03;
DAC0CN=0X80;
DAC0L=(uint16)y;
DAC0H=((uint16)y)>>8;//DAC0H;
DAC0L=(uint16)y;
DAC0H=((uint16)y)>>8;//DAC0H;
for(i=0;i<=100;i++);
}
}
} */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?