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

📄 h2_3.asm

📁 这是光电编码器的汇编程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A1_H                  
          CALL	BYTRD_VERIFY
          PUSH	ACC
          CLR	C
          MOV	A,R7
          SUBB	A,ENCODER_BUF4
          MOV	R5,A
          MOV	A,R6
          SUBB	A,ENCODER_BUF3
          MOV	R4,A
          MOV	A,R1
          SUBB	A,ENCODER_BUF2
          MOV	R3,A
          MOV	A,R0
          SUBB	A,ENCODER_BUF1
          MOV	R2,A
          POP	AR6
          POP	AR7
          CALL	CPX
          MOV	HEIGHT_H,R4
          MOV	HEIGHT_L,R5
          RET
    
     CP2: CLR	SIGN
          MOV	R0,AR2
          MOV	R1,AR3
          MOV	R6,AR4
          MOV	R7,AR5                      ;R0R1R6R7=(CODER CURRENT VAULE)-Z0
          MOV	DPTR,#Z2_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP2_0
          MOV	DPTR,#Z1_1
          CALL	BYTRD_VERIFY
          MOV	TEMP1,A
          MOV	DPTR,#Z1_2
          CALL	BYTRD_VERIFY
          MOV	TEMP2,A
          MOV	DPTR,#Z1_3
          CALL	BYTRD_VERIFY
          MOV	TEMP3,A
          MOV	DPTR,#Z1_4
          CALL	BYTRD_VERIFY
          MOV	TEMP4,A                   ;(TEMP1~4)=Z1
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP4
          MOV	TEMP4,A
          MOV	A,R6
          SUBB	A,TEMP3
          MOV	TEMP3,A
          MOV	A,R1
          SUBB	A,TEMP2
          MOV	TEMP2,A
          MOV	A,R0
          SUBB	A,TEMP1
          MOV	TEMP1,A                   ;(TEMP1~4)=[(CODER CURRENT VAULE)-Z0]-Z1
          JNC	CP3
   CP2_0: MOV	DPTR,#A1_L                   
          CALL	BYTRD_VERIFY
          PUSH  ACC
          MOV	DPTR,#A1_H                  
          CALL	BYTRD_VERIFY
          PUSH	ACC                     
          MOV	R2,AR0
          MOV	R3,AR1     
          MOV	R4,AR6
          MOV	R5,AR7
          POP	AR6
          POP	AR7
          CALL	CPX
          MOV	HEIGHT_H,R4
          MOV	HEIGHT_L,R5
          RET
     
     CP3: MOV	DPTR,#Z3_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP3_0
          MOV	DPTR,#Z2_1
          CALL	BYTRD_VERIFY
          MOV	TEMP5,A
          MOV	DPTR,#Z2_2
          CALL	BYTRD_VERIFY
          MOV	TEMP6,A
          MOV	DPTR,#Z2_3
          CALL	BYTRD_VERIFY
          MOV	TEMP7,A
          MOV	DPTR,#Z2_4
          CALL	BYTRD_VERIFY
          MOV	TEMP8,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP8
          MOV	TEMP8,A
          MOV	A,R6
          SUBB	A,TEMP7
          MOV	TEMP7,A
          MOV	A,R1
          SUBB	A,TEMP6
          MOV	TEMP6,A
          MOV	A,R0
          SUBB	A,TEMP5
          MOV	TEMP5,A                     ;(TEMP5~8)=[(CODER CURRENT VAULE)-Z0]-Z2
          JNC   CP4
   
   CP3_0: MOV	DPTR,#A2_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A2_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A1_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A1_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP1
          MOV	R3,TEMP2
          MOV	R4,TEMP3
          MOV	R5,TEMP4
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET	
     
     CP4: MOV	DPTR,#Z4_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP4_0
          MOV	DPTR,#Z3_1
          CALL	BYTRD_VERIFY
          MOV	TEMP1,A
          MOV	DPTR,#Z3_2
          CALL	BYTRD_VERIFY
          MOV	TEMP2,A
          MOV	DPTR,#Z3_3
          CALL	BYTRD_VERIFY
          MOV	TEMP3,A
          MOV	DPTR,#Z3_4
          CALL	BYTRD_VERIFY
          MOV	TEMP4,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP4
          MOV	TEMP4,A
          MOV	A,R6
          SUBB	A,TEMP3
          MOV	TEMP3,A
          MOV	A,R1
          SUBB	A,TEMP2
          MOV	TEMP2,A
          MOV	A,R0
          SUBB	A,TEMP1
          MOV	TEMP1,A                     ;(TEMP1~4)=[(CODER CURRENT VAULE)-Z0]-Z3
          JNC   CP5
   
   CP4_0: MOV	DPTR,#A3_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A3_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A2_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A2_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP5
          MOV	R3,TEMP6
          MOV	R4,TEMP7
          MOV	R5,TEMP8
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET
     
     CP5: MOV	DPTR,#Z5_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP5_0
          MOV	DPTR,#Z4_1
          CALL	BYTRD_VERIFY
          MOV	TEMP5,A
          MOV	DPTR,#Z4_2
          CALL	BYTRD_VERIFY
          MOV	TEMP6,A
          MOV	DPTR,#Z4_3
          CALL	BYTRD_VERIFY
          MOV	TEMP7,A
          MOV	DPTR,#Z4_4
          CALL	BYTRD_VERIFY
          MOV	TEMP8,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP8
          MOV	TEMP8,A
          MOV	A,R6
          SUBB	A,TEMP7
          MOV	TEMP7,A
          MOV	A,R1
          SUBB	A,TEMP6
          MOV	TEMP6,A
          MOV	A,R0
          SUBB	A,TEMP5
          MOV	TEMP5,A                     ;(TEMP5~8)=[(CODER CURRENT VAULE)-Z0]-Z4
          JNC   CP6
   
   CP5_0: MOV	DPTR,#A4_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A4_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A3_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A3_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP1
          MOV	R3,TEMP2
          MOV	R4,TEMP3
          MOV	R5,TEMP4
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET     	  
          
     CP6: MOV	DPTR,#Z6_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP6_0
          MOV	DPTR,#Z5_1
          CALL	BYTRD_VERIFY
          MOV	TEMP1,A
          MOV	DPTR,#Z5_2
          CALL	BYTRD_VERIFY
          MOV	TEMP2,A
          MOV	DPTR,#Z5_3
          CALL	BYTRD_VERIFY
          MOV	TEMP3,A
          MOV	DPTR,#Z5_4
          CALL	BYTRD_VERIFY
          MOV	TEMP4,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP4
          MOV	TEMP4,A
          MOV	A,R6
          SUBB	A,TEMP3
          MOV	TEMP3,A
          MOV	A,R1
          SUBB	A,TEMP2
          MOV	TEMP2,A
          MOV	A,R0
          SUBB	A,TEMP1
          MOV	TEMP1,A                     ;(TEMP1~4)=[(CODER CURRENT VAULE)-Z0]-Z5
          JNC   CP7
   
   CP6_0: MOV	DPTR,#A5_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A5_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A4_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A4_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP5
          MOV	R3,TEMP6
          MOV	R4,TEMP7
          MOV	R5,TEMP8
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET
     
     CP7: MOV	DPTR,#Z7_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP7_0
          MOV	DPTR,#Z6_1
          CALL	BYTRD_VERIFY
          MOV	TEMP5,A
          MOV	DPTR,#Z6_2
          CALL	BYTRD_VERIFY
          MOV	TEMP6,A
          MOV	DPTR,#Z6_3
          CALL	BYTRD_VERIFY
          MOV	TEMP7,A
          MOV	DPTR,#Z6_4
          CALL	BYTRD_VERIFY
          MOV	TEMP8,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP8
          MOV	TEMP8,A
          MOV	A,R6
          SUBB	A,TEMP7
          MOV	TEMP7,A
          MOV	A,R1
          SUBB	A,TEMP6
          MOV	TEMP6,A
          MOV	A,R0
          SUBB	A,TEMP5
          MOV	TEMP5,A                     ;(TEMP5~8)=[(CODER CURRENT VAULE)-Z0]-Z6
          JNC     CP8
   
   CP7_0: MOV	DPTR,#A6_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A6_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A5_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A5_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP1
          MOV	R3,TEMP2
          MOV	R4,TEMP3
          MOV	R5,TEMP4
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET     	            

     CP8: MOV	DPTR,#Z8_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP8_0
          MOV	DPTR,#Z7_1
          CALL	BYTRD_VERIFY
          MOV	TEMP1,A
          MOV	DPTR,#Z7_2
          CALL	BYTRD_VERIFY
          MOV	TEMP2,A
          MOV	DPTR,#Z7_3
          CALL	BYTRD_VERIFY
          MOV	TEMP3,A
          MOV	DPTR,#Z7_4
          CALL	BYTRD_VERIFY
          MOV	TEMP4,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP4
          MOV	TEMP4,A
          MOV	A,R6
          SUBB	A,TEMP3
          MOV	TEMP3,A
          MOV	A,R1
          SUBB	A,TEMP2
          MOV	TEMP2,A
          MOV	A,R0
          SUBB	A,TEMP1
          MOV	TEMP1,A                     ;(TEMP1~4)=[(CODER CURRENT VAULE)-Z0]-Z7
          JNC     CP9
   
   CP8_0: MOV	DPTR,#A7_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A7_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A6_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A6_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP5
          MOV	R3,TEMP6
          MOV	R4,TEMP7
          MOV	R5,TEMP8
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET
     
     CP9: MOV	DPTR,#Z9_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP9_0
          MOV	DPTR,#Z8_1
          CALL	BYTRD_VERIFY
          MOV	TEMP5,A
          MOV	DPTR,#Z8_2
          CALL	BYTRD_VERIFY
          MOV	TEMP6,A
          MOV	DPTR,#Z8_3
          CALL	BYTRD_VERIFY
          MOV	TEMP7,A
          MOV	DPTR,#Z8_4
          CALL	BYTRD_VERIFY
          MOV	TEMP8,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP8
          MOV	TEMP8,A
          MOV	A,R6
          SUBB	A,TEMP7
          MOV	TEMP7,A
          MOV	A,R1
          SUBB	A,TEMP6
          MOV	TEMP6,A
          MOV	A,R0
          SUBB	A,TEMP5
          MOV	TEMP5,A                     ;(TEMP5~8)=[(CODER CURRENT VAULE)-Z0]-Z8
          JNC   CP10
   
   CP9_0: MOV	DPTR,#A8_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A8_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A7_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A7_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP1
          MOV	R3,TEMP2
          MOV	R4,TEMP3
          MOV	R5,TEMP4
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET     	  

    CP10: MOV	DPTR,#Z10_M
          CALL	BYTRD_VERIFY
          CJNE	A,#STOREMARK,CP10_0
          MOV	DPTR,#Z9_1
          CALL	BYTRD_VERIFY
          MOV	TEMP1,A
          MOV	DPTR,#Z9_2
          CALL	BYTRD_VERIFY
          MOV	TEMP2,A
          MOV	DPTR,#Z9_3
          CALL	BYTRD_VERIFY
          MOV	TEMP3,A
          MOV	DPTR,#Z9_4
          CALL	BYTRD_VERIFY
          MOV	TEMP4,A
          CLR	C
          MOV	A,R7
          SUBB	A,TEMP4
          MOV	TEMP4,A
          MOV	A,R6
          SUBB	A,TEMP3
          MOV	TEMP3,A
          MOV	A,R1
          SUBB	A,TEMP2
          MOV	TEMP2,A
          MOV	A,R0
          SUBB	A,TEMP1
          MOV	TEMP1,A                     ;(TEMP1~4)=[(CODER CURRENT VAULE)-Z0]-Z9
          JNC   CP11
   
  CP10_0: MOV	DPTR,#A9_H
          CALL	BYTRD_VERIFY
          MOV	R6,A
          MOV	DPTR,#A9_L
          CALL	BYTRD_VERIFY
          MOV	R7,A
          MOV	DPTR,#A8_HEIGHT_H
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	DPTR,#A8_HEIGHT_L
          CALL	BYTRD_VERIFY
          PUSH	ACC
          MOV	R2,TEMP5
          MOV	R3,TEMP6
          MOV	R4,TEMP7
          MOV	R5,TEMP8
          CALL	CPX
          POP	ACC
          ADD	A,R5
          MOV	HEIGHT_L,A
          POP	ACC
          ADDC	A,R4
          MOV	HEIGHT_H,A
          RET
     
    CP11: MOV	DPTR,#Z11_M
          CALL	BYTRD_VERIFY

⌨️ 快捷键说明

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