

一款以MCS-51单片机为CPU的配料机控制器源程序
;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