PIC的DAC使用还是相当简单的。DAC即Digital to analog converter,数字模拟转换器。PIC的DAC精度只有5位,是真的低,所以说使用PIC的DAC只是玩玩而已。如果在项目中真的需要用到DAC,估计需要用DAC专用芯片了。
DAC的输出电压计算公式为Vout=【(Vsource+ - Vsource-)*DACR[4:0]/2*5】+Vsource-
DAC 的输入可以连接到:①外部 V REF + 引脚 ②VDD 供电电压
DAC 的输出可以配置为向以下对象提供参考电压:①比较器的正输入 ②ADC 输入通道 ③DACOUT1 引脚 ④DACOUT2 引脚
这些均可以通过寄存器配置
void main()
{
OSCCON = 0x78;//16M
__delay_ms(20);
ANSELAbits.ANSA2 = 1;
TRISAbits.TRISA2 = 0;//输出端口
DACCON0bits.DACEN = 1;//使能 DAC
DACCON0bits.DACOE1 = 1;//DAC 电平从 DACOUT1 引脚输出
DACCON0bits.DACOE2 = 0;// DAC 电平从 DACOUT2 引脚断开
DACCON0bits.DACPSS = 0;//DAC 正参考电压源选择位 VDD
DACCON1bits.DACR4 = 0;
DACCON1bits.DACR3 = 1;
DACCON1bits.DACR2 = 0;
DACCON1bits.DACR1 = 1;
DACCON1bits.DACR0 = 1;//11/32
while(1)
{
}
}
理论输出电压为Vout=(VDD-VSS)*11/32 = (3.321-0)*11/32=1.1415V
实际输出电压测量如下图所示
基本还是比较准确的,就是只有5位比较差。