|
程序目的是開機后穩(wěn)定顯示準(zhǔn)備符 P - - 3 7 - 0 0,當(dāng)中斷出現(xiàn)后,連續(xù)實時采集模擬電壓,將結(jié)果在數(shù)碼管最后二位顯示出來,其它顯示位不變。當(dāng)手動旋轉(zhuǎn)可調(diào)電壓在 0--5 V范圍變化時,顯示應(yīng)該在 00----FF之間變化。 但是我做的這個點擊中斷脈沖之后,滑動變阻器,后兩位數(shù)字并不會變化,一直是00,這怎么回事兒啊,大佬們幫我看一下,謝謝!原理圖如圖:
程序是:
ORG 0000H
AJMP MAIN
org 0003h
ajmp zd0
ORG 0100H
MAIN:nop
setb ex0
setb ea
setb it0
LOOP0:
mov 70H, #00H
mov 71H, #00H
mov 72h, #11h
mov 73h, #07h
mov 74h, #03h
mov 75H, #11H
mov 76H, #11H
mov 77H, #10H
LOOP: ACALL DIS
AJMP LOOP
zd0:nop
lop001:mov p1,#0f8h ;選中0809 IN0
clr p3.4 ;給 START 發(fā)正脈沖,啟動轉(zhuǎn)換
nop
nop
setb p3.4
nop
nop
clr p3.4
nop
nop
acall dis ;延時,等待轉(zhuǎn)換結(jié)束
mov a,p1 ;讀轉(zhuǎn)換結(jié)果
mov r6,a
anl a,#0fh ;將轉(zhuǎn)換結(jié)果分別送對應(yīng)顯示緩沖單元
mov 71h,a
mov a,r6
swap a
anl a,#0fh
mov 70h,a
acall dis
ajmp lop001
reti
DIS: MOV R0, #77H ;動態(tài)顯示子程序
MOV R2, #7fH
MOV A, R2
LP0: MOV P2,A
MOV DPTR, #TABLE
MOV A, @R0
MOVC A, @A+DPTR
MOV P0, A
ACALL D2MS
DEC R0
MOV A, R2
JNB Acc.0,LP1
RR A
MOV R2, A
AJMP LP0
LP1:RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H
DB 82H,0F8H,80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH,8CH,0BFH,0FFH
D2MS: MOV R7,#02H
DL: MOV R6,#0FFH
DL1: DJNZ R6,DL1
DJNZ R7,DL
RET
end
|
|