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

📄 pin1.asm

📁 常用子程序-61个-4.2M.rar
💻 ASM
字号:
      ORG 0000H
      AJMP MAIN
      ORG  0030H
  MAIN:ADDR8279_1 EQU    0BFFFH
       ADDR8279_2 EQU    0BFFEH
  
       MOV      DPTR,#ADDR8279_1
       MOV      A,#0D1H
       MOVX     @DPTR,A
 WAIT1:MOVX     A,@DPTR
       JB       ACC.7,WAIT1
       MOV      A,#00H
       MOVX     @DPTR,A
       MOV      A,#2CH
       MOVX     @DPTR,A
  DDDD:MOV      DPTR,#ADDR8279_1   
       MOVX     A,@DPTR
       ANL A,#07H
       JZ  DDDD
       LJMP KEY 
        
  FFFF:MOV     60H,#00H
       MOV     61H,#00H
       MOV     62H,#00H
       MOV     TMOD,#15H
       MOV     TL0,#00H
       MOV     TH0,#00H
         
       MOV     R7,#14H
      
       MOV     TL1,#00H
       MOV     TH1,#4CH
       SETB TR1
       SETB TR0  
 HERE:JBC     TF1,NEXT1
      
      SJMP    HERE

NEXT1:MOV     TL1,#00H
      MOV     TH1,#4CH
      DJNZ    R7,HERE
      CLR     TR0
      CLR     TR1
      AJMP    PINYU
PINYU:MOV R6,TH0
      MOV R7,TL0
      JNB     TF0,NEXT2         
      MOV 60H,#06H
      MOV 61H,#55H
      MOV 62H,#36H 
      CLR  TF0   
      
NEXT2:LCALL  HB2
      MOV    R7,#03H
      MOV    65H,R3
      MOV    66H,R4
      MOV    67H,R5
      MOV    R0,#60H
      MOV    R1,#65H
      LCALL BCDA 
      LCALL TRANS
      LCALL LED
      MOV      DPTR,#ADDR8279_1   
      MOVX     A,@DPTR
      ANL A,#07H
      JZ  RETUN5
      LJMP KEY
RETUN5:AJMP FFFF

KEY:MOV  DPTR ,#ADDR8279_1
	MOV  A,#40H
	MOVX @DPTR,A
	MOV DPTR,#ADDR8279_2
	MOVX A,@DPTR
	ANL A,#3FH

        CJNE A,#0AH,KEY1        
        LJMP FFFF
   KEY1:CJNE A,#0BH,KEY2   
        LJMP KAI
   KEY2:AJMP  MAIN     

   KAI:MOV     TMOD,#01H
  KAI0:MOV     TL0,#00H
       MOV     TH0,#00H
      
  KAI1:SETB P1.0
       
       JB P1.0,KAI2
       SJMP KAI1          
  KAI2:SETB TR0
       SETB P1.0 
       
       JNB P1.0,KAI3 
       SJMP KAI2
  KAI3:CLR TR0 
       MOV R6,TH0
       MOV R7,TL0
       LCALL  HB2
       MOV 60H,R3
       MOV 61H,R4
       MOV 62H,R5
       LCALL   TRANS
       LCALL   LED
       MOV      DPTR,#ADDR8279_1   
       MOVX     A,@DPTR
       ANL A,#07H
       JZ  RETUN6
       LJMP KEY
 RETUN6:AJMP KAI0    
  ;;(1)  标号:  BCDA    功能:多字节BCD码加法

;;入口条件:字节数在R7中,被加数在[R0]中,加数在[R1]中。
;;出口信息:和在[R0]中,最高位进位在CY中。
;;;影响资源:PSW、A、R2    堆栈需求:  2字节

BCDA:	MOV	A,R7	;;;取字节数至R2中
	MOV	R2,A
	ADD	A,R0	;;;初始化数据指针
	MOV	R0,A
	MOV	A,R2
	ADD	A,R1
	MOV	R1,A
	CLR	C
BCD1:	DEC	R0	;;;调整数据指针
	DEC	R1
	MOV	A,@R0
	ADDC	A,@R1	;;;按字节相加
	DA	A	;;;十进制调整
	MOV	@R0,A	;;;和存回[R0]中
	DJNZ	R2,BCD1	;;;处理完所有字节
	RET






;;;入口条件:待转换的双字节十六进制整数在R6、R7中。
;;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
;;影响资源:PSW、A、R2~R7    堆栈需求:  2字节

HB2:CLR	A	;;;BCD码初始化
	MOV	R3,A
	MOV	R4,A
	MOV	R5,A
	MOV	R2,#10H	;;;转换双字节十六进制整数
HB3:MOV	A,R7	;;;从高端移出待转换数的一位到CY中
	RLC	A
	MOV	R7,A
	MOV	A,R6
	RLC	A
	MOV	R6,A
	MOV	A,R5	;;;BCD码带进位自身相加,相当于乘2
	ADDC	A,R5
	DA	A	;;;十进制调整
	MOV	R5,A
	MOV	A,R4
	ADDC	A,R4
	DA	A
	MOV	R4,A
	MOV	A,R3
	ADDC	A,R3
	MOV	R3,A	;;;双字节十六进制数的万位数不超过6,不用调整
	DJNZ	R2,HB3    ;;	;处理完16bit
	RET
	
TRANS: MOV R0,#62H
       MOV R1,#40H
       MOV R6,#03H
  LAST:MOV      A,@R0
       ANL      A,#0FH
       MOV      @R1,A
       MOV      A,@R0
       ANL      A,#0F0H
       SWAP     A
       INC  R1
       MOV      @R1,A
       INC  R1
       DEC R0
       DJNZ R6,LAST
       RET
       
  LED:MOV      DPTR,#ADDR8279_1
       MOV      A,#90H
       MOVX      @DPTR,A
       MOV      R1,#40H
       MOV      R7,#06H
       MOV      DPTR,#ADDR8279_2
  LOOP:MOV      A,@R1
       ADD      A,#05H
       MOVC     A,@A+PC
       MOVX     @DPTR,A 
       INC      R1
       DJNZ     R7,LOOP
       RET
       DB       3FH,06H,5BH,4FH,66H,6DH
       DB       7DH,07H,7FH,6FH 
     	
END	    
SEACH1:MOV      DPTR,#ADDR8279_1   
       MOVX     A,@DPTR
       ANL A,#07H
       JZ  RETUN4
       LJMP KEY
 RETUN4:RET
END
 
        
        
  


 

⌨️ 快捷键说明

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