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

📄 4.asm

📁 数字纠偏系统
💻 ASM
📖 第 1 页 / 共 4 页
字号:
LIGHT_LEDHAND:
        ORL     LEDVALUE,#DARK_AUTO
        ANL     LEDVALUE,#LED_HAND
        CLR     TR1
        CLR     TR0
        RET
;***********KEYRESETDOWN PROCESS END***************
;***********TIMER0 INITIAL VALUE ,TIMMING AND PULL BAG START************









       JNB  INT0,NOINT
       CLR  6EH
NOINT:
       SETB  EX1
       SETB  EX0


L06A0H:
      RET
       ;***********************TIMER0 END**************
 ;************************RUN LAMP OFF AND APPROACH SIG_LIMIT2(P2.1)*******

TIMER0:
      CLR   TR1
      JB     SIG_LIMIT1, CHECKLIMIT2
      CLR    TR0
      ORL    LEDVALUE,#DARK_LEFT
      RETI
CHECKLIMIT2:
      JB     SIG_LIMIT2,RUN
      CLR    TR0
      ORL    LEDVALUE, #DARK_RIGHT
      RETI
RUN:

      CPL    P2.0

      PUSH   ACC
      PUSH   PSW


LOADTIEMR:
      MOV   TH0,TIMER0H
      MOV   TL0,TIMER0L
      SETB  TR0
      JNB   DIRSTATE,RLEDRUN
      MOV   A,LEDVALUE
      CPL   ACC.0
      MOV   LEDVALUE,A
      SJMP  OUTTIMER0
RLEDRUN:
      MOV   A,LEDVALUE
      CPL   ACC.4
      MOV   LEDVALUE,A

OUTTIMER0:
     POP PSW
     POP ACC
     RETI


TIMER1:
        PUSH   ACC
        PUSH   PSW
        CLR    TR1
        MOV    TH1,#TIMER1H
        MOV    TL1,#TIMER1L
        SETB   TR1
        INC    TIMECONT
        MOV    A,TIMECONT
        CJNE   A,SENSORNEG,OUTTIMER1
        MOV    TIMECONT,#00H
        CLR    TR1
        LCALL  PULSEOUT
OUTTIMER1:
        POP     PSW
        POP     ACC
        RETI




PULSEOUT:
        CLR    TR1
        MOV    TH0,TIMER0H
        MOV    TL0,TIMER0L
        SETB   ET0
        SETB   TR0
        SETB   P2.0

       JB     JIXING,DIRLED
       CPL    DIRSTATE
DIRLED:
      MOV    C,DIRSTATE
      MOV    DIROUT,C
      JNB    DIRSTATE,REVERSE
      ORL    LEDVALUE,#DARK_RIGHT
      RET
REVERSE:
      ORL   LEDVALUE,#DARK_LEFT
      RET





NODELAYDIR:
       CLR      TR1
       SJMP     PULSEOUT

STATECHANGE:
        JBC     FIRSTSTART,NODELAYDIR
        CLR     TR0
        MOV     A,SENSORNEG
        JZ      NODELAYDIR
        MOV     TH1,#TIMER1H
        MOV     TL1,#TIMER1L
        SETB    TR1
        MOV     TIMECONT,#00H
        ORL     LEDVALUE,#DARK_LEFT
        ORL     LEDVALUE,#DARK_RIGHT
        RET
;***********************DATA PROCESS**********************************
DATAPROCESS:
        MOV    A,JIXING4
        CJNE   A,#0DH,INI_NEG
        ORL    LEDVALUE,#DARK_NEGTIVE
        ANL    LEDVALUE,#LED_POSTIVE
        SETB   JIXING
        SJMP   DATAPROCESS1
 INI_NEG:
        CJNE   A,#0EH,DATAPROCESS1
        ORL   LEDVALUE,#DARK_POSTIVE
        ANL   LEDVALUE, #LED_NEGTIVE
        CLR    JIXING
DATAPROCESS1:
        SETB    FIRSTSTART
        MOV     A,SENSORNUM4
        CJNE    A,#02H,ONESENSOR
        SETB    TWOWAY
        SJMP    SPEEDPRO
ONESENSOR:
        CJNE    A,#01H,SPEEDPRO
        CLR     TWOWAY
SPEEDPRO:
        CLR     C
        MOV     A,SPEED4
        RLC     A
        MOV     R0,A
        MOV     DPTR,#TABLE1
        MOVC    A,@A+DPTR
        MOV     TIMER0H,A
        INC     DPTR
        MOV     A,R0
        MOVC     A,@A+DPTR
        MOV     TIMER0L,A
        SJMP    SENSORPRO

TABLE1:       ;200,500, 1K, 1.5K,2K
        DB  0F6H,03CH,0FCH,018H,0FEH,0CH,0FEH,0B6H, 0FFH,06H,
             ; 2.5K, 3K,   4K          5K        6K
        DB  0FFH,038H,0FFH,060H,0FFH,083H, 0FFH,09CH, 0FFH,0B0H


SENSORPRO:
         CLR   C
         MOV   A,#0AH
         SUBB  A,SENSOR4
         MOV   SENSORNEG,A




DATAEND:
        RET


ERROR:
        CLR  RD
        RET

;*********************DATA PROCESS OVER ****************
;**********************4LED DEMONSTRATE*****************
DEMO:

        JB     7EH, L0834H
        MOV    A, BITSEL
        CJNE   A, #01H, L0834H
        MOV    80H, #0FFH
        SJMP   LED1
L0834H:
        MOV    A, @R0
        MOV    DPTR, #TABLE
        MOVC   A, @A+DPTR
        MOV    80H, A
LED1:
        CLR    P2.4
        LCALL  L08F8H
        SETB   P2.4
DISPLAY2:
        INC    R0

        JB     7EH, L0852H
        MOV    A, BITSEL
        CJNE   A, #02H, L0852H
        MOV    80H, #0FFH
        SJMP   LED2
L0852H:

        MOV    A, @R0
        MOV    DPTR, #TABLE
        MOVC   A, @A+DPTR
        MOV    80H, A

LED2:
        CLR    P2.5
        LCALL  L08F8H
        SETB   P2.5
DISPLAY3:
        INC    R0

        JB     7EH, L086BH
        MOV    A, BITSEL
        CJNE   A, #03H, L086BH
        MOV    80H, #0FFH
        SJMP   LED3
L086BH:

        MOV    A, @R0
        MOV    DPTR, #TABLE
        MOVC   A, @A+DPTR
        MOV    80H, A

LED3:
        CLR    P2.6
        LCALL  L08F8H
        SETB   P2.6
DISPLAY4:
        INC    R0

        JB     7EH, L088EH
        MOV    A, BITSEL
        CJNE   A, #04H, L088EH
        MOV    80H, #0FFH
        SJMP   LED4
L088EH:
        MOV    A, @R0
        MOV    DPTR, #TABLE
        MOVC   A, @A+DPTR
        MOV    80H, A

LED4:
        CLR    P2.7
        LCALL  L08F8H
        SETB   P2.7
DISPLAYLAMP:

        MOV    80H, LEDVALUE
        MOV    A,FUNCSEL
        MOV    C,7EH


BAOJING:
        JB     7EH, INTLED

INTLED:
        JNB  64H,LAMP
        CLR  P0.2
LAMP:
        CLR    P2.3
        LCALL  L08F8H
        SETB   P2.3
        INC    GLEAMTIME
        MOV    A, GLEAMTIME
        CJNE   A, #28H, L08C2H
        MOV    GLEAMTIME, #00H
        CPL    7EH
L08C2H:
        JB     7FH, L08F7H
        JNB    72H, L08F7H
        CLR    72H
        MOV    A, 30H
        CJNE   A, #04H, L08F7H

L08DDH:
        LCALL  L0AACH
        MOV    A, R4
        ANL    A, #0F0H
        SWAP   A

        RET
L08F7H:
        RET

 ;*****************4LED DEMONSTRATE OVER**********************
 ;*****************SEARCH FOR START AND CURSOR SIGNAL****************


 L0:
        SJMP  L0994H
L08F8H:
        MOV    SCANTIME_H, #03H
L08FBH:
        MOV    SCANTIME_L, #20H

CHECKSIGNAL:
        JNB    AUTO,L0
L1:
        JB     SIG_CURSOR1, L096CH
        JNB    P1.0, L0971H
        MOV    CHECKTIME, #078H
L0907H:
        JNB    P1.0, L0971H
        DJNZ   CHECKTIME, L0907H
        SETB   SIG_CURSOR1
        SETB   DIRSTATE
        CLR     TR1
        CLR   TR0
        LCALL  STATECHANGE
        SJMP    L0971H

L096CH:
        JB     P1.0, L0971H
        JB     TWOWAY,FLAGCLEAR1
        MOV    CHECKTIME,#078H
L096DH:
        JB    P1.0,L0971H
        DJNZ   CHECKTIME,L096DH
        CLR    SIG_CURSOR1
        CLR    DIRSTATE
        CLR    TR0
        CLR    TR1
        LCALL  STATECHANGE

FLAGCLEAR1:
        CLR    SIG_CURSOR1
        SJMP   L0994H
L0971H:
        JNB    TWOWAY,L0994H
        JNB    SIG_CURSOR2, L098FH
        JB     P1.1, L0994H
        MOV    SCANRIGHT, #50H
L097AH:
        JB     P1.1, L0994H
        DJNZ   SCANRIGHT, L097AH
        CLR    TR0
        CLR    TR1
        CLR    SIG_CURSOR2
        CLR    DIRSTATE
        LCALL  STATECHANGE

        JNB    71H, L0994H
        CLR    71H
        SJMP   L0994H
L098FH:
        JNB    P1.1, L0994H

        SETB   SIG_CURSOR2
L0994H:
        DJNZ   SCANTIME_L, L099BH;judge for 50*4=200 TIMES ,RET.
        DJNZ   SCANTIME_H, L099EH
STARTOK:
       RET

L099BH:
        LJMP   CHECKSIGNAL
L099EH:
        LJMP   L08FBH
;*****************SEARCH START AND CURSOR OVER*********
       MOV    32H, #0FAH
L09A4H:
        NOP                     ;WHAT USE?
        NOP
        DJNZ   32H, L09A4H
        RET
;*****************DELAY 100MS BEGIN**************
L09AAH:
        MOV    32H, #0CH
L09ADH:
        MOV    33H, #0FAH
L09B0H:
        DJNZ   33H, L09B0H
        DJNZ   32H, L09ADH
        RET
DELAY100MS:
        MOV    32H, #0C8H
        SJMP   L09ADH


        NOP
        NOP
        RETI
        RETI
        LJMP   0000H
INT0PROCESS:
        CLR    EX0
        JB     P1.2, ISSTOP
        SETB   64H
        JB     7FH, L09EFH
        JB     6EH, L09EFH
        SETB   6EH
        SJMP   SAVEDATA
ISSTOP:
        JB     T0,L09EFH    ;
SAVEDATA:
        PUSH   ACC
        PUSH   PSW
        PUSH   00H
        PUSH   02H
        PUSH   03H

        MOV    R0, #48H
        MOV    R2, #30H
        MOV    R3, #08H
        LCALL  WR24WC02
        POP    03H
        POP    02H
        POP    00H
        POP    PSW
        POP    ACC
L09EFH:
        RETI
INT1PROCESS:
       PUSH  ACC
       PUSH  PSW
       CLR   EX1
       CLR   SIG_LIMIT1


       POP  PSW
       POP  ACC
       RETI
       NOP
       NOP
       NOP
       NOP
       RETI
;********************DELAY END**************
;****************COMMUNICATION WITH 24WC02******************
WR24WC02:
        LCALL  L0A49H
        MOV    A, #0A0H
        LCALL  L0A67H
        MOV    A, R2
        LCALL  L0A67H
L09FCH:
        MOV    A, @R0
        LCALL  L0A67H
        INC    R0
        DJNZ   R3, L09FCH
        LCALL  L0A58H
        RET
RD24WC02:
        LCALL  L0A49H
        MOV    A, #0A0H
        LCALL  L0A67H
        MOV    A, R2
        LCALL  L0A67H
        LCALL  L0A49H
        MOV    A, #0A1H
        LCALL  L0A67H
L0A1BH:
        MOV    R4, #08H
L0A1DH:
        CLR    T1
        NOP
        NOP
        NOP
        SETB   T1
        NOP
        NOP
        MOV    C, WR
        RLC    A
        DJNZ   R4, L0A1DH
        CLR    T1
        CJNE   R3, #01H, L0A34H
        SETB   WR
        SJMP   L0A36H
L0A34H:
        CLR    WR
L0A36H:
        NOP
        NOP
        SETB   T1
        MOV    @R0, A
        INC    R0
        NOP
        CLR    T1
        NOP
        NOP
        SETB   WR
        DJNZ   R3, L0A1BH
        LCALL  L0A58H
        RET
L0A49H:
        CLR    T1
        NOP
        NOP
        SETB   WR
        NOP
        NOP
        SETB   T1
        NOP
        NOP
        CLR    WR
        RET
L0A58H:
        CLR    T1
        NOP
        NOP
        CLR    WR
        NOP
        NOP
        SETB   T1
        NOP
        NOP
        SETB   WR
        RET
L0A67H:
        MOV    R4, #08H
L0A69H:
        CLR    T1
        NOP
        RLC    A
        MOV    WR, C
        NOP
        NOP
        SETB   T1
        DJNZ   R4, L0A69H
        NOP
        CLR    T1
        NOP
        NOP
        SETB   WR
        NOP
        NOP
        SETB   T1
        JB     WR, L0A84H
        RET
L0A84H:
        LCALL  L0A49H

⌨️ 快捷键说明

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