电路连线经过检查无误,测得模拟电压输入为0.3V,MC14433基准电压为2V,但转换输出后经过显示,一直显示1999,且MC14433的OR端总为低电平,即表示过量程。测得0.3V并不大于2.0V,为什么总是1999,并且不会随输入电压改变。求大家帮忙看一看。以下是主要的代码。
AD: MOV R0, #40H ;显示缓冲首址
SETB P2.0 ;输入前,锁存器先写“1”
AB2: JNB P2.0, AB2 ;等待 EOC 为“1”
AB1: JB P2.0, AB1 ;等待 EOC 为“0”
AD0:
MOV A,P1 ;P1口输入
JNB ACC.4, AD0 ; 等待 DS1 为“1”
JNB ACC.0, AD1 ;判断千位
MOV @R0,#0 ;千位=0,入显示缓冲器
SJMP AD2
AD1: MOV @R0,#1 ;千位=1,入显示缓冲器
AD2: INC R0
AD3:
MOV A,P1
JNB ACC.5, AD3 ;等待 DS2=1
ANL A, #0FH
MOV @R0, A ;百位入显示缓冲器
INC R0
AD4:
MOV A,P1
JNB ACC.6, AD4 ;等待 DS3=1
ANL A, #0FH
MOV @R0,A ;十位入显示缓冲器
INC R0
AD5:
MOV A,P1
JNB ACC.7, AD5 ;等待 DS4=1
ANL A, #0FH
MOV @R0, A ;个位入显示缓冲器
MOV R0,#40h
RET
DISP: MOV R5,#04H
MOV R0,#40H
MOV R1,#0EFH
LDP1: MOV A,@R0
MOV DPTR,#DTAB
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOV P3,A
MOV R6,#0FAH
DJNZ R6,$;延时1000us
MOV A,#00H
MOV P0,A
INC R0
MOV A,R1
RL A
MOV R1,A
DJNZ R5,LDP1
RET
DTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
|