KK: JNB 26H.0,KK1<br /> NOP ;STOP<br /> DJNZ 71H,KK01<br /> CALL ST<br /> CLR EA<br /> JMP WA<br />KK01: JNB 24H.3 ,KK02<br /> CALL ST<br /> RET<br />KK02: SETB 23H.7<br /> CLR 23H.6<br />; CLR 20H.3<br /> RET<br />KK1: JNB 26H.6,KK2<br /> NOP ;RUN<br /> SETB 23H.6<br /> CLR 23H.7<br />KK0: RET<br />KK2: JNB 26H.4,KK3<br /> JB 27H.4,KK0<br /> SETB 27H.4<br /> INC 15H<br /> MOV A,#04<br />;;;;; JB 21H.2,KK21<br /> MOV A,#06<br />KK21: CJNE A,15H,KM<br /> MOV 15H,#01<br /> CLR 27H.0<br /> JMP KM ;MODE<br />KK3: JNB 26H.7,KK4<br /> JB 27H.5,KK0<br /> SETB 27H.5 ;ENT<br /> JMP KE<br />KK4: JNB 26H.5,KK5<br />; JB 27H.6,KK0<br />; SETB 27H.6 ;^<br /> JMP KS<br />KK5: JNB 26H.3,KK6<br />; JB 27H.7,KK0<br />; SETB 27H.7 ;v<br /> JMP KX<br />KK6: ANL 27H,#00001111B<br /> MOV 13H,#0<br /> MOV 14H,#1<br /> MOV 70H,#10<br /> MOV 71H,#250<br /> JNB 27H.1,KK61<br /> CLR 27H.1<br /> MOV R0,#4AH<br /> MOV R2,#00H<br /> MOV R3,#2<br /> CALL I2CW<br />KK61: RET<br /><br />KM: JB 20H.3,KK61<br /> MOV A,15H<br /> CJNE A,#1,KM1<br /> MOV R2,50H ;H<br /> MOV R3,51H<br /> MOV 1CH,#00H<br /> MOV 12H,#1<br /> SETB 20H.6<br /> JMP KM00<br /><br />KM1: CJNE A,#2,KM2 ;F<br /> MOV A,78H<br /> CJNE A,#0,KM11<br /> MOV R2,4AH ;0F<br /> MOV R3,4BH<br />KM10: MOV 1CH,#00H<br /> MOV 12H,#2<br /> SETB 20H.6<br /> JMP KM00<br />KM11: CJNE A,#1,KM12<br /> MOV R2,56H ;1F<br /> MOV R3,57H<br /> JMP KM10<br /><br />KM12: CJNE A,#2,KM13<br /> MOV R2,4AH ;2F<br /> MOV R3,4BH<br /> JMP KM10<br /><br />KM13: CJNE A,#3,KM14<br /> MOV R2,56H ;3F<br /> MOV R3,57H<br /> JMP KM10<br /><br />KM14: MOV R2,5CH ;4F<br /> MOV R3,5DH<br /> JMP KM10<br /><br />KM2: CJNE A,#3,KM3<br /> MOV A,7BH ;A<br /> MOV B,42H<br /> MUL AB<br /> RLC A<br /> MOV A,B<br /> RLC A<br /> MOV R3,A<br /> CLR A<br /> RLC A<br /> MOV R2,A<br /> MOV 1CH,#00H<br /> MOV 12H,#3<br /> SETB 20H.6<br /> JMP KM00<br /><br />KM3: CJNE A,#4,KM4 ;Pr<br /> JB 27H.0,KM01<br /> MOV 1CH,#00H<br /> MOV 12H,#4<br /> CLR 20H.6<br /> JMP KS23<br /><br />KM4: CJNE A,#5,KM0 ;E<br /> MOV R2,#00H<br /> MOV R3,40H<br /> MOV 1CH,#00H<br /> MOV 12H,#5<br /> CLR 20H.6<br /> JMP KM00<br />KM0: RET<br /><br />KM00: CLR 27H.0<br />KM02: CALL BTD<br /> CALL DIR<br /> RET<br />KM01: JMP KS4<br /> MOV R2,10H<br /> MOV R3,11H<br /> JMP KM02<br /><br />KE: MOV A,15H<br /> CJNE A,#4,KE1<br /> CPL 27H.0<br /> JNB 27H.0,KE2<br /> MOV A,16H<br /> ADD A,16H<br /> MOV R2,A<br /> MOV R0,#10H<br /> MOV R3,#2<br /> CALL I2CR<br /> MOV 12H,#0<br /> JMP KS4<br />KE1: RET<br />KE2:<br /> MOV A,16H<br /> CJNE A,#33,KE21<br /> MOV A,11H<br /> JZ KE21<br /> JB 21H.2,KE21<br /> CALL RK0<br /> CALL RA<br /> MOV 12H,#00H<br /> MOV 18H,#00H<br /> MOV 19H,#39H<br /> MOV 1AH,#3FH<br /> MOV 1BH,#5BH<br /> RET<br />KE21: ADD A,16H<br /> MOV R2,A<br /> MOV R0,#10H<br /> MOV R3,#2<br /> CALL I2CW<br /> JMP KS23<br /><br />KS11: MOV 14H,#50<br /> JMP KS12<br />KS1: CJNE A,#2,KS2<br /> JMP KS10<br />KS0: RET<br />KS: MOV A,15H<br /> CJNE A,#1,KS1<br />KS10: DJNZ 14H,KS0<br /> DJNZ 70H,KS11<br /> MOV 70H,#1<br /> MOV 14H,#5<br />KS12: MOV A,4BH<br /> ADD A,#1<br /> MOV 4BH,A<br /> MOV A,4AH<br /> ADDC A,#0<br /> MOV 4AH,A<br /> MOV R4,4AH<br /> MOV R5,4BH<br /> MOV R6,58H<br /> MOV R7,59H<br /> CALL WMP2<br /> JB 21H.1,KS13<br /> MOV 4AH,58H<br /> MOV 4BH,59H<br />KS13: MOV R2,4AH<br /> MOV R3,4BH<br /> SETB 27H.1<br /> CALL BTD<br /> CALL DIR<br /> RET<br /><br />KS21: MOV 14H,#100<br /> JMP KS22<br /><br />KS2: CJNE A,#4,KS0<br /> DJNZ 14H,KS0<br /> DJNZ 70H,KS21<br /> MOV 70H,#1<br /> MOV 14H,#50<br />KS22: JB 27H.0,KS3<br /> MOV A,16H<br /> ADD A,#1<br /> MOV 16H,A<br /> CLR C<br /> SUBB A,#33<br /> JC KS23<br /> MOV 16H,#00<br />KS23: MOV R2,#00H<br /> MOV R3,16H<br /> MOV 12H,#4<br /> CALL BTD<br /> CALL DIR<br /> RET<br /><br />KS3: INC 13H<br /> MOV A,13H<br /> CJNE A,#11,$+3<br /> JNC KS31<br /> MOV A,11H<br /> ADD A,#1<br /> MOV 11H,A<br /> MOV A,10H<br /> ADDC A,#0<br /> MOV 10H,A<br /> JMP KS4<br />KS31: CJNE A,#20,$+3<br /> JNC KS32<br /> MOV A,11H<br /> ADD A,#10<br /> MOV 11H,A<br /> MOV A,10H<br /> ADDC A,#0<br /> MOV 10H,A<br /> JMP KS4<br /><br />KS32: MOV 13H,#20<br /> MOV A,11H<br /> ADD A,#100<br /> MOV 11H,A<br /> MOV A,10H<br /> ADDC A,#0<br /> MOV 10H,A<br /> JMP KS4<br />KS4: MOV DPTR,#KKB<br /> MOV A,16H<br /> MOV B,#8<br /> MUL AB<br /> ADD A,DPL<br /> MOV DPL,A<br /> MOV A,B<br /> ADDC A,DPH<br /> MOV DPH,A<br /> MOV A,#2<br /> MOVC A,@A+DPTR<br /> MOV R4,A<br /> MOV A,#3<br /> MOVC A,@A+DPTR<br /> MOV R5,A<br /> MOV R6,10H<br /> MOV R7,11H<br /> CALL WMP2<br /> JB 21H.0,KS41<br /> MOV 10H,R4<br /> MOV 11H,R5<br />KS41: MOV A,#7<br /> MOVC A,@A+DPTR<br /> MOV C,ACC.0<br /> MOV 20H.6,C<br /> MOV R2,10H<br /> MOV R3,11H<br /> CALL BTD<br /> CALL DIR<br /> RET<br /><br />KX0: RET<br />KX1: CJNE A,#2,KX2<br /> JMP KX10<br />KX11: MOV 14H,#100<br /> JMP KX12<br />KX: MOV A,15H<br /> CJNE A,#1,KX1<br />KX10: DJNZ 14H,KX0<br /> DJNZ 70H,KX11<br /> MOV 70H,#1<br /> MOV 14H,#5<br />KX12: MOV A,4BH<br /> CLR C<br /> SUBB A,#1<br /> MOV 4BH,A<br /> MOV A,4AH<br /> SUBB A,#0<br /> MOV 4AH,A<br /> JNC KX14<br /> MOV 4AH,#00<br /> MOV 4BH,#00<br />KX14: MOV R2,4AH<br /> MOV R3,4BH<br /> SETB 27H.1<br /> CALL BTD<br /> CALL DIR<br /> RET<br />KX21: MOV 14H,#100<br /> JMP KX22<br /><br />KX2: CJNE A,#4,KX0<br /> DJNZ 14H,KX0<br /> DJNZ 70H,KX21<br /> MOV 70H,#1<br /> MOV 14H,#50<br />KX22: JB 27H.0,KX3<br /> MOV A,16H<br /> CLR C<br /> SUBB A,#1<br /> MOV 16H,A<br /> JNC KX31<br /> MOV 16H,#33<br />KX23: MOV R2,#00H<br /> MOV R3,16H<br /> MOV 12H,#4<br /> CALL BTD<br /> CALL DIR<br /> RET<br /><br />KX3: INC 13H<br /> MOV A,13H<br /> CJNE A,#11,$+3<br /> JNC KX31<br /> MOV A,11H<br /> CLR C<br /> SUBB A,#1<br /> MOV 11H,A<br /> MOV A,10H<br /> SUBB A,#0<br /> MOV 10H,A<br /> JMP KX4<br />KX31: CJNE A,#20,$+3<br /> JNC KX32<br /> MOV A,11H<br /> CLR C<br /> SUBB A,#10<br /> MOV 11H,A<br /> MOV A,10H<br /> SUBB A,#0<br /> MOV 10H,A<br /> JMP KX4<br /><br />KX32: MOV 13H,#20<br /> MOV A,11H<br /> CLR C<br /> SUBB A,#100<br /> MOV 11H,A<br /> MOV A,10H<br /> SUBB A,#0<br /> MOV 10H,A<br /> JMP KX4<br />KX4: MOV DPTR,#KKB<br /> MOV A,16H<br /> MOV B,#8<br /> MUL AB<br /> ADD A,DPL<br /> MOV DPL,A<br /> MOV A,B<br /> ADDC A,DPH<br /> MOV DPH,A<br /> CLR A<br /> MOVC A,@A+DPTR<br /> MOV R4,A<br /> MOV A,#1<br /> MOVC A,@A+DPTR<br /> MOV R5,A<br /> MOV A,#7<br /> MOVC A,@A+DPTR<br /> MOV C,ACC.0<br /> MOV 20H.6,C<br /> MOV A,10H<br /> JB ACC.7,KX41<br /> MOV R6,A<br /> MOV R7,11H<br /> CALL WMP2<br /> JB 21H.1,KX42<br />KX41: MOV 10H,R4<br /> MOV 11H,R5<br /><br />KX42: MOV R2,10H<br /> MOV R3,11H<br /> CALL BTD<br /> CALL DIR<br /> RET<br /><br />ADC: ANL ADCON1,#11111000B ;AN0 VG<br /> NOP<br /> NOP<br /> NOP<br /> INC ADDATL<br />ADC1: NOP<br /> JB ADCON0.4,ADC1<br /> CLR IADC<br /> MOV 4EH,ADDATH<br /> MOV 4FH,ADDATL<br /> ORL ADCON1,#00000001B ;AN1 VA<br /> NOP<br /> NOP<br /> NOP<br /> INC ADDATL<br />ADC2: NOP<br /> JB ADCON0.4,ADC2<br /> CLR IADC<br /> MOV 42H,ADDATH<br /> MOV 43H,ADDATL<br /> ORL ADCON1,#00000111B ;AN7 VDC<br /> NOP<br /> NOP<br /> NOP<br /> INC ADDATL<br />ADC3: NOP<br /> JB ADCON0.4,ADC3<br /> CLR IADC<br /> MOV 40H,ADDATH<br /> MOV 41H,ADDATL<br /> RET<br /><br />O95: DJNZ 17H,O96<br /> MOV 17H ,#5<br />I65: MOV R0,#8<br /> SETB P3.0<br />I66: CLR P2.6<br /> MOV C,P3.0<br /> RLC A<br /> SETB P2.6<br /> NOP<br /> DJNZ R0,I66<br /> CPL A<br /> ANL A,#0FFH<br /> MOV R1,A<br /> XRL A,77H<br /> JNZ I67<br /> MOV 26H,77H<br /> JMP O96<br />I67: MOV 77H,R1<br />O96: ; CLR P3.5 ;SY<br /> CLR P2.5 ;NMDVF<br /> MOV R0,#08<br /> MOV A,17H<br /> ADD A,#2<br /> MOVC A,@A+PC<br /> SJMP O97<br />DB 11111111B<br />DB 11111110B<br />DB 11111101B<br />DB 11111011B<br />DB 11110111B<br />DB 11101111B<br />DB 11111111B<br />DB 11111111B<br />O97: CLR P2.6<br /> RLC A<br /> MOV P3.1,C<br /> NOP<br /> NOP<br /> NOP<br /> NOP<br /> SETB P2.6<br /> DJNZ R0,O97<br /> MOV A,17H<br /> ADD A,#17H<br /> MOV R0,A<br /> MOV A,@R0<br /> MOV R0,#08H ;ACCA=HC595<br />O98: CLR P2.6<br /> RLC A<br /> MOV P3.1,C<br /> NOP<br /> NOP<br /> NOP<br /> NOP<br /> SETB P2.6<br /> DJNZ R0,O98<br /> CLR P3.1<br />; SETB P3.5 ;SY<br /> SETB P2.5 ;NMDVF<br /> RET<br /><br />M2UL: MOV A,R2 ;R2R3*R6R7=R4R5R6R7<br /> XRL A,R6<br /> MOV C,ACC.7<br /> MOV F0,C<br /> MOV A,R2<br /> CLR ACC.7<br /> MOV R2,A<br /> MOV A,R6<br /> CLR ACC.7<br /> MOV R6,A<br /> MOV A,R3<br /> MOV B,R7<br /> MUL AB<br /> XCH A,R7<br /> MOV R5,B<br /> MOV B,R2<br /> MUL AB<br /> ADD A,R5<br /> MOV R4,A<br /> CLR A<br /> ADDC A,B<br /> MOV R5,A<br /> MOV A,R6<br /> MOV B,R3<br /> MUL AB<br /> ADD A,R4<br /> XCH A,R6<br /> XCH A,B<br /> ADDC A,R5<br /> MOV R5,A<br /> MOV 21H.0,C<br /> MOV A,R2<br /> MUL AB<br /> ADD A,R5<br /> MOV R5,A<br /> CLR A<br /> MOV ACC.0,C<br /> MOV C,21H.0<br /> ADDC A,B<br /> MOV C,F0<br /> MOV ACC.7,C<br /> MOV R4,A<br /> RET<br /><br />DIVL: MOV A,R3 ;R2R3R4R5/R6R7<br /> CLR A ;=R4R5<br /> SUBB A,R7<br /> MOV A, R2<br /> SUBB A,R6<br /> JNC DIVE1<br /> MOV B,#16<br />DIV1: CLR C<br /> MOV A,R5<br /> RLC A<br /> MOV R5,A<br /> MOV A,R4<br /> RLC A<br /> MOV R4,A<br /> MOV A,R3<br /> RLC A<br /> MOV R3,A<br /> XCH A,R2<br /> RLC A<br /> XCH A,R2<br /> MOV F0,C<br /> CLR C<br /> SUBB A,R7<br /> MOV R1,A<br /> MOV A,R2<br /> SUBB A,R6<br /> JB F0,DIV2<br /> JC DIV3<br />DIV2: MOV R2,A<br /> MOV A,R1<br /> MOV R3,A<br /> INC R5<br />DIV3: DJNZ B,DIV1<br /> CLR F0<br /> RET<br />DIVE1: SETB F0<br /> RET<br /><br />A2DD: MOV A,R4 ;R4R5+R6R7=R4R5<br /> MOV C,ACC.7<br /> MOV F0,C<br /> MOV A,R6<br /> MOV C,ACC.7<br /> MOV 21H.0,C<br /> XRL A,R4<br /> MOV C,ACC.7<br /> MOV A,R4<br /> CLR ACC.7<br /> MOV R4,A<br /> MOV A,R6<br /> CLR ACC.7<br /> MOV R6,A<br /> JC DAB2<br /> MOV A,R5<br /> ADD A,R7<br /> MOV R5,A<br /> MOV A,R4<br /> ADDC A,R6<br /> MOV R4,A<br /> JB ACC.7,DABE<br />DAB1: MOV C,F0<br /> MOV ACC.7,C<br /> MOV R4,A<br /> MOV C,21H.0<br /> MOV A,R6<br /> MOV ACC.7,C<br /> MOV R6,A<br /> CLR C<br /> RET<br /><br />DABE: SETB C<br /> RET<br />DAB2: MOV A,R5<br /> CLR C<br /> SUBB A,R7<br /> MOV R5,A<br /> MOV A,R4<br /> SUBB A,R6<br /> MOV R4,A<br /> JNB ACC.7,DAB1<br /> MOV A,R5<br /> CPL A<br /> ADD A,#1<br /> MOV R5,A<br /> MOV A,R4<br /> CPL A<br /> ADDC A,#0<br /> MOV R4,A<br /> CPL F0<br /> SJMP DAB1<br /><br />WMP2: MOV A, R4 ;R4R5>R6R7 21H.0=1<br /> CJNE A,6H,WMP21 ;R4R5<R6R7 21H.1=1<br /> MOV A, R5 ;R4R5=R6R7 21H.0=0 21H.1=0<br /> CJNE A,7H,WMP21<br /> CLR 21H.0<br /> CLR 21H.1<br /> RET<br />WMP21: MOV 21H.1,C<br /> CPL C<br /> MOV 21H.0,C<br /> RET<br /><br />BTD: CLR A ;R2R3.B=R4R5R6.BCD<br /> MOV R4,A<br /> MOV R5,A<br /> MOV R6,A<br /> MOV R7,#16<br />BTD1: CLR C<br /> MOV A,R3<br /> RLC A<br /> MOV R3,A<br /> MOV A,R2<br /> RLC A<br /> MOV R2 ,A<br /> MOV A,R6<br /> ADDC A,R6<br /> DA A<br /> MOV R6,A<br /> MOV A,R5<br /> ADDC A,R5<br /> DA A<br /> MOV R5,A<br /> MOV A,R4<br /> ADDC A,R4<br /> DA A<br /> MOV R4,A<br /> DJNZ R7,BTD1<br /> RET<br /><br />DTB: MOV R2,#3 ;@R0+1+1+1.BCD=<br /> MOV R3,#0 ;R3R4.B<br /> MOV A,@R0<br /> MOV R4,A<br />DTB1: MOV A,R4<br /> MOV B,#10<br /> MUL AB<br /> MOV R4,A<br /> MOV A,#10<br /> XCH A,B<br /> XCH A,R3<br /> MUL AB<br /> ADD A,R3<br /> XCH A,R4<br /> INC R0<br /> ADD A,@R0<br /> XCH A,R4<br /> ADDC A,#0<br /> MOV R3,A<br /> DJNZ R2,DTB1<br /> RET<br /><br />DIR01: SWAP A<br /> CALL RDIR<br /> MOV 19H ,A<br /> MOV A,R5<br /> ANL A,#0FH<br /> CALL RDIR<br /> MOV 1AH,A<br /> MOV A,R6<br /> ANL A,#0F0H<br /> SWAP A<br /> CALL RDIR<br /> MOV 1BH ,A<br /> JMP DIR02<br />DIR: MOV A,R5<br /> ANL A,#0F0H<br /> JB 27H.0,DIR00<br /> JNZ DIR01<br />DIR00: SWAP A<br /> CALL RDIR<br /> MOV 18H ,A<br /> MOV A,R5 ;R4R5R6=18H19H1AH1BH; 20H.6=DP<br /> ANL A,#0FH ;12H ,0= ,1=H, 2=F, 3=A, 4=Pr<br /> CALL RDIR ;5=E<br /> MOV 19H ,A<br /> MOV A,R6<br /> ANL A,#0F0H<br /> SWAP A<br /> CALL RDIR<br /> MOV C,20H.6<br /> MOV ACC.7,C<br /> MOV 1AH,A<br /> MOV A,R6<br /> ANL A,#0FH<br /> CALL RDIR<br /> MOV 1BH ,A<br />DIR02: MOV A,12H<br /> CJNE A,#1,DIR1<br /> MOV 18H,#76H ;H<br /> JMP DIR2<br />DIR1: CJNE A,#2,DIR11<br /> MOV 18H,#71H ;F<br /> JMP DIR2<br />DIR11: CJNE A,#3,DIR12<br /> MOV 18H,#77H ;A<br /> JMP DIR2<br />DIR12: CJNE A,#4,DIR13<br /> MOV 18H,#73H ;Pr<br /> MOV 19H,#50H ;Pr<br /> JMP DIR2<br />DIR13: CJNE A,#5,DIR14<br /> MOV 18H,#79H ;E<br /> JMP DIR2<br />DIR14: MOV A,18H<br /> XRL A,#03FH<br /> JNZ DIR3<br /> MOV 18H,#00H<br />DIR2: MOV A,19H<br /> XRL A,#03FH<br /> JNZ DIR3<br /> MOV 19H,#00H<br /> MOV A,1AH<br /> JB ACC.7,DIR3<br /> XRL A,#03FH<br /> JNZ DIR3<br /> MOV 1AH,#00H<br />DIR3: RET<br /><br />RDIR: ADD A ,#1<br /> MOVC A ,@A+PC<br /> RET<br />DIR0: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H;<br /> DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 00H;<br /><br />I2CW: NOP<br />I2CW3: MOV A ,#0A0H ;<br /> MOV R5 ,#10H<br /> LCALL ICQ<br /> LCALL ICW<br /> MOV A ,R2<br /> &nbs
|