logo资料库

炜煌打印机-N-0R7B型打印机说明书.pdf

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
第一部分 性能指示
第二部分 操作说明
2.1 按键与指示灯
2.1.1 打印机自检方法
2.1.2 改变打印方向的方法
2.1.3 改变波特率及串口工作模式的方法
2.2 并口、串口设置
2.3 并行接口连接
2.3.1接口与引脚定义
2.3.2 并行接口引脚信号时序
2.3.3 并口例程
2.4 串行接口
2.4.1串行接口引脚定义
2.4.2 波特率和通讯模式
2.4.3 串口例程
第三部分 打印命令祥解
第四部分 西文字符集1、2
第五部分 命令速查表
目 录 第一部分 性能指示 ···················································································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
分享到:
收藏