目 录
第一部分 性能指示......................................................... - 1 -
第二部分 操作说明......................................................... - 2 -
第三部分 打印命令祥解................................................. - 6 -
第四部分 西文字符集 1、2.......................................... - 16 -
第五部分 命令速查表................................................... - 17 -
第一部分 性能指示
1、打印方法:
直接热敏打印
2、打印纸宽: 57.5±0.5mm
3、打印密度: 8 点/mm,384 点/行
4、打印头寿命: 6×106字符行
5、有效打印宽度: 48mm
6、打印速度: 25%的字符率的情况下为 65mm/秒
7、字库: 0x20—0xa0 间的西文字符集 1、2;
20h—7fh 间的标准 ASCII 码半角字符;国标一、二级汉字。(默认设置)
要打印机汉字时,不用对打印机进行有关选择字库的任何设置,只需输入汉字标准代码
即可。16*16 点阵打印机汉字默放大 2 倍,24 点阵打印机汉字默认放大一倍。
8、接口形式:
并行接口 IDE 26 针插座,TTL 电平
串行接口 IDE 10 针插座,232 电平或 TTL 电平
9、操作温度: 5~50℃
10、操作相对湿度: 10~80%
11、储存温度: -20~60℃
12、储存相对湿度: 10~90%
13、电源: DC 9V-- 24V 25W
www.whkj.com.cn
- 1 -
第二部分 操作说明
2.1 按键与指示灯
打印机有两个功能按键:LF 键和 SET 键,一个指示灯:绿灯。绿灯本身即为 LF 键,上电后按一下 LF 键,打印
机向前走纸一段。 SET 键在打印机背部通讯接口左侧的孔内
绿灯上电后为常亮状态,缺纸时为慢闪,机头开关打开时为快闪。
对于按键,正常上电后,LF 键为走纸键,SET 键无效。
2.1.1 打印机自检方法
打印机断电,按 LF 键不放手同时给打印机上电,松手,打印机就会打印出自检条。
2.1.2 改变打印浓度的方法
1、打印机断电,按 SET 键不放手同时给打印机上电,松手,打印机打印出状态设置报告
2、按 LF 键进入浓度设置状态:SET 为减量,LF 为增量,设置完成后打印机重新上电。
2.1.3 改变打印方向的方法
1、打印机断电,按 SET 键不放手同时给打印机上电,松手,打印机打印出状态设置报告
2、按 SET 键进入设置工作模式状态,再按 SET 设置打印方向状态,LF 为反向,SET 为正向打印,设置完
成后打印机重新上电。
2.1.4 改变波特率及串口工作模式的方法
1、打印机断电,按 SET 键不放手同时给打印机上电,释放按键后,打印出状态设置报告
2、按 SET 键进入工作模式设置状态
3、按 LF 键进入串口设置状态
4、按 SET 键改变打印机的通讯模式:有两种,模式一或模式三;按 LF 键改变波特率:1200,2400,4800,9600,
19200bps.设置完成后打印机需重新上电。
2.2 并行接口连接
2.2.1 接口与引脚定义
本系列打印机并口与 CENTRONICS 兼容,支持 BUSY/ACK 握手协议,接口插座为 IDE 26 针插座。并行接口插座引脚
序号如下图所示:
2.2.2 并行接口引脚信号时序
并口时序如下图所示:
BU SY
/A CK
DA TA
/S TB
0. 5μS
0. 5μS
0. 5μS
0. 5μS
0. 5μS
www.whkj.com.cn
- 2 -
IDE 26 针并行接口各引脚信号的定义如下图表所示:
面板式引脚 信 号 方向
说 明
1
3
5
7
9
11
13
15
17
19
21
23
25
4
-STB 入 数据选通触发脉冲,上升沿时读入数据
DATA1 入
DATA2 入
DATA3 入
DATA4 入
DATA5 入
DATA6 入
DATA7 入
DATA8 入
这些信号分别代表并行数据的第一至第八位信号,每个信号当其逻辑为“1”时为“高”
电平,逻辑为“0”为“低”电平。
-ACK 出 回答脉冲,“低”电平表示数据已被接受而且打印机准备好接收下一数据
BUSY 出 “高”电平表示打印机正“忙”,不能接收数据
PE 出 缺纸信号引脚,此引脚为高电平时表示打印机缺纸,为低电平时表示打印机有纸
SEL 出 打印机内部经电阻上拉“高”电平,表示打印机在线
-ERR 出 打印机内部经电阻上拉“高”电平,表示无故障
2,6,8
空脚
10-26(偶数) GND — 接地,逻辑“0”电平
注: 1.“入”表示输入到打印机。 2.“出”表示从打印机输出。 3.信号的逻辑电平为 TTL 电平。
2.2.3 并口 C51 例程
#include
#define uchar unsigned char
#define PRINTER_DATA
sbit BUSY = P3^2;
sbit nSTB = P3^7;
void PrintChar(unsigned char byte_data);
void PrintString(char* str);
P1
// 定义打印机数据线端口
// 定义打印机忙信号引脚
// 定义打印机 nSTB 信号引脚
while( BUSY == 1 ) ;
PRINTER_DATA = byte_data;
// 定义一个发送字节数据到并口的函数
void PrintChar (unsigned char byte_data)
{
nSTB = 0;
_nop_();
_nop_();
}
_nop_();
nSTB = 1;
// 调整 nSTB 信号脉宽
//定义一个把字符串送到并口的函数
void PrintString(char* str)
{
while( *str ){
}
}
void main(void)
{
}
PrintChar( *(str++));
PrintString("WHKJ Printer");
PrintChar(0x0d);
while(1);
www.whkj.com.cn
- 3 -
2.3 串行接口
2.3.1 串行接口引脚定义
本系列打印机串口电平标准为两种:TTL 电平与 232 电平,当设为 232 电平时,其串口与标准 RS-232 接口兼容。
其接口分别如下图所示:
说明:图中粗黑线条为短路块,当使用 232 电平时,T 接口端按图所示插上短路块,R 端接口为数据线接口;当使
用 TTL 电平时,R 端接口闲置不用,T 端接口为数据线接口。
接口引脚定义如下表所示:
TTL
232 信号 方向 说 明
5
3
2
21
RxD 入
打印机从主计算机接收数据,5 脚为 TTL 电平时用,21 脚为 232
电平时用
19
TxD 出 打印机发送,3 脚为 TTL 电平时用,19 脚为 232 电平时用
BUSY 出
18 、
22
DSR 出
TTL 电平时用,该信号高电平时,表示打印机正“忙”不能接受数
据,而当该信号低电平时,表示打印机“准备好”,可以接收数据
232 电平时用,该信号高电平时,表示打印机“忙”不能接受数据,
该信号低电平时,表示打印机“准备好”,可以接收数据。注意 232
电平为负逻辑电平
25
9
注: 1.“入”表示输入到打印机; 2.“出”表示从打印机输出
GND — 信号地
接口其它引脚有的为空脚,有的为保留引脚。详细可看机身后贴的标签说明
2.3.2 波特率和通讯模式
改变波特率和通讯模式的方法参见 2.1.4
用户可在 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.3.3 串口 C51 例程
#include
#define uchar unsigned char
sbit
/**************************************************/
= P3^5;
busy
void PrintChar(uchar temp){
while(busy!=0) ;
// 定义一个发送字节数据到串口的函数
SBUF=temp;
www.whkj.com.cn
- 4 -
while(TI==0);
TI=0;
}
//定义一个把字符串送到串口的函数
void PrintString(uchar *String){
while(*String){
PrintChar(*String++);
}
}
void chushi(void){
TMOD=0x20; //定时器 1 工作于方式 2
TH1=0xfd; //晶镇 11.0592M 波特率 9600
TR1=1; //定时器开始工作
PCON=0x00; //波特率无倍增
SCON=0x50; //串口工作于方式
}
void main(void){
int i;
chushi();
PrintChar(0x1b);
PrintChar(0x40);
PrintString("北京炜煌科技发展有限公司");
Print_Byte(13);
PrintString("打印机测试程序");
PrintChar(0x0d);
//1B 4A n ;执行 N 点行走纸,在两线间走纸为 20 点行。
PrintChar(0x1b);
PrintChar(0x40);
for(i=1;i<=20;i++)
PrintChar(0x2d);
PrintChar(13);
PrintChar(0x1b);
PrintChar(0x4a);
PrintChar(20);
for(i=1;i<=20;i++)
PrintChar(0x2d);
PrintChar(13);
PrintChar(10);
PrintChar(10);
//垂直造表
PrintChar(0x1b);
PrintChar(0x40);
PrintChar(0x1b);
PrintChar(0x42);
PrintChar(03);
PrintChar(6);
PrintChar(12);
PrintChar(0);
PrintChar(0x0b);
PrintString("位置 1");
PrintChar(13);
PrintChar(0x0b);
PrintString("位置 2");
PrintChar(13);
PrintChar(0x0b);
PrintString("位置 3");
PrintChar(13);
while(1);
www.whkj.com.cn
- 5 -
}
2.4 电源连接
本系列打印机采用 DC 9V~24V 25W 的直流电源,电源插口如下图所示:
1 2 3
说明:1 接电源正极,2 为空脚,3 接电源负极
第三部分 打印命令祥解
一、选择字符集命令
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:
LF
10 进制:
10
16 进制:
0A
打印缓冲区内容,打印机向前走纸一个字符行,即(字符行高+行间距)个点行。
3-2-2、【执行 n 点行走纸】
格式: ASCII:
ESC J n
10 进制:
27 74 n
16 进制:
1B 4A n
打印纸向前进给 n 点行(点为绝对值,不受放大或缩小命令影响),1≤n≤255.
三、格式设置命令
3-3-1、【设置 n 点行间距】
格式: ASCII:
ESC 1
n
10 进制:
27 49 n
16 进制:
1B 31 n
为后面的换行命令设置 n 点行间距(点为绝对值,不受放大或缩小命令影响),0≤n≤255,上电或初始化后 n=3。
www.whkj.com.cn
- 6 -
3-3-2、【设置字符间距】
格式: ASCII:
ESC p
n
10 进制:
27 112 n
16 进制: 1B 70 n
该命令是设定字符之间的空点。
默认方式为零,即字符之间没有空点(点为绝对值,不受放大或缩小命令影响),n 在 0~255 之间。
3-3-3、【设置垂直造表值】
格式: ASCII:
ESC B
n1 n2...NUL
10 进制:
27 66 n1 n2...0
16 进制:
1B 42 n1 n2...00
输入垂直造表值 n1,n2 等,最多可输入 8 个值。每一个垂直造表值都是从打印头最初的起始位置算起,例 n1=3,
n2=6,则第一次执行垂直造表(VT 命令)进纸到第 3 个单位行开始打印,再次执行垂直造表命令时,进纸到第 6 个
单位行开始打印。单位行的高度按 8+行间距个点行计算(每单位行高度的实际值是绝对的,不受字符的放大或缩
小命令影响)。NUL 加在最后表示该命令的结束。
所有输入的垂直造表位置,可用该命令以 ESC B NUL 的格式清除。
3-3-4、【执行垂直造表】
格式: ASCII:
VT
10 进制: 11
16 进制: 0B
打印纸进给到由 ESC B 命令设置的下一垂直造表位置。如果垂直造表位置已清除,或当前位置已等于或超过最后
一个垂直造表位置,VT 命令将只走纸一单位行。
3-3-5、【设置水平造表值】
格式: ASCII:
ESC D
n1 n2...NUL
10 进制: 27 68 n1 n2...0
16 进制: 1B 44 n1 n2...00
输入水平造表位置 n1,n2 等,最多可输入 8 个位置,这些数据应在所配打印头和放大倍数等制约下的每行能打印
最多字符数之内。例 n1=3,则执行水平造表(HT 命令)时在第 3 个字符处开始打印,每个字符的宽度按(字符点阵宽
度+字间距)个点计算(每个字符宽度的实际值是相对的,受字符的放大或缩小命令影响)。数据 NUL 加在最后表示
该命令结束。所有输入的水平造表位置,可用该命令以 ESC D NUL 的格式清除。
当对汉字执行水平造表的命令时,因其造表的位置是按字符设置的,还要受到放大倍数的影响,设置时需要注意,
以达到预设置效果。
3-3-6、【执行水平造表】
格式: ASCII:
HT
10 进制: 9
16 进制: 09
打印位置进行到由 ESC D 命令设置的下一水平造表位置。
如果水平造表位置已清除,或着当前打印位置已等于或超过最后一个水平造表位置,HT 命令将不执行。
www.whkj.com.cn
- 7 -
3-3-7、【打印空格或空行】
格式: ASCII:
ESC f m n
10 进制: 27 102 m n
16 进制: 1B 66 m n
如果m=0,ESC f NUL n 将打印 n 个空格,每个空格的宽度按(字符点阵宽度+字间距)计算。n 值应在所配打印头行
打印最多字符数内。如果m=1,ESC f SOH n 将打印 n 行单位行(8 点行),1≤n≤255。
3-3-8、【设置右限】
格式: ASCII:
ESC Q
n
10 进制:
27 81 n
6 进制:
1B 51 n
右限即打印纸右侧不打印的字符数,每个字符的宽度按(字符的点阵宽度+字间距)计算(每个字符宽度的实际值是
相对的,受字符的放大或缩小命令影响);n 的数值应在 0 到所配打印头的能打印的字符数内;上电或初始化后 n=0;
即没有右限。
3-3-9、【设置左限】
格式: ASCII:
ESC 1 n
10 进制:
27 108 n
16 进制:
1B 6C n
左限即打印纸左侧不打印的字符数,每个字符的宽度按(字符点阵宽度+字间距)计算(每个字符宽度的实际值是相
对的,受字符的放大或缩小命令影响);n 的数值应在 0 到所配打印头的行宽范围内,上电或初始化后 n=0。
3-3-10、【灰度打印】
格式:ASCII: ESC m
n
10 进制: 27 109 n
16 进制: 1B 6D n
n 的值为 1~12 级,“1”颜色最浅,“12”颜色最深,默认值为“1”。用于针对不同的热敏纸的颜色深浅不一问题。
四、字符设置命令
3-4-1、【字体宽度设置】
格式: ASCII:
ESC 7
n
10 进制:
27 55 n
16 进制:
1B 37 n
该命令通过设置 n 值来选择不同的字体宽度,使字体横向放大,具体设置如下:
n=0 时,字体横向宽度为原始宽度,不放大
n=1 时,横向放大 1.5 倍
N=2 时,横向放大 2 倍
N=3 时,横向放大 3 倍
N=4 时,横向放大 4 倍
16 点阵打印机 n 默认为 2。24 点阵打印机 n 默认为 0。
www.whkj.com.cn
- 8 -