这是我反编译后的程序的开始和结尾部分,当中还有几处用到了p3.1和 p3.0,用到p3的就结尾这几处push p3,程序中没有pop p3。我把这个反编译后的程序再编译后生成hex文件,写入单片机中,机器是可以正常工作的,但把把3.0和3.1改到3.6和3.7后,机器就无法正常工作了,我也试着改到过p0.3和p0.4,并加上拉电阻,也是不能正常工作。这个机器是一个金属探测器,电路图太大,有些地方我只能画个示意图了,这个单片机所起的作用就是对4051送过来的信号进行分析和判断,并把结果在液晶显示器的相应位置显示出来并驱动喇叭发出声音。大家帮我看看,问题到底在哪里呢?
main:mov sp,#68h
clr p2.5
setb p0.0
mov r2,#02h
ae2: mov r3,#0b0h
ad2: lcall ac2
djnz r3,ad2
djnz r2,ae2
am2: clr p3.2
clr p3.1
clr p3.0
lcall af2
mov 29h,a
lcall ag2
mov r1,#0ah
an2: clr p3.2
clr p3.1
clr p3.0
lcall af2
mov 2ah,a
clr p3.2
setb p3.1
clr p3.0
lcall af2
mov 2bh,a
clr p3.2
setb p3.1
setb p3.0
lcall af2
mov 2ch,a
clr p3.2
clr p3.1
setb p3.0
。
。
。
。
。
movx a,@dptr
pop 0cdh
push p3
orl c,/24h.0
inc r3
inc @r1
mov r7,a
movx a,@dptr
pop 0cdh
push p3
orl c,/23h.0
inc r3
inc @r1
mov r7,a
movx a,@dptr
pop 0cdh
push p3
orl c,/24h.0
inc r3
inc @r1
mov r7,a
end