各位大侠好! 我在使用TLC549的过程之中,ref+接VCC,ref接gnd,但是使用的过程中发现一个奇怪的现象,0~VCC/2其对应转换的值为00~FFH,然后vcc/2~vcc对应转换值也是00~Vcc。不知什么原因,各位帮忙。 ;******************************************************************************** CS BIT P1.3 ;LOAD BIT P1.2 DIN BIT P1.1 DCLK BIT P1.0 ;DOUT BIT P3.3 ;********************************** AD_DATA EQU 036H ;采集数据缓冲区 TIMER DATA 030H TIMER1 DATA 031H TIMER2 DATA 032H TIMER3 DATA 033H AD_DATA1 DATA 038H ;***********************************
MAIN: MOV SP,#60H MOV A,#0FFH MOV P0,A MOV P1,A MOV P2,A ;禁用其它芯片 CLR P1.2 MOV P3,A
TCL549: MOV R3,#08H ;计数器 CLR CS ;开启芯片 ACALL DELAY ;延时 READ: CLR DCLK ;读549芯片数据 NOP MOV C,DIN SETB DCLK RLC A DJNZ R3,READ MOV P0,A MOV AD_DATA,A SETB CS LCALL DELAY_1S ;延时 cjne A,AD_DATA1,START ;判断数据是否更新,如果更新则调显示程序 START: SJMP TCL549 ;调数码管显示程序 ;********************************************* ;延时子程序 ;********************************************** DELAY:MOV R5,#05H H0: MOV R7,#0FFH H1: DJNZ R7,H1 DJNZ R5,H0 RET
;********************************** DELAY_1S: MOV TIMER1,#1 TEST_DYA: MOV TIMER2,#255 TEST_DYA1: MOV TIMER3,#255 TEST_DYA2: NOP NOP DJNZ TIMER3,TEST_DYA2 DJNZ TIMER2,TEST_DYA1 DJNZ TIMER1,TEST_DYA RET
END |