Board logo

标题: 我因怎样修改程序 [打印本页]

作者: 一通百通    时间: 2004-11-17 08:54

使用JMP   @A+DPTR指令,每个子程序调用指令用“LCALL”占三个字节,即累加器A是三的倍数,“DPTR”是第一个“LCALL”指令所对应的PC值。
作者: sysnorton    时间: 2004-11-18 17:57

TAB: DB 03H,02H,01H
DB 06H,05H,04H
DB 09H,08H,07H
DB 0BH,00H,0AH
END

那这是不是要加DW指今,在每一排如:
DB     03H,02H,01H
DW    TB03,TB02,TB01

这样就可以啦
作者: sysnorton    时间: 2005-1-10 22:56     标题: 我因怎样修改程序

ORG        00H
START:        MOV        R4,#06H
        MOV        R0,#30H
CLE:        MOV        @R0,#00H
        INC        R0
        DJNZ        R4,CLE
L1:        MOV        R3,#0F7H
        MOV        R1,#00H
L2:        MOV        A,R3
        MOV        P2,A
        MOV        A,P2
        MOV        R4,A
        SETB        C
        MOV        R5,#03H
L3:        RLC        A
        JNC        KEY
        INC        R1
        DJNZ        R5,L3
        CALL        DISP
        MOV        A,R3
        SETB        C
        RRC        A
        MOV        R3,A
        JC        L2
        JMP        L1
KEY:        MOV        R7,#60
D2:        MOV        R6,#248
        DJNZ        R6,$
        DJNZ        R7,D2
D3:        MOV        A,P2
        XRL        A,R4
        JZ        D3
        MOV        A,R1
        MOV        DPTR,#TAB
        MOVC        A,@A+DPTR
        XCH        A,30H
        XCH        A,31H
        XCH        A,32H
        XCH        A,33H
        XCH        A,34H
        XCH        A,35H
        CALL        DISP
        JMP        L1
DISP:        MOV        A,35H
        ADD        A,#50H
        MOV        P0,A
        CALL        DELAY
        MOV        A,34H
        ADD        A,#40H
        MOV        P0,A
        CALL        DELAY
        MOV        A,33H
        ADD        A,#30H
        MOV        P0,A
        CALL        DELAY
        MOV        A,32H
        ADD        A,#20H
        MOV        P0,A
        CALL        DELAY
        MOV        A,31H
        ADD        A,#10H
        MOV        P0,A
        CALL        DELAY
        MOV        A,30H
        ADD        A,#00H
        MOV        P0,A
        CALL        DELAY
        RET
DELAY:        MOV        R7,#06
D1:        MOV        R6,#248
        DJNZ        R6,$
        DJNZ        R7,D1
        RET
        ORG        300H
TAB:        DB        03H,02H,01H
        DB        06H,05H,04H
        DB        09H,08H,07H
        DB        0BH,00H,0AH
        END


如果我要添加12个子程序,每个按件跳至相应的子程序,要怎样修改
在这里先谢谢各位了
作者: sysnorton    时间: 2005-1-10 22:56

问一下,为什么有中断程序在的时候,按件的处理程序好像有点不受控,是怎么回事?
       如果有关系在,那它们的关系是怎样的,如定1000u秒,中断250次,因在按件
程序中设几个延时,才能正常使用按件。谢谢大家




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0