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

📄 h2_3.asm

📁 这是光电编码器的汇编程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
          RET
  LP1BD0: DJNZ 	LP1_BUZRCNT1,LP1BDOUT
          MOV	LP1_BUZRCNT1,#LP1_BUZRTIM
          DJNZ	LP1_BUZRCNT2,LP1BDOUT
          SETB	LP1_BUZR_OK
LP1BDOUT: RET  

;-----------------------------------------------------------------------------------------

  LP8_BUZR_DLY:
          JB	ALM_P2,LP8BD0
          MOV	LP8_BUZRCNT1,#LP8_BUZRTIM
          MOV	LP8_BUZRCNT2,#20
          CLR	LP8_BUZR_OK
          RET
  LP8BD0: DJNZ 	LP8_BUZRCNT1,LP8BDOUT
          MOV	LP8_BUZRCNT1,#LP8_BUZRTIM
          DJNZ	LP8_BUZRCNT2,LP8BDOUT
          SETB	LP8_BUZR_OK
LP8BDOUT: RET  

;-----------------------------------------------------------------------------------------

  ZEROSETDLY:                            ;零点设置
          JB	ENT,ZSD0
          SETB	ENT_OFF
          MOV	ZSCNT,#ZSDLY*2
          RET
    ZSD0: JB	ENT_OFF,ZSD1
          RET
    ZSD1: DJNZ	ZSCNT,ZSDOUT
          SETB	ZS_EN
          CLR	ENT_OFF
   ZSDOUT:RET
   
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ZEROSETDLY1:
          JNB     F1,ZSDOUT1
          JB	LEFTKEY,ZSD10
          MOV	ZSCNT1,#130
          CLR     ZS_EN1
          RET
    ZSD10:DJNZ	ZSCNT1,ZSDOUT1
          CLR     LEFTKEY_OFF
          SETB	ZS_EN1
          JNB     HL,ZSD11
          SETB    HH1
          CLR     HH2
          CLR     HH3
          RET
     ZSD11:JNB    HU,ZSD12
           SETB   HH2
           CLR    HH1
           CLR    HH3
           RET
     ZSD12:JNB    HD,ZSDOUT1
           SETB   HH3
           CLR    HH2
           CLR    HH1
           RET
   ZSDOUT1:RET
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;KEYBOARD CONTROL

 KEYCTRL: CALL	KEYSCAN         ;按键控制
          CALL	VIEWLIMSET
          CALL	ZEROSET
          CALL	TOP
          CALL	FUNSEL
          CALL	LIMSET
          CALL	PROSET
          CALL	VIEWROQ425
          CALL	DASET
          RET
;***************************************************************************************

     TOP: JB	DESKTOP,TOP1
          RET
    TOP1: CLR	M1
          CLR	FS
          CLR	F1
          CLR	LP1
          CLR	LP2
          CLR	LP3
          CLR	LP4
          CLR	LP5
          CLR     HL
          CLR     HD
          CLR     HU
          CLR	F2
          CLR	PD
          CLR     PD1
          CLR	DIRS
          CLR	LC
          CLR	L1
          CLR	L2
          CLR	L3
          CLR	L4
          CLR	L5
          CLR	L6
          CLR	L7
          CLR	L8
          CLR	L9
          CLR	L10
          CLR	L11
          CLR	L12
          CLR	L13
          CLR	L14
          CLR	L15
          CLR     ADDR
          CLR	F3
          CLR	F4
          CLR	DA_H
          CLR	DA_L
          CLR	CHPD
          CLR	ED_INT
          CLR	ED_OK
          CLR	ED_ESC
          CLR	ED
          CLR	DIGIT1
          CLR	DIGIT2
          CLR	DIGIT3
          CLR	DIGIT4
          CLR	ADJBUF_PS_OK
          MOV	FUNSEL_REG,#1
          MOV	F1SEL_REG,#1
          MOV	F2SEL_REG,#1
          MOV     F4SEL_REG,#1
          JNB	FUN,TOP2
          SETB	FS
          CLR	DESKTOP
    TOP2: RET
;-----------------------------------------------------------------------------------------

 ZEROSET: JB	DESKTOP,ZS0
          RET
     ZS0: JB	ZS_EN,ZS1
          RET
     ZS1: JB	ENT,ZS2
          SETB	ENT_OFF
          JMP	ZSESC
     ZS2: JB	ENT_OFF,ZS3
          RET
     ZS3: CLR	ENT_OFF
          MOV	R5,ENCODER_BUF1
          MOV	DPTR,#Z0_1
          CALL	BYTWR_VERIFY
          MOV	R5,ENCODER_BUF2
          MOV	DPTR,#Z0_2
          CALL	BYTWR_VERIFY
          MOV	R5,ENCODER_BUF3
          MOV	DPTR,#Z0_3
          CALL	BYTWR_VERIFY
          MOV	R5,ENCODER_BUF4
          MOV	DPTR,#Z0_4
          CALL	BYTWR_VERIFY
          MOV	R5,#STOREMARK
          MOV	DPTR,#Z0_M
          CALL	BYTWR_VERIFY
          MOV	DISP0,#0FEH                  ;"0."
          MOV	DISP1,#7EH
          MOV	DISP2,#7EH
          MOV	DISP3,#7EH
          CALL	DISPSERV
          SETB	BUZR
          MOV	R2,#8
          CALL	DELAYX1
          CLR	BUZR
          CLR	ZS_EN
   ZSOUT: RET
   ZSESC: JB	ESC,ZSE0
          RET
    ZSE0: CLR	ZS_EN
          RET
;***************************************************************************************

  FUNSEL: JB	FS,FS0
          RET
     FS0: MOV	DISP0,#47H                  
          MOV	DISP1,#1CH                                    
          MOV	DISP2,#95H
          MOV	DISP4,#0
          MOV     DISP5,#0
          MOV	DISP6,#0
          MOV	DISP7,#0
          MOV	DPTR,#DISPTAB
          MOV	R2,FUNSEL_REG
          MOV	R5,#1
          MOV	R6,#4
          CLR	SEQADJ_SW
          CALL	BCDADJ_16
          SETB	SEQADJ_SW
          MOV	A,ADJBUF
          MOV	FUNSEL_REG,A
          CJNE	A,#1,FS1
          MOV	DISP3,#30H                  ;"1"
          JMP	FSENT
     FS1: CJNE	A,#2,FS2
          MOV	DISP3,#6DH                  ;"2"
          JMP	FSENT
     FS2: CJNE	A,#3,FS3
          MOV	DISP3,#79H                  ;"3"
          JMP	FSENT
     FS3: MOV	DISP3,#33H                  ;"4"
   
   FSENT: JNB	ENT,FSESC
          CLR	ENT_OFF
          CLR	FS
          CLR	ADJBUF_PS_OK
          CJNE	A,#1,FSEN0
          SETB	F1
          RET
   FSEN0: CJNE	A,#2,FSEN1
          SETB	PD
          RET
   FSEN1: CJNE	A,#3,FSEN2
          SETB	F3
          RET
   FSEN2: CJNE	A,#4,FSESC
          SETB	PD1
          RET       
   
   FSESC: JB	ESC,FSE0
          SETB	ESC_OFF
          RET
    FSE0: JNB	ESC_OFF,FSOUT
          CLR	ESC_OFF
          CLR	ADJBUF_PS_OK
          CLR	FS
          SETB	DESKTOP
          MOV	FUNSEL_REG,#1
   FSOUT: RET
;***************************************************************************************
   DASET: CALL	ASKPD1
          CALL	DASETSEL
          CALL	DALSET
          CALL	DAHSET
          CALL    LP1SET
          CALL    LP2SET
          RET
;_______________________________________________________________________________________
 DASETSEL: 
          JB	F4,F4S0
          RET
    F4S0: MOV	R2,F4SEL_REG
          MOV	R5,#1
          MOV	R6,#4
          CLR	SEQADJ_SW
          CALL	BCDADJ_16
          SETB	SEQADJ_SW
          MOV	A,ADJBUF
          MOV	F4SEL_REG,A

          CJNE	A,#1,F4S1
          MOV	DISP0,#3DH                  ;"D"
          MOV	DISP1,#77H                  ;"A"
          MOV	DISP2,#08H                  ;"_"
          MOV	DPTR,#DISPTAB
          MOV	DISP3,#0EH                  ;"L"
          MOV	DPTR,#DA_L_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,F4S0_0
          MOV	DPTR,#DA_L_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#DA_L_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#DISPTAB
          MOV	A,R6
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP4,A
          MOV	A,R6
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          SETB	ACC.7
          MOV	DISP5,A
          MOV	A,R7
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP6,A
          MOV	A,R7
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          MOV	DISP7,A
          JMP	F4S4
  F4S0_0: MOV	DISP4,#0
          MOV	DISP5,#0
          MOV	DISP6,#0
          MOV	DISP7,#0
          MOV	R6,#0
          MOV	R7,#0
          JMP	F4S4

    F4S1: CJNE	A,#2,F4S2
          MOV	DISP0,#3DH                  ;"D"
          MOV	DISP1,#77H                  ;"A"
          MOV	DISP2,#08H                  ;"_"
          MOV	DPTR,#DISPTAB
          MOV	DISP3,#37H                  ;"H"
          MOV	DPTR,#DA_H_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,F4S1_0
          MOV	DPTR,#DA_H_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#DA_H_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#DISPTAB
          MOV	A,R6
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP4,A
          MOV	A,R6
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          SETB	ACC.7
          MOV	DISP5,A
          MOV	A,R7
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP6,A
          MOV	A,R7
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          MOV	DISP7,A
          JMP	F4S4
  F4S1_0: MOV	DISP4,#0
          MOV	DISP5,#0
          MOV	DISP6,#0
          MOV	DISP7,#0
          MOV	R6,#0
          MOV	R7,#0
          JMP     F4S4

    F4S2: CJNE     A,#3,F4S3
          MOV      DISP0,#0
          MOV      DISP1,#0EH     ;L_L
          MOV      DISP2,#01H
          MOV      DISP3,#0EH
          MOV	DPTR,#LP1_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,F4S2_0
          MOV	DPTR,#LP1_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#LP1_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#DISPTAB
          MOV	A,R6
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP4,A
          MOV	A,R6
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          SETB	ACC.7
          MOV	DISP5,A
          MOV	A,R7
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP6,A
          MOV	A,R7
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          MOV	DISP7,A
          JMP	F4S4
  F4S2_0: MOV	DISP4,#0
          MOV	DISP5,#0
          MOV	DISP6,#0
          MOV	DISP7,#0
          MOV	R6,#0
          MOV	R7,#0
          JMP     F4S4

    F4S3: CJNE     A,#4,F4S4
          MOV      DISP0,#0
          MOV      DISP1,#0EH     ;L_u
          MOV      DISP2,#01H
          MOV      DISP3,#3EH
          MOV	DPTR,#LP2_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,F4S3_0
          MOV	DPTR,#LP2_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#LP2_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#DISPTAB
          MOV	A,R6
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP4,A
          MOV	A,R6
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          SETB	ACC.7
          MOV	DISP5,A
          MOV	A,R7
          ANL	A,#0F0H
          SWAP	A
          MOVC	A,@A+DPTR
          MOV	DISP6,A
          MOV	A,R7
          ANL	A,#0FH
          MOVC	A,@A+DPTR
          MOV	DISP7,A
          JMP	F4S4
  F4S3_0: MOV	DISP4,#0
          MOV	DISP5,#0
          MOV	DISP6,#0
          MOV	DISP7,#0
          MOV	R6,#0
          MOV	R7,#0
          JMP     F4S4
   
    F4S4: JB	ENT,F4S4_0
          SETB	ENT_OFF
          JMP	F4SESC
  F4S4_0: JB	ENT_OFF,F4S4_1
          RET
  F4S4_1: CLR	ENT_OFF
          MOV	A,F4SEL_REG
          CLR	F4
          CLR	ADJBUF_PS_OK
          CJNE	A,#1,F4S5
          SETB	DA_L
          RET
    F4S5: CJNE	A,#2,F4S6
          SETB	DA_H
          RET
    F4S6: CJNE    A,#3,F4S7
          SETB    LP1
          RET
    F4S7: CJNE    A,#4,F4SESC
          SETB    LP2
          RET  
  F4SESC: JB	ESC,F4SE1
          SETB	ESC_OFF
          RET
   F4SE1: JNB	ESC_OFF,F4SOUT
          CLR	ESC_OFF
          CLR	ADJBUF_PS_OK
          CLR	F4
          SETB	FS
          MOV	F4SEL_REG,#1
  F4SOUT: RET 
 ;--------------------------------------------------------------------------------- 
  DALSET: JB	DA_L,DALS0
          RET
   DALS0: SETB	ED
          MOV	A,#80H
          ORL	DISP5,A
          CALL	ENTDIT
          JNB	ED_OK,DALSESC
          MOV	R5,EDBUF_H
          MOV	DPTR,#DA_L_H
          CALL	BYTWR_VERIFY
          MOV	R5,EDBUF_L
          MOV	DPTR,#DA_L_L
          CALL	BYTWR_VERIFY
          MOV	R5,#STOREMARK
          MOV	DPTR,#DA_L_M
          CALL	BYTWR_VERIFY
          SETB	BUZR
          MOV	R2,#5
          CALL	DELAYX1
          CLR	BUZR
          CLR	DA_L
          SETB	F4
          RET
 DALSESC: JB	ED_ESC,DALSE0
          RET
  DALSE0: CLR	DA_L
          SETB	F4
 	    RET
 ;............................................................................        
  DAHSET: JB	DA_H,DAHS0
          RET
   DAHS0: SETB	ED
          MOV	A,#80H
          ORL	DISP5,A
          CALL	ENTDIT
          JNB	ED_OK,DAHSESC
          MOV	R5,EDBUF_H
          MOV	DPTR,#DA_H_H
          CALL	BYTWR_VERIFY
          MOV	R5,EDBUF_L
          MOV	DPTR,#DA_H_L
          CALL	BYTWR_VERIFY
          MOV	R5,#STOREMARK
          MOV	DPTR,#DA_H_M
          CALL	BYTWR_VERIFY
          SETB	BUZR
          MOV	R2,#5
          CALL	DELAYX1
          CLR	BUZR
          CLR	DA_H
          SETB	F4
          RET
 DAHSESC: JB	ED_ESC,DAHSE0
          RET
  DAHSE0: CLR	DA_H
          SETB	F4
 	    RET
;-------------------------------------------------------------------------------------
  LP1SET: JB	LP1,LP1S0

⌨️ 快捷键说明

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