www.pudn.com > 89c52.rar > LAST.ASM


COM     EQU    2AH 
DAT     EQU    2BH 
FR_P    BIT    07H 
F_R     BIT    08H 
F_P     BIT    09H 
 
FGHB	BIT	0AH	;°ë×Ö½Ú±êÖ¾£¨0-µÍ°ë×Ö½Ú£¬1-¸ß°ë×Ö½Ú£ 
LQ      BIT     0BH 
PVLU	EQU	21H	;ǰһADCÊý¾Ý¼Ä´æÆ÷ 
CVLU	EQU	22H	;±¾´ÎADCÊý¾Ý¼Ä´æÆ÷ 
ADRL	EQU	58H	;´æ·ÅADCÊý¾ÝµÄµØÖ·Ö¸Õë(L) 
ADRH	EQU	57H	;´æ·ÅADCÊý¾ÝµÄµØÖ·Ö¸Õë(H) 
DIFD	EQU	25H	;²îÖµ¼Ä´æÆ÷ 
BUFF	EQU	26H	;ÔÝ´æÆ÷ 
 
ORG 0000H 
AJMP MAIN 
ORG 0003H 
AJMP EXINT0 
ORG 000BH 
AJMP TINT0 
ORG 0013H 
AJMP EXINT1 
ORG 0030H 
MAIN:MOV SP,#60H 
     MOV TMOD,#02H 
     MOV TH0,#83H 
     MOV TL0,#83H 
     MOV DPTR,#0000H 
     MOV DDA,#00H 
     ACALL DAC 
     SETB EA 
     SETB ET0 
 
     SETB EX0 
     SETB IT0 
 
     SJMP $ 
 
 
 TINT0:  JB FR_P,PLAY 
 RECORD: JNB F_R,RECORD_2 
          CLR F_R 
          MOV DPTR,#0000H 
          MOV 57H,#00H 
          MOV 58H,#00H 
 
RECORD_2: MOV DPTR,#8800H 
          MOV A,#00H 
          MOVX @DPTR,A 
          CLR P1.0 
          SETB EX1 
          SETB IT1 
          RETI 
 
 
 
 
PLAY:    JNB F_P,PLAY_2 
          CLR F_P 
         MOV DPTR,#0000H 
         MOV 57H,#00H 
         MOV 58H,#00H 
         MOVX A,@DPTR 
         INC DPTR 
         MOV 57H,DPH 
         MOV 58H,DPL 
         MOV 30H,#00H 
         MOV 51H,A 
         ACALL DAC 
         AJMP PLAY_RT 
PLAy_2:   MOV DPH,57H 
         MOV DPL,58H 
       ACALL JK 
         MOV 51H,A 
         ACALL DAC 
         MOV 57H,DPH 
         MOV 58H,DPL 
         MOV A,DPH 
         CJNE A,#7FH,PLAY_0 
 PLAY_0:JC PLAY_RT 
         MOV A,DPL 
         CJNE A,#00H,PLAY_1 
PLAY_1: JC PLAY_RT 
 
         CLR TR0 
         ;SETB 00H 
         ;LCALL START 
         ;LCALL DISP3 
         ;LCALL SUBDIS 
         SETB EX0 
PLAY_RT:RETI 
 
 
;************************************************************ 
EXINT0: 
              MOV DPTR,#9801H 
              MOV A,#00H 
              MOVX @DPTR,A 
              MOV R0,#50H 
              MOV A,#34H 
              MOVX @DPTR,A 
KEYGT:        MOVX A,@DPTR 
              ANL A,#0FH 
              JNZ KG1 
              ;AJMP KEYGT 
KG1:          MOV A,#40H 
              MOVX @DPTR,A 
              MOV DPTR,#9800H 
              MOVX A,@DPTR 
              ANL A,#3FH 
              MOV DPTR,#TABK 
              MOVC A,@A+DPTR 
 
              RL A 
              MOV DPTR,#TABJMP 
              JMP @A+DPTR 
 
TABJMP :      AJMP OUT0 
              AJMP OUT1 
              AJMP OUT2 
 
RETURN:        RETI 
 
OUT0:          AJMP RETURN 
 
 OUT2:        MOV DDA,#00H 
              ACALL DAC 
               MOVX @DPTR,A 
               CLR FR_P 
               SETB F_R 
               SETB TR0 
               AJMP RETURN 
 
 OUT1:      SETB FR_P 
            SETB F_P 
            SETB TR0 
            AJMP RETURN 
;;*************************************************************************************************************** 
EXINT1: 
            MOV DPTR,#8800H 
            MOVX A,@DPTR 
            SETB P1.0 
            
RECORD_1:   LCALL EX1P 
 
 
 
RECORD_RT:    MOV 57H,DPH 
              MOV 58H,DPL 
             MOV A,DPH 
            CJNE A,#7FH,RECORD_0 
RECORD_0:   JC RD_RET 
           MOV A,DPL 
           CJNE A,#0FFH,RECORD_3 
 
RECORD_3:  JC RD_RET 
         CLR TR0 
         ;SETB 00H 
         ;LCALL START 
         ;LCALL DISP3 
         ;LCALL SUBDIS 
         SETB EX0 
RD_RET:RETI 
 
 
 
 
 
 
 
 
;********************************************************** 
DISP3:    PUSH DPH 
          PUSH DPL 
          MOV R7,#16                           ;FINISH 
          MOV R6,#00H                          ; 
          MOV R0,#30H 
PAGE3:    MOV A,R6 
          MOV DPTR,#T_PAGE3 
          MOVC A,@A+DPTR 
          MOV @R0,A 
          INC R0 
          INC R6 
          DJNZ R7,PAGE3 
          POP DPL 
          POP DPH 
          RET 
 
 
          ;;*********************************************************** 
;;44780ÏÔʾ×Ó³ÌÐò 
;;Èë¿ÚÌõ¼þ£ºÄÚ²¿RAM30H---4FHµÄ32¸öÏÔʾ»º³åµ¥ÔªÖÐÊý¾ÝËÍÏÔʾ 
;;³ö¿ÚÌõ¼þ£ºÎÞ 
;;Õ¼ÓüĴæÆ÷£ºCOM£¬DAT£¬R7£¬A 
;;*********************************************************** 
SubDis:   PUSH Acc 
          PUSH DPH 
          PUSH DPL 
          MOV COM,#01H 
          ACALL C_W 
          MOV COM,#06H          ;ÊäÈ뷽ʽÉèÖÃ:»­Ãæ²»¶¯¹â±êÓÒÒÆ 
          ACALL C_W 
          MOV COM,#80H          ;ÉèÖÃDDRAMµØÖ·:00H 
          ACALL C_W 
          MOV R0,#30H 
	  MOV R7,#16 
DIS_1:    MOV A,@R0 
          MOV DAT,A 
          ACALL D_W 
          INC R0 
          DJNZ R7,DIS_1 
          MOV COM,#0C0H 
          ACALL C_W 
          MOV R7,#16 
DIS_2:    MOV A,@R0 
          MOV DAT,A 
          ACALL D_W 
          INC R0 
          DJNZ R7,DIS_2 
          POP DPL 
          POP DPH 
          POP Acc 
          RET 
;;************************************************************ 
;;44780¸´Î»×Ó³ÌÐò 
;;Õ¼ÓüĴæÆ÷£ºA£¬R2£¬COM 
;;³öÈë¿ÚÌõ¼þ£ºÎÞ 
;;************************************************************ 
START:   PUSH DPH 
         PUSH DPL 
         ANL P1,#00H 
         MOV R2,#03H 
START1:  MOV A,#30H 
         ANL A,#0F0H 
         ORL P1,#08H 
         ORL P1,A 
         ANL P1,#0F7H 
         ANL P1,#00H 
         ACALL DELAY 
         DJNZ R2,START1 
         MOV A,#20H 
         ANL A,#0F0H 
         ORL P1,#08H 
         ORL P1,A 
         ANL P1,#0F7H 
         ANL P1,#00H 
         MOV COM,#28H          ;ÉèÖù¤×÷·½Ê½(4λ×ÜÏß) 
         ACALL C_W 
         MOV COM,#01H          ;ÇåÆÁ 
         ACALL C_W 
         MOV COM,#06H          ;ÉèÖÃÊäÈ뷽ʽ 
         LCALL C_W 
         MOV COM,#0DH          ;ÉèÖÃÏÔʾ·½Ê½ 
         LCALL C_W 
         LCALL CG_WRITE 	;дÈë×Ô¶¨Òå×ÖÄ£ 
         POP DPL 
         POP DPH 
          RET 
 
;;******************************************************* 
;;дÈë×Ô¶¨Òå×ÖÄ£×Ó³ÌÐò 
;;×ÖÄ£¸öÊý*8·ÅR2ÖУ¬×ÖÄ£µØÖ·±íΪCGTAB 
;;Õ¼ÓüĴæÆ÷£ºCOM£¬DAT,R2£¬R3£¬DPTR£¬A 
;;******************************************************** 
CG_WRITE:  PUSH DPH 
           PUSH DPL 
           MOV COM,#40H 
          LCALL C_W 
          MOV R2,#48 
          MOV R3,#00H 
          MOV DPTR,#CGTAB 
CG1:      MOV A,R3 
          MOVC A,@A+DPTR 
          MOV DAT,A 
          LCALL D_W 
          INC R3 
          DJNZ R2,CG1 
          POP DPL 
          POP DPH 
          RET 
 
 
 
;;******************************************************** 
;;Ö¸Áî,Êý¾Ý¶Á¡¢Ð´×Ó³ÌÐò 
;;½öÓ°ÏìCOMºÍDATÁ½¸ö¼Ä´æÆ÷ 
;;******************************************************** 
C_R:      ANL P1,#00H           ;¶ÁACºÍBFÖµ×Ó³ÌÐò£¨½á¹û·ÅAÖУ© 
          ORL P1,#04H 
          ORL P1,#0F8H 
          MOV A,P1 
          ANL P1,#07H 
          ANL A,#0F0H 
          MOV R5,A 
          ORL P1,#0F8H 
          MOV A,P1 
          ANL P1,#00H 
          ANL A,#0F0H 
          SWAP A 
          ORL A,R5 
          RET 
;********************************************************* 
C_W:      PUSH ACC         ;дָÁî´úÂë×Ó³ÌÐò£¨Ö¸Áî´úÂë·ÅCOMÖУ© 
CW1:      ACALL C_R 
          JB ACC.7,CW1 
          MOV A,COM 
          ANL A,#0F0H 
          ORL P1,#08H 
          ORL P1,A 
          ANL P1,#0F7H 
          ANL P1,#07H 
          MOV A,COM 
          SWAP A 
CW2:      ANL A,#0F0H 
          ORL P1,#08H 
          ORL P1,A 
          ANL P1,#0F7H 
          ANL P1,#00H 
          POP ACC 
          RET 
;********************************************************** 
D_W:      PUSH ACC           ;дÏÔʾÊý¾Ý×Ó³ÌÐò£¨ÏÔʾÊý¾Ý·ÅDATÖУ© 
DW1:      ACALL C_R 
          JB ACC.7,DW1 
          ORL P1,#02H 
          MOV A,DAT 
          ANL A,#0F0H 
          ORL P1,#08H 
          ORL P1,A 
          ANL P1,#0F7H 
          ANL P1,#07H 
          MOV A,DAT 
          SWAP A 
          ANL A,#0F0H 
          ORL P1,#08H 
          ORL P1,A 
          ANL P1,#0F7H 
          ANL P1,#00H 
          POP ACC 
          RET 
;******************************************************** 
D_R:      PUSH ACC              ;¶ÁÏÔʾÊý¾Ý×Ó³ÌÐò£¨½á¹ûDATÖУ© 
DR1:      ACALL C_R 
          JB ACC.7,DR1 
          ORL P1,#02H 
          ORL P1,#04H 
          ORL P1,#0F8H 
          MOV A,P1 
          ANL P1,#07H 
          ANL A,#0F0H 
          MOV R5,A 
          ORL P1,#0F8H 
          MOV A,P1 
          ANL P1,#00H 
          ANL A,#0F0H 
          SWAP A 
          ORL A,R5 
          MOV DAT,A 
          POP ACC 
          RET 
 ;******************************************************* 
 
 
 
DELAY:    MOV R6,#00H           ;ÑÓʱ×Ó³ÌÐò 
          MOV R7,#00H 
DELAY1:   NOP 
          DJNZ R7,DELAY1 
          DJNZ R6,DELAY1 
          RET 
;******************************************************** 
 
 
 
 
T_PAGE1:   DB 52H,65H,63H,6FH,72H,64H,69H,6EH,67H,0A5H,0A5H,0A5H,0A5H,0A5H,0A5H,20H;Recording...... 
           DB 52H,65H,63H,6FH,72H,64H,20H,74H,69H,6DH,65H,3AH,30H,2EH,30H,73H;Record time:0.0s 
 
T_PAGE2:   DB 50H,6CH,61H,79H,69H,6EH,67H,0A5H,0A5H,0A5H,0A5H,0A5H,0A5H,20H,20H;Playing...... 
           DB 20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H; 
 
T_PAGE3:   DB 20H,20H,20H,20H,20H,46H,69H,6EH,69H,73H,68H,20H,20H,20H,20H,20H;Finish 
           DB 52H,65H,63H,6FH,72H,64H,20H,74H,69H,6DH,65H,3AH,30H,2EH,30H,73H;Record time:0.0s 
 
T_PAGE4:   DB 43H,68H,6FH,6FH,73H,65H,20H,6DH,6FH,64H,65H,20H,20H,20H,20H,20H;CHOOSE MODE 
           DB 20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,20H 
 
T_PAGE5:   DB 50H,72H,65H,73H,73H,20H,74H,68H,65H,20H,6BH,65H,79H,20H,20H,20H;PRESS THE KEY 
           DB 73H,74H,61H,72H,74H,20H,74H,6FH,20H,73H,74H,61H,72H,74H,20H,20H;START TO START 
 
CGTAB:    DB 00H,0EH,11H,11H,0AH,0AH,1BH,00H;"Å·Ä·¡±´úÂë=00H      ;;×ÖÄ£±í 
          DB 18H,18H,07H,08H,08H,08H,07H,00H;¡°'c¡±´úÂë=01H 
          DB 10H,10H,10H,10H,10H,10H,1FH,00H;¡°L¡±´úÂë=02H 
          DB 00H,00H,0AH,15H,15H,15H,15H,00H;¡°M¡±¡¡¡¡ 03H 
          DB 0AH,0EH,04H,04H,04H,04H,0EH,0AH;  WIRE   =04H 
          DB 02H,04H,0BH,1CH,1CH,0BH,04H,02H;  WIRLESS=05H 
 
 
 
 
 
 
 
 
 
 
 
;;********************************************************************** 
;;  ADC ×Ó³ÌÐò¡£ 
;;  Èë¿Ú£ºÎÞ¡£ 
;;  ³ö¿Ú£ºA/Dת»»Öµ·ÅÓÚÄÚ²¿RAM DAD0 µ¥Ôª¡£ 
;;********************************************************************** 
        DAD0 EQU 50H 
        CHAD EQU 00H             ;²ÉÑùͨµÀÖµ 
 
 
ADC0:   PUSH DPL 
       PUSH DPH 
       PUSH A 
       MOV DPTR,#8800H 
       SETB EA 
       SETB EX1 
       SETB IT1 
       MOV A,#CHAD 
       MOVX @DPTR,A 
       CLR P1.0 
ADC_0: JB P3.3,ADC_0 
       MOVX A,@DPTR 
       SETB P1.0 
       MOV DAD0,A 
       NOP 
       MOV A,#CHAD 
       MOV DPTR,#8800H 
       MOVX @DPTR,A 
       POP A 
       POP DPH 
       POP DPL 
       RET 
 
;;**************************************************************** 
;;D/Aת»»×Ó³ÌÐò 
;;Èë¿Ú:Êä³öÊý×ÖÁ¿·ÅÓÚDdaµ¥ÔªÖÐ. 
;;³ö¿Ú:ÎÞ. 
;;**************************************************************** 
       Dda EQU 51H 
DAC:   PUSH DPH 
       PUSH DPL 
       MOV DPTR,#9000H 
       MOV A,Dda 
       MOVX @DPTR,A 
       NOP 
       POP DPL 
       POP DPH 
       RET 
 
 
;***************************************************************** 
; 52H: ADC_THE LAST VALUE,   A: DA VALUE 
;***************************************************************** 
 
 
PSEXT:JB 01H,PSEXTH 
PSEXTL: MOVX A,@DPTR 
         ANL A,#0FH 
         JB ACC.3,PSEXTL_0 
         ADD A,52H 
         MOV 52H,A 
         AJMP PSEXTL_RT 
PSEXTL_0:CLR ACC.3 
         JZ PSEXTL_1 
         CLR C 
         XCH A,52H 
         SUBB A,52H 
         MOV 52H,A 
         AJMP PSEXTL_RT 
PSEXTL_1:XCH A,52H 
         CLR C 
         SUBB A,#08H 
         MOV 52H,A 
         AJMP PSEXTL_RT 
PSEXTL_RT:INC DPTR 
          SETB 01H 
          RET 
 
PSEXTH: 
         MOVX A,@DPTR 
         ANL A,#0F0H 
         SWAP A 
         JB ACC.3,PSEXTH_0 
         ADD A,52H 
         MOV 52H,A 
         AJMP PSEXTH_RT 
PSEXTH_0:CLR ACC.3 
         JZ PSEXTH_1 
         CLR C 
         XCH A,52H 
         SUBB A,52H 
         MOV 52H,A 
         AJMP PSEXTH_RT 
PSEXTH_1:XCH A,52H 
         CLR C 
         SUBB A,#08H 
         MOV 52H,A 
         AJMP PSEXTH_RT 
PSEXTH_RT:CLR 01H 
          RET 
 
 
;***************************************************************** 
;50H:ADC_UPDATE VALUE, 52H: ADC_THE LAST VALUE 
;***************************************************************** 
 
 
 
PSTORE:   PUSH 50H 
          MOV R0,#54H 
          JB 00H,PSTOREH 
          MOV A,50H 
          CJNE A,52H,PSTOREL_0 
PSTOREL_0:JC PSTOREL_1 
          CLR C 
          SUBB A,52H 
          CJNE A,#08H,PSTOREL_2 
PSTOREL_2:JC PSTOREL_3 
          MOVX A,@DPTR 
          MOV 54H,#07H 
          XCHD A,@R0 
          MOVX @DPTR,A 
          AJMP RETURNPSL 
PSTOREL_3:MOV R2,A 
          MOVX A,@DPTR 
          MOV 54H,R2 
          XCHD A,@R0 
          MOVX @DPTR,A 
          AJMP RETURNPSL 
PSTOREL_1:MOV R3,52H 
          XCH A,R3 
          CLR C 
          SUBB A,R3 
          CJNE A,#09H,PSTOREL_4 
PSTOREL_4:JC PSTOREL_5 
          MOVX A,@DPTR 
          MOV @R0,#08H 
          XCHD A,@R0 
          MOVX @DPTR,A 
          AJMP RETURNPSL 
PSTOREL_5:ADD A,#08H 
          MOV R2,A 
          MOVX A,@DPTR 
          MOV 54H,R2 
          XCHD A,@R0 
          MOVX @DPTR,A 
          AJMP RETURNPSL 
 
RETURNPSL:SETB 00H 
          INC DPTR 
          POP 52H 
          RET 
 
 
 
PSTOREH:  MOV A,50H 
          CJNE A,52H,PSTOREH_0 
PSTOREH_0:JC PSTOREH_1 
          CLR C 
          SUBB A,52H 
          CJNE A,#08H,PSTOREH_2 
PSTOREH_2:JC PSTOREH_3 
          MOVX A,@DPTR 
          SWAP A 
          MOV @R0,#07H 
          XCHD A,@R0 
          SWAP A 
          MOVX @DPTR,A 
          AJMP RETURNPSH 
PSTOREH_3:MOV R2,A 
          MOVX A,@DPTR 
          SWAP A 
          MOV 54H,R2 
          XCHD A,@R0 
          SWAP A 
          MOVX @DPTR,A 
          AJMP RETURNPSH 
PSTOREH_1:MOV R3,52H 
          XCH A,R3 
          CLR C 
          SUBB A,R3 
          CJNE A,#08H,PSTOREH_4 
PSTOREH_4:JC PSTOREH_5 
          MOVX A,@DPTR 
          SWAP A 
          MOV @R0,#08H 
          XCHD A,@R0 
          SWAP A 
          MOVX @DPTR,A 
          AJMP RETURNPSH 
PSTOREH_5:ADD A,#08H 
          MOV R2,A 
          MOVX A,@DPTR 
          SWAP A 
          MOV 54H,R2 
          XCHD A,@R0 
          SWAP A 
          MOVX @DPTR,A 
          AJMP RETURNPSH 
 
RETURNPSH:CLR 00H 
          POP 52H 
          RET 
 
 
 
 
TABK:         DB 00H,00H,06H,0BH,00H,00H,00H,00H 
              DB 01H,02H,07H,0CH,00H,00H,00H,00H 
              DB 03H,08H,0DH,0EH,00H,00H,00H,00H 
              DB 04H,09H,0AH,0FH,00H,00H,00H,00H 
              DB 05H,16H,18H,17H,00H,00H,00H,00H 
              DB 00H,00H,00H,00H,00H,00H,00H,00H 
              DB 00H,00H,00H,00H,00H,00H,00H,00H 
              DB 00H,00H,00H,00H,00H,00H,00H,00H 
 
 
              ;********************************************************************LQLQLQLQLQLQLQLQLQLQQLLQQL 
 
 
;*************************************************** 
   EX1P:CLR	C 
	MOV	CVLU,A 
	SUBB	A,PVLU		;ÏÖÖµ-ǰֵ  14 
	JC	EX12		;ÏÖÖµ СÓÚ Ç°Öµ 
	MOV	DIFD,A		;ÏÖÖµ ´óÓÚµÈÓÚ Ç°Öµ 
	SUBB	A,#7		;ÊÇ·ñ´óÓÚµÈÓÚ7   19 
	JC	EX11		;·Ç´óÓÚµÈÓÚ7 
	MOV	DIFD,#7		;´óÓÚµÈÓÚ7ÖÃ7 
EX11:	JNB	FGHB,EX14	;µÍ4λת   24 
	MOV	A,DIFD		;¸ß4λ´¦Àí 
	ADD	A,PVLU 
	MOV	PVLU,A		;ǰֵ´¦Àí **********************!!!!??????????????? 
	MOV	A,DIFD 
	SWAP	A 
	MOV	BUFF,A		;ÔÝ´æ 
	CPL	FGHB		;°ë×Ö½Ú±êÖ¾Çó·´£¨×ªµÍ4룩 
	RET			;33 
EX12:	CLR	C		;ÏÖÖµ СÓÚ Ç°Öµ 
	MOV	A,PVLU 
	SUBB	A,CVLU		;ǰֵ-ÏÖÖµ 
	MOV	DIFD,A 
	SUBB	A,#8		;ÏÖÖµÊÇ·ñСÓÚǰֵ8 
	JC	EX13		;ÏÖֵСÓÚǰֵ8ÒÔÄÚת  25 
	MOV	DIFD,#8		;ÏÖֵСÓÚǰֵ8ÒÔÉÏÖÃ8 
EX13:	MOV	A,PVLU 
	CLR	C 
	SUBB	A,DIFD 
	MOV	PVLU,A		;ǰֵ´¦Àí 
	MOV	A,DIFD 
	SETB	ACC.3		;±íʾÏÖֵСÓÚǰֵ 
	MOV	DIFD,A		;28 
	JNB	FGHB,EX14	;µÍ4λת 
	SWAP	A 
	MOV	BUFF,A		;ÔÝ´æ 
	CPL	FGHB		;°ë×Ö½Ú±êÖ¾Çó·´£¨×ªµÍ4룩 
 
	RET			;38 
EX14:	MOV	A,DIFD 
	ORL	A,BUFF		;¸ßµÍ4λºÏ³É8λ 
	MOV	DPH,ADRH 
	MOV	DPL,ADRL	;È¡µØÖ·Ö¸Õë 
	MOVX	@DPTR,A	;±£´æ 
	INC	DPTR		;µØÖ·Ö¸ÕëÔö1 
	MOV	ADRH,DPH 
	MOV	ADRL,DPL	;±£´æµØÖ·Ö¸Õë 
	CPL	FGHB		;°ë×Ö½Ú±êÖ¾Çó·´£¨×ª¸ß4룩 
 	RET			;47 
 ;************************************************************************************************ 
 
 JK: 
     MOV DPH,57H 
     MOV DPL,58H 
      MOVX A,@DPTR 
     JNB LQ,DD 
     SWAP A 
     ANL A,#0FH 
     CLR C 
     MOV 32H,A 
     SUBB A,#08H 
     JC ZHENG 
 FUG: MOV 31H,A 
      MOV A,30H 
      CLR C 
       SUBB A,31H 
       MOV 30H,A 
 
 
       CPL LQ 
       RET 
ZHENG: 
 
       MOV A,30H 
       ADD A,32H 
        MOV 30H,A 
 
 
       CPL LQ 
       RET    ;GAOWEI 
       ;********************************* 
 DD:   MOV DPH,57H 
       MOV DPL,58H 
 MOVX A,@DPTR 
      INC DPTR 
      MOV 57H,DPH 
      MOV 58H,DPL 
     ANL A,#0FH 
     CLR C 
     MOV 32H,A 
     SUBB A,#08H 
     JC ZHEND 
 FUD:   MOV 31H,A 
      MOV A,30H 
      CLR C 
       SUBB A,31H 
       MOV 30H,A 
 
       CPL LQ 
       RET 
ZHEND: 
       MOV A,30H 
       ADD A,32H 
        MOV 30H,A 
 
       CPL LQ      ;DIWEI 
       RET 
       ;****************************************LQLQLQLQLQLQLQLQLQLQLQLQL