📄 wdac2.c
字号:
//参考程序 E :正弦波发生器程序:WDAC2.c DAC输出正弦波,DAC输出更新发生在写DAC0H时
#include <c8051f020.h> /*SFR定义*/
#include<math.h>
sfr16 DAC0 = 0xd2; /*DAC0数据*/
void DAC_Init(void);
void main (void) {
unsigned int i;
float y,x;
WDTCN = 0xde; /*关看门狗*/
WDTCN = 0xad;
DAC_Init(); /*D/A初始化*/
while (1)
{
for(x=0;x<(2*3.14159);x+=0.1)
{y=2048*(sin(x)+1); /*12位ADC的数字容量为4K(0--0FFFH)y的最大值为4096*/
DAC0=y; /*设置待转换的值并启动D/A转换*/
// DAC0H=DAC0H ;
for(i=0;i<=1;i++); //延时可改变正弦波周期
}
}
}
void DAC_Init(void)
{
REF0CN =0x03;/*内部偏压发生器和电压基准缓冲器工作,基准从VREF引脚输出*/
DAC0CN |=0x80;/*DAC0允许,DAC输出更新发生在写DAC0H时*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -