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

📄 skdy1.asm

📁 一个用单片机写的驱动打印机的程序,值得你下载
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	LCALL PRN
	LCALL   PRNNC
	ret


/*;////////////////////////////////////////////	 
EX_2L:   mov     R1,  #4bH
	     mov     @R1,a	
	     anl     a,      #0fh 
	     mov     4ch,    a 
	     mov     R1,    #4bH
         MOV     A,  @R1
	     anl     a,      #0f0h
		 CPL     DOG
	     cjne    a, #20H,huifu
	     mov     a,    4ch           
         mov  dptr,#TXT1
         jmp  huifu1 
huifu:   mov     a,4bh  ;朱祥加
huifu1:  MOV     B,      #8    ;执行打印	 只能查到FF		   1
	   MUL     AB
	   MOV     B,      A
	   MOVC    A,      @A+DPTR
	   MOV     @R0,    A
	   INC     R0
	   CPL     DOG
       RET
;/////////////////////////////////////////// */

EX_2L: MOV     B,      #8    ;执行打印	 只能查到FF		   1
	   MUL     AB
	   MOV     B,      A
	   MOVC    A,      @A+DPTR
	   MOV     @R0,    A
	   INC     R0
	   CPL     DOG
       RET
	  	 
LOAD_2L:MOV     R0,     #08h
	    MOV     R1,     #30H
	    MOV     R2,     #16		  ;移16个字节数据
LOAD_2L1:MOV    A,      @R1	        			        	;//////////////不懂
         LCALL   EX_2L
	     INC     R1
	     CPL      DOG               
	     DJNZ    R2,     LOAD_2L1
	     MOV     R1,#30H
	     INC     DPL                                               
	     MOV     R2,     #16
LOAD_2L2:MOV    A,      @R1
	 LCALL   EX_2L
	 INC     R1
	 DJNZ    R2,     LOAD_2L2
	 INC    DPL
	 CPL    DOG	 
	 RET
	 

PRN:   MOV     DPTR,   #TXT  ; 查表
	MOV     R7,     #4
REPRN:  LCALL   LOAD_2L	 ;处理一个字节
	CPL     DOG
	LCALL   PRN_2L
	DJNZ    R7,     REPRN
	RET
/*/ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
PRNZX:   MOV     DPTR,   #TXT1  ; 查表
	     MOV     R7,     #4
REPRNZX:  LCALL   LOAD_2LZX	 ;处理一个字节
	CPL     DOG
	LCALL   PRN_2L	                    //打印
	DJNZ    R7,     REPRNZX
	RET

LOAD_2LZX:MOV   R0,       #08h
	      MOV     R1,     #30H
	      MOV     R2,     #16		  ;移16个字节数据
LOAD_2L1ZX:MOV    A,      @R1	
        ; cjne     r1,#36h, PAN37
       ;  mov      DPTR,  #TXT1
;PAN37:   cjne     r1,#37h, CHABIAO     
       ;  mov      DPTR,  #TXT1				;//////////////不懂
          LCALL    EX_2LZX           //查表
	      INC      R1
	      CPL      DOG               
	      DJNZ     R2,     LOAD_2L1ZX
		 
	      MOV      R1,#30H
	      INC      DPL
;;
	      MOV     R2,     #16
LOAD_2L2ZX:MOV    A,      @R1
	 LCALL   EX_2L
	 INC     R1
	 DJNZ    R2,     LOAD_2L2ZX
	 INC    DPL
	 CPL    DOG	 
	 RET  

	         JMP     IN256
ADDDPH256: mov  dptr,#TXT1
           ;MOV   B,  r5
           MOV   A,  DPH
           ADD   A,  #1
           MOV   DPH,A
           ;MOV   A,  B
IN256:  mov     a,r5
        MOV     B,      A
    	MOVC    A,      @A+DPTR
    	MOV     @R0,    A
	    INC     R0
	    CPL     DOG
	    RET	 
*/
;;********************************************
LOAD_C: MOV     R0,     #08h
	MOV     R1,     #30H
	MOV     R2,     #16
LOAD_C1:MOV    A,      @R1
	 LCALL   EX_2L
	 INC     R1
	 DJNZ    R2,     LOAD_C1
	 INC     DPL
	 CPL    DOG
	 RET

PRNNC:  MOV     A,      #10	     ;	 打印空格
	cpl     dog
	LCALL   LD
	MOV     DPTR,   #TXT
	MOV     R7,     #5
REPRNC:  LCALL   LOAD_C
	 LCALL   PRN_C
	 DJNZ    R7,     REPRNC
	 RET
	 ;'''''''''''''''''''''''''''''''''''
DLL:    MOV R6,#1;;;;;;;#20;;notice:12mc--1///6mc--double
DLL1:   DJNZ    R6,     DLL1;;or not need
	RET
;;
PRN_2L:
	  clr   moto	     ;电机转
	  MOV     R0,     #08h
LPF2:   MOV     R5,     #02H;;
;;************************
LPF0_TX:   JB      LINE,   LPF01_TX
	 ajmp  LPF3_TX;lpdll_TX
lpf01_TX:  setb tr0
	jnb f0, lpf0_TX
	cpl dog
	ajmp goret1
lpdll_TX:  clr tr0
	mov 29h,#00h
	LCALL   DLL  ;延时
LPF00_TX:  JB      LINE,   LPF0_TX  ;1 ajmp
LPF1_TX:   JNB     LINE,   LPF11_TX
	ajmp lpf3_TX
lpf11_TX:  setb tr0
       jnb f0 ,lpf1_TX
       cpl   dog
       ajmp goret1
LPF3_TX:   clr tr0
	mov 29h ,#00h
	MOV     R4,     #04H
LPF4_TX:   MOV     R3,     #06H
LPF5_TX:   MOV     R2,     #04H
	MOV     R1,     #5AH
	CPL     DOG
LPF6_TX:   MOV     A,      @R0
	MOV     @R1,    A
	INC     R1
	RR      A
	MOV     @R0,    A
	MOV     A,      R0
	ADD     A,      #04H
	MOV     R0,     A
	DJNZ    R2,     LPF6_TX
	MOV     A,      R0
	CLR     C
	SUBB    A,      #16
	MOV     R0,     A
JPB_TX:    JNB     SYN,   JPB1_TX;;B	p1.5
	ajmp jpb2_TX
jpb1_TX:    setb tr0
	cpl dog
	jnb f0, jpb_TX
	ajmp goret1
jpb2_TX:  clr tr0
       mov 29h ,#00h
       MOV     a,      5BH
       RRC     A
       CPL     C
       MOV     POB,   C
       SETB    POD
JPC_TX:   JB      SYN, JPC1_TX;;C
       ajmp jpc2_TX
jpc1_TX:  setb tr0
       cpl dog
       jnb f0, jpc_TX
       ajmp goret1
jpc2_TX:  clr tr0
       mov 29h ,#00h
       MOV     a,      5CH
       RRC     A
       CPL     C
       MOV     POC,   C
       SETB    poa
JPD_TX:   JNB     SYN,  JPD1_TX;;D
       ajmp jpd2_TX
jpd1_TX:  setb tr0
       cpl dog
       jnb f0, jpd_TX
       ajmp goret1
jpd2_TX:  clr tr0
       mov 29h ,#00h
       MOV     a,      5DH
       RRC     A
       CPL     C
       MOV     POD,   C
       SETB    POB
JPA_TX:   JB      SYN,   JPA1_TX;;A
       ajmp jpa2_TX
jpa1_TX:  setb tr0
       cpl dog
       jnb f0, jpa_TX
       ajmp goret1
jpa2_TX:  clr tr0
       mov 29h ,#00h
       MOV     a,      5AH
       RRC     A
       CPL     C
       MOV     POA,   C
       SETB    POC
       DJNZ    R3,     LPF5_TX1
	INC     R0
	DJNZ    R4,     LPF4_TX1
	MOV A, R0
	ADD A,  #12
	MOV R0, A
       MOV     R6,     #50H
JPG_TX:    DJNZ    R6,     JPG_TX
	DJNZ    R5,     LPF0_TX1
goret:
	clr   moto
	RET
;;
LPF5_TX1:AJMP  LPF5_TX
LPF4_TX1:AJMP  LPF4_TX
LPF0_TX1:AJMP  LPF0_TX
;///////////////////////////////////////////////////////////////////////

PRN_C:
	clr  MOTO
 MOV     R0,     #08h;;USE R1-R6
LPF0:   JB      LINE,   LPF01
	 ajmp  LPF3;lpdll
lpf01:  setb tr0
	jnb f0, lpf0
	cpl dog
	ajmp goret1
lpdll:  clr tr0
	mov 29h,#00h
	LCALL   DLL
LPF00:  JB      LINE,   LPF0  ;1 ajmp
LPF1:   JNB     LINE,   LPF11
	ajmp lpf3
lpf11:  setb tr0
       jnb f0 ,lpf1
       cpl   dog
       ajmp goret1
LPF3:   clr tr0
	mov 29h ,#00h
	MOV     R4,     #04H
LPF4:   MOV     R3,     #06H
LPF5:   MOV     R2,     #04H
	MOV     R1,     #5AH
	CPL     DOG
LPF6:   MOV     A,      @R0
	MOV     @R1,    A
	INC     R1
	RR      A
	MOV     @R0,    A
	MOV     A,      R0
	ADD     A,      #04H
	MOV     R0,     A
	DJNZ    R2,     LPF6
	MOV     A,      R0
	CLR     C
	SUBB    A,      #16
	MOV     R0,     A
;;********************
JPCX:    JB      SYN,   JPCX1 ;;C
	 ajmp jpcx2
jpcx1:   setb tr0
	 jb f0 ,goret1
	 ajmp jpcx
jpcx2:   clr tr0
	 mov 29h ,#00h
	 MOV     a,      5CH
	 RRC     A
	 CPL     C
	 MOV     POC,   C
JPDX:    JNB     SYN,   JPDX1;;D
	 ajmp jpdx2
jpdx1:   setb tr0
	 jb f0 ,goret1
	 ajmp jpdx
jpdx2:   clr tr0
	 mov 29h,#00h
	 MOV     a,      5DH
	 RRC     A
	 CPL     C
	 MOV     POD,   C
NEXT1:        DJNZ    R3,     LPF5
	INC     R0
	DJNZ    R4,     LPF4
	MOV A, R0
	ADD A,  #12
	MOV R0, A
       MOV     R6,     #50H
JPG:    DJNZ    R6,     JPG
	setb  MOTO
	RET
;;;
LD:     MOV     R0,     #30H	 ;;;;;;;;;;;;;;;;;;;;;;;;;/////////////
	MOV     R1,     #16
	CPL    	 DOG
CONL:   MOV     @R0,    A
	INC     R0
	DJNZ    R1,     CONL
	RET
goret1: setb moto
	setb poa
	setb pob
	clr f0
	mov 29h,#00h
	ajmp main
;;*****************
;;*****************
TIME0:cpl dog
      MOV   TH0, #00H
      MOV   TL0, #00h
      inc 29h
      mov a ,29h
      xrl a ,#14 ;;1s
      jnz ok1
      setb f0
      mov 29h ,#00h
ok1:  nop
      RETI
;;*********************************
INTR:     CLR ES
WAIT_1:   JBC RI, NEXT_0
	  CPL DOG
	  AJMP  WAIT_1
NEXT_0:   MOV A,SBUF
	  XRL A,#0BEH      ;;    addr
	  JNZ  GOBACK1
	  ajmp csm2
goback1: ajmp goback
csm2:     clr sm2
WAIT_11:  JBC RI,NEXT_1
	  CPL DOG
	  AJMP WAIT_11
NEXT_1:   MOV A,SBUF
	  MOV 5FH,A
	  CPL DOG
	  XRL A,#99H        ;;	   走纸
	  JZ GO_PAPER
	  CLR   A
	  MOV A,5FH
	  XRL A,#0EEH       ;;	   打印上半段
	  JZ    STEPPAPER
	  CLR   A
	  MOV A,5FH
	  XRL A,#0DDH       ;;  打印
	  JZ DAYING
	  AJMP GOBACK
;------------------------
GO_PAPER:
; CLR RI
;		CLR TI
;		MOV SBUF,#0BBh
;WAIT_2:    JBC TI,NEXT_2
;		CPL DOG
;		AJMP WAIT_2
NEXT_2:   LCALL PRINT3
	   mov 5Fh,#00h
	     AJMP GOBACK
;---------------------
STEPPAPER:
;       CLR RI
;	   CLR TI
;	   MOV SBUF,#0BBH
;WAIT_3:    JBC TI,NEXT_3
;	   CPL DOG
;	   AJMP WAIT_3
;next_3:
      MOV R0,#60H
	   MOV R4,#20
WAIT_5s:    JBC RI,NEXT_5s
	   CPL DOG
	   AJMP WAIT_5s
NEXT_5s:    MOV A,SBUF
	   MOV @R0,a
	   INC R0
	   DJNZ R4,WAIT_5s
	   lcall prINT1
;----------------------------------
	         CLR RI
     clr es
      CLR TI
	   MOV SBUF,#0deH
WAIT_3:    JBC TI,NEXT_3
	   CPL DOG
	   AJMP WAIT_3
next_3:
;----------------------------------
	   setb es
	   mov 5Fh,#00h
	   AJMP GOBACK
;---------------------
DAYING:
;       CLR RI
;	   CLR TI
;	   clr es
;	   MOV SBUF,#0BBH
;WAIT_4:    JBC TI,NEXT_4
;	   CPL DOG
;	   AJMP  WAIT_4
;NEXT_4:    NOP
	   MOV R0,#60H
	   MOV R4,#32
WAIT_5:    JBC RI,NEXT_5
	   CPL DOG
	   AJMP WAIT_5
NEXT_5:    MOV A,SBUF
	   MOV @R0,a
	   INC R0
	   DJNZ R4,WAIT_5
	   MOV R0,#50H
	   MOV R4,#5
xgWAIT_5:    JBC RI,xgNEXT_5
	   CPL DOG
	   AJMP xgWAIT_5
xgNEXT_5:    MOV A,SBUF
	   MOV @R0,a
	   INC R0
	   DJNZ R4,xgWAIT_5
	   LCALL PRINT2
;--------------------------------------
  CLR RI
	   CLR TI
	   clr es
	   MOV SBUF,#0ddH
WAIT_4:    JBC TI,NEXT_4
	   CPL DOG
	   AJMP  WAIT_4
NEXT_4:    NOP
;----------------------------
	   mov 5Fh,#00h
	   setb es
	   AJMP GOBACK
;-----------------------
goback:    mov 5Fh,#00h
	   SETB SM2
	   SETB ES
	   RETI
print3:     clr moto
;clr power
;delay_2:   mov r7, #0ddh
;delay1_2:  nop
;              nop
;              djnz r7 ,delay1_2
;          clr moto
	  lcall prnnc
	  lcall prnnc
	  lcall prnnc
	  lcall prnnc
	  setb moto
;          setb power
       mov 5Fh,#00h
	  ret

TXT: DB 0eH,11H,19H,15H,13H,11H,11H,0eH   ;0   00
     DB 06H,04H,04H,04H,04H,04H,04H,1fH   ;1   01
     DB 0eH,11H,11H,08H,04H,02H,11H,1fH   ;2   02
     DB 0eh,11H,10H,0cH,0cH,10H,11H,0eH   ;3   03
     DB 08H,0cH,0aH,09H,1fH,08H,08H,1cH   ;4   04
     DB 1fH,01H,01H,0fH,10H,10H,10H,0fH   ;5   05
     DB 0eH,11H,01H,0fH,11H,11H,11H,0eH   ;6   06
     DB 1fH,10H,08H,04H,02H,02H,01H,01H   ;7   07
     DB 0eH,11H,11H,0eH,11H,11H,11h,0eH   ;8   08
     DB 0eH,11H,11H,11H,1eH,10H,10H,0eH   ;9   09
     DB 00H,00H,00H,00H,00H,00H,00H,00H   ;a   0a
     DB 00H,00H,00H,1fH,1fH,00H,00H,00H   ;b _ 0b
     DB 00H,00H,00H,00H,00H,0CH,0CH,00H   ;c . 0c			
     DB 00H,0cH,0cH,00H,00H,0cH,0cH,00H   ;d : 0d
     DB 11H,09H,05H,03H,03H,05H,09H,11H   ;e K 0e
     DB 00H,1FH,01H,01H,0FH,01H,01H,1FH   ;f e 0f
     DB 08h,14h,22h,22h,3Eh,22h,22h,22h;//a	cs 10 41	        
	 DB 1Eh,22h,22h,1Eh,22h,22h,22h,1Eh;//b	cs 11 42	
     DB 1Ch,22h,02h,02h,02h,02h,22h,1Ch;//c	cs 12 43
	 DB 1Eh,22h,22h,22h,22h,22h,22h,1Eh;//d	cs 13 44
     DB 3Eh,02h,02h,1Eh,02h,02h,02h,3Eh;//e	cs 14 45
     DB 3Eh,02h,02h,3Eh,02h,02h,02h,02h;//f	cs 15 46
     DB 1Ch,22h,22h,22h,02h,3Ah,22h,1Ch;//g cs 16 47
     DB 22h,22h,22h,22h,3Eh,22h,22h,22h;//h cs 17 48
     DB 3Eh,08h,08h,08h,08h,08h,08h,3Eh;//i	cs 18 49
	 DB 3Eh,08h,08h,08h,08h,08h,08h,06h;//j	cs 19 4a
	 DB 22h,22h,12h,0Eh,0Eh,12h,22h,22h;//k	cs 1a 4b
     DB 02h,02h,02h,02h,02h,02h,02h,3Eh;//l	cs 1b 4c
	 DB 22h,36h,2Ah,2Ah,2Ah,22h,22h,22h;//m	cs 1c 4d
     DB 00h,22h,26h,2Ah,2Ah,32h,32h,22h;//n	cs 1d 4e
     DB 1Ch,22h,22h,22h,22h,22h,22h,1Ch;//o	cs 1e 4f	 
     DB 1Eh,22h,22h,22h,1Eh,02h,02h,02h;//p	cs 1f 50
TXT1:DB 1Ch,22h,22h,22h,22h,2Ah,12h,2Ch;//q	cs 20 51		
	 DB 1Eh,22h,22h,22h,1Eh,0Ah,12h,22h;//r	cs 21 52
     DB 3Ch,02h,02h,1Ch,20h,20h,20h,1Eh;//s	cs 22 53	 
     DB 3Eh,08h,08h,08h,08h,08h,08h,08h;//t	cs 23 54
     DB 22h,22h,22h,22h,22h,22h,22h,1Ch;//u	cs 24 55
     DB 22h,22h,22h,22h,22h,22h,14h,08h;//v	cs 25 56
     DB 22h,22h,22h,22h,2Ah,2Ah,36h,22h;//w	cs 26 57
	 DB 22h,22h,14h,08h,08h,14h,22h,22h;//x cs 27 58
     DB 22h,22h,02h,14h,08h,08h,08h,08h;//y cs 28 59
     DB 3Eh,20h,20h,10h,08h,04h,02h,3Eh;//z cs 29 5a

     END


														  /*	
EX_2L:    MOV     B, A 						2
          CLR     C
          SUBB    A,  #20H
          JNC     JMP_256
          MOV     A,   B        ;XB
		  JMP    BEFORE        ;XB
JMP_256: MOV     DPTR, #TXT1	;XB  
          MOV     B,      #8
          MUL     AB
BEFORE: MOV    B,   A				;           MOVC    A,      @A+DPTR
          MOV     @R0,    A
          INC     R0
          CPL     DOG
          RET		  		  
*/

⌨️ 快捷键说明

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