加入收藏夹
 公司简介 || 产品列表 || 购买方式 || 汇款订单提交 || 论坛 || Universal Programmer || 淘宝网店 || 诚聘英才 || 单片机项目开发


KC-501系列微型打印驱动模块 ---- 支持EPSON M-150II微型针式打印机芯

    KC-501系列微型打印驱动模块支持EPSON M-150II微型针式打印机芯,可广泛适用于仪器仪表、机电设备等。它具有尺寸小巧,集成度高,功能完善,全SMT贴片工艺,操作简单,连接方便等特点。

打印机驱动模块


    KC-501系列微型打印驱动模块具有通用ESC/POS打印命令,可实现字符和汉字的放大、缩小,打印方式的选择,打印格式的设置等。它不但可以打印ASCII字符、国标汉字、数字符号、专用符号,还可打印英文、希腊文、德文、法文、俄文、日语片假名,以及各种图形符号。

产品特色:
    支持EPSON M-150II微型针式打印机。
    大规模集成电路设计,SMT工艺,稳定可靠,便于安装。
    Centronics并行或串行数据接口可选,便于与各种微机或智能仪器联机工作。
    打印命令兼容ESC/POS命令集,对西文字符、中文字符都有效。
    可选 12*12或16*16点阵字符字库。
    可选配768字节标准缓存、8k字节大缓存、或32k字节超大缓存。

主要性能:
    国标一二级硬件中文汉字字库:包含682个符号、6763个汉字。
    768/8k/32k字节高速大容量打印缓存。    
    可打印字符:全部96个ASCII字符、希腊文、德文、法文、俄文等字母,日语片假名、部分中文字、数学符号、打印符号、块图符、国标汉字
    字符格式:西文12*6点阵/中文12*12点阵,或西文16*8点阵/中文16*16点阵。 
    数据接口:并行接口(Centronics兼容)或串行接口(3V TTL)。
    数据接口方式:IDC-26针芯插座(并行)、5芯单排插座(串行)。
    控制命令:ESC/POS兼容。
    可靠性:(5~15)*106 MCBF。
    工作电源:直流5V±5%,1.5A(峰值电流)。
    工作温度:0~+50℃;工作湿度:10~80%。

型号说明:
    KC-501系列打印驱动模块的缓存容量和汉字库可由用户选择。具体型号见下表。


型号

系统缓存

内嵌字库规格

型号

系统缓存

内嵌字库规格

KC-501-P12S

768字节

12*12点阵

KC-501-P16S

768字节

16*16点阵

KC-501-P12M

8k字节

12*12点阵

KC-501-P16M

8k字节

16*16点阵

KC-501-P12L

32k字节

12*12点阵

KC-501-P16L

32k字节

16*16点阵

基本尺寸

接口描述

电源连接

KC-501打印驱动模块使用+5V直流电源,电源电压的容许范围为+5V±5%。电源容量大于2.0A。电源插头P1具有正负极性,不能接错!电源电压一定要在容许范围之内!否则会给打印机造成永久性损坏!
连接方式如下表所示:

引脚

名称

说明

1

VCC

电源正极,接+5VDC

2

GND

电源负极,接地

3

GND

电源负极,接地

并行口引脚说明

    IDC26并行接口与Centronics标准并行口兼容,可直接由微机DB25并口或单片机控制。下表描述了打印板IDC26接口和微机DB25并口的引脚功能及对应关系。

信号

方向

IDC26引脚

DB25引脚

#Stb

输入

1

1

Data0

输入

3

2

Data1

输入

5

3

Data2

输入

7

4

Data3

输入

9

5

Data4

输入

11

6

Data5

输入

13

7

Data6

输入

15

8

Data7

输入

17

9

#Ack

输出

19

10

Busy

输出

21

11

PE

 

23

NC

SEL

 

25

13

#ERR

 

4

15

NC

悬空

2, 6, 8, 26

NC

GND

接地

10, 12, 14, 16, 18, 20, 22, 24

12, 25

#Stb:数据选通触发脉冲。上升沿时读入数据。
Data1~Data8:并行数据的第一位至第八位信号。逻辑1为高电平。逻辑0为低电平。
#Ack:回答脉冲。低电平表示数据已被接受。高电平表示数据正被处理(系统缓存已满)。
Busy:打印机忙碌状态。高电平表示打印机正忙,处于打印状态。低电平表示打印结束,打印机空闲。
PE:接地。
SEL:经电阻上拉至高电平,表示打印机在线。
#ERR:经电阻上拉至高电平,表示无故障。

并行口时序图

打印机接口方式

驱动模块

打印机

1

11

2

10

3

9

4

8

5

7

6

6

7

5/4

8

3

9

2

10

1

打印数据通信

概述

    KC-501提供的打印命令与传统ESC打印命令完全兼容。
    用户可通过并行或串行接口,向KC-501发送数据,实现打印机设置、打印格式设置和数据打印等功能。用户发送的数据分为“可打印字符”、“ESC/POS兼容指令”两大类。
    “可打印字符”指打印机最终打印到卷纸上的字符,包含可打印的12*6点阵ASCII西文字符和12*12点阵中文字符,或16*8点阵ASCII西文字符和16*16点阵中文字符。
    “ESC/POS兼容指令”指控制码和以ESC码开头的不可打印的控制码序列构成。

打印西文字符

KC-501集成了标准ASCII字符字库,共95个可打印字符,详见附录。
以12*6点阵为例,每个字符包含12行6列个点,例如:

以16*8点阵为例,每个字符包含16行8列个点,例如:

要打印标准ASCII字符,向KC-501发送单字节ASCII码即可,ASCII码值应在0x20~0x7E(32~126)之间。

打印中文字符

    KC-501集成了国标一级、二级中文字库,符合国家标准GB2312-80规定的全部一、二级汉字、图形和符号等,包含682个符号、6763个汉字。
    它们分别是:
    一般符号202个,如间隔符、标点、运算符、单位符号及制表符
    序号60个,如⒈~⒛、⑴~⒇、①~⑩、㈠~㈩
    数字22个,如0~9、Ⅰ~Ⅻ
    英文字母52个,其中26个大写A~Z、26个小写a~z
    日文平假名83个
    日文片假名86个
    希腊字母48个
    俄文字母66个
    汉语拼音符号a~z共26个
    汉语拼音字母37个
    3755个一级常用汉字
    3008个二级汉字区
    以12*12点阵为例,每个字符包含12行12列个点,例如:

以16*16点阵为例,每个字符包含16行16列个点,例如:

要打印12*12点阵中文字符,向KC-501发送2字节的机内码即可。汉字机内码的高、低位字节的取值范围为0xA1~0xFE(161~254)。

控制码

    “ESC/POS兼容指令”由不可打印的控制码,和以ESC码开头的控制码序列构成。
    不可打印的控制码一般是0x00~0x1F(0~31)之间的ASCII码,例如:VT(ASCII码值为0x08),FF(ASCII码值为0x0C),CR(ASCII码值为0x0D)等。
    控制码序列由:1个ESC,1个或多个控制码,0个或1个NUL码组成。可能的组合为:
ESC+控制码1
ESC+控制码1+控制码2+……
ESC+控制码1+控制码2+……+NUL

指令集

    本驱动模块在参考了流行的IBM和EPSON打印机基础上设计,能和大多数的打印机兼容。绝大多数指令对西文字符和中文字符都有效。
    本驱动模块提供了多种“ESC/POS兼容指令”,按类别可分为:
    纸进给命令
    格式设置
    字符设置
    字符图形设置
    数据控制
    图形打印

打印流程

    当用户向KC-501发送数据时,用户数据首先进入系统缓存。系统缓存用于暂存用户数据,当用户需一次性打印大容量数据,如大幅点阵图或长篇文字时,大容量系统缓存可避免主控机长时间等待,提高主控机执行效率,实现脱机打印的功能。系统缓存的容量需在用户订货时注明。
    同时,可打印字符将进入行缓冲器。行缓冲器是用于暂存可打印字符的存储器,可以最大暂存16个12*6点阵西文字符或12个16*8点阵西文字符,和8个12*12点阵中文字符或6个16*16点阵中文字符。
    当行缓冲器数据满时,KC-501会自动打印出行缓冲器中的全部字符。
    用户可以通过发送“ESC/POS兼容指令”来控制打印输出方式,使得打印机按用户的设计,在卷纸的不同位置打印出字符或图案。

ESC/POS兼容指令集

基本术语

点行——打印针打印一点的高度。
点列——从打印纸左侧起的打印点列号。对于EPSON M-150II打印机芯,从左至右共可打印96点列。
字行——打印针打印一个字符的高度。对于12*6点阵西文字符、12*12点阵中文字符而言,1字行等于12点行。对于16*8点阵西文字符、16*16点阵中文字符而言,1字行等于16点行。
字间距——字符与字符之间水平间隔的点数。
行间距——字行与字行之间垂直间隔的点行数。
默认值——打印机上电或执行初始化命令后的缺省值。

纸进给命令

【换行】

命令
格式

ASCII码

LF

十进制

10

十六进制

0x0A

打印行缓冲器中的所有数据,并走纸一字行。
如果行缓冲器为空,则仅走纸一字行。
效果与回车命令CR一样。

【执行n点行走纸】

命令
格式

ASCII码

ESC J n

十进制

27 74 n

十六进制

0x1B 0x4A n

打印机向前进给n点行,1≤n≤255。
如果n=0,则该命令无效。
如果行缓冲器里有未打印的数据,则在走纸前先打印这些数据,再走纸n点行。
【执行n点行走纸】将忽略页长、装订长等格式设置。

【设置点行间距】

命令
格式

ASCII码

ESC 1 n

十进制

27 49 n

十六进制

0x1B 0x31 n

为后面的换行命令设置n点行间距,0≤n≤255,默认n=2。
在打印西文中文字符时通常设n=2。在打印点阵图时通常设置n=0。

格式设置

【设置页长】

命令
格式

ASCII码

ESC C n

十进制

27 67 n

十六进制

0x1B 0x43 n

设置页长为n字符行,1≤n≤255,默认n=40。 如果n=0,则该命令无效。

【换页】

命令
格式

ASCII码

FF

十进制

12

十六进制

0x0C

走纸到下一页的开始位置。
如果行缓冲器里有未打印的数据,则换页前先打印这些数据。

【设置装订长】

命令
格式

ASCII码

ESC N n

十进制

27 78 n

十六进制

0x1B 0x4E n

装订长是指本页与下一页之间的空白字行数。
设置装订长为n字行,0≤n≤255,默认n=0。

【取消装订长】

命令
格式

ASCII码

ESC O

十进制

27 79

十六进制

0x1B 0x4F

装订长被设置为0字行。当打印到页尾时,打印机将一行接一行的打印,中间不会留出页与页之间空字行。

【设置垂直造表位置】

命令
格式

ASCII码

ESC B n1 n2 n3…… NUL

十进制

27 66 n1 n2 n3…… 0

十六进制

0x1B 0x42 n1 n2 n3…… 0x00

输入垂直造表位置n1,n2,n3……等,最多可输入8个位置,NUL加在最后用以表示该命令结束。
此处nX (X=1, 2, ...)对应字行。例如,若n1=3,则执行垂直造表后,后续打印从第三字行开始。
如果不输入nX (X=1, 2, ...),仅输入|ESC|B|NUL|,则清除之前设置的所有垂直造表位置。
注意:垂直造表位置的设定,应考虑页长因素,以达到预设效果。

【执行垂直造表】

命令
格式

ASCII码

VT

十进制

11

十六进制

0x0B

打印纸进给到【设置垂直造表位置】设定的造表位置n1,n2,n3……。
如果行缓冲器里有未打印的数据,则先打印这些数据,再【执行垂直造表】。
如果垂直造表位置未设置或已清除,或者当前位置等于或超过垂直造表位置,或者垂直造表位置执行完毕,或者垂直造表位置超过页长,则该命令无效。
【换页】后,垂直造表位置重新从n1开始。

【设置水平造表位置】

命令
格式

ASCII码

ESC D n1 n2 n3…… NUL

十进制

27 68 n1 n2 n3…… 0

十六进制

0x1B 0x44 n1 n2 n3…… 0x00

输入水平造表位置n1,n2,n3……等,最多可输入8个位置,NUL加在最后用以表示该命令结束。
此处nX (X=1, 2, ...)对应点列。例如,若n1=3,则执行水平造表后,后续打印从第3点列开始。
如果不输入nX (X=1, 2, ...),仅输入|ESC|D|NUL|,则清除之前设置的所有水平造表位置。
注意:水平造表位置的设定,应考虑打印机行宽,nX (X=1, 2, ...)必须小于等于96,否则无效。

【执行水平造表】

命令
格式

ASCII码

HT

十进制

9

十六进制

0x09

打印位置前进到【设置水平造表位置】设定的造表位置n1,n2,n3……。
如果水平造表位置未设置或已清除,或者当前位置等于或超过水平造表位置,或者水平造表位置执行完毕,或者水平造表位置超过行宽,则该命令无效。

【打印空格或空行】

命令
格式

ASCII码

ESC f m n

十进制

27 102 m n

十六进制

0x1B 0x66 m n

当m=0时,该命令打印n个西文字符空格,0≤n≤255。对于12*6点阵西文字符,1个空格宽度为6点列;对于16*8点阵西文字符,1个空格宽度为8点列。
注意:打印空格应考虑打印机行宽。
当m=1时,该命令打印n个空字行,1≤n≤255。如果行缓冲器里有未打印的数据,则打印空行前先打印这些数据。如果n=0,则该命令无效。
注意:打印空行应考虑页长、装订长等格式设置。

【设置左限】

命令
格式

ASCII码

ESC l n

十进制

27 108 n

十六进制

0x1B 0x6C n

设置从左侧起首个字符的打印位置,该位置是绝对位置,不受【横向放大】、【纵向放大】、【横向纵向放大】命令的影响。
n值为点列位置,默认值n=0,即没有左限。n值应在打印机行宽之内,即n<96。
如果行缓冲器里有未打印的数据,则先打印这些数据,再【设置左限】。

【设置右限】

命令
格式

ASCII码

ESC Q n

十进制

27 81 n

十六进制

0x1B 0x51 n

设置从右侧起最后一个字符的打印位置,该位置是绝对位置,不受【横向放大】、【纵向放大】、【横向纵向放大】命令的影响。
n值为点列位置,默认值n=0,即没有右限。n值应在打印机行宽之内,即n<96。
设置右限后,当达到右限位置后,打印机将自动【换行】。

字符设置

【允许/禁止上划线】

命令
格式

ASCII码

ESC + n

十进制

27 43 n

十六进制

0x1B 0x2B n

当n=1时,允许上划线打印
当n=0时,禁止上划线打印
允许上划线命令发送后,所有字符(包括空格)都将打印出上划线,除非再次发送禁止上划线命令。

【允许/禁止下划线】

命令
格式

ASCII码

ESC - n

十进制

27 45 n

十六进制

0x1B 0x2D n

当n=1时,允许下划线打印。
当n=0时,禁止下划线打印。
允许下划线命令发送后,所有字符(包括空格)都将打印出下划线,除非再次发送禁止下划线命令。

【横向放大】

命令
格式

ASCII码

ESC U n

十进制

27 85 n

十六进制

0x1B 0x55 n

在该命令输入之后的字符将以正常宽度的n倍打印,1≤n≤4,默认n=1,即正常宽度,无放大。
如果【横向放大】前,行缓冲器中有未被打印数据,则这些数据都会被【横向放大】。
【横向放大】会影响行缓冲区的有效大小。例如,当横向放大2倍时,行缓冲器能容纳8个12*6点阵西文字符,而当横向放大4倍时,行缓冲器只能容纳4个12*6点阵西文字符。
注意,这个命令只有在发出【横向纵向放大】1倍之后才有效。

字符图形设置

【纵向放大】

命令
格式

ASCII码

ESC V n

十进制

27 86 n

十六进制

0x1B 0x56 n

在该命令输入之后的字符和点阵图都将以正常高度的n倍打印,1≤n≤4,默认n=1,即正常高度,无放大。
如果【纵向放大】前,行缓冲器中有未被打印数据,则这些数据也会被【纵向放大】。
注意,这个命令只有在发出【横向纵向放大】1倍之后才有效。

【横向纵向放大】

命令
格式

ASCII码

ESC W n

十进制

27 87 n

十六进制

0x1B 0x57 n

在该命令输入之后的字符将以正常宽度和正常高度的n倍打印,点阵图将以正常宽度的n倍打印,1≤n≤4,默认n=1,即正常宽度、正常高度,无放大。
如果【横向纵向放大】前,行缓冲器中有未被打印数据,则这些数据都会被【横向纵向放大】。
【横向纵向放大】会影响行缓冲区的有效大小。例如,当横向放大2倍时,行缓冲器能容纳8个12*6点阵西文字符,而当横向放大4倍时,行缓冲器只能容纳4个12*6点阵西文字符。

【允许/禁止反白打印

命令
格式

ASCII码

ESC i n

十进制

27 105 n

十六进制

0x1B 0x69 n

当n=1时,允许反白打印,即背景打印黑色,字符打印白色,类似照相的底片。
当n=0时,禁止反白打印。即正常打印,背景打印白色,字符打印黑色。
默认n=0。

数据控制

【初始化】

命令
格式

ASCII码

ESC @

十进制

27 64

十六进制

0x1B 0x40

初始化打印机下列内容:
1)清空行缓冲器。
2)恢复默认参数。

【回车】

命令
格式

ASCII码

CR

十进制

13

十六进制

0x0D

当发送一个回车命令到打印机时,在打印行缓冲器中所有数据都将被打印而且向前走一行。效果与【换行】命令一样。

【空指令】

命令
格式

ASCII码

NUL

十进制

0

十六进制

0x00

【空指令】和某些命令,如ESC B、ESC D、ESC %等一起使用,用于表示这些命令的结束。
【空指令】单独使用时不起作用。

图形打印

【点阵图打印】

命令
格式

ASCII码

ESC K n byte1 byte2 byte3……

十进制

27 75 n byte1 byte2 byte3……

十六进制

0x1B 0x4B n byte1 byte2 byte3……

该命令打印n*8点阵的图形。该图形的宽度为n点,高度为8点,每一列的8个点由一个字节byte1,byte2,byte3等来表示。第一行为字节最低位,第八行为字节最高位。byte数量必须等于图形宽度n。
如果行缓冲器里有未打印的数据,则【点阵图打印】前先打印这些数据。
注意:字符图形设置中【纵向放大】、【横向纵向放大】命令对点阵图有效。但其他格式设置和字符图形设置对点阵图无效。

附录

打印命令速查表

十进制

十六进制

命令

功能

0

0x00

NUL

结束标志

9

0x09

HT

执行水平造表

10

0x0A

LF

换行

11

0x0B

VT

执行垂直造表

12

0x0C

FF

换页

13

0x0D

CR

回车

27 102

0x1B 0x66

ESC f

打印空格或空行

27 105

0x1B 0x69

ESC i

允许/禁止反白打印

27 108

0x1B 0x6C

ESC l

设置左限

27 43

0x1B 0x2B

ESC +

允许/禁止上划线

27 45

0x1B 0x2D

ESC -

允许/禁止下划线

27 49

0x1B 0x31

ESC 1

设置点行间距

27 64

0x1B 0x40

ESC @

初始化

27 66

0x1B 0x42

ESC B

设置垂直造表位置

27 67

0x1B 0x43

ESC C

设置页长

27 68

0x1B 0x44

ESC D

设置水平造表位置

27 74

0x1B 0x4A

ESC J

执行n点行走纸

27 75

0x1B 0x4B

ESC K

点阵图打印

27 78

0x1B 0x4E

ESC N

设置装订长

27 79

0x1B 0x4F

ESC O

取消装订长

27 81

0x1B 0x51

ESC Q

设置右限

27 85

0x1B 0x55

ESC U

横向放大

27 86

0x1B 0x56

ESC V

纵向放大

27 87

0x1B 0x57

ESC W

横向纵向放大

西文字符ASCII

字符

Dec

Hex

字符

Dec

Hex

字符

Dec

Hex

字符

Dec

Hex

 

32

0x20

8

56

0x38

P

80

0x50

h

104

0x68

!

33

0x21

9

57

0x39

Q

81

0x51

i

105

0x69

"

34

0x22

:

58

0x3A

R

82

0x52

j

106

0x6A

#

35

0x23

;

59

0x3B

S

83

0x53

k

107

0x6B

$

36

0x24

60

0x3C

T

84

0x54

l

108

0x6C

%

37

0x25

=

61

0x3D

U

85

0x55

m

109

0x6D

&

38

0x26

62

0x3E

V

86

0x56

n

110

0x6E

'

39

0x27

 

63

0x3F

W

87

0x57

o

111

0x6F

(

40

0x28

@

64

0x40

X

88

0x58

p

112

0x70

)

41

0x29

A

65

0x41

Y

89

0x59

q

113

0x71

*

42

0x2A

B

66

0x42

Z

90

0x5A

r

114

0x72

+

43

0x2B

C

67

0x43

[

91

0x5B

s

115

0x73

,

44

0x2C

D

68

0x44

\

92

0x5C

t

116

0x74

-

45

0x2D

E

69

0x45

]

93

0x5D

u

117

0x75

.

46

0x2E

F

70

0x46

^

94

0x5E

v

118

0x76

/

47

0x2F

G

71

0x47

_

95

0x5F

w

119

0x77

0

48

0x30

H

72

0x48

'

96

0x60

x

120

0x78

1

49

0x31

I

73

0x49

a

97

0x61

y

121

0x79

2

50

0x32

J

74

0x4A

b

98

0x62

z

122

0x7A

3

51

0x33

K

75

0x4B

c

99

0x63

{

123

0x7B

4

52

0x34

L

76

0x4C

d

100

0x64

|

124

0x7C

5

53

0x35

M

77

0x4D

e

101

0x65

}

125

0x7D

6

54

0x36

N

78

0x4E

f

102

0x66

~

126

0x7E

7

55

0x37

O

79

0x4F

g

103

0x67

 

 

 

应用参考程序

/*
函数功能:向KC-501发送1字节数据
说明:
P1 - 8位数据总线
P3_4 - Stb信号
P3_5 - Ack信号
*/
void SendByte( char byte )
{
//并行数据发送
P1 = byte;

//Stb上升沿向KC-501输入数据
P3_4 = 0;
P3_4 = 1;

//等待KC-501处理数据后产生Ack回答脉冲
while ( P3_5 ) ;
while ( !P3_5 ) ;
}

/*
函数功能:主函数
*/
void main( void )
{
;//单片机初始化

//初始化打印机
SendByte( 0x1B );
SendByte( 0x40 );

while ( 1 ) {
; //用户程序

//发送数据
SendByte( ' ' );
SendByte( 'K' );
SendByte( 'C' );
SendByte( '-' );
SendByte( '5' );
SendByte( '0' );
SendByte( '1' );
SendByte( ' ' );
//回车
SendByte( 0x0D );
}
}

--->>>返回首页



专业生产 智能家居控制系统 GSM远程遥控开关 串口继电器控制盒 GPRS MODEM 单片机开发板 电子制作散件套件
我们专注于智能家居控制系统,GPRS数据采集系统,物联网智能控制方向 晶控电子----让我们的生活更美好 品质更卓越 生活更智能
联系地址:浙江省杭州市登云路428号 浙江时代电子市场4楼852室 邮政编码:310011 Email:hificat@163.com
电话总机:0571-88009850   产品咨询:转分机1   技术支持:转分机2   传真:转分机3   手机:13185018567
销售QQ:1198450005 销售咨询 技术QQ-1:1275636157 技术咨询 技术QQ-2:420951892 技术咨询
杭州晶控电子有限公司 版权所有 2003-2012 HANGZHOU KinCony ELECTRONICS CO.,LTD 网站备案:浙ICP备11001927号