⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p2764.asm

📁 微型针式打印机的源代码和PCB图纸
💻 ASM
📖 第 1 页 / 共 5 页
字号:
Q07BA:            MOV	A,#01H
                  MOV	R1,A
                  MOV	R2,A
                  MOV	R3,A
                  LCALL PRINT_CHAR_LINE
                  RET
;=========================================================
Q07C3:            MOV	A,#80H
                  JNB	24H.5,Q07CA
                  MOV	A,#01H
Q07CA:            RET
;=======================================================
;R2保存字符高度倍数
Q07CB:            LCALL	Q0BD8
Q07CE:            CLR	P1.0
Q07D0:            SETB	P3.3
Q07D2:            JNB	P3.3,Q07D0
Q07D5:            SETB	P3.4
                  SETB	P3.3
                  JB	P3.4,Q07D5
                  JB	P3.3,Q07D5
                  MOV	R6,#00H
Q07E1:            LCALL PRINT_LINE
                  MOV   A,14H
                  XRL	A,R6
                  JNZ	Q07E1
                  SJMP	Q07EB
Q07EB:            SETB	P3.4
                  JNB	P3.4,Q07EB
                  ORL	P1,#FEH
                  DJNZ	R2,Q07CE
                  MOV	IE,35H
                  RET
;===========================================================                  
PRINT_LINE:       MOV   A,R6
                  MOV	R0,A
                  LCALL	Q084B
                  LCALL	Q083C
Q0801:            SETB	P3.4
                  JNB	P3.4,Q0801
                  ORL	P1,#FEH
                  JZ	Q080D
                  CLR	P1.4
Q080D:            LCALL	Q083C
Q0810:            SETB	P3.4
                  JB	P3.4,Q0810
                  ORL	P1,#FEH
                  JZ	Q081C
                  CLR	P1.3
Q081C:            LCALL	Q083C
Q081F:            SETB	P3.4
                  JNB	P3.4,Q081F
                  ORL	P1,#FEH
                  JZ	Q082B
                  CLR	P1.2
Q082B:            LCALL	Q083C
Q082E:            SETB	P3.4
                  JB	P3.4,Q082E
                  ORL	P1,#FEH
                  JZ	Q083A
                  CLR	P1.1
Q083A:            INC	R6
                  RET
;=====================================================
Q083C:            LCALL	Q0848
                  PUSH	ACC
                  MOV	A,14H
                  ADD	A,R0
                  MOV	R0,A
                  POP	ACC
                  RET
;======================================================
Q0848:            MOVX	A,@R0
                  ANL	A,R5
                  RET
;======================================================
Q084B:            SETB	P3.2
                  JNB	P3.2,Q0854
                  CLR	24H.1
                  SJMP	Q0862
Q0854:            JB	24H.1,Q0862
                  MOV	A,2DH
                  XRL	A,#08H
                  JZ	Q0862
                  MOV	A,2DH
                  INC	A
                  MOV	2DH,A
Q0862:            RET
;==================================================
Q0863:            MOV	A,21H
                  CJNE	A,#02H,Q086E
                  MOV	A,34H
                  JNZ	Q0882
                  SJMP	Q0876
Q086E:            MOV	A,34H
                  JNZ	Q087A
                  XRL	A,#7FH
                  JZ	Q0879
Q0876:            MOV	A,R0
Q0877:            MOV	34H,A
Q0879:            RET
;===================================================
Q087A:            MOV	A,R0
                  XRL	A,#7FH
                  JNZ	Q0882
                  CLR	A
                  SJMP	Q0877
Q0882:            MOV	A,34H
                  XCH	A,R0
                  MOV	34H,A
                  MOV	A,R0
                  ACALL	Q088B
                  RET
;======================================================
Q088B:            CLR	27H.4
                  MOV	R3,A
                  CLR	A
                  MOV	R1,A
                  LCALL SET_P1
                  LCALL GET_CHAR_WIDTH
                  MOV	R2,A
                  CLR	A
                  CJNE	A,3CH,Q089D
                  MOV	R1,37H
Q089D:            JB	27H.6,Q08B4
                  MOV	A,3BH
                  JZ	Q08BE
                  ADD	A,R1
                  MOV	R1,A
                  MOV	A,3CH
                  ADD	A,R1
                  MOV	R0,A
                  MOV	A,19H
                  CLR	C
                  SUBB	A,R0
                  JNC	Q08C1
                  ADD	A,R1
                  MOV	R1,A
                  SJMP	Q08C1
Q08B4:            JNB	27H.5,Q08BE
                  LCALL	Q0975
                  CLR	27H.5
                  ADD	A,R1
                  MOV	R1,A
Q08BE:            MOV	A,R1
                  JZ	Q08DC
Q08C1:            PUSH	03H
Q08C3:            MOV	B,#20H
                  PUSH	02H
                  MOV	R2,#01H
                  LCALL	Q08E6
                  POP	02H
                  JB	27H.4,Q08D4
                  DJNZ	R1,Q08C3
Q08D4:            POP	03H
                  MOV	3BH,#00H
                  JB	27H.4,Q088B
Q08DC:            MOV	A,R3
                  MOV	B,A
                  LCALL	Q08E6
                  JB	27H.4,Q088B
                  RET
;==================================================
Q08E6:            MOV	A,R2
                  ADD	A,3CH
                  MOV	3CH,A
                  CLR	C
                  SUBB	A,19H
                  JZ	Q090E
                  JC	Q090E
                  PUSH	B
                  PUSH	03H
                  LCALL	Q075E
                  ORL	P1,#FFH
                  JNB	25H.4,Q0906
                  MOV	A,#06H
Q0901:            INC	R6
                  DEC	R7
                  DEC	A
                  JNZ	Q0901
Q0906:            POP	03H
                  POP	B
                  MOV	A,R3
                  SETB	27H.4
                  RET
Q090E:            ACALL	Q0956
                  LCALL SET_P1
                  RET
;========================================================
Q0914:            MOV   A,10H
                  CJNE	A,#01H,Q091F
                  MOV   A,#10H          ;16字符
                  MOV   R0,#18H         ;24
                  SJMP	Q094A
Q091F:            CJNE	A,#03H,Q0928
                  MOV   A,#20H          ;32字符
                  MOV   R0,#30H         ;48
                  SJMP	Q094A
Q0928:            CJNE	A,#04H,Q0931
                  MOV   A,#28H          ;40字符
                  MOV   R0,#3CH         ;60
                  SJMP	Q094A
Q0931:            CJNE  A,#06H,Q0939
                  MOV   A,#2AH          ;42字符
                  MOV   R0,A            ;42
                  SJMP	Q094A
Q0939:            CJNE  A,#07H,Q0941
                  MOV   A,#1EH          ;30字符
                  MOV   R0,A            ;30
                  SJMP	Q094A
Q0941:            MOV	R0,#24H
                  CJNE	A,#05H,Q0948
                  MOV	R0,#18H
Q0948:            MOV   A,#18H          ;24字符
Q094A:            MOV	13H,A
                  MOV	14H,R0
                  MOV	B,A
                  MOV	A,#06H
                  MUL	AB
                  MOV   15H,A           ;一行点数
                  RET
;==============================================================
Q0956:            PUSH  01H
                  PUSH	02H
                  PUSH	B
                  POP	ACC
                  PUSH	ACC
                  LCALL	Q13A6
                  POP	B
                  POP	02H
                  PUSH	02H
                  PUSH	B
                  LCALL	Q1473
                  POP	B
                  POP	02H
                  POP	01H
                  RET
;=============================================================
Q0975:            PUSH  01H
                  MOV	A,3CH
                  ADD	A,R1
                  MOV	R1,A
                  MOV	A,2FH
                  CLR	C
                  SUBB	A,R1
                  JNC	Q0982
                  CLR	A
Q0982:            POP	01H
                  RET
;============================================================
                  MOV	A,3CH
                  ADD	A,R1
                  MOV	3CH,A
                  RET
;==================================================
Q098B:            MOV	DPTR,#0250H
                  JNB	24H.5,Q0994
                  MOV	DPTR,#01FCH
Q0994:            RET
;===================================================
Q0995:            MOV	DPTR,#01FCH
                  JNB	24H.5,Q099E
                  MOV	DPTR,#0250H
Q099E:            RET
;================================================
Q099F:
                  MOV	A,1CH
                  CLR	C
                  SUBB	A,#03H
                  JC	Q09BA
                  ACALL	Q09EF
                  JNC	Q09BA
                  LCALL CHAR_W_H_TO_R2_R1
                  ACALL	Q098B
                  SETB	27H.1
                  ACALL	Q0A03
                  ACALL	Q098B
                  LCALL CLR_RAM54
                  SETB	27H.0
Q09BA:            RET
;===================================================
Q09BB:            MOV   A,1CH
                  JZ	Q09DD
                  ACALL	Q09F3
                  JC	Q09DE
                  MOV	A,1CH
Q09C5:            JNB	27H.0,Q09CB
                  DEC	A
                  CLR	27H.0
Q09CB:            PUSH	ACC
                  MOV	A,1FH
                  CJNE	A,#01H,Q09D4
                  MOV	A,1EH
Q09D4:            MOV	B,A
                  POP	ACC
                  MUL	AB
                  MOV	R5,A
                  LCALL	Q14BB
Q09DD:            RET
;===================================================
Q09DE:            LCALL CHAR_W_H_TO_R2_R1
                  ACALL	Q0995
                  ACALL	Q0A03
                  ACALL	Q0995
                  LCALL CLR_RAM54
                  MOV	A,1CH
                  DEC	A
                  SJMP	Q09C5
;=====================================================
Q09EF:            ACALL	Q098B
                  SJMP	Q09F5
;=====================================================
Q09F3:            ACALL	Q0995
Q09F5:            MOV	R0,13H
Q09F7:            MOVX	A,@DPTR
                  JNZ	Q0A01
                  INC	DPTR
                  INC	DPTR
                  DJNZ	R0,Q09F7
                  CLR	C
                  SJMP	Q0A02
Q0A01:            SETB	C
Q0A02:            RET
;=====================================================
Q0A03:            MOV	R3,13H
Q0A05:            MOVX	A,@DPTR
                  INC	DPTR
                  JZ	Q0A18
                  MOV	R5,A
                  MOVX	A,@DPTR
                  MOV	R0,A
                  LCALL	Q07C3
                  MOV	P2,#01H
Q0A12:            LCALL PUT_A_TO_@R0
                  INC	R0
                  DJNZ	R5,Q0A12
Q0A18:            INC	DPTR
                  DJNZ	R3,Q0A05
                  PUSH	01H
                  LCALL	Q07BA
                  MOV	P2,#00H
                  POP	01H
                  MOV	A,R1
                  DEC	A
                  MOV	R5,A
                  LCALL	Q14BB
                  RET
;===================================================
Q0A2C:
                  LCALL GET_BYTE_TO_R0
                  CJNE	A,#1BH,Q0A36
                  MOV	A,#01H
                  SJMP	Q0A40
Q0A36:            MOV	A,33H
                  CJNE	A,#01H,Q0A47
                  CJNE	R0,#22H,Q0A44
                  MOV	A,#02H
Q0A40:            MOV	33H,A
                  SJMP	Q0A51
Q0A44:            CLR	A
                  SJMP	Q0A40
Q0A47:            CJNE	A,#02H,Q0A44
                  CJNE	R0,#00H,Q0A44
                  MOV	A,#03H
                  MOV	33H,A
Q0A51:            MOV	A,R0
                  PUSH	ACC
                  SWAP	A
                  ANL	A,#0FH
                  LCALL	Q12A7
                  LCALL	Q088B
                  POP	ACC
                  ANL	A,#0FH
                  LCALL	Q12A7
                  LCALL	Q088B
                  MOV	A,33H
                  CJNE	A,#03H,Q0A72
                  CLR	A
                  MOV	33H,A
                  CLR	C
                  SJMP	Q0A73
Q0A72:            SETB	C
Q0A73:            RET
;==========================================
TIMER0_INT:       MOV   A,#01H
                  ADD	A,R0
                  MOV	R0,A
                  RETI
;==========================================
Q0A79:            LCALL INIT_SYTEM
                  ACALL	Q0B9D
                  MOV	R0,#01H
Q0A80:            MOV	A,R0
                  MOV	21H,A
                  MOV	A,#20H
Q0A85:            PUSH	ACC
                  PUSH	00H
                  LCALL	Q088B
                  POP	00H
                  POP	ACC
                  INC	A
                  CJNE	A,#00H,Q0A85
                  PUSH	00H
                  ACALL	Q0B9A
                  POP	00H
                  INC	R0
                  MOV	R5,#08H
                  LCALL	Q14BB
                  CJNE	R0,#03H,Q0A80
                  LCALL INIT_SYTEM
                  MOV	A,#02H
                  MOV	1DH,A
                  MOV	R0,#04H
                  MOV   DPTR,#Q0FC3
                  ACALL	Q0B98
                  MOV   DPTR,#Q0FC7
                  MOV	R0,#0CH
                  ACALL	Q0B98
                  LCALL INIT_SYTEM
                  MOV	R5,#08H
                  LCALL	Q14BB
                  MOV   DPTR,#Q1006
                  ACALL	Q0B3A
                  JB    LF,Q0ACF

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -