炜煌针式打印机说明书 
目  录 
 
第一部分 性能指示 ...................................................................................................... 2 
第二部分 操作说明 ...................................................................................................... 4 
第三部分 打印命令祥解 ............................................................................................ 21 
第四部分 西文字符集 1、2 ....................................................................................... 37 
第五部分、命令速查表 .............................................................................................. 38 
 
 
 
1 
 
第一部分 性能指示 
 
1、打印方法:                点行打印 
2、打印有效宽度:        根据打印头不同,打印有效宽度也不相同: 
                                          M—150 打印头    普通型为 96 点,倍频型为 192 点 
                                          M—160 打印头    普通型为 144 点,倍频型为 288 点 
                                          M—164 打印头    只能是 240 点,不能做成倍频形式 
3、打印速度:                M—150 打印头    44mm 纸宽,1 行/秒 
                                          M—160 打印头    57mm 纸宽,0.7 行/秒 
                                          M—164 打印头    57mm 纸宽,0.4 行/秒 
4、走纸速度:                与打印速度相同 
5、打印字符:                M—150 打印头     
普通型:字符 16 个/行,汉字 8 个/行 
2 
 
 
 
炜煌针式打印机说明书 
倍频型:字符 32 个/行,汉字 16 个/行 
                                          M—160 打印头 
    普通型:字符 24 个/行,汉字 12 个/行 
    倍频型:字符 48 个/行,汉字 24 个/行 
                                          M—164 打印头     
                                          字符 40 个/行,汉字 20 个/行 
6、接口形式:                232 串口:            10 针插座,兼容标准 232 串口 
TTL 串口:            10 针插座 
波特率(bps):    1200,2400,4800,9600,19200 
数据结构:            1 位起始位+8 位数据位+1 位停止位;或者 1 位起始位+8 位数据位
+1 位奇偶校验位+1 位停止位。  
 
7、色带:                        盒式色带紫色或黑色 
8、电源:                        输入 DC 5V±5%,1.5A   
 
3 
 
9、按键和指示灯:        提供 LF 键和 SEL 键以及指示灯(绿灯) 
10、打印机可靠性:      5×105行(MCBF) 
11、适应环境:              工作温度:0~50℃,相对湿度:20~85% 
 
2.1 并行接口连接 
2.1.1 接口与引脚定义 
第二部分 操作说明 
本系列打印机并口与 CENTRONICS 兼容,支持 BUSY/ACK 握手协议,接口插座为 IDE 26 针插座。 
并行接口插座引脚序号如下图所示: 
                          并行接口插座引脚序号 
4 
 
 
 
炜煌针式打印机说明书 
IDE 26 针并行接口各引脚信号的定义如下图表所示: 
平台式引脚  面板式引脚 信 号  方向 
说                     明 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
13 
15 
1 
3 
5 
7 
9 
11 
13 
15 
17 
19 
21 
25 
4 
-STB 
入 
数据选通触发脉冲,上升沿时读入数据 
这些信号分别代表并行数据的第一至第八位信号,每个信
号当其逻辑为“1”时为“高”电平,逻辑为“0”为“低”
电平。 
DATA1  入 
DATA2  入 
DATA3  入 
DATA4  入 
DATA5  入 
DATA6  入 
DATA7  入 
DATA8  入 
-ACK 
BUSY 
SEL 
-ERR 
出 
出 
出 
出 
 
— 
回答脉冲,“低”电平表示数据已被接受而且打印机准备
“高”电平表示打印机正“忙”,不能接收数据 
打印机内部经电阻上拉“高”电平,表示打印机在线 
打印机内部经电阻上拉“高”电平,表示无故障 
空脚 
接地,逻辑“0”电平 
14 16 17 
2,6,8,26 
 
8—25 
10-24(偶数) GND 
注: 1.“入”表示输入到打印机。 2.“出”表示从打印机输出。 3.信号的逻辑电平为 TTL 电平。 
 
5 
 
2.1.2 并行接口引脚信号时序 
并口时序如下图所示: 
                                                                                                       
                                                                                   
BU SY
/A CK
 
 
 
 
DA TA
/S TB
                                
0.5μS 
0.5μS 
0. 5μS 
0. 5μS 
0. 5μS 
并行接口信号时序图 
2.1.3 并口例程 
单片机控制打印机时汇编例程 
BUSY   
EQU P3.2   
; 定义 BUSY 信号引脚 
nSTB    
 
 
EQU P3.7   
 
ORG 0000H 
; 定义 nSTB 信号引脚 
6 
 
 
 
炜煌针式打印机说明书 
JMP start 
MOV   DPTR, #print_content 
MOV   R0,   #9             ; 存待打印数据的字节数 
 A 
CLR   
 A, @ A + DPTR 
MOVC   
 PRINTB 
LCALL  
INC    
 DPTR 
DJNZ   R0,  MAIN 
MOV   A,   #0DH 
LCALL  
SJMP       $ 
PRINTB 
 
;打印结束死循环 
 
 
;PRINTB 子程序将累加器 A 中的一字节数据发送到打印机 
 
 
 
 
 
 
 
 
 
 
 
 
 
start: 
 
 
main:  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PRINTB: 
                JB 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
BUSY,  $   
 
P1 , A  
 
nSTB   
 
 
 
 
MOV   
CLR   
NOP   
nop 
nop 
SETB       nSTB   
; 等待打印机到空闲 
; 送数据到数据口 
; 置 nSTB 为低电平 
; 延长 nSTB 信号脉冲宽度以满足时序要求 
 
 
; 置 nSTB 为高电平(此时数据将被读入打印机) 
7 
 
RET 
 
 
 
 
 
 
// 定义打印机数据线端口 
// 定义打印机忙信号引脚 
// 定义打印机 nSTB 信号引脚 
 
 
 
 
DB '北京炜煌' 
DB 0dh 
END               
              
print_content:   
 
 
 
 
            
 
单片机 C51 例程 
// 北京炜煌科技打印机示例程序 
// Nocky Tian 
// 2007-07-17 
 
#include  
// Hardware configuration 
#define PRINTER_DATA  P1 
sbit BUSY  = P3^2; 
sbit nSTB  = P3^7; 
 
#define CR  
#define LF  
void PrintByte(unsigned char byte_data); 
void PrintString(char* str); 
void PrintByteN(unsigned char* data_src,unsigned char N); 
void main(void) 
8 
0x0d 
0x0a