目 录
第一部分 性能指示 ···················································································1
第二部分 操作说明 ···················································································2
第三部分 打印命令祥解 ···········································································8
第四部分 西文字符集 1、2····································································20
第五部分 命令速查表 ·············································································21
第一部分 性能指示
1、打印方法: 直接热敏打印
2、进纸方式
弯曲式、平直式或下落式送纸轨道
3、打印纸宽: 79.5±0.5mm
4、打印密度: 8 点/mm,576 点/行,
5、打印头寿命: 15×106字符行,相当于 100km打印纸
6、有效打印宽度: 72mm
7、走纸速度: 75mm/秒
8、打印速度: 25%的字符率的情况下为 70mm/秒
9、字库: 0x20—0xa0 间的西文字符集 1、2;
20h—7fh 间的标准 ASCII 码半角字符;
标一、二级汉字,要打印机汉字时,不用对打印机进行有关选择字库的任何设置,
只需输入汉字标准代码即可。汉字默认为 2 倍大的 16*16 点阵字
10、接口形式: 并行接口 IDE 26 针插座,TTL 电平
串行接口 232 电平或 TTL 电平
11、操作温度: 5~50℃
12、操作相对湿度: 10~80%
13、储存温度: -20~60℃
14、储存相对湿度: 10~90%
15、电源: DC 24V 4.2A MAX(电源极性如图
所示)
1
第二部分 操作说明
2.1 按键与指示灯
打印机有两个功能按键:LF 键和 SET 键,两个指示灯:绿灯、红灯。
其中红灯为电源指示灯,通电后红灯常亮。绿灯为状态指示灯,绿灯上电后为常亮状态,缺纸时为慢闪,
机头开关打开时为快闪。
LF 键靠近指示灯 ,SET 键远离指示灯。正常上电后,LF 键为走纸键,SET 键无效。
2.1.1 打印机自检方法
打印机断电,按 LF 键不放手同时给打印机上电,松手,打印机就会打印出自检条。
2.1.2 改变打印方向的方法
1、打印机断电,按 SET 键不放手同时给打印机上电,松手,打印机打印出状态设置报告
2、再按 SET 键进入设置打印方向状态,LF 为正向,SET 为反向打印,设置完成后打印机重新上电。
2.1.3 改变波特率及串口工作模式的方法
1、打印机断电,按 SET 键不放手同时给打印机上电,释放按键后,打印出状态设置报告
2、按 LF 键进入串口设置状态
3、按 SET 键改变打印机的通讯模式:两种,有奇偶校验位和无奇偶校验位;按 LF 键改变波特率:1200,
2400,4800,9600,19200bps.设置完成后打印机需重新上电。
2.2 并口、串口设置
1、使用并口时,须在 R&S 位置置一个短路块。
2、使用串口时,R&S 上无短路块。当用 TTL 电平时,使用 TTL 的 3 针接口,并且去掉 RL1 电阻。当用
232 电平时,使用 RS1 的 10 针接口,并且 RL1 位置有电阻。
2.3 并行接口连接
2.3.1 接口与引脚定义
本系列打印机并口与 CENTRONICS 兼容,支持 BUSY/ACK 握手协议,接口插座为 IDE 26 针插座。并行接口插
座引脚序号如下图所示:
2
并行接口插座引脚序号
2.3.2 并行接口引脚信号时序
并口时序如下图所示:
BU SY
/A CK
DA TA
/S TB
0. 5μS
0. 5μS
0. 5μS
0. 5μS
0. 5μS
IDE 26 针并行接口各引脚信号的定义如下图表所示:
面板式引脚 信 号
方
向
说 明
1
3
5
7
9
11
13
15
17
19
21
23
25
4
这些信号分别代表并行数据的第一至第八位信号,每个信号当其逻辑为“1”
时为“高”电平,逻辑为“0”为“低”电平。
-STB 入 数据选通触发脉冲,上升沿时读入数据
DATA1 入
DATA2 入
DATA3 入
DATA4 入
DATA5 入
DATA6 入
DATA7 入
DATA8 入
-ACK 出 回答脉冲,“低”电平表示数据已被接受而且打印机准备好接收下一数据
BUSY 出 “高”电平表示打印机正“忙”,不能接收数据
PE 出 打印状态信号,具体见 3-10-2
SEL 出 打印机内部经电阻上拉“高”电平,表示打印机在线
-ERR 出 打印机内部经电阻上拉“高”电平,表示无故障
2,6,8
空脚
10-26(中偶
GND — 接地,逻辑“0”电平
数)数)
注: 1.“入”表示输入到打印机。 2.“出”表示从打印机输出。 3.信号的逻辑电平为 TTL 电平。
2.3.3 并口例程
单片机控制打印机时汇编例程
BUSY
EQU P3.0
; 定义 BUSY 信号引脚
nSTB EQU P3.1
; 定义 nSTB 信号引脚
ORG 0000H
JMP start
start:
MOV DPTR, #print_content
main:
MOV
R0,#9 ; 存待打印数据的字节数
CLR
A
MOVC
A, @ A + DPTR
LCALL
PRINTB
INC
DPTR
DJNZ R0, MAIN
MOV A, #0DH
LCALL
PRINTB
3
PRINTB:
SJMP $
;打印结束死循环
;PRINTB 子程序将累加器 A 中的一字节数据发送到打印机
JB
BUSY, $
; 等待打印机到空闲
P1 , A
; 送数据到数据口
nSTB
; 置 nSTB 为低电平
; 延长 nSTB 信号脉冲宽度以满足时序要求
MOV
CLR
NOP
nop
nop
SETB nSTB
; 置 nSTB 为高电平(此时数据将被读入打印机)
RET
print_content:
DB '北京炜煌'
DB 0dh
END
单片机 C51 例程
#include
#include
#define PRINTER_DATA
P1
// 定义打印机数据线端口
sbit BUSY = P3^2;
sbit nSTB = P3^7;
// 定义打印机忙信号引脚
// 定义打印机 nSTB 信号引脚
#define CR 0x0d
#define LF 0x0a
void PrintByte(unsigned char byte_data);
void PrintString(char* str);
void PrintByteN(unsigned char* data_src,unsigned char N);
void main(void)
{
}
char str[] = "Printer demo";
PrintString("WHKJ Printer");
PrintByte(CR);
while(1);
/* PrintByte()
* Send a byte to printer
*/
void PrintByte(unsigned char byte_data)
{
}
while( BUSY == 1 ){
}
PRINTER_DATA = byte_data;
nSTB = 0;
_nop_();
// 调整 nSTB 信号脉宽
nSTB = 1;
/* PrintString()
4
* Print a string which is ending with a '\0' character
* To Excuted the print command a addition CR character is needed
*/
void PrintString(char* str)
while( *str ){
PrintByte( *(str++));
}
{
}
/* PrintByteN()
* Print N bytes through printer
* no more than 255 bytes could be printed by the function
* If more than 255 bytes need printing, the type of N need changing
* to unsigned int, even unsigned long if necessary.
*/
void PrintByteN( unsigned char* data_src,
// pointer to data source
unsigned char N)
// number of data(byte)
while( N--)
{
}
PrintByte(*(data_src++));
{
}
2.4 串行接口
2.4.1 串行接口引脚定义
本系列打印机串口电平标准为两种:TTL 电平与 232 电平,当设为 232 电平时,其串口与标准 RS-232 接口
兼容。其接口分别如下图所示:
3 2 1
TTL 电平接口
232 电平接口
说明:当使用 TTL 电平时,接口引脚定义如下:
引脚 信号 方向
说 明
1
2
3
TXD 出 打印机向主机发送控制码
RXD 入 打印机从主计算机接收数据
GND — 接地,逻辑‘0’电平
5
当使用 232 电平时,接口引脚定义如下:
引脚 信号 方向
说 明
5
3
2
9
RxD 入 打印机从主计算机接收数据
TxD 出 打印机向主机发送控制码
BUSY 出
该信号为高电平时,表示打印机“忙”不能接受数据,而当该信号
为低电平时,表示打印机“准备好”,可以接收数据
GND — 接地,逻辑‘0’电平
注: 1.“入”表示输入到打印机; 2.“出”表示从打印机输出;3.未标注脚为空脚。
2.4.2 波特率和通讯模式
改变波特率和通讯模式的方法参见 2.1
用户可在 1200、2400、4800、9600、和 19200 B.P.S.内选择需要的波特率,出厂时设定波特率为 9600 B.P.S.。
通讯模式两种:方式 1 或方式 3 通信两种,出厂时设定工作方式 1。
串行连接采用异步传输格式,如下图所示:
1 位
起始位 0
8 位
数据位
1 位
奇偶校验位
1 位
停止位 1
串行口工作方式 1:一帧信息为 10 位,1 位起始位,8 位数据位,1 位停止位。
串行口工作方式 3:一帧信息为 11 位,1 位起始位,8 位数据位,1 位校验位,1 位停止位。
2.4.3 串口例程
单片机控制打印机时汇编例程
BUSY EQU
P3.0
; 定义 BUSY 信号引脚
ORG 0000H
JMP start
ORG 30h
start:
MOV DPTR, #print_content
MOV R2, #77
LCALL SETUART
main:
CLR A
; R2 保存待打印数据的字节数
; 设置串口
MOVC A,
@A+DPTR ; 读出待打印字符
MOV R0, A
LCALL PRINTB
; 打印一个字节
INC DPTR
DJNZ R2, MAIN
MOV A,
#0DH
LCALL PRINTB
SJMP $
; 打印结束无限循环
;PRINTB 子程序将累加器 A 中的一字节数据发送到打印机
; 待发送数据通过 R0 传递
PRINTB: PUSH
ACC
JB BUSY, $
; 等待打印机到空闲
6
JNB TI, $ ; 等到上一字节发送完,第一个字节发送前要手动置 TI,见;SETUART
了函数
CLR TI
MOV A, R0
MOV SBUF, A
; 保存待打印数据
; 送数据到打印机
POP ACC
RET
;设置串口子程序
;不使用中断, 定时器 1 用作波特率发生器
SETUART:
MOV TMOD, #20H
;设置定时器 T1 工作模式 3
MOV TH1,
#0FAH
MOV TL1, #0FAH
; 设置波特率 9600bps @ 22.1184MHz
SETB TR1
MOV SCON, #50H
SETB TI
RET
; 启动定时器 T1
; 设置串行口工作方式为异步串行口,模式 1
; 设置标志位,为发送数据作准备
; 定义待打印数据内容
; 保存在程序段
print_content:
DB '北京炜煌科技微型打印机', 0DH, 'MicroPrinter demo', 0DH
DB '画线工具栏',0dh
DB '-------------------------'
END
单片机 C51 例程
#include
#define uchar unsigned char
sbit BUSY=P3^0;
// 定义一个发送字节数据到串口的函数
void Print_Byte(uchar ch){
while(BUSY){
}
SBUF=ch;
while(!TI){
}
TI=0;
}
//定义发送一个数组的数据到串口的函数
void Print_Array(array,n)
uchar array[];
int n;
int i;
for(i=0;i
}
//定义一个把字符串送到串口的函数
void Print_String(uchar *str){
while(*str){
Print_Byte(*str++);
}
}
void main()
{
int i;
TMOD=0x20; // 定时器 1 工作于方式 2
SCON=0x40; // 串口工作于方式 1
TH1=0xfa; //装入初值,22.1184MHZ 的晶振,9600 的波特率
TL1=0xfa;
PCON=0x00; //波特率无倍增
TR1=1; //开启定时器 1 开始工作
Print_Byte(0x1C);
Print_Byte(0x26);
Print_String("北京炜煌科技发展有限公司");
Print_Byte(13);
while(1);
第三部分 打印命令祥解
}
一、选择字符集命令
3-1-1、【选择字符集】
格式: ASCII:
ESC 6 n
10 进制:
27 54 n
16 进制:
1B 36 n
n=0 时,选择西文字符集 1,范围是 0x20—0xa0
n=1 时,选择西文字符集 2,范围是 0x20—0xa0
n=2 时,选择半角 ASCII 码,范围是 0x20—0x7f
n=3 时,选择自定义字符集,范围是 0x20—0x7f
说明:如果要 n=3,那么首先在之前应该先自定义字符,自定义字符指令参照后面的详细说明。如果没有
自定义字符,而 n=3 时,打印机打印半角 ASCII 码。
二、进纸命令
3-2-1、【换行】
格式: ASCII:
10 进制:
LF
10
8