C8051F005使用D/A时在KEIL中定义了
sfr16 DAC0 = 0xD2;
然后往DAC输出数据时只需要一句
DAC0 = 0x0FFF;
认为这样编程比较方便,但是出现了一个问题,发现往DA中写入0x0FFF时,输出却只有2.35V,而参考输入是2.5V,试了两块板子都一样,可程序实在找不到问题
网上查看帖子看到有人遇到同样的问题,有人提示说先写DAC0L,再写DAC0H,然后查看生成的汇编代码,发现先写的DAC0H,后写的DAC0L,然后把代码修改,
DAC0L = 0xFF;
DAC0H = 0x0F;
结果,OK