logo资料库

炜煌打印机-WH-0RB0 无模具打印机说明书.pdf

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
第一部分 性能指示
第二部分 操作说明
2.1 按键与指示灯
2.1.1 打印机自检方法
2.1.2 改变打印方向的方法
2.1.3 改变打印浓度的方法
2.1.4 改变波特率及串口工作方式的方法
2.2 并行接口
2.2.1接口与引脚定义
2.2.2 并行接口引脚信号时序
2.2.3 并口例程
2.3串行接口
2.3.1串行接口引脚定义
2.3.2 波特率和通讯模式
2.3.3 串口例程
2.4 电源连接
第三部分 打印命令祥解
第四部分 西文字符集1、2
第五部分 命令速查表
目 录 第一部分 性能指示............................................................................ - 1 - 第二部分 操作说明............................................................................ - 2 - 第三部分 打印命令祥解.................................................................... - 8 - 第四部分 西文字符集 1、2..............................................................- 15 - 第五部分 命令速查表.......................................................................- 15 - 第一部分 性能指示 1、打印方法: 直接热敏打印 2、打印纸宽: 80±0.5mm 3、打印密度: 8 点/mm,576 点/行 4、有效打印宽度: 72mm 5、打印头寿命: 6×106字符行 6、打印速度: 25%的字符率的情况下为 6mm/s 7、字库: 0x20—0xa0 间的西文字符集 1、2; 20h—7fh 间的标准 ASCII 码半角字符; 国标一、二级汉字 要打印机汉字时,不用对打印机进行有关选择字库的任何设置,只需输入汉字标准 代码即可。16 点阵汉字默认为放大 2 倍大的 16*16 点阵字,24 点阵默认放大一倍。 8、接口形式: 并口 TTL 电平及串口 TTL 电平 232 电平 9、操作温度: 5~50℃ 10、操作相对湿度: 10~80% 11、储存温度: -20~60℃ 12、储存相对湿度: 10~90% 13、电源: 根据不同型号有三种打印机(具体接口定义见 P7) - 1 - http://www.whkj.com.cn
第二部分 操作说明 2.1 按键与指示灯 一个状态指示灯,上电后为常亮状态。缺纸时指示灯闪。 两个功能按键:LF 键和 SET 键。LF 键靠近指示灯 ,SET 键远离指示灯。正常上电后,LF 键为走纸键,SET 键 无效。 2.1.1 打印机自检方法 打印机断电,按 LF 键不放手同时给打印机上电,松手,打印机就会打印出自检条。 2.1.2 改变打印方向的方法 1、打印机断电,按 SET 键不放手同时给打印机上电,松手,打印机打印出状态设置报告。 2、按 SET 键进入工作模式。 3、再按 SET 键进入设置打印方向状态,LF 为正向,SET 为反向打印,设置完成后打印机需重新上电。 2.1.3 改变打印浓度的方法 1、打印机断电,按 SET 键不放手同时给打印机上电,松手,打印机打印出状态设置报告。 2、按 LF 键进入改变打印浓度状态,LF 为增量,SET 为减量,设置完成后打印机需重新上电。 2.1.4 改变波特率及串口工作方式的方法 1、打印机断电,按 SET 键不放手同时给打印机上电,释放按键后,打印出状态设置报告。 2、按 SET 键进入工作模式。 3、按 LF 键进入串口设置状态。按 SET 键改变打印机的通讯模式:两种,有奇偶校验位和无奇偶校验位;按 LF 键改变波特率:1200,2400,4800,9600,19200bps.设置完成后打印机需重新上电。 2.2 并行接口 2.2.1 接口与引脚定义 本系列打印机并口与 CENTRONICS 兼容,支持 BUSY/ACK 握手协议,接口插座为 IDE 20 针插座。当打印机接口为 TTL 电平时,同时兼容 TTL 串口(见 2.3)。并行接口插座引脚序号如下图所示: 1 19 2 20 并行接口插座引脚序号 2.2.2 并行接口引脚信号时序 并口时序如下图所示: BU SY /A CK 并口时序图 0. 5μS 0. 5μS DA TA /S TB 0. 5μS 0. 5μS 0. 5μS - 2 - http://www.whkj.com.cn
IDE 20 针并行接口各引脚信号的定义如下图表所示: 面板式引脚 信 号 方 向 说 明 1 3 5 7 9 11 13 15 17 20 18 14 19 4 2、6、8、10、12、16 -STB 入 数据选通触发脉冲,上升沿时读入数据 DATA1 入 DATA2 入 DATA3 入 DATA4 入 DATA5 入 DATA6 入 DATA7 入 DATA8 入 -ACK 出 回答脉冲,“低”电平表示数据已被接受而且打印机准备好接收下一数据 BUSY 出 “高”电平表示打印机正“忙”,不能接收数据 这些信号分别代表并行数据的第一至第八位信号,每个信号当其逻辑为“1” 时为“高”电平,逻辑为“0”为“低”电平。 Ports&p 入 为并口时,此引脚接地。 PE 出 高电平表示缺纸 SEL 出 打印机内部经电阻上拉“高”电平,表示打印机在线 GND — 接地,逻辑“0”电平 注: 1.“入”表示输入到打印机。 2.“出”表示从打印机输出。 3.信号的逻辑电平为 TTL 电平。 2.2.3 并口例程 ; 定义 BUSY 信号引脚 ; 定义 nSTB 信号引脚 MOV DPTR, #print_content MOV CLR R0, #9 ; 存待打印数据的字节数 A A, @ A + DPTR MOVC PRINTB LCALL INC DPTR DJNZ R0, MAIN MOV A, #0DH LCALL PRINTB SJMP $ ;打印结束死循环 ;PRINTB 子程序将累加器 A 中的一字节数据发送到打印机 ORG 0000H JMP start 单片机控制打印机时汇编例程 EQU P3.2 BUSY nSTB EQU P3.7 start: main: PRINTB: JB MOV CLR NOP nop nop SETB nSTB RET print_content: 单片机 C51 例程 #include #define PRINTER_DATA sbit BUSY = P3^2; P1 DB '北京炜煌' DB 0dh END BUSY, $ P1 , A nSTB ; 延长 nSTB 信号脉冲宽度以满足时序要求 ; 等待打印机到空闲 ; 送数据到数据口 ; 置 nSTB 为低电平 ; 置 nSTB 为高电平(此时数据将被读入打印机) // 定义打印机数据线端口 // 定义打印机忙信号引脚 - 3 - http://www.whkj.com.cn
0x0d 0x0a // 定义打印机 nSTB 信号引脚 char str[] = "Printer demo"; PrintString("WHKJ Printer"); PrintByte(CR); while(1); while( BUSY == 1 ){ } PRINTER_DATA = byte_data; nSTB = 0; _nop_(); nSTB = 1; 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) { } /* PrintByte() * Send a byte to printer */ #include void PrintByte(unsigned char byte_data) { } /* * 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) { } /* * 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, { while( *str ){ } unsigned char N) // number of data(byte) PrintByteN() // 调整 nSTB 信号脉宽 PrintByte( *(str++)); while( N--){ PrintString() // pointer to data source PrintByte(*(data_src++)); } } - 4 - http://www.whkj.com.cn
2.3 串行接口 2.3.1 串行接口引脚定义 本系列打印机串口电平标准为三种:TTL 电平、232 电平。其引脚序号为: 1 19 2 20 说明: 当打印机为 TTL 电平时,接口引脚定义如下: 引脚 信号 方向 说 明 19 20 TXD 出 打印机向主机发送控制码 RXD 入 打印机从主计算机接收数据 18 BUSY 出 该信号为高电平时,表示打印机“忙”不能接受数据,而当该信号 为低电平时,表示打印机“准备好”,可以接收数据 GND — 接地,逻辑‘0’电平 2、6、 8 、 12 、 16 注: 1.“入”表示输入到打印机; 2.“出”表示从打印机输出;3.未标注脚为空脚。 当打印机为 232 电平时,接口引脚定义如下: 引脚 信号 方向 说 明 20 19 TxD 出 打印机向主机发送控制码 RxD 入 打印机从主计算机接收数据 18 BUSY 出 该信号为高电平时,表示打印机“忙”不能接受数据,而当该信号 为低电平时,表示打印机“准备好”,可以接收数据 GND — 接地,逻辑‘0’电平 2、6、 8 、 12 、 16 注: 1.“入”表示输入到打印机; 2.“出”表示从打印机输出;3.未标注脚为空脚。 2.3.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.3.3 串口例程 单片机控制打印机时汇编例程 BUSY EQU ORG 30h start: MOV MOV R2, ORG 0000H JMP start P3.0 ; 定义 BUSY 信号引脚 DPTR, #print_content #77 ; R2 保存待打印数据的字节数 - 5 - http://www.whkj.com.cn
; 等待打印机到空闲 JB BUSY, $ JNB TI, $ ; 等到上一字节发送完,第一个字节发送前要手动置 TI,见;SETUART 了函数 CLR TI MOV A, R0 MOV SBUF, A POP ACC RET ; 保存待打印数据 ; 送数据到打印机 ;设置定时器 T1 工作模式 3 ; 设置波特率 9600bps @ 22.1184MHz ; 启动定时器 T1 ; 设置串行口工作方式为异步串行口,模式 1 ; 设置标志位,为发送数据作准备 MOV TMOD, #20H #0FAH MOV TH1, ;设置串口子程序 ;不使用中断, 定时器 1 用作波特率发生器 SETUART: MOV TL1, #0FAH ; 定义待打印数据内容 ; 保存在程序段 print_content: SETB TR1 MOV SCON, #50H SETB TI RET @A+DPTR ; 读出待打印字符 ; 设置串口 ; 打印一个字节 LCALL SETUART CLR A MOVC A, MOV R0, A LCALL PRINTB INC DPTR DJNZ R2, MAIN MOV A, LCALL PRINTB SJMP $ main: ;PRINTB 子程序将累加器 A 中的一字节数据发送到打印机 ; 待发送数据通过 R0 传递 PRINTB: PUSH #0DH ACC ; 打印结束无限循环 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; - 6 - http://www.whkj.com.cn
{ } int i; for(i=0;i
第三部分 打印命令祥解 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 进制: 16 进制: 11 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 - 8 - http://www.whkj.com.cn 打印缓冲区内容,打印机向前走纸一个字符行,即(字符 示该命令的结束。 一、选择字符集命令 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 进制: 16 进制: LF 10 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。
分享到:
收藏