電路連線經過檢查無誤,測得模擬電壓輸入為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
|