打印

令人郁闷的输出,高手帮忙啊

[复制链接]
1483|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
baibing255|  楼主 | 2007-8-27 11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ov, se, vr, hm, ps
我现在想实现这样的功能:
按1号键p3输出0000000b
按2号键p3输出0000001b
按3号键p3输出0000010b
按4号键p3输出0000011b
很简单的程序
但是现在我编的程序在电脑上调试完全正常,下载到单片机中就出问题
1.2.4号键都对
只有二号键,怎么弄都是输出00000000b
无语了
大家帮忙
 key1   bit   p2.4
 key2   bit   p2.5
 key3   bit   p2.6
 key4   bit   p2.7
   L1   BIT   P2.0
   L2   BIT   P2.1
   L3   BIT   P2.2
   L4   BIT   P2.3
  key   equ   r7
        org 00h                  
        jmp main                
        org 030h
main:   mov sp,#30h
        lcall rest
  lp:   lcall  qh
        jmp lp
rest:   mov p0,#00h
        mov p1,#01h
    mov p2,#00h
    mov p3,#00h
    ret
qh:     mov key,#00h           
        lcall pro_key              
        mov a,key                     
        jnz  S                      
        ret 
pro_key:setb key1            
    setb key2            
        setb key3
    setb key4
    jb key1,ke1          
        mov key,#1           
        lcall delay20ms      
        jmp pro_key          
ke1:    jb key2,ke2          
        mov key,#2           
         lcall delay20ms
        jmp pro_key
ke2:    jb key3,ke3
        mov key,#3
         lcall delay20ms
        jmp pro_key
ke3:    jb key4,ke4
        mov key,#4
         lcall delay20ms
        jmp pro_key
ke4:    ret  
S:      cjne a,#1,AAA 
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        mov p3,#00000000b
        CLR P1.0
        SETB L1
        JMP LP
AAA:    cjne a,#2,BBB
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        mov p3,#00000001b
        CLR P1.0
        SETB L2
        JMP LP
BBB:    cjne a,#3,CCC
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        LCALL MMM
        CLR P1.0
        SETB L3
        JMP LP
MMM:    MOV P3,#00000001B
        RET
CCC:    cjne a,#4,DDD
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        mov p3,#00000011b
        CLR P1.0
        SETB L4
DDD:    JMP LP
delay20ms:  
        push psw              
        clr psw.3             
        clr psw.4             
        mov r0,#2             
        mov r1,#250         
        mov r2,#1             
    dl1:djnz r0,dl1           
        mov r0,#250           
    dl2:djnz r1,dl1          
        mov r0,#240           
        mov r1,#248           
    dl3:djnz r2,dl1           
        nop                   
        pop psw               
        ret                  
        END

相关帖子

沙发
gjg191| | 2007-8-27 11:19 | 只看该作者

dd

程序呢?这样怎么帮?

使用特权

评论回复
板凳
gjg191| | 2007-8-27 12:16 | 只看该作者

dd

按3有反映吗?
看看你的程序这两个输出一样了标问号的地方

        mov p3,#00000001b;??????
        CLR P1.0
        SETB L2
        JMP LP
BBB:    cjne a,#3,CCC
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        LCALL MMM
        CLR P1.0
        SETB L3
        JMP LP
MMM:    MOV P3,#00000001B;????????
        RET

使用特权

评论回复
地板
su_tech| | 2007-8-27 12:36 | 只看该作者

噫,怎么楼主不回了

使用特权

评论回复
5
gjg191| | 2007-8-27 12:46 | 只看该作者

dd

又看了,程序问题很多 你调用子程序,怎么能直接跳出呢,这样会把堆栈弄乱的我给你改 .
S:      cjne a,#1,AAA 
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        mov p3,#00000000b
        CLR P1.0
        SETB L1
        JMP LP1
AAA:    cjne a,#2,BBB
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        mov p3,#00000001b
        CLR P1.0
        SETB L2
        JMP LP1
BBB:    cjne a,#3,CCC
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        MOV P3,#00000001B
        CLR P1.0
        SETB L3
        JMP LP1

CCC:    cjne a,#4,lp1
        mov key,#00h 
        SETB P1.0
        CLR L1
        CLR L2
        CLR L3
        CLR L4
        mov p3,#00000011b
        CLR P1.0
        SETB L4
lp1:    ret

使用特权

评论回复
6
su_tech| | 2007-8-27 13:43 | 只看该作者

呵呵,同意,楼上,本来简单的程序跳复杂了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

40

帖子

0

粉丝