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
实际输出电压测量如下图所示
文章图片
【PIC 1508 DAC使用】基本还是比较准确的,就是只有5位比较差。
推荐阅读
- pic
- PIC定时器中断
- PIC 1508 TIM2的定时器使用
- 浅析PIC单片机定时器
- PIC 1508 TIM1的定时器门控的理解
- PIC 1508 WDT使用
- PIC 1508 EEPROM
- PIC 1508 TIM0的定时器使用
- PIC 1508 TIM1的定时器中断使用