我现在用AD7705测量一个直流电压,结果只有15位精度,最后一位读出来 总是1,而且结果很稳定,这样做后期数字滤波都没用,我找了很久都找不到原因。以下是我的设置和读AD7705子程序: MOV A,#00000000B;20HZ的转换频率,CLOCK2.4576M LCALL Write7705 MOV A,#11H ;选择设置寄存器 LCALL Write7705 MOV A,#01000100B ;自校准模式,增益为1,单极性输入,内部缓冲器用上,滤波器打开 LCALL Write7705
R77051: NOP NOP NOP CLR SCLK NOP NOP NOP NOP SETB SCLK NOP NOP NOP MOV C,DOUT RLC A DJNZ R7,R77051 MOV R0,A ;保存高字节 MOV R7,#8 R77052: NOP NOP NOP CLR SCLK NOP NOP NOP NOP SETB SCLK NOP NOP NOP MOV C,DOUT RLC A DJNZ R7,R77052 MOV R1,A ;保存低字节 READ_V_OUT: NOP NOP RET
|