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

📄 print.txt

📁 与epson m-150打印机通信
💻 TXT
字号:
///////////////////////////////////////////////////////////////////////////////////////////////////////////
;correct
;单片机CPU的P1.0~P1.6分别接模块上的L.S、D.T、P.M、PSA、PSB、PSC、PSD,P1.7接实验箱上的;平推开关KK1的输出K1
;模块上的P.P接实验箱上的平推开关KK8的输出K8,实验时要保证KK8在H侧,输出为高电平
//////////////////////////////////////////////////////////////// 
               CSEG AT 00H
               LJMP START

               CSEG AT 4100H                 //主函数,

START:         MOV  P1, #0FFH
START1:        MOV  20H, #00H
               MOV  21H, #00H
               MOV  50H,20H                 //初始化各参数
               LCALL DELAY100M              //延时60毫秒
               MOV R5,#08H
               MOV R6,#90H
               MOV R7,#2
               MOV R1,#0
               JNB P1.7,PRINT603
               LJMP START1

               
PRINT603:       MOV A,20H
                JB ACC.0,PRINT51
                CLR  P1.2			;马达供电
PRINT50:       LCALL PRINTLINE		;打印一行
               MOV R7,#33H
               DJNZ R5,PRINT50		;前8行
               NOP
               SETB P1.2			;马达断电
               LCALL DELAY100M		;延时
               MOV R5,#8
               CLR P1.2             ;马达供电   
PRINT51:       LCALL PRINTLINE		;打印一行 
               MOV R7,#33H
               DJNZ R5,PRINT51		;中间8行
               NOP
               SETB P1.2
               LCALL DELAY100M
               MOV R5,#7
               CLR P1.2              
PRINT52:	LCALL PRINTLINE
		 MOV R7,#33H
		DJNZ R5,PRINT52				;后8 行
		NOP
		SETB P1.2
	       LCALL DELAY100M
               LJMP START1
/////////////////////////////////////////////////////////               
DELAY100M:     MOV R6, #40		;60ms
DEL1:          MOV R7, #250
DEL2:          NOP
               NOP
               DJNZ R7, DEL2
               DJNZ R6, DEL1
               RET
//////////////////////////////////////////////////////////////////////////////
WAIT:          CLR A
		MOV C,P1.1
		RLC A
		MOV 41H,A
		MOV 50H,A
		XRL A,40H
		JZ WAIT
		MOV 40H,41H
		MOV 50H,41H
               RET
///////////////////////////////////////////////////////////////////////////
PRINTLINE:     NOP
  	       JNB  P1.0,PRINTLINE		;等待R信号
  	       MOV  R2, #60H
               MOV  R3,#00H
               CLR A
               MOV C,P1.1
               RLC A
               MOV 40H,A
               MOV 50H,40H
     	       LCALL WAIT         ;等待打印机定时脉冲								///////////////////////////////////////////////////////////////////////////////////							   
PRINT300:      MOV DPTR,#TABLE11  ;打印第一个字的第R1个点阵数据
               LCALL PRINT1
               MOV DPTR,#TABLE12  ;打印第二个字的第R1个点阵数据 
               LCALL PRINT2
               MOV DPTR,#TABLE13  ;打印第三个字的第R1个点阵数据 
               LCALL PRINT3
               MOV DPTR,#TABLE14  ;打印第四个字的第R1个点阵数据 
               LCALL PRINT4
               INC R3
               MOV A,R3
               CJNE A,#8,PRINT300 ;第R1个点阵数据的8位点阵数据打印完
               MOV R3,#0
               INC R1
               DEC R7
               MOV A,R2
               JNZ PRINT300		  ;96点打印完
               NOP
               RET
////////////////////////////////////////////////////////////////////////////////////////////////////////
PRINT1:         MOV A,R3			;打印第1个字的第R1个点阵数据的第R3位
                JNZ PRINT400
                MOV  A, R1			;是第一次调用,第R1个点阵数据暂存43H 
               MOVC A, @A+DPTR
               MOV 43H,A		    ;
PRINT400:       MOV A,43H
               JNB  ACC.7, PRINT111 ;打印最高位
               CLR   P1.3
               LCALL WAIT
               SETB  P1.3
               LJMP PRINT311
PRINT111:      	LCALL WAIT
PRINT311:       MOV A,43H
                RL A			   ;第R1个点阵数据左移,暂存43H   
                MOV 43H,A
                MOV 50H,43H
                RET

PRINT2:	        DEC R2
                MOV A,R3
                JNZ PRINT401
		MOV A,R1
               MOVC A,@A+DPTR
               MOV 44H,A
PRINT401:       MOV A,44H
                JNB ACC.7,PRINT11
               CLR P1.4
               LCALL WAIT
               SETB P1.4
               LJMP PRINT312
PRINT11:      	LCALL WAIT
PRINT312:      MOV A,44H
                RL A
                MOV 44H,A
                MOV 50H,44H
                RET

PRINT3:         DEC R2
                MOV A,R3
                JNZ PRINT402
                MOV A,R1
                MOVC A,@A+DPTR
		MOV 45H,A
PRINT402:       MOV A,45H
                JNB ACC.7,PRINT21
		CLR P1.5
		LCALL WAIT
		SETB P1.5
		LJMP PRINT313
PRINT21:	LCALL WAIT
PRINT313:       MOV A,45H
                RL A
                MOV 45H,A
                MOV 50H,45H
                RET

PRINT4:         DEC R2
                MOV A,R3
                JNZ PRINT403
		MOV A,R1
		MOVC A,@A+DPTR
		MOV 46H,A
PRINT403:       MOV A,46H
                JNB ACC.7,PRINTEND
		CLR P1.6
		LCALL WAIT
		SETB P1.6
		LJMP PRINT314
PRINTEND:   	LCALL WAIT
PRINT314:       MOV A,46H
                RL A
                MOV 46H,A
                MOV 50H,46H
                DEC R2
                INC R7
                RET

/////////////////////////////////////////////////////////////////////////////////////////////////////
TABLE11:       DB  00H,00H,00H,00H,00H,00H,00H,0C6H,00H,00H,84H,00H,00H,84H,00H,00H
	       DB  84H,00H,00H,84H,10H,00H,84H,18H,3FH,84H,60H,00H,84H,80H,00H,87H
			   DB  00H,00H,84H,00H,00H,84H,00H,00H,84H,00H,00H,84H,00H,00H,84H,08H
			   DB  01H,84H,08H,0EH,84H,08H,30H,84H,08H,00H,84H,08H,00H,87H,0F8H,00H
			   DB  80H,00H,00H,00H,00H

TABLE12:       	DB  00H,00H,00H,00H,00H,00H,00H,30H,00H,00H,18H,00H,00H,10H,18H,3FH
		DB  0FFH,0FCH,00H,00H,00H,00H,00H,00H,03H,0FFH,0C0H,02H,00H,0C0H,02H,00H
		DB  0C0H,02H,00H,0C0H,02H,00H,0C0H,03H,0FFH,0C0H,00H,10H,00H,00H,10H,00H
		DB  03H,91H,80H,02H,10H,0C0H,04H,10H,60H,08H,10H,30H,30H,0F0H,30H,40H
		DB  30H,00H,00H,00H,00H

TABLE13:	    DB  00H,00H,00H,00H,00H,00H,08H,06H,00H,04H,06H,00H,06H,06H,00H,04H
				DB  06H,00H,00H,06H,00H,00H,04H,18H,00H,0FFH,0E0H,7CH,04H,00H,0CH,04H
				DB  00H,0CH,0CH,00H,0CH,0BH,00H,0CH,18H,80H,0CH,10H,40H,0CH,20H,20H
				DB  0CH,40H,30H,0DH,80H,10H,32H,00H,00H,61H,80H,00H,00H,7FH,0F8H,00H
				DB  00H,10H,00H,00H,00H

TABLE14:		DB  00H,00H,00H,00H,09H,00H,00H,0EH,0C0H,00H,04H,40H,08H,04H,18H,07H
				DB  0FFH,0E0H,04H,04H,00H,04H,26H,60H,07H,0E2H,0C0H,0CH,22H,80H,08H,63H
				DB  00H,08H,43H,88H,19H,0CCH,0C8H,10H,30H,78H,24H,00H,58H,47H,0FFH,0E0H
				DB  04H,44H,40H,04H,44H,40H,04H,44H,40H,04H,44H,40H,3FH,0FFH,0F8H,00H
				DB  00H,00H,00H,00H,00H


               END

⌨️ 快捷键说明

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