论坛风格切换切换到宽版
  • 3212阅读
  • 6回复

请问:在电路中改动了P3.0和P3.1后,程序中需要改动哪些部分? [复制链接]

上一主题 下一主题
离线BG4ABM
 
发帖
1139
只看楼主 倒序阅读 0楼 发表于: 2006-04-14
这几天在分析一个产品反编译后得到的程序,主要是通过仿真器和keil的单步运行来进行,仿真器与电脑是通过串口连接的,但这个程序中也用到了p3.0和p3.1,为使仿真能够进行,我把原来与p3.0和p3.1的连接线改到了p3.6和p3.7(这2位在这个产品中是空置的),同时我把程序中有p3.0和p3.1的地方都改成了p3.6和p3.7,但我把这样改动过的程序写入单片机后却发现实现不了这个产品原来的功能了,我怀疑还有其它需要改动的地方,但又想不出,请大家帮我想想,问题到底出在哪里.
离线BG4ABM
发帖
1139
只看该作者 1楼 发表于: 2006-04-14
补充一点,程序中多处出现了push p3和pop p3这2句,不知道是不是和这有关?
离线chenerbox
发帖
1172
只看该作者 2楼 发表于: 2006-04-17
你在push p3 之前可以将p3.0的值移到p3.6上,p3.1同样处理,pop p3 之后同样处理一下看看
离线1a2b3c
发帖
204
只看该作者 3楼 发表于: 2006-04-18
'
这几天在分析一个产品反编译后得到的程序,主要是通过仿真器和keil的单步运行来进行,仿真器与电脑是通过串口连接的,但这个程序中也用到了p3.0和p3.1,为使仿真能够进行,我把原来与p3.0和p3.1的连接线改到了p3.6和p3.7(这2位在这个产品中是空置的),同时我把程序中有p3.0和p3.1的地方都改成了p3.6和p3.7,但我把这样改动过的程序写入单片机后却发现实现不了这个产品原来的功能了,我怀疑还有其它需要改动的地方,但又想不出,请大家帮我想想,问题到底出在哪里.
'

因为3.0/3.1是特殊功能管脚,即通信脚,如果你的程序用到了通信,那么可以肯定你的做法是绝对错误的.
然后,即使没有使用通信,那么你有保护p3的动作,即push/pop p3的地方,那么人家原来是为p3做的,可能会根据保护的内容对p3.0/3.1的状态进行判断处理,你这里改成了另外的两个脚,人家是不处理这2个脚的,所以保护后的里面处理根本不会去对那2个没有使用的脚判断等,所以你的修改导致无效.

另外你最好把电路弄出来,还有实现的具体功能说说,那样好帮分析.
离线xjl
发帖
1244
只看该作者 4楼 发表于: 2006-04-18
'
这几天在分析一个产品反编译后得到的程序,主要是通过仿真器和keil的单步运行来进行,仿真器与电脑是通过串口连接的,但这个程序中也用到了p3.0和p3.1,为使仿真能够进行,我把原来与p3.0和p3.1的连接线改到了p3.6和p3.7(这2位在这个产品中是空置的),同时我把程序中有p3.0和p3.1的地方都改成了p3.6和p3.7,但我把这样改动过的程序写入单片机后却发现实现不了这个产品原来的功能了,我怀疑还有其它需要改动的地方,但又想不出,请大家帮我想想,问题到底出在哪里.
'
重新做程序比这快.
离线BG4ABM
发帖
1139
只看该作者 5楼 发表于: 2006-04-18
'
因为3.0/3.1是特殊功能管脚,即通信脚,如果你的程序用到了通信,那么可以肯定你的做法是绝对错误的.
然后,即使没有使用通信,那么你有保护p3的动作,即push/pop p3的地方,那么人家原来是为p3做的,可能会根据保护的内容对p3.0/3.1的状态进行判断处理,你这里改成了另外的两个脚,人家是不处理这2个脚的,所以保护后的里面处理根本不会去对那2个没有使用的脚判断等,所以你的修改导致无效.
另外你最好把电路弄出来,还有实现的具体功能说说,那样好帮分析.
'

谢谢你的回答。电路图我有,上班后我去扫描一下就发上来,功能和程序的相关部分到时也发上来,麻烦你再帮我看一看。
离线BG4ABM
发帖
1139
只看该作者 6楼 发表于: 2006-04-19
这是我反编译后的程序的开始和结尾部分,当中还有几处用到了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