⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pidcontral.asm

📁 51单片机用汇编实例 包括ad
💻 ASM
字号:
YKF1:	ANL	A,#7FH    
	MOV	0F0H,A
	CLR	C
	MOV	A,#080H
	SUBB	A,0F0H
	MOV	R2,A      ;计算-YK
	LJMP	YKF

PID:    MOV    R5, #00H
        MOV    R4, 3AH
        MOV    R3, #00H
	MOV    R2, 5BH
	MOV    A,5BH
	JB     0E7H,YKF1       ;E7H=1跳转,说明5BH(YK)有符号

        LCALL  CPL1         

YKF:    CLR    C
        MOV    A, R4
        ADD    A, R2
        MOV    R2, A
        MOV    A, R5
        ADDC   A, R3
        MOV    R3, A
        MOV    R0, 02H
        MOV    R1, 03H
        MOV    R4, 73H
        MOV    R5, 74H
        CLR    C
        MOV    A, R0
        SUBB   A, 71H
        MOV    73H,A
        MOV    A, R1
        SUBB   A, 72H
        MOV    74H,A
        MOV    71H,R0
        MOV    72H,R1
        CLR    C
        MOV    A, 73H
        SUBB   A, R4
        MOV    75H,A
        MOV    A, 74H
        SUBB   A, R5
        MOV    76H,A
        CLR    A
        MOV    77H,A
        MOV    78H,A
        MOV    79H,A
        MOV    7AH,A
        MOV    A, R3
        JNB    0E7H,EK1

        LCALL  CPL1

EK1:    MOV    A, R2
        CLR    C
        SUBB   A, 3BH
        MOV    A, R3
        SUBB   A, #00H
        JC     II
        CLR    A
        MOV    7CH,A
        MOV    7DH,A
        LJMP   DDD
II:     MOV    R5, 01H
        MOV    R4, 00H
        MOV    R7, #00H
        MOV    R6, 39H
        MOV    R0, #77H

        LCALL  L20
        MOV    R2,7AH
        MOV    R3,79H
        MOV    R4,78H
        MOV    R5,77H
        PUSH   0D0H
        MOV    R7,43H
        MOV    R6,42H
        LCALL  DIV1
        POP    0D0H
        JNC    II1
        MOV    A,R5
        CPL    A
        ADD    A,#01H
        MOV    R5,A
        MOV    A,R4
        CPL    A
        ADDC   A,#00H
        MOV    R4,A

II1:    MOV    7DH,R4
        MOV    7CH,R5
DDD:    MOV    R5,76H
        MOV    R4,75H
        MOV    R7,44H
        MOV    R6,45H
        MOV    R0,#77H
        LCALL  L20
        MOV    R2,7AH
        MOV    R3,79H
        MOV    R4,78H
        MOV    R5,77H
        PUSH   0D0H
        MOV    0F0H,39H
        MOV    A,#08H
        MUL    AB
        MOV    R6,0F0H
        MOV    R7,A
        LCALL  DIV1
        POP    0D0H
        JNC    DD1
        MOV    A,R5
        CPL    A
        ADD    A,#01H
        MOV    R5,A
        MOV    A,R4
        CPL    A
        ADDC   A,#00H
        MOV    R4,A
DD1:    MOV    A,7CH
        ADD    A,R5
        MOV    R5,A

        CLR    0D2H

        MOV    A,7DH
        ADDC   A,R4
        MOV    R4,A
        JB     0D2H,L9
L2:     MOV    A,73H
        ADD    A,R5
        MOV    R6,A

        CLR    0D2H

        MOV    A,74H
        ADDC   A,R4
        MOV    R7,A
        JB     0D2H,L3
L5:     MOV    R4,41H
        MOV    R5,40H
        MOV    R0,#77H
        LCALL  L19
L10:    MOV    A,31H
	LJMP   L11

        JNB    0E6H,L11
        LJMP   L12

L11:    MOV    R0,#00CH
        LJMP   L13
L12:    MOV    R0,#09H
L13:    CLR    C
L6:     MOV    A,7AH
        MOV    C,0E7H
        RRC    A
        MOV    7AH,A
        MOV    A,79H
        RRC    A
        MOV    79H,A
        MOV    A,78H
        RRC    A
        MOV    78H,A
        MOV    A,77H
        RRC    A
        MOV    77H,A
        DJNZ   R0,L6
        LCALL  L14
        LJMP   L7
L9:     MOV    A,7DH
        JB     0E7H,L1
        MOV    R4,#07FH
        MOV    R5,#0FFH
        LJMP   L2
L1:     MOV    R4,#080H
        MOV    R5,#000H
        LJMP   L2
L3:     MOV    A,74H
        JB     0E7H,L4
        MOV    R7,#07FH
        MOV    R6,#0FFH
        LJMP   L5
L4:     MOV    R7,#080H
        MOV    R6,#00H
        LJMP   L5
L7:     ADD    A,5FH
        JB     0D2H,L8
L18:    MOV    5FH,A
        ADD    A,#80H
        MOV    58H,A
        RET
L8:     MOV    A,7AH
        JB     0E7H,L17
        MOV    A,#07FH
        LJMP   L18

L17:    MOV    A,#080H
        LJMP   L18

L14:    MOV    A,7AH
        RLC    A
        PUSH   0D0H
        JC     L15
        MOV    A,78H
        ANL    A,#0FEH
        JZ     L16
        POP    0D0H
        MOV    A,#07FH
        RET

L16:    MOV    A,78H
        RRC    A
        MOV    A,77H
        RRC    A
        POP    0D0H
        RRC    A
        RET

L15:    MOV    A,78H
        ANL    A,#0FEH
        CLR    C
        SUBB   A,#0FEH
        JZ     L16
        POP    0D0H
        MOV    A,#080H
        RET
L19:    CLR    C
        LJMP   L21
L20:    CLR    C
        CPL    C
L21:    PUSH   0D0H
        MOV    A,R7
        RLC    A
        MOV    6EH,C
        JNC    L22
        MOV    A,R6
        CPL    A
        ADD    A,#01H
        MOV    R6,A
        MOV    A,R7
        CPL    A
        ADDC   A,#00H
        MOV    R7,A
L22:    MOV    A,R5
        RLC    A
        MOV    6FH,C
        JNC    L23
        MOV    A,R4
        CPL    A
        ADD    A,#01H
        MOV    R4,A
        MOV    A,R5
        CPL    A
        ADDC   A,#00H
        MOV    R5,A
L23:    LCALL  L24
        MOV    C,6EH
        ANL    C,6FH
        JC     L25
        MOV    C,6EH
        ORL    C,6FH
        JNC    L25
        POP    0D0H
        JC     L26
        DEC    R0
        DEC    R0
        DEC    R0
        MOV    A,@R0
        CPL    A
        ADD    A,#01H
        MOV    @R0,A
        LCALL  L27
        LCALL  L27
        LJMP   L28
L25:    POP    0D0H
L30:    CLR    C
L26:    RET

L27:    INC    R0
        MOV    A,@R0
        CPL    A
        ADDC   A,#00H
        MOV    @R0,A
        RET
L24:    MOV    A,R6
        MOV    0F0H,R4
        MUL    AB
        MOV    @R0,A
        MOV    R3,0F0H
        MOV    A,R4
        MOV    0F0H,R7
        MUL    AB
        ADD    A,R3
        MOV    R3,A
        MOV    A,0F0H
        ADDC   A,#00H
        MOV    R2,A
        MOV    A,R6
        MOV    0F0H,R5
        MUL    AB
        ADD    A,R3
        INC    R0
        MOV    @R0,A
        CLR    6DH
        MOV    A,R2
        ADDC   A,0F0H
        MOV    R2,A
        JNC    L29
        SETB   6DH
L29:    MOV    A,R7
        MOV    0F0H,R5
        MUL    AB
        ADD    A,R2
        INC    R0
        MOV    @R0,A
        MOV    A,0F0H
        ADDC   A,#00H
        MOV    C,6DH
        ADDC   A,#00H
        INC    R0
        MOV    @R0,A
        RET

L28:    LCALL  L27
        LJMP   L30
CPL1:   MOV    A,R2       ;取反加1求补码
        CPL    A
        ADD    A,#01H
        MOV    R2,A
        MOV    A,R3
        CPL    A
        ADDC   A,#00H
        MOV    R3,A
        RET
DIV1:   MOV    A,R3
        CLR    C
        SUBB   A,R7
        MOV    A,R2
        SUBB   A,R6
        CLR    0D2H
        JC     L31
        MOV    R4,#07FH
        MOV    R5,#0FFH
        SETB   0D2H
        RET
L31:    MOV    0F0H,#10H
L34:    CLR    C
        MOV    A,R5
        RLC    A
        MOV    R5,A
        MOV    A,R4
        RLC    A
        MOV    R4,A
        MOV    A,R3
        RLC    A
        MOV    R3,A
        XCH    A,R2
        RLC    A
        XCH    A,R2
        MOV    0D5H,C
        CLR    C
        SUBB   A,R7
        MOV    R1,A
        MOV    A,R2
        SUBB   A,R6
        JB     0D5H,L32
        JC     L33

L32:    MOV    R2,A
        MOV    A,R1
        MOV    R3,A
        INC    R5
L33:    DJNZ   0F0H,L34
        RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -