文章詳情

一款以MCS-51單片機為CPU的配料機控製器源程序

日期:2025-04-18 14:08
瀏覽次數:1387
摘要:
 我先把這個完整的源程序發表出來,還沒有中文注釋,由於在編寫這個程序時是在DOS下完成的,不方便中文注。以後我會開設一個學習天地的欄目,我將在裏麵分段講解它,於這個軟件配套的硬件電路板采用的是8031單片機,擴充了2764(8K)的EPROM存儲程序,以X25043P 這個芯片做為保存配方的EEPROM 可以掉電保存,同時這個芯片還具有看門狗電路,在程序中也利用了這一功能,的可以保存20個配方,具有14路按鈕輸入,7路按鍵輸入,6路控製輸出,具有手動和自動配料功能,具有微打輸出,可以直接聯接一款RP-40的微打,可能其它微打稍加改進程序就能用。硬件上還采用了8155和8255兩個輸入輸出接口芯片,采用了8259芯片做為LED顯示和鍵盤輸入的控製芯片,輸入輸出有光電隔離,有電路板用的機械觸點的OMRON公司的繼電器,可以直接外部驅動中間繼電器工作。有興趣的網友可以先下載這個程序。在相關的仿真器上試試,我會在以後陸續對其中的重點程序加以說明。康為水泥閥

 

 

 

 


      ;33H,34H IS LC
      ;4H DEC SYMBLE
      ORG 0000H
      LJMP MAIN
      ORG 000BH
      LJMP T0INT
      ORG  002AH
MAIN: MOV DPTR,#0DFFFH
      MOV A,#99H
      MOVX @DPTR,A
      MOV DPTR,#0BFF0H
      MOV A,#0EH
      MOVX @DPTR,A
      MOV DPTR,#0BFF0H
      MOV A,#0EH
      MOVX @DPTR,A
      INC DPTR
      INC DPTR
      MOV A,#0BFH
      MOVX @DPTR,A
      INC DPTR
      MOV A,#0FFH
      MOVX @DPTR,A
      MOV R0,#60H
      MOV R7,#25
      MOV A,#00H
      MOV DPTR,#0BE20H
ZERO00:MOV @R0,A
      MOVX @DPTR,A
      INC DPTR
      INC R0
      CLR P1.0
      SETB P1.0
      DJNZ R7,ZERO00
      MOV A,#0FFH
      MOV DPTR,#0BFF3H
      MOVX @DPTR,A
      MOV TMOD,#11H
      MOV DPTR,#1FFFH
      MOV A,#11H
      MOVX @DPTR,A
      MOV A,#26H
      MOVX @DPTR,A
      MOV A,#0D1H
      MOVX @DPTR,A
      MOV A,#90H
      MOVX @DPTR,A
      MOV A,#08H
      MOVX @DPTR,A
      MOV R0,#08H
      MOV R7,#05H
      MOV R1,#80H
      MOV 33H,#00H
      MOV 34H,#00H
      MOV 45H,#01H
      MOV 46H,#01H
      MOV 47H,#01H
      MOV 48H,#01H
      ;MOV IE,#82H
      MOV TCON,#02H
      MOV TL0,#00H
      MOV TH0,#00H
      SETB TR0
      CLR 11H
      MOV 2AH,#0FFH
      MOV 4CH,#00H
      MOV 40H,#00H
      MOV 41H,#00H
      MOV 3CH,#01H
      CLR 05H
      CLR 08H
      CLR 09H
      MOV 3AH,#01H
LOOP1:ACALL DIS
      CLR P1.0
      SETB P1.0
      INC R1
      DJNZ R7,LOOP1
      MOV R6,#03H
      MOV R7,#0FFH
      ACALL BCDT
      ACALL DISBCD
      MOV R1,#253
      LCALL READ
      MOV 3EH,A
      MOV R1,#254
      LCALL READ
      MOV 3FH,A
      MOV R1,#00H
      LCALL READ
      MOV 4CH,A
      MOV R1,#250
      LCALL READ
      MOV 3AH,A
      MOV R1,#251
      LCALL READ
      MOV 3BH,A
      CLR C
  MOV A,#0AH
  SUBB A,4CH
  JNC NEPF
  MOV 4CH,#00H
NEPF:    MOV A,4CH
  INC A
  MOV R1,A
  LCALL READ
  MOV 75H,A
  MOV A,#64H
  CLR C
  SUBB A,75H
  JNC NEXH
  MOV 75H,#00H
NEXH:    LCALL READGL
  MOV R1,#0BH
  MOV R0,#45H
  MOV R2,#04H
LOOPRK5: LCALL READ
  MOV @R0,A
  INC R0
  INC R1
  DJNZ R2,LOOPRK5
  MOV R1,#235
  MOV DPTR,#0BE20H
  MOV R2,#0AH
LOOPRK55:LCALL READ
  MOVX @DPTR,A
  INC DPTR
  INC R1
  DJNZ R2,LOOPRK55
  MOV R1,#84H
  MOV R0,4CH
  LCALL  DIS
  LCALL WEN
  LCALL NWRITE
  CLR C
  LCALL LOOPAD
  LCALL KEY4
         MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
         MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
         MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
REKEY:   MOV DPTR,#0BFF0H
  MOV A,#0EH
  MOVX @DPTR,A
        MOVDPTR,#0DFFFH
  MOV A,#99H
         MOVX @DPTR,A
  CLR CY
  LCALL LOOPAD
  CLR C
  LCALL HEADER
  CLR C
  SUBB A,2AH
  JNC CAK
  CPL A
  INC A
CAK:     JZ CALLKEY
  LCALL CALLHEAD
CALLKEY: MOV A,2AH
  CPL A
  JZ CALLK
  LCALL JLING
CALLK:   ACALL KEY
  JZ REKEY
  DEC A
  MOV 7AH,A
  CJNE A,#06H,NEK00
  ;CPL 11H
  ;MOV R0,4CH
  ;MOV R1,#84H
  ;LCALL DIS
 ;LCALL AUTOZY
      LJMP REKEY
NEK00:CJNE A,#00H,NEK03
       CPL 08H
       LJMP REKEY
NEK03: CJNE A,#03H,NEK02
      ACALL KEY3
      LJMP REKEY
NEK02:CJNE A,#02,NEK05
      ACALL KEY2
      LJMP REKEY
NEK05:CJNE A,#05,NEK04
      PUSH 33H
      PUSH 34H
      MOV 46H,44H
      MOV 45H,43H
      MOV 33H,#00H
      MOV 34H,#00H
      ACALL KEY5
      POP 34H
      POP 33H
      LJMP REKEY
NEK04:CJNE A,#04H,NEK01
      LCALL KEY4
      LJMP REKEY
NEK01:CJNE A,#01H,R
      LCALL TEPRI
      JNZ R
      LCALL TOTAL
R:    LJMP REKEY
      RET
DIS:  MOV A,R1
      MOV DPTR,#1FFFH
      MOVX @DPTR,A
      MOV A,R0
      MOV DPTR,#TAB
      MOVC A,@A+DPTR
      PUSH ACC
      MOV A,R1
      CJNE A,#80H,DD1
      JNB 08H,GS
      POP ACC
      SETB ACC.7
      LJMP GS1
DD1:  CJNE A,#84H,GS
      JNB 11H,GS
      POP ACC
      SETB ACC.7
      LJMP GS1
GS:   POP ACC
GS1:  MOV DPTR,#1F7FH
      MOVX @DPTR,A
      NOP
      NOP
      NOP
      NOP
      RET
READGL: MOV A,#14H
      MOV B,4CH
      CLR C
      MUL AB
      CLR C
      ADD A,#10H
      MOV R1,A
      MOV R0,#60H
      MOV R2,#14H
LPREAD:LCALL READ
      MOV @R0,A
      INC R0
      INC R1
      DJNZ R2,LPREAD
      NOP
      NOP
      NOP
      NOP
      RET
KEY:  ACALL KEY1
      JZ RRRK
      MOV DPTR,#1F7FH
      MOVX A,@DPTR
      ANL A,#3FH
      INC A
      PUSH ACC
AKEY: MOV DPTR,#1F7FH
      MOVX A,@DPTR
      ACALL KEY1
      JNZ AKEY
      POP ACC
RRRK: NOP
      NOP
      NOP
      NOP
      RET
KEY1: MOV DPTR,#1FFFH
      MOVX A,@DPTR
      ANL A,#07H
      CLR P1.0
      SETB P1.0
      NOP
      NOP
      NOP
      NOP
      RET
KEY3: ;MOV 4CH,#00H
LPKEY3:MOV R0,4CH
      MOV R1,#84H
      LCALL DIS
      LCALL DELAYK
      MOV R0,#0AH
      LCALL DIS
      LCALL DELAYK
      MOV R0,4CH
      MOV R1,#84H
      LCALL DIS
      ACALL KEY
      JZ LPKEY3
      DEC A
      CJNE A,#03H,LPKEY33
      LCALL WEN
      LCALL NORET
      LCALL WEN
      MOV R1,#00H
      MOV R0,#4CH
      LCALL WRITE
      MOV A,4CH
      INC A
      MOV R1,A
      LCALL READ
      MOV 75H,A
      LCALL READGL
      LCALL WEN
      LCALL NWRITE
      NOP
      NOP
      NOP
      NOP
      RET
LPKEY33:CJNE A,#00H,LPKEY3
      INC 4CH
      MOV A,4CH
      CLR C
      SUBB A,#0AH
      JNZ LPKEY3
      MOV 4CH,#00H
      LJMP LPKEY3
      NOP
      NOP
      NOP
      NOP
      RET
      MOV R0,#0AH
      MOV R1,#84H
      LCALL DIS
       NOP
 NOP
 NOP
 NOP
 RET
KEY5:   MOV A,#0F8H
 MOV DPTR,#0BFF3H
 MOVX @DPTR,A
 PUSH 45H
 PUSH 46H
 PUSH 47H
 PUSH 48H
 MOV 45H,#01H
 MOV 46H,#01H
 MOV 47H,#01H
 MOV 48H,#01H
REK05: LCALL LOOPAD
 ACALL KEY
 JZ REK05
 DEC A
  CJNE A,#05H,RET005
  CLR 07H
  MOV A,#0C0H
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
  MOV 57H,#04H
  POP 48H
  POP 47H
  POP 46H
  POP 45H
  MOV 54H,47H
  MOV 55H,48H
  LCALL INKEY
  MOV 47H,58H
  MOV 48H,59H
  LJMP RET05
RET005:  POP 48H
  POP 47H
  POP 46H
  POP 45H
RET05:  MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
  MOV R1,#0BH
  MOV R0,#45H
  MOV R2,#04H
  JB 07H,LOOPK5
  MOV R1,#0BH
  MOV R0,#45H
  MOV R2,#04H
LOOPRK50:LCALL READ
  MOV @R0,A
  INC R0
  INC R1
  DJNZ R2,LOOPRK50
      NOP
      NOP
      NOP
      NOP
  RET
LOOPK5:  LCALL WEN
  LCALL NORET
  LCALL WRITE
LOOPK500:LCALL WEN
  LCALL WRITE
  INC R0
  INC R1
  DJNZ R2,LOOPK500
         LCALL WEN
         LCALL NWRITE
      NOP
      NOP
      NOP
      NOP
  RET
KEY4:    MOV 33H,35H
  MOV 34H,36H
  RET
KEY2:    CLR 01H
  MOV 30H,#0CH
  MOV 31H,#60H
  MOV 32H,#0FEH

  MOV DPTR,#0BFF3H
  MOV A,32H
  MOVX @DPTR,A
         LJMP MAINKE2
REKEY2:
MAINKE2: MOV A,30H
  DEC A
  MOV 30H,A
  CPL 01H
  CJNE A,#00H,REKEY22
         LJMP RETU2
REKEY22: MOV R0,31H
  MOV A,@R0
  MOV R6,A
  INC R0
  MOV A,@R0
  MOV R7,A
  INC R0
  MOV 31H,R0
         ACALL BCDT
  ACALL DISBCD
  JNB 01H,RKLC
  MOV A,32H
  RL A
  MOV DPTR,#0BFF3H
  MOVX  @DPTR,A
  MOV 32H,A
  MOV A,30H
  CJNE A,#01H,RKLC
  MOV R0,#0CH
  MOV R1,#83H
  ACALL DIS
  MOV R1,#82H
  MOV R0,#0AH
  ACALL DIS
         MOV R0,31H
  DEC R0
  MOV A,@R0
  MOV 55H,A
  DEC R0
  MOV A,@R0
  MOV 54H,A
  MOV 57H,#02H
  LCALL INKEY
  MOV R0,31H
  DEC R0
  MOV A,59H
  MOV @R0,A
  DEC R0
  MOV A,58H
  MOV @R0,A
         LJMP REKEY2
RKLC:    JB 01H,REKEY200
  MOV R0,#0BH
  MOV R1,#83H
  ACALL DIS
         MOV R0,31H
  DEC R0
  MOV A,@R0
  MOV 55H,A
  DEC R0
  MOV A,@R0
  MOV 54H,A
  MOV 57H,#03H
  LCALL INKEY
         MOV R0,31H
  DEC R0
  MOV A,59H
  MOV @R0,A
  DEC R0
  MOV A,58H
  ANL A,#01H
  MOV @R0,A
         LJMP REKEY2
REKEY200:MOV R0,31H
  DEC R0
  MOV A,@R0
  MOV 55H,A
  DEC R0
  MOV A,@R0
  MOV 54H,A
  MOV 57H,#04H
  LCALL INKEY
         MOV R0,31H
  DEC R0
  MOV A,59H
  MOV @R0,A
  DEC R0
  MOV A,58H
 


      ;33H,34H IS LC
      ;4H DEC SYMBLE
      ORG 0000H
      LJMP MAIN
      ORG 000BH
      LJMP T0INT
      ORG  002AH
MAIN: MOV DPTR,#0DFFFH
      MOV A,#99H
      MOVX @DPTR,A
      MOV DPTR,#0BFF0H
      MOV A,#0EH
      MOVX @DPTR,A
      MOV DPTR,#0BFF0H
      MOV A,#0EH
      MOVX @DPTR,A
      INC DPTR
      INC DPTR
      MOV A,#0BFH
      MOVX @DPTR,A
      INC DPTR
      MOV A,#0FFH
      MOVX @DPTR,A
      MOV R0,#60H
      MOV R7,#25
      MOV A,#00H
      MOV DPTR,#0BE20H
ZERO00:MOV @R0,A
      MOVX @DPTR,A
      INC DPTR
      INC R0
      CLR P1.0
      SETB P1.0
      DJNZ R7,ZERO00
      MOV A,#0FFH
      MOV DPTR,#0BFF3H
      MOVX @DPTR,A
      MOV TMOD,#11H
      MOV DPTR,#1FFFH
      MOV A,#11H
      MOVX @DPTR,A
      MOV A,#26H
      MOVX @DPTR,A
      MOV A,#0D1H
      MOVX @DPTR,A
      MOV A,#90H
      MOVX @DPTR,A
      MOV A,#08H
      MOVX @DPTR,A
      MOV R0,#08H
      MOV R7,#05H
      MOV R1,#80H
      MOV 33H,#00H
      MOV 34H,#00H
      MOV 45H,#01H
      MOV 46H,#01H
      MOV 47H,#01H
      MOV 48H,#01H
      ;MOV IE,#82H
      MOV TCON,#02H
      MOV TL0,#00H
      MOV TH0,#00H
      SETB TR0
      CLR 11H
      MOV 2AH,#0FFH
      MOV 4CH,#00H
      MOV 40H,#00H
      MOV 41H,#00H
      MOV 3CH,#01H
      CLR 05H
      CLR 08H
      CLR 09H
      MOV 3AH,#01H
LOOP1:ACALL DIS
      CLR P1.0
      SETB P1.0
      INC R1
      DJNZ R7,LOOP1
      MOV R6,#03H
      MOV R7,#0FFH
      ACALL BCDT
      ACALL DISBCD
      MOV R1,#253
      LCALL READ
      MOV 3EH,A
      MOV R1,#254
      LCALL READ
      MOV 3FH,A
      MOV R1,#00H
      LCALL READ
      MOV 4CH,A
      MOV R1,#250
      LCALL READ
      MOV 3AH,A
      MOV R1,#251
      LCALL READ
      MOV 3BH,A
      CLR C
  MOV A,#0AH
  SUBB A,4CH
  JNC NEPF
  MOV 4CH,#00H
NEPF:    MOV A,4CH
  INC A
  MOV R1,A
  LCALL READ
  MOV 75H,A
  MOV A,#64H
  CLR C
  SUBB A,75H
  JNC NEXH
  MOV 75H,#00H
NEXH:    LCALL READGL
  MOV R1,#0BH
  MOV R0,#45H
  MOV R2,#04H
LOOPRK5: LCALL READ
  MOV @R0,A
  INC R0
  INC R1
  DJNZ R2,LOOPRK5
  MOV R1,#235
  MOV DPTR,#0BE20H
  MOV R2,#0AH
LOOPRK55:LCALL READ
  MOVX @DPTR,A
  INC DPTR
  INC R1
  DJNZ R2,LOOPRK55
  MOV R1,#84H
  MOV R0,4CH
  LCALL  DIS
  LCALL WEN
  LCALL NWRITE
  CLR C
  LCALL LOOPAD
  LCALL KEY4
         MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
         MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
         MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
REKEY:   MOV DPTR,#0BFF0H
  MOV A,#0EH
  MOVX @DPTR,A
        MOVDPTR,#0DFFFH
  MOV A,#99H
         MOVX @DPTR,A
  CLR CY
  LCALL LOOPAD
  CLR C
  LCALL HEADER
  CLR C
  SUBB A,2AH
  JNC CAK
  CPL A
  INC A
CAK:     JZ CALLKEY
  LCALL CALLHEAD
CALLKEY: MOV A,2AH
  CPL A
  JZ CALLK
  LCALL JLING
CALLK:   ACALL KEY
  JZ REKEY
  DEC A
  MOV 7AH,A
  CJNE A,#06H,NEK00
  ;CPL 11H
  ;MOV R0,4CH
  ;MOV R1,#84H
  ;LCALL DIS
 ;LCALL AUTOZY
      LJMP REKEY
NEK00:CJNE A,#00H,NEK03
       CPL 08H
       LJMP REKEY
NEK03: CJNE A,#03H,NEK02
      ACALL KEY3
      LJMP REKEY
NEK02:CJNE A,#02,NEK05
      ACALL KEY2
      LJMP REKEY
NEK05:CJNE A,#05,NEK04
      PUSH 33H
      PUSH 34H
      MOV 46H,44H
      MOV 45H,43H
      MOV 33H,#00H
      MOV 34H,#00H
      ACALL KEY5
      POP 34H
      POP 33H
      LJMP REKEY
NEK04:CJNE A,#04H,NEK01
      LCALL KEY4
      LJMP REKEY
NEK01:CJNE A,#01H,R
      LCALL TEPRI
      JNZ R
      LCALL TOTAL
R:    LJMP REKEY
      RET
DIS:  MOV A,R1
      MOV DPTR,#1FFFH
      MOVX @DPTR,A
      MOV A,R0
      MOV DPTR,#TAB
      MOVC A,@A+DPTR
      PUSH ACC
      MOV A,R1
      CJNE A,#80H,DD1
      JNB 08H,GS
      POP ACC
      SETB ACC.7
      LJMP GS1
DD1:  CJNE A,#84H,GS
      JNB 11H,GS
      POP ACC
      SETB ACC.7
      LJMP GS1
GS:   POP ACC
GS1:  MOV DPTR,#1F7FH
      MOVX @DPTR,A
      NOP
      NOP
      NOP
      NOP
      RET
READGL: MOV A,#14H
      MOV B,4CH
      CLR C
      MUL AB
      CLR C
      ADD A,#10H
      MOV R1,A
      MOV R0,#60H
      MOV R2,#14H
LPREAD:LCALL READ
      MOV @R0,A
      INC R0
      INC R1
      DJNZ R2,LPREAD
      NOP
      NOP
      NOP
      NOP
      RET
KEY:  ACALL KEY1
      JZ RRRK
      MOV DPTR,#1F7FH
      MOVX A,@DPTR
      ANL A,#3FH
      INC A
      PUSH ACC
AKEY: MOV DPTR,#1F7FH
      MOVX A,@DPTR
      ACALL KEY1
      JNZ AKEY
      POP ACC
RRRK: NOP
      NOP
      NOP
      NOP
      RET
KEY1: MOV DPTR,#1FFFH
      MOVX A,@DPTR
      ANL A,#07H
      CLR P1.0
      SETB P1.0
      NOP
      NOP
      NOP
      NOP
      RET
KEY3: ;MOV 4CH,#00H
LPKEY3:MOV R0,4CH
      MOV R1,#84H
      LCALL DIS
      LCALL DELAYK
      MOV R0,#0AH
      LCALL DIS
      LCALL DELAYK
      MOV R0,4CH
      MOV R1,#84H
      LCALL DIS
      ACALL KEY
      JZ LPKEY3
      DEC A
      CJNE A,#03H,LPKEY33
      LCALL WEN
      LCALL NORET
      LCALL WEN
      MOV R1,#00H
      MOV R0,#4CH
      LCALL WRITE
      MOV A,4CH
      INC A
      MOV R1,A
      LCALL READ
      MOV 75H,A
      LCALL READGL
      LCALL WEN
      LCALL NWRITE
      NOP
      NOP
      NOP
      NOP
      RET
LPKEY33:CJNE A,#00H,LPKEY3
      INC 4CH
      MOV A,4CH
      CLR C
      SUBB A,#0AH
      JNZ LPKEY3
      MOV 4CH,#00H
      LJMP LPKEY3
      NOP
      NOP
      NOP
      NOP
      RET
      MOV R0,#0AH
      MOV R1,#84H
      LCALL DIS
       NOP
 NOP
 NOP
 NOP
 RET
KEY5:   MOV A,#0F8H
 MOV DPTR,#0BFF3H
 MOVX @DPTR,A
 PUSH 45H
 PUSH 46H
 PUSH 47H
 PUSH 48H
 MOV 45H,#01H
 MOV 46H,#01H
 MOV 47H,#01H
 MOV 48H,#01H
REK05: LCALL LOOPAD
 ACALL KEY
 JZ REK05
 DEC A
  CJNE A,#05H,RET005
  CLR 07H
  MOV A,#0C0H
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
  MOV 57H,#04H
  POP 48H
  POP 47H
  POP 46H
  POP 45H
  MOV 54H,47H
  MOV 55H,48H
  LCALL INKEY
  MOV 47H,58H
  MOV 48H,59H
  LJMP RET05
RET005:  POP 48H
  POP 47H
  POP 46H
  POP 45H
RET05:  MOV A,#0FFH
  MOV DPTR,#0BFF3H
  MOVX @DPTR,A
  MOV R1,#0BH
  MOV R0,#45H
  MOV R2,#04H
  JB 07H,LOOPK5
  MOV R1,#0BH
  MOV R0,#45H
  MOV R2,#04H
LOOPRK50:LCALL READ
  MOV @R0,A
  INC R0
  INC R1
  DJNZ R2,LOOPRK50
      NOP
      NOP
      NOP
      NOP
  RET
LOOPK5:  LCALL WEN
  LCALL NORET
  LCALL WRITE
LOOPK500:LCALL WEN
  LCALL WRITE
  INC R0
  INC R1
  DJNZ R2,LOOPK500
         LCALL WEN
         LCALL NWRITE
      NOP
      NOP
      NOP
      NOP
  RET
KEY4:    MOV 33H,35H
  MOV 34H,36H
  RET
KEY2:    CLR 01H
  MOV 30H,#0CH
  MOV 31H,#60H
  MOV 32H,#0FEH

  MOV DPTR,#0BFF3H
  MOV A,32H
  MOVX @DPTR,A
         LJMP MAINKE2
REKEY2:
MAINKE2: MOV A,30H
  DEC A
  MOV 30H,A
  CPL 01H
  CJNE A,#00H,REKEY22
         LJMP RETU2
REKEY22: MOV R0,31H
  MOV A,@R0
  MOV R6,A
  INC R0
  MOV A,@R0
  MOV R7,A
  INC R0
  MOV 31H,R0
         ACALL BCDT
  ACALL DISBCD
  JNB 01H,RKLC
  MOV A,32H
  RL A
  MOV DPTR,#0BFF3H
  MOVX  @DPTR,A
  MOV 32H,A
  MOV A,30H
  CJNE A,#01H,RKLC
  MOV R0,#0CH
  MOV R1,#83H
  ACALL DIS
  MOV R1,#82H
  MOV R0,#0AH
  ACALL DIS
         MOV R0,31H
  DEC R0
  MOV A,@R0
  MOV 55H,A
  DEC R0
  MOV A,@R0
  MOV 54H,A
  MOV 57H,#02H
  LCALL INKEY
  MOV R0,31H
  DEC R0
  MOV A,59H
  MOV @R0,A
  DEC R0
  MOV A,58H
  MOV @R0,A
         LJMP REKEY2
RKLC:    JB 01H,REKEY200
  MOV R0,#0BH
  MOV R1,#83H
  ACALL DIS
         MOV R0,31H
  DEC R0
  MOV A,@R0
  MOV 55H,A
  DEC R0
  MOV A,@R0
  MOV 54H,A
  MOV 57H,#03H
  LCALL INKEY
         MOV R0,31H
  DEC R0
  MOV A,59H
  MOV @R0,A
  DEC R0
  MOV A,58H
  ANL A,#01H
  MOV @R0,A
         LJMP REKEY2
REKEY200:MOV R0,31H
  DEC R0
  MOV A,@R0
  MOV 55H,A
  DEC R0
  MOV A,@R0
  MOV 54H,A
  MOV 57H,#04H
  LCALL INKEY
         MOV R0,31H
  DEC R0
  MOV A,59H
  MOV @R0,A
  DEC R0
  MOV A,58H