|
我先把这个完整的源程序发表出来,还没有中文注释,由于在编写这个程序时是在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 MOV DPTR,#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 MOV @R0,A LJMP REKEY2 RETU2: MOV A,#14H MOV B,4CH CLR C MUL AB CLR C ADD A,#10H MOV R1,A MOV R0,#60H MOV R2,#14H LCALL WEN LCALL NORET LPWRITE: LCALL WEN LCALL WRITE INC R0 INC R1 DJNZ R2,LPWRITE LCALL WEN MOV R1,4CH INC R1 MOV R0,#75H LCALL WRITE LCALL WEN LCALL NWRITE LCALL TEPRI JNZ RETKEY LCALL INIPRI LCALL PRIPB RETKEY: NOP NOP NOP NOP RET DISBCD: MOV A,R4 ANL A,#0FH MOV R0,A MOV 50H,A MOV R1,#80H ACALL DIS MOV A,R4 ANL A,#0F0H SWAP A MOV R0,A MOV 51H,A MOV R1,#81H ACALL DIS MOV A,R3 ANL A,#0FH MOV R0,A MOV 52H,A MOV R1,#82H ACALL DIS MOV A,R3 ANL A,#0F0H SWAP A MOV R0,A MOV 53H,A MOV R1,#83H ACALL DIS NOP NOP NOP NOP RET BCDT: MOV R5,#16 CLR A MOV R2,A MOV R3,A MOV R4,A LP: CLR P1.0 SETB P1.0 CLR C MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ADDC A,R3 DA A MOV R3,A MOV A,R2 ADDC A,R2 DA A MOV R2,A DJNZ R5,LP NOP NOP NOP NOP RET LOOPAD: CLR P1.0 SETB P1.0 CLR P1.7 CLR P1.6 LPAD: MOV DPTR,#3FFFH MOVX @DPTR,A LCALL DELAYAD MOV DPTR,#0DFFEH MOVX A,@DPTR JB ACC.6,LPAD SETB P1.6 MOV DPTR,#3FFFH MOVX A,@DPTR MOV DPTR,#0DFFCH MOVX A,@DPTR MOV R6,A SETB P1.7 MOV DPTR,#3FFFH MOVX A,@DPTR MOV DPTR,#0DFFCH MOVX A,@DPTR MOV R7,A MOV A,R7 SWAP A MOV R7,A MOV A,R6 SWAP A ANL A,#0F0H MOV B,R7 ADD A,B MOV R7,A MOV A,R6 SWAP A ANL A,#0FH MOV R6,A MOV 35H,R6 MOV 36H,R7 MOV A,36H CJNE A,#00H,TE01LP MOV A,35H CJNE A,#00H,TE01LP MOV R0,#00H LCALL ERLP00 TE01LP: MOV A,36H CJNE A,#0FFH,TE02LP MOV A,35H CJNE A,#0FH,TE02LP MOV R0,#01H LCALL ERLP00 TE02LP: MOV R3,33H MOV R4,34H MOV R6,35H MOV R7,36H LCALL BSUB MOV 43H,R6 MOV 44H,R7 LCALL DBMUI MOV 4AH,R6 MOV 4BH,R7 ACALL BCDT MOV A,R3 ANL A,#0F0H JNZ DISAD MOV A,R3 ORL A,#0A0H MOV R3,A ANL A,#0FH JNZ DISAD MOV R3,#0AAH MOV A,R4 ANL A,#0F0H JNZ DISAD MOV A,R4 ORL A,#0A0H MOV R4,A DISAD:JB 05H,RET00 ACALL DISBCD JNB 04H,RET00 MOV R0,#0DH MOV R1,#83H LCALL DIS CLR 04H RET00:NOP NOP NOP NOP RET ERLP00:MOV R1,#83H LCALL DIS MOV R0,#12H MOV R1,#84H LCALL DIS MOV R0,#0AH MOV R1,#82H LCALL DIS MOV R0,#0AH MOV R1,#81H LCALL DIS LCALL NOTDO MOV R1,#0FFH GSLP: MOV R0,#0FFH CLR P1.0 SETB P1.0 DJNZ R0,$ DJNZ R1,GSLP MOV R0,4CH MOV R1,#84H LCALL DIS NOP NOP NOP NOP RET
BSUB: CLR CY MOV A,R7 SUBB A,R4 MOV R7,A MOV A,R6 SUBB A,R3 JNC NH CPL A MOV R6,A MOV A,R7 CPL A INC A MOV R7,A SETB 04H LJMP BSUBNH1 MOV R7,A NH: MOV R6,A BSUBNH1: NOP NOP NOP NOP RET DELAYAD: NOP NOP RET
INKEY: MOV 56H,#00H MOV R6,54H MOV R7,55H ACALL BCDT ACALL DISBCD MOV A,57H CJNE A,#03H,LCZ MOV R0,#0BH MOV R1,#83H ACALL DIS LJMP INREKEY LCZ: CJNE A,#02H,INREKEY MOV R0,#0CH MOV R1,#83H ACALL DIS MOV R0,#0AH MOV R1,#82H ACALL DIS INREKEY: ACALL DELAYKEY0 ACALL DCBT MOV 54H,R6 MOV 55H,R7 LCALL KEY JZ INREKEY DEC A CJNE A,#00H,INK1 SETB 07H LCALL ADDKEY LJMP INREKEY INK1: CJNE A,#01H,INK2 SETB 07H INC 56H MOV A,56H CJNE A,57H,INREKEY MOV 56H,#00H LJMP INREKEY INK2: CJNE A,7AH,INREKEY MOV 58H,54H MOV 59H,55H INKRET: NOP NOP NOP NOP RET
ADDKEY: MOV A,#50H ADD A,56H MOV R0,A MOV A,@R0 INC A CJNE A,#0AH,ADD1 MOV A,#00H ADD1: MOV @R0,A NOP NOP NOP NOP RET DELAYKEY0: CLR P1.0 SETB P1.0 MOV A,56H ADD A,#80H MOV R1,A MOV A,#50H ADD A,56H MOV R0,A MOV A,@R0 MOV R0,A PUSH ACC LCALL DIS LCALL DELAYK MOV R0,#0AH LCALL DIS LCALL DELAYK POP ACC MOV R0,A LCALL DIS NOP NOP NOP NOP RET DELAYK: MOV R7,#02H DE1: CLR TR1 CLR TF1 MOV TL1,#0FFH MOV TH1,#50H SETB TR1 DE: CLR P1.0 SETB P1.0 LCALL KEY1 JZ DE00 NOP NOP NOP NOP RET DE00: JNB TF1,DE DJNZ R7,DE1 NOP NOP NOP NOP RET DELAYK1: MOV R7,#04H DE11: CLR TR1 CLR TF1 MOV TL1,#0F0H MOV TH1,#3FH SETB TR1 DE10: CLR P1.0 SETB P1.0 JNB TF1,DE10 DJNZ R7,DE11 NOP NOP NOP NOP RET DCBT:
MOV R0,#53H MOV R1,#03H MOV R6,#00 MOV A,@R0 MOV R7, A LOP1: CLR P1.0 SETB P1.0 MOV A, R7 MOV B, #10 MUL AB MOV R7, A MOV A,B XCH A, R6 MOV B, #10 MUL AB ADD A, R6 MOV R6, A DEC R0 MOV A, R7 ADD A, @R0 MOV R7, A MOV A, R6 ADDC A, #0 MOV R6, A DJNZ R1, LOP1 NOP NOP NOP NOP RET DBMUI: CLR P1.0 SETB P1.0 MOV R2,47H MOV R3,48H MOV A,R3 MOV B,R7 MUL AB XCH A,R7 MOV R5,B MOV B,R2 MUL AB ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A MOV A,R6 MOV B,R3 MUL AB ADD A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV F0,C MOV A,R2 MUL AB ADD A,R5 MOV R5,A CLR A MOV ACC.0,C ADDC A,B MOV R4,A ACALL BDIV NOP NOP NOP NOP RET BDIV: MOV R2,45H MOV R3,46H MOV A,R5 CLR C SUBB A,R3 MOV A,R4 SUBB A,R2 JNC DIV1 MOV B,#16 DIV2: CLR C MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5 RLC A MOV R5,A XCH A,R4 RLC A XCH A,R4 MOV F0,C CLR C SUBB A,R3 MOV R1,A MOV A,R4 SUBB A,R2 JB F0,DV2 JC DV3 DV2: CLR P1.0 SETB P1.0 MOV R4,A MOV A,R1 MOV R5,A INC R7 DV3: DJNZ B,DIV2 CLR F0 NOP NOP NOP NOP RET DIV1: SETB F0 NOP NOP NOP NOP RET
HEADER: MOV DPTR,#0BFF1H MOVX A,@DPTR NOP NOP NOP NOP RET CALLHEAD: MOV DPTR,#0BFF2H MOV A,#0BFH PUSH PSW MOV C,09H MOV ACC.5,C MOVX @DPTR,A POP PSW LCALL DELAYKNO LCALL HEADER MOV 2AH,A MOV DPTR,#0BFF3H MOVX @DPTR,A PUSH PSW MOV C,09H MOV ACC.5,C MOV DPTR,#0BFF2H MOVX @DPTR,A POP PSW MOV 2BH,35H MOV 2CH,36H NOP NOP NOP NOP RET JLING: MOV A,2AH CPL A CJNE A,#01H,CA00 LCALL CLIAO LJMP JLANGRET CA00: CJNE A,#02H,CA01 LCALL JL1 LJMP JLANGRET CA01: CJNE A,#04H,CA02 LCALL JL2 LJMP JLANGRET CA02: CJNE A,#08H,CA03 LCALL JL3 LJMP JLANGRET CA03: CJNE A,#10H,CA04 LCALL JL4 LJMP JLANGRET CA04: CJNE A,#20H,CA05 LCALL JL5 LJMP JLANGRET CA05: CJNE A,#40H,CA06 LCALL AUTOJL LJMP JLANGRET CA06: CJNE A,#80H,JLANGRET LCALL STOP JLANGRET: NOP NOP NOP NOP RET STOP: LCALL NOTDO MOV DPTR,#0BFF3H MOV A,#0FFH MOVX @DPTR,A MOV R0,#11H MOV R1,#80H LCALL DIS MOV R0,#10H MOV R1,#81H LCALL DIS MOV R0,#0FH MOV R1,#82H LCALL DIS MOV R0,#0EH MOV R1,#83H LCALL DIS LCALL DELAYK LCALL DELAYK MOV R0,#0AH MOV R1,#80H LCALL DIS MOV R0,#0AH MOV R1,#81H LCALL DIS MOV R0,#0AH MOV R1,#82H LCALL DIS MOV R0,#0AH MOV R1,#83H LCALL DIS LCALL DELAYK LCALL DELAYK NOP NOP NOP NOP RET CLIAO: RET AUTOJL: LCALL KEY4 MOV 26H,75H MOV A,26H JNZ AUTOJL1 NOP NOP NOP NOP RET AUTOJL1: LCALL TEPRI JNZ AUTOJLJL LCALL INIPRI MOV R0,#0DH LCALL PRINT AUTOJLJL: MOV 7DH,#06H MOV 7EH,#0FFH MOV 7FH,#60H MOV 23H,#00H MOV 24H,#00H MOV 25H,#0FEH REAUTO1A: MOV A,7EH SETB C RR A CLR C MOV 7EH,A REAUTO: DEC 7DH MOV A,7DH JNZ RECL010 LJMP RECL RECL010: MOV A,25H RL A MOV 25H,A CLR 04H MOV R0,7FH MOV A,@R0 MOV R6,A PUSH ACC INC R0 MOV A,@R0 MOV R7,A PUSH ACC INC R0 MOV A,@R0 MOV R3,A MOV 27H,A INC R0 MOV A,@R0 MOV R4,A MOV 28H,A INC R0 MOV 7FH,R0 LCALL BADD POP ACC MOV R7,A POP ACC MOV R6,ACC MOV A,R7 ADD A,R6 JZ REAUTO1A LCALL BSUB JB 04H,REAUTO1A MOV A,25H MOV DPTR,#0BFF3H MOVX @DPTR,A LCALL NOTDO1 PUSH PSW MOV A,25H MOV C,09H MOV ACC.5,C MOV DPTR,#0BFF2H MOVX @DPTR,A POP PSW LPAUTOJL: LCALL HEADER CPL A ANL A,#80H JZ LLPAU LCALL STOP NOP NOP NOP NOP RET LLPAU: LCALL LOOPAD MOV R6,23H MOV R7,24H MOV R3,27H MOV R4,28H LCALL BSUB MOV R3,4AH MOV R4,4BH LCALL BSUB JNC LPAUTOJL MOV A,7EH CLR ACC.6 SETB C RRC A CLR C MOV 7EH,A LCALL DELAYK1 LCALL LOOPAD LCALL DELAYK1 LCALL LOOPAD LCALL DELAYK1 MOV R6,23H MOV R7,24H MOV R3,4AH MOV R4,4BH LCALL BSUB CLR 04H CLR C MOV 27H,R6 MOV 28H,R7 MOV R0,7FH DEC R0 DEC R0 DEC R0 MOV A,@R0 ADD A,28H MOV 28H,A DEC R0 MOV A,@R0 ADDC A,27H MOV 27H,A CLR C PUSH 27H PUSH 28H MOV A,#05H SUBB A,7DH MOV B,#02H MUL AB ADD A,#20H MOV DPL,A PUSH DPL MOV DPH,#0BEH MOVX A,@DPTR MOV R6,A INC DPTR MOVX A,@DPTR MOV R7,A CLR C MOV A,R7 ADD A,28H MOV R7,A MOV A,R6 ADDC A,27H MOV R6,A MOV DPH,#0BEH POP DPL MOV A,R6 MOVX @DPTR,A MOV A,R7 INC DPTR MOVX @DPTR,A MOV R1,#235 MOV DPTR,#0BE20H MOV R2,#10 LCALL WEN LCALL NORET LPWRITE00:LCALL WEN LCALL WRITE1 INC DPTR INC R1 DJNZ R2,LPWRITE00 POP 28H POP 27H LCALL TEPRI JNZ JPLCZ LCALL INIPRI LCALL AUTOPRI CLR C LCALL LOOPAD CLR C MOV A,#06H SUBB A,7DH CLR C ADD A,#30H MOV R0,A LCALL PRINT MOV R0,#3DH LCALL PRINT MOV A,#27H LCALL OUTPRN MOV R0,#0DH LCALL PRINT JPLCZ: JNB 08H,REAUTO010 LCALL AUTOLC REAUTO010: LJMP REAUTO RECL: MOV A,7EH ORL A,#0C0H CPL A JZ AA1 LCALL LOOPAD LCALL DISCL LCALL HEADER CPL A JZ RECL CJNE A,#80H,RECL00 LCALL STOP NOP NOP NOP RET RECL00: CJNE A,#01,RECL0100 LCALL CL DEC 26H MOV A,26H JZ AA1 LJMP AUTOJLJL RECL0100: LCALL NOTDO LJMP RECL AA1: LCALL TEPRI JNZ AAAA LCALL INIPRI MOV R0,#0DH LCALL PRINT AAAA: NOP NOP NOP RET AUTOLC: LCALL LOOPAD MOV R6,4AH MOV R7,4BH MOV R3,23H MOV R4,24H LCALL BSUB MOV 4AH,R6 MOV 4BH,R7 JNB 04H,LCAUTO MOV 4AH,#00H MOV 4BH,#00H LCAUTO: JNB 08H,RETAUTOLC CLR C MOV A,4AH RRC A MOV 4AH,A MOV A,4BH RRC A CLR C MOV 4BH,A MOV A,28H ADD A,4BH DEC 7FH MOV R0,7FH MOV @R0,A INC 7FH RETAUTOLC:NOP NOP NOP RET DISCL: MOV DPTR,#0BFF3H MOV A,7EH MOVX @DPTR,A LCALL LOOPAD LCALL DELAYK LCALL LOOPAD MOV DPTR,#0BFF3H MOV A,#0FFH MOVX @DPTR,A LCALL DELAYK LCALL LOOPAD NOP NOP NOP RET JL1: PUSH 33H PUSH 34H MOV 33H,2BH MOV 34H,2CH SETB 05H LCALL LOOPAD CLR 05H POP 34H POP 33H MOV R6,60H MOV R7,61H MOV R3,62H MOV R4,63H LCALL BSUB CLR 04H JNC DOJL1 LCALL NOTDO LJMP JL1RET DOJL1: MOV R3,4AH MOV R4,4BH LCALL BSUB CLR 04H JNC JL1RET LCALL NOTDO JL1RET: NOP NOP NOP RET JL2: PUSH 33H PUSH 34H MOV 33H,2BH MOV 34H,2CH SETB 05H LCALL LOOPAD CLR 05H POP 34H POP 33H MOV R6,64H MOV R7,65H MOV R3,66H MOV R4,67H LCALL BSUB CLR 04H JNC DOJL2 LCALL NOTDO LJMP JL2RET DOJL2: MOV R3,4AH MOV R4,4BH LCALL BSUB CLR 04H JNC JL2RET LCALL NOTDO JL2RET: NOP NOP NOP RET JL3: PUSH 33H PUSH 34H MOV 33H,2BH MOV 34H,2CH SETB 05H LCALL LOOPAD CLR 05H POP 34H POP 33H MOV R6,68H MOV R7,69H MOV R3,6AH MOV R4,6BH LCALL BSUB CLR 04H JNC DOJL3 LCALL NOTDO LJMP JL3RET DOJL3: MOV R3,4AH MOV R4,4BH LCALL BSUB CLR 04H JNC JL3RET LCALL NOTDO JL3RET: NOP NOP NOP RET JL4: PUSH 33H PUSH 34H MOV 33H,2BH MOV 34H,2CH SETB 05H LCALL LOOPAD CLR 05H POP 34H POP 33H MOV R6,6CH MOV R7,6DH MOV R3,6EH MOV R4,6FH LCALL BSUB CLR 04H JNC DOJL4 LCALL NOTDO LJMP JL4RET DOJL4: MOV R3,4AH MOV R4,4BH LCALL BSUB CLR 04H JNC JL4RET LCALL NOTDO JL4RET: NOP NOP NOP RET JL5: PUSH 33H PUSH 34H MOV 33H,2BH MOV 34H,2CH SETB 05H LCALL LOOPAD CLR 05H POP 34H POP 33H MOV R6,70H MOV R7,71H MOV R3,72H MOV R4,73H LCALL BSUB CLR 04H JNC DOJL5 LCALL NOTDO LJMP JL5RET DOJL5: MOV R3,4AH MOV R4,4BH LCALL BSUB CLR 04H JNC JL5RET LCALL NOTDO JL5RET: NOP NOP NOP RET DELAYKNO:CLR TR1 CLR TF1 MOV TL1,#0F0H MOV TH1,#0F9H SETB TR1 JNB TF1,$ CLR TF1 RET NOTDO: PUSH PSW MOV DPTR,#0BFF2H MOV A,#0BFH MOV C,09H MOV ACC.5,C MOVX @DPTR,A LCALL DELAYKNO POP PSW NOP NOP NOP RET NOTDO1: MOV DPTR,#0BFF2H MOV A,#0BFH MOV C,09H MOV ACC.5,C MOVX @DPTR,A LCALL DELAYK NOP NOP NOP RET BADD: CLR CY MOV A,24H ADDC A,R7 MOV 24H,A MOV A,23H ADDC A,R6 MOV 23H,A CLR CY NOP NOP NOP RET CL: PUSH PSW MOV DPTR,#0BFF2H MOV A,#0FEH MOV C,09H MOV ACC.5,C MOVX @DPTR,A POP PSW MOV A,#0FEH MOV DPTR,#0BFF3H MOVX @DPTR,A LPCL: LCALL HEADER CPL A ANL A,#80H JZ LPLPCL LCALL STOP NOP NOP NOP RET LPLPCL: LCALL LOOPAD MOV R3,33H MOV R4,34H MOV R6,35H MOV R7,36H LCALL BSUB JNC LPCL MOV R5,#07H WAITCL: LCALL DELAYK1 DJNZ R5,WAITCL LCALL NOTDO CLR C INC 3FH MOV A,3EH ADDC A,#00H MOV 3EH,A CLR C LCALL WEN LCALL NORET LCALL WEN MOV R1,#253 MOV R0,#3EH LCALL WRITE LCALL WEN MOV R1,#254 MOV R0,#3FH LCALL WRITE NOP NOP NOP RET WEN: CLR P1.2 CLR P1.0 MOV A,#06H LCALL OUTB CLR P1.2 SETB P1.0 RET NORET: CLR P1.2 CLR P1.0 MOV A,#01H LCALL OUTB MOV A,#32H LCALL OUTB CLR P1.2 SETB P1.0 LCALL IFWEND NOP NOP NOP RET READCOM: CLR P1.2 CLR P1.0 MOV A,#05H LCALL OUTB LCALL INB CLR P1.2 SETB P1.0 NOP NOP NOP RET WRITE: CLR P1.2 CLR P1.0 MOV A,#02H LCALL OUTB MOV A,R1 LCALL OUTB MOV A,@R0 LCALL OUTB CLR P1.2 SETB P1.0 LCALL IFWEND NOP NOP NOP RET WRITE1: CLR P1.2 CLR P1.0 MOV A,#02H LCALL OUTB MOV A,R1 LCALL OUTB MOVX A,@DPTR LCALL OUTB CLR P1.2 SETB P1.0 LCALL IFWEND RET READ: CLR P1.2 CLR P1.0 MOV A,#03H LCALL OUTB MOV A,R1 LCALL OUTB LCALL INB CLR P1.2 SETB P1.0 NOP NOP NOP RET IFWEND: MOV R7,#99H WAIT: LCALL READCOM JNB ACC.0,RETIFW DJNZ R7,WAIT RETIFW: RET
OUTB: MOV R7,#08H OUTB1: CLR P1.2 RLC A MOV P1.3,C SETB P1.2 DJNZ R7,OUTB1 CLR P1.3 RET INB: MOV R7,#08H INB1: SETB P1.2 CLR P1.2 MOV C,P1.1 RLC A DJNZ R7,INB1 NOP NOP NOP RET NWRITE: CLR P1.2 CLR P1.0 MOV A,#01H LCALL OUTB MOV A,#2CH LCALL OUTB CLR P1.2 SETB P1.0 LCALL IFWEND RET PRIPB: MOV A,#00H RETPB: MOV DPTR,#TAB1 PUSH ACC MOVC A,@A+DPTR JZ PRIPB222 MOV R0,A LCALL PRINT POP ACC INC A LJMP RETPB PRIPB222:POP ACC MOV R0,#0DH LCALL PRINT MOV 4FH,#05H MOV R1,60H PRIPB12:MOV A,#00H PRIPB1: MOV DPTR,#TAB2 PUSH ACC MOVC A,@A+DPTR JZ PRIPB2 MOV R0,A LCALL PRINT POP ACC INC A LJMP PRIPB1 PRIPB2: POP ACC MOV DPTR,#TAB5 MOV A,4FH MOVC A,@A+DPTR MOV R0,A LCALL PRINT MOV R0,#3DH LCALL PRINT MOV A,4FH DEC A MOV B,#04H CLR C MUL AB CLR C ADD A,#60H LCALL OUTPRN MOV A,#00H PRIPB11:MOV DPTR,#TAB3 PUSH ACC MOVC A,@A+DPTR JZ PRIPB22 MOV R0,A LCALL PRINT POP ACC INC A LJMP PRIPB11 PRIPB22:POP ACC MOV DPTR,#TAB5 MOV A,4FH MOVC A,@A+DPTR MOV R0,A LCALL PRINT MOV R0,#3DH LCALL PRINT MOV A,4FH DEC A MOV B,#04H CLR C MUL AB CLR C ADD A,#60H INC A INC A LCALL OUTPRN MOV R0,#0DH LCALL PRINT DEC 4FH MOV A,4FH JZ RETPB00 LJMP PRIPB12 RETPB00: MOV R0,#20H LCALL PRINT MOV R0,#20H LCALL PRINT MOV R0,#20H LCALL PRINT MOV R0,#20H LCALL PRINT MOV R0,#20H LCALL PRINT MOV R0,#20H LCALL PRINT MOV R0,#4EH LCALL PRINT MOV R0,#4FH LCALL PRINT MOV R0,#3AH LCALL PRINT MOV A,4CH ADD A,#30H MOV R0,A LCALL PRINT MOV R0,#0DH LCALL PRINT NOP NOP NOP RET
TEPRI: MOV DPTR,#0DFFEH MOVX A,@DPTR ANL A,#01H RET OUTPRN: MOV R0,A MOV A,@R0 MOV R6,A INC R0 MOV A,@R0 MOV R7,A LCALL BCDT MOV A,R3 ANL A,#0F0H SWAP A LCALL PRI55 MOV A,R3 ANL A,#0FH LCALL PRI55 MOV A,R4 ANL A,#0F0H SWAP A LCALL PRI55 MOV A,R4 ANL A,#0FH LCALL PRI55
RET PRI55: MOV DPTR,#TAB5 MOVC A,@A+DPTR MOV R0,A LCALL PRINT RET
AUTOPRI:MOV A,#00H AUTOPR1:MOV DPTR,#TAB2 PUSH ACC MOVC A,@A+DPTR JZ AUTOPB MOV R0,A LCALL PRINT POP ACC INC A LJMP AUTOPR1 AUTOPB: POP ACC RET
T0INT: PUSH ACC PUSH B PUSH PSW PUSH DPH PUSH DPL MOV IE,#00H CLR TR0 CLR TF0 INC 40H MOV A,40H CJNE A,#0F9H,RETIT0 INC 41H MOV 40H,#00H MOV A,41H CJNE A,3CH,RETIT0 MOV 40H,#00H MOV 41H,#00H CPL 09H MOV C,09H MOV A,#0FFH MOV ACC.5,C MOV DPTR,#0BFF2H MOVX @DPTR,A JB 09H,RETIT1 MOV 3CH,3AH AJMP RETIT0 RETIT1: MOV 3CH,3BH RETIT0: MOV TH0,#00H MOV TL0,#00H MOV IE,#82H SETB TR0 SETB IE0 POP DPL POP DPH POP PSW POP B POP ACC RETI AUTOZY: MOV 57H,#04H MOV 54H,#00H MOV 55H,3AH LCALL INKEY MOV 3AH,59H LCALL WEN LCALL NORET LCALL WEN MOV R1,#250 MOV R0,#3AH LCALL WRITE MOV 57H,#03H MOV 54H,#00H MOV 55H,3BH LCALL INKEY MOV 3BH,59H LCALL WEN LCALL NORET LCALL WEN MOV R1,#251 MOV R0,#3BH LCALL WRITE JB 11H,RETZY MOV IE,#00H MOV A,#0FFH MOV DPTR,#0BFF2H MOVX @DPTR,A SETB 09H RET RETZY: MOV IE,#82H MOV 3CH,#01H MOV TL0,#00H MOV TH0,#00H MOV 41H,#00H SETB TR0 RET OUTTAL: MOVX A,@DPTR MOV R6,A INC DPTR MOVX A,@DPTR MOV R7,A LCALL BCDT MOV A,R2 ANL A,#0F0H SWAP A LCALL PRI55 MOV A,R2 ANL A,#0FH LCALL PRI55 MOV A,R3 ANL A,#0F0H SWAP A LCALL PRI55 MOV A,R3 ANL A,#0FH LCALL PRI55 MOV A,R4 ANL A,#0F0H SWAP A LCALL PRI55 MOV A,R4 ANL A,#0FH LCALL PRI55 RET TOTAL: MOV A,#00H MOV 49H,#05H MOV DPTR,#0BE1EH TOTA: PUSH DPH PUSH DPL TOTA001:MOV DPTR,#TAB6 PUSH ACC MOVC A,@A+DPTR JZ TOTARET MOV R0,A LCALL PRINT POP ACC INC A LJMP TOTA001 TOTARET:POP ACC MOV A,#06H SUBB A,49H ADD A,#30H MOV R0,A LCALL PRINT MOV R0,#3AH LCALL PRINT LPTOTA: POP DPL POP DPH INC DPTR INC DPTR PUSH DPH PUSH DPL LCALL OUTTAL POP DPL POP DPH DJNZ 49H,TOTA MOV A,#00H TTA: MOV DPTR,#TAB9 PUSH ACC MOVC A,@A+DPTR JZ T1OTA01 MOV R0,A LCALL PRINT POP ACC INC A LJMP TTA T1OTA01:POP ACC MOV A,#3EH LCALL OUTPRN MOV A,#00H T1OTA: MOV DPTR,#TAB7 PUSH ACC MOVC A,@A+DPTR JZ DEL1 MOV R0,A LCALL PRINT POP ACC INC A LJMP T1OTA DEL1: POP ACC MOV A,#00H T2OTA: MOV DPTR,#TAB8 PUSH ACC MOVC A,@A+DPTR JZ RETDE2 MOV R0,A LCALL PRINT POP ACC INC A LJMP T2OTA RETDE2: POP ACC MOV R0,#0DH LCALL PRINT LPRETD2: LCALL KEY JZ LPRETD2 DEC A CJNE A,#01H,RETDE222 MOV DPTR,#0BE20H MOV R2,#10 MOV A,#00H LPTO: MOVX @DPTR,A INC DPTR DJNZ R2,LPTO MOV R2,#10 MOV DPTR,#0BE20H MOV R1,#235 LCALL WEN LCALL NORET LPTO01: LCALL WEN LCALL WRITE1 INC DPTR INC R1 DJNZ R2,LPTO01 RETDE222:RET
PRINT: CLR P1.0 SETB P1.0 MOV DPTR,#0DFFEH MOVX A,@DPTR ANL A,#01H JNZ PRINT MOV DPTR,#0DFFDH MOV A,R0 MOVX @DPTR,A MOV DPTR,#5FFFH MOV DPTR,#5FFFH MOV DPTR, #5FFFH CLR A CLR A CLR A CLR A MOVX @DPTR,A MOVX @DPTR,A MOVX @DPTR,A
LCALL PRWT LCALL INIT79 MOV R7,#04H CLR A PRILOP: MOVX @DPTR,A DJNZ R7,PRILOP RET PRNO: LCALL INIT79 MOV A,#6EH MOVX @DPTR,A MOV A,#6DH MOVX @DPTR,A MOV A,#3EH MOVX @DPTR,A MOV A,#7CH MOVX @DPTR,A PRWT: LCALL INIT79 MOV A,#48H MOVX @DPTR,A MOV A,#48H MOVX @DPTR,A MOV A,#77H MOVX @DPTR,A MOV A,#73H MOVX @DPTR,A RET INIT79: MOV DPTR,#1FFFH MOV A,#90H MOVX @DPTR,A MOV DPTR,#1F7FH RET INIPRI: MOV R0,#1BH LCALL PRINT MOV R0,#40H LCALL PRINT MOV R0,#1BH LCALL PRINT MOV R0,#40H LCALL PRINT MOV R0,#1BH LCALL PRINT MOV R0,#40H LCALL PRINT MOV R0,#1BH LCALL PRINT MOV R0,#40H LCALL PRINT MOV R0,#1BH LCALL PRINT MOV R0,#63H LCALL PRINT MOV R0,#01H LCALL PRINT MOV R0,#1BH LCALL PRINT MOV R0,#4FH LCALL PRINT MOV R0,#1BH LCALL PRINT MOV R0,#36H LCALL PRINT RET
ORG 1A00H ;TAB Copyright Lnhn 1995,2000 TAB1:DB 20H,20H,20H,43H,6FH,70H,79H,72H,69H,67H,68H,74H,20H DB 4CH,6EH,68H,6EH,20H,56H,31H,39H,39H,35H,2CH,32H,30H,30H,30H,00H ; M:XXX ; M1=XXXX DP1=XXX ; M2=XXXX DP2=XXX ; M3=XXXX DP3=XXX ; M4=XXXX DP4=XXX ; M5=XXXX DP5=XXX ; Copyright Lnhn 1995,2000 TAB2: DB 20H,20H,20H,20H,20H,20H,00H TAB3: DB 20H,20H,20H,20H,44H,50H,00H TAB4: DB 20H,20H,20H,20H,20H,20H,20H,20H,4DH,3AH,00H TAB5: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,20H,0DH,0AH ;ASCII 0 1 2 3 4 5 6 7 8 9 CR LF ; 0 1 2 3 4 5 6 7 8 9 A B C D E F 10H 11H 12H ; 0 1 2 3 4 5 6 7 8 9 A B C D E F 10H 11H 12H TAB: DB 3FH,06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH,6FH,00H,54H,58H,40H, 73H,77H,3EH,6DH,79H ; n c - P A U S E TAB6: DB 0AH,20H,20H,20H,20H,54H,4FH,54H,41H,4CH,00H TAB7: DB 0AH,20H,50H,72H,65H,73H,73H,20H,61H,6EH,79H,20H,6FH,74H,68H,65H,72H DB 20H,6BH,65H,79H,20H,72H,65H,74H,75H,72H,6EH,00H TAB8: DB 0AH,20H,50H,72H,65H,73H,73H,20H,22H,0EEH,22H,20H,6BH,65H,79H,20H DB 63H,6CH,65H,61H,72H,20H,54H,4FH,54H,41H,4CH,20H,74H,6FH,20H,30H,30H,30H,30H,30H,30,0AH,0AH,00H TAB9: DB 0AH,20H,20H,20H,20H,54H,4FH,54H,41H,4CH,20H,4EH,4FH,3AH,00H END
|