基于R2R电阻网络实现DAC 提供STC代码,目前已测试通过
电路图:

这里是我推荐的方式,使用多个引脚可以实现方便的输出,当然,如果引脚有限,你可以使用这个:

参考代码:
#define DAC7_PIN P17
#define DAC6_PIN P16
#define DAC5_PIN P15
#define DAC4_PIN P11
#define DAC3_PIN P12
#define DAC2_PIN P13
#define DAC1_PIN P14
#define DAC0_PIN P10
void SET_DAC(unsigned char DAC_TEMP)
{
// unsigned char TEMP;
// DAC_TEMP = DAC_TEMP * 5.0 / 256.0;
// TEMP = DAC_TEMP;
DAC0_PIN = GET_BIT(DAC_TEMP, 0);
DAC1_PIN = GET_BIT(DAC_TEMP, 1);
DAC2_PIN = GET_BIT(DAC_TEMP, 2);
DAC3_PIN = GET_BIT(DAC_TEMP, 3);
DAC4_PIN = GET_BIT(DAC_TEMP, 4);
DAC5_PIN = GET_BIT(DAC_TEMP, 5);
DAC6_PIN = GET_BIT(DAC_TEMP, 6);
DAC7_PIN = GET_BIT(DAC_TEMP, 7);
}值得注意的是,如果你希望产生高速的波形,在绘制电路板的时候要注意给信号线做等距,或者尽可能的使得信号线更短!




