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

📄 jg-13.asm

📁 单片机51的剑杆织机程序. 源程序,调试通过.
💻 ASM
字号:
                ORG     00H
                LJMP    MAIN
                ORG     03H       
                LJMP    DCK
                ORG     0BH
                LJMP    MAIN
                ORG     13H
                LJMP    MAIN
                ORG     1BH
                LJMP    MAIN
                ORG     23H
                LJMP    MAIN
                ORG     30H
        MAIN:   NOP
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                MOV     R0,#00H
                MOV     A,#00H
                MOV     R1,#80H        
        LOP1:   MOV     @R0,A
                INC     R0
                DJNZ    R1,LOP1               ;INITIALIZE
                ;***************************************
                SETB    88H                        
                SETB    EA
                SETB    EX0     ;
                SETB    P2.0
                SETB    P2.1
                MOV     P1,#0FFH
                MOV     SP,#30H
                SETB    P2.1
                MOV     R6,#2
                LCALL   DLY0
                CLR     P2.2
                LCALL   D200
                LCALL   DLY
                LCALL   DLY
                CLR     3BH
                CLR     35H
                CLR     00H
                SETB    P2.3
                SETB    P2.4
                SETB    P2.5
                CLR     31H
                MOV     2CH,#0
                MOV     2DH,#0
                ;*************************
        PCK:    SETB    34H
                CLR     33H
                CLR     35H
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                LCALL   DIN
        WCK:    MOV     A,23H
                ANL     A,#7FH
                CJNE    A,#10H,PSTR
                CLR     P2.7
                NOP
                CLR     40H     ;SETB    P2.3           
                NOP
                SETB    P2.4
                NOP
                NOP
                SETB    P2.5
                NOP
                NOP
                SETB    P2.7
                LJMP    PCK   
        PSTR:   MOV     A,23H
                JNB     ACC.3,T_RDY
                LJMP    PCK
        T_RDY:  JB      ACC.5,WT
                CLR     31H
                ;SETB    P2.4
                LJMP    PTOP
        WT:     SETB    35H
                CLR     P2.4
                SETB    31H
        PTOP:   JNB     ACC.6,TREE
                SETB    35H
                CLR     P2.5
        TREE:   JNB     ACC.0,PFLL
                SETB    P2.2
                LCALL   D40M
                CLR     P2.0
                CLR     P2.1
                MOV     R6,#100
                LCALL   DLY0
                SETB    P2.0
        SLOOP:  JNB     P1.0,LPER
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                LJMP    SLOOP
        LPER:   SETB    P2.1
                LCALL   D40M
                LCALL   D40M
                CLR     P2.0
                CLR     P2.2
                MOV     R6,#100
                LCALL   DLY0
                SETB    P2.0
        PFLL:   JNB     ACC.1,SDK  
                SETB    P2.2
                LCALL   D40M
                CLR     P2.0
                CLR     P2.1
                MOV     R6,#200
                LCALL   DLY0
                SETB    P2.0
                SETB    36H
        SOP:    JB      P1.3,PIT
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                JB      36H,SOP
        PIT:    SETB    P2.1
                LCALL   D40M
                LCALL   D40M
                LCALL   D40M
                MOV     R6,#40
                LCALL   DLY0
                CLR     P2.0
                CLR     P2.2
                MOV     R6,#100
                LCALL   DLY0
                SETB    P2.0          
        SDK:    JNB     35H,OKT
                JB      31H,OKT
                LJMP    PCK
        OKT:    MOV     A,23H
                JB      ACC.2,RUN_P          ;RUN   
                LJMP    PCK
        RUN_P:  SETB    33H
                CLR     34H
                SETB    P2.2
                SETB    P2.3
                LCALL   D80M
                CLR     P2.0
                CLR     P2.1
                MOV     R6,#250
                LCALL   DLY0
                SETB    P2.0
                SETB    P2.4
        RPCK:   NOP
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                JNB     3BH,PTETX
                SETB    39H
                CLR     31H
                MOV     2CH,#0
                MOV     2DH,#0
                LCALL   PP01
                LJMP    PCK
       PTETX:   LCALL   DIN
                MOV     A,23H
                JNB     ACC.0,R01
                CLR     31H
                MOV     2CH,#0
                MOV     2DH,#0
                LCALL   P01
                LJMP    PCK
       TNXT:    JNB     ACC.5,XX4
                JNB     31H,JT_1
                INC     2CH
                MOV     A,2CH
                CJNE    A,#0FFH,XX1
                INC     2DH
                MOV     A,2DH
                MOV     2CH,#0
                CJNE    A,#03H,XX1
                MOV     2DH,#0
                LJMP    JT_1
         XX4:   CLR     31H
                MOV     2CH,#0
                MOV     2DH,#0
         XX1:   LJMP    RPCK
        JT_1:   SETB    31H
                CLR     P2.4
                LCALL   P01
                LJMP    PCK              ;;STOP_PROGRAM
        R01:    ;SETB   P2.4
                JNB     ACC.1,S01
                CLR     31H
                MOV     2CH,#0
                MOV     2DH,#0
                LCALL   P01
                LJMP    PCK
        S01:    JNB     ACC.6,P02
                CLR     31H
                MOV     2CH,#0
                MOV     2DH,#0
                CLR     P2.5
                LCALL   P01
        GN01:   LCALL   DIN
                CLR     P2.7
                NOP
                NOP
                NOP
                SETB    P2.7
                MOV     A,23H
                ANL     A,#7FH
                JNB     ACC.3,GN01
                SETB    P2.5
                LJMP    PCK
        P02:    ;SETB   P2.5
                JNB     ACC.3,XX3
                CLR     31H
                MOV     2CH,#0
                MOV     2DH,#0
                LCALL   R02
                LJMP    PCK
         XX3:   LJMP    TNXT
                ;;*********************** PROGRAM END
        D5MS:
                MOV     R6,#10
                LCALL   DLY0
                RET
        D40M:
                MOV     R6,#80
                LCALL   DLY0
                RET
        
        D200:
                MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                RET
        D400:
                MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                RET
        D500:   MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                MOV     R6,#200
                LCALL   DLY0
                RET

        R02:    PUSH    PSW              ;STOP IMMEDIATELY
                PUSH    ACC
                SETB    P2.1
                LCALL   D40M
                LCALL   D40M
                CLR     33H
                SETB    34H
                CLR     P2.0
                CLR     P2.2
                MOV     R6,#100
                LCALL   DLY0
                MOV     R6,#100
                LCALL   DLY0
                SETB    P2.0
                POP     ACC
                POP     PSW
                RET
        DIN:    PUSH    PSW                  ;FROM P1 
                PUSH    ACC
        DCN:    MOV     A,#0FFH
                MOV     P1,A
                NOP
                MOV     A,P1
                JB      00H,DNT
                MOV     2FH,A
                CPL     00H
                MOV     R6,#2
                LCALL   DLY0
                LJMP    DCN
        DNT:    CPL     00H
                CJNE    A,2FH,D0A
                MOV     23H,A
                LJMP    DKO
        D0A:    MOV     2FH,A
                CPL     00H
                MOV     R6,#02H
                LCALL   DLY0
                LJMP    DCN
        DKO:    POP     ACC
                POP     PSW
                RET
        P01:    PUSH    PSW            ;WIND_STOP
                PUSH    ACC
                SETB    RS1
                SETB    RS0
                SETB    38H
                MOV     R2,#0BH
        LM01:   MOV     R5,#71H
        LP02:   MOV     R4,#0A6H
        LP01:   JB      38H,LP03
                CLR     35H        
                LJMP    LEND
        LP03:   DJNZ    R4,LP01
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                DJNZ    R5,LP02
                DJNZ    R2,LM01
        LEND:   LCALL   R02
                POP     ACC
                POP     PSW
                RET
        PP01:   PUSH    PSW                  ;FILL_STOP
                PUSH    ACC
                SETB    RS1
                SETB    RS0                   ;;1  block
                CLR     3BH
                MOV     R3,#0BH
        LT01:   MOV     R5,#71H
        LB01:   MOV     R4,#0A6H
        LA01:   JB      39H,LC01
                LJMP    LAND
        LC01:   DJNZ    R4,LA01
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                DJNZ    R5,LB01
                DJNZ    R3,LT01
        LAND:   CLR     35H
                CLR     P2.3
                SETB    P2.1
                LCALL   D40M
                LCALL   D40M
                MOV     R6,#30
                LCALL   DLY0
                CLR     33H
                SETB    34H
                CLR     P2.0
                CLR     P2.2
                MOV     R6,#100
                LCALL   DLY0
                MOV     R6,#100
                LCALL   DLY0
                SETB    P2.0
                POP     ACC
                POP     PSW
                RET
        D80M:   LCALL   D40M
                LCALL   D40M    
                RET
              ;;********************************
        DCK:    PUSH    PSW
                PUSH    ACC
                PUSH    06H
                PUSH    07H
                MOV     A,P0
                ANL     A,#00000111B
        NEXT:   MOV     2EH,A
                NOP
                NOP
                MOV     A,P0
                ANL     A,#00000111B
                CJNE    A,2EH,NEXT
                MOV     2EH,A
                CLR     P2.6
                CJNE    A,#02H,DF100
                JB      34H,EXIT
                JNB     33H,EXIT 
                CLR     38H
                LJMP    EXIT
       DF100:   CJNE    A,#04H,DF101
                JNB     34H,PTNT
                CLR     36H
                LJMP    EXIT
        PTNT:   JNB     33H,EXIT
                LCALL   DIN
                MOV     A,23H 
                JB      ACC.4,BPIT
                SETB    3BH
                SETB    39H
                CLR     P2.3
                SETB    40H
                LJMP    EXIT
        BPIT:   JB      40H,EXIT
                SETB    P2.3
                CLR     40H
                CLR     3BH
                LJMP    EXIT
        DF101:  CJNE    A,#05H,EXIT
                CLR     39H
        EXIT:   SETB    P2.6
                POP     07H
                POP     06H
                POP     ACC
                POP     PSW
                RETI
        DLY:    MOV     R6,#100                 ;50MS
        DLY0:   MOV     R7,#0F9H                ;0.5MS
        DLY1:   DJNZ    R7,DLY1
                CLR     P2.7
                NOP
                NOP
                NOP
                NOP
                SETB    P2.7
                DJNZ    R6,DLY0
                RET

⌨️ 快捷键说明

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