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

📄 printzi.asm

📁 PIC单片机的汇编源码合集,应用比较广泛,设计程序时可做子程序来用
💻 ASM
字号:
;************************PRINTZI**************************
;本程序实现炜煌汉字微型打印机打印汉字“广”字。	
;入口参数:无。
;出口参数:无。
;占用资源:W,STATUS,RD0~RD7,RA0,RA1,RA2,RA4,RA5,023H,028H,029H,二重堆栈。
;说明:	   1,具体型号为WH-40-PT,命令集选用ESC格式。
;	   2,接口为标准并行接口CENTRONICS。
;	   3, RD口为数据输出口,RA口为控制口。
;	   4, 本程序未考虑CALL,GOTO超过2K范围,及表大于256的情况。
;******************常量定义*******************************
            #DEFINE 	ERR	PORTA,0		;打印机的出错信号
	    #DEFINE 	ACK 	PORTA,1		;打印机的确认信号
	    #DEFINE 	BUSY	PORTA,2		;打印机的忙信号
	    #DEFINE 	SEL	PORTA,4		;打印机的在线信号
            #DEFINE     STB 	PORTA,5		;单片机对打印机的选通信号
;CNT	    EQU	        23H         ;延时用
;TEMP1	    EQU	        28H	    ;存待发送数据个数
;TEMP2	    EQU	        29H         ;数据指针
DNUMBER	    EQU	        .19	    ;待发送数据的个数

           IFNDEF       PRINTZI1
            #DEFINE     PRINTZI1
            INCLUDE	"printinit.ASM"    ;包含初始化文件	

;****************取数据子程序******************************
IN_DATA	    ADDWF	PCL,F
  	    RETLW	1BH	     ;自定义“广”字,并打印。
	    RETLW       26H
	    RETLW	.34
	    RETLW	02H
	    RETLW	7CH
	    RETLW	40H
	    RETLW	0C0H
	    RETLW	40H
	    RETLW       00H
	
	    RETLW	1BH	    ;将当前字符集中的字符44h替换为自定义字符23h
	    RETLW	25H	
	    RETLW	.34
	    RETLW	44H	
	    RETLW	00H	

	    RETLW	44H	    ;打印。

	    RETLW	0DH	    ;回车

	    RETLW	1BH	    ;纸进给32点行。
	    RETLW	4AH
	    RETLW	.20		

;****************子程序******************************
PRINTZI     CALL	PRINTINIT
	    BCF		STATUS,RP0  ;选体0
            MOVLW	DNUMBER	    ;初始化发送数据个数
	    MOVWF	TEMP1
	    MOVLW	00H	    ;数据指针赋初值
	    MOVWF	TEMP2
            BSF		STB	    ;初始化STB为高电平
N_DATA	    NOP
IN_SEL	    BTFSS	SEL	    ;测试是否在线
	    GOTO	IN_SEL
IN_ERROR    BTFSS	ERR	    ;测试是否有错误
	    GOTO 	IN_ERROR
IN_BUSY	    BTFSC	BUSY	    ;测试是否忙
 	    GOTO	IN_BUSY
            MOVF	TEMP2,W
	    CALL	IN_DATA     ;调取数据子程序
	    MOVWF	PORTD	    ;发送数据
            BCF		STB	    ;产生STB选通信号
	    CALL	DELAY202
	    BSF		STB
IN_ACK	    BTFSC       ACK	    ;检测应答信号
	    GOTO        IN_ACK
            INCF	TEMP2,F     ;数据指针加一
            DECFSZ	TEMP1,F
	    GOTO	N_DATA
	    RETURN	

;****************大于20(29)微秒延时子程序*************************
DELAY202    MOVLW	.8
	    MOVWF	CNT
LOOP104	    DECFSZ	CNT,F
	    GOTO	LOOP104
	    RETURN
           ENDIF
            

⌨️ 快捷键说明

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