《基于单片机的喷墨打印机控制技术》由会员分享,可在线阅读,更多相关《基于单片机的喷墨打印机控制技术(7页珍藏版)》请在金锄头文库上搜索。
1、基于单片机的喷墨打印机控制技术基于单片机的喷墨打印机控制技术 录入者:admin | 时间:2006-08-05 09:09:50 | 作者:未知 | 来源:未知 | 浏 览:45 次 摘要:摘要:介绍一种采用 MCS51 系列单片机控制驱动 Hewlett Packard DESKJET 600/800 系列喷墨打印机的硬件接口设计和软件设计方法。以控制打印机实现表格打印功能为例,给出了用 C51 语言编写的一系列相关基本控制程序。 关键词:关键词:单片机 喷墨打印机 HP PCL LEVEL 3 语言单片机应用系统中最常用的输出打印设备是微型打印机,例如 TP 系列、UP 系 列打印机等,
2、对它们的控制技术也较为成熟。但是近年来随着通用打印机的广泛使 用,微型打印机的缺点也日益明显:一是通用性及互换性不强;二是打印输出文档 的幅面过小,不便于装订及存档。而通用打印机都配有国际标准并行接口 (CENTRONICS)和串行接口(RS232422),纸张大小可任意选择。这些特点是微型打 印机所无法抗衡的。因此在越来越多的单片机应用系统中逐渐趋向于使用通用打印 机作为打印输出设备。本文介绍了以 MCS-51 系列单片机为核心,通过 CENTRONICS 国际标准 8 位并行接口控制驱动 HP-DJ 600800 系列喷墨打印机的硬件接口电路 没计方法及控制程序设计方法。1 1 CENTC
3、ENT 日日 ONICSONICS 接口标准接口标准HP-DJ 600800 系列喷墨打印机采用与 C 正 N-TRONICS 标准兼容的并行打印 机接口,接口各引脚信号的定义如表 1 所示。表表 1 1 CENTRONICSCENTRONICS 接口信号接口信号引脚号 信号 方向 说明 1 STB 输入 数据选通触发脉冲 29 D0D7 输入 数据线 10 ACK 输出 应答脉冲 11 BUSY 输出 “忙”信号 13 SEL 输出 打印机在线 14 ERR 输出 故障指示 12、1825GND - 接地 2 2 硬件设计硬件设计本着统一编址控制的原则,硬件原理如图 1 所示。本设计采用 M
4、CS-51 系列的 89C52 型单片机, 其内部有 8K 字节 的程序存储器, 尽可满足本设计 的程序、表格的 存储要求。在外 部扩展了一片数 据存储器 62256 作为打印数据缓 冲区,RAM62256 的存储容量为 32K 字节, 可以存放大量的打印数据。从原理框图 可看出,RAM62256 的片选 CS 端由单片机 的 P27 口控制,因此 RAM 的地址范围 为:0000H7FFFH。本设计采用查询方式进行打印驱动 控制,单片机与打印机的接口包括如下 内容:(1)单片机的八位数据线通过 74LS377 锁存后与打印机的八位数据线相 连,传送打印数据。单片机的 P27 口 通过 74L
5、S04 反相后与 74LS377 的 G 端相 连,因此单片机向打印机传送数据的口 地址为 8000H。(2)单片机的 P10 口提供数据选通 信号,它与打印机 STB 端连接,进行将 打印数据送打印机的选通控制。(3)单片机的 P11 口接打印机的 BUSY 端,以 BUSY 信号作为打印机“忙“或 “闲“状态查询信号。3 3 单片机驱动控制打印机的软件设计单片机驱动控制打印机的软件设计31 打印机的控制方法系统上电后,当需要打印的数据出 现在数据线上时,只要主机向打印机的 STB 端发一个负脉冲,就把数据送入了打印机。本设计对打印机的控制采取查询等 待方式。首先主机读打印机 BUSY 线,
6、如果 BUSY 为高电子则表示打印机正“忙“,禁止接收数据,需等待。当打印机取走数据并处理完毕后,BUSY 线被置为闲(低电平) ,同时输出应答脉冲 ACK 通知主机,可以再次输入数据。控制时序如图 2 所示。STB 为数据选通信号,打印机在其上升沿时读入数据。当主机发送数据后,需 要有 05s 以上的延时才能向 STB 线发负脉冲,即图 2 中的 t1 值不小于 05s;当 STB 信号从高电平变为低电子后,要保证负脉冲的宽度,亦即图 2 中 的 t2 值不小于 05s;当 STB 信号从低电平变为高电平后,要保证有 05s 以上的延时,亦即图 2 中的 t3 值不小于 05s,以确保打印机
7、将数据可靠读入。 控制流程见图 3 所示。无论打印机打印输出的是文字还是图形,主机向其发送的皆是一系列以字节 为单位的数据,因此如何向打印机发送数据是关键所在。以下为一数据发送程序实32 控制程序设计HP-DJ 600800 系列喷墨打印机使用 HP PCLLEVEL 3 语言,而在单片机控制 系统中使用十六进制代码。因此在以下程序设计中,将 PCL 命令全部替换为用十六 进制代码表示。在单片机实时控制系统中,打印机最常用的功能是将控制系统的测试结果打印 出来。下面通过如何实现一张表格的打印来具体说明单片机控制驱动喷墨打印机的 软件设计方法。需要打印的表格如表 2 所示。首先在 windows
8、 界面的“附件“的“画图“中制作好 如表 2 的表格,将其保存为文件名:REPORTBMP,并且在向单片机的程序存储器 中烧写程序代码时将此 BMP 文档代码一并写入,存放在以 BMP_ADDR 为起始地址的 程序区内。BMP_ ADDR 的值由所制作的表格大小决定,表格的宽度和长度分别用 paper_width 和 paper_length 表示。表表 2 2 需打印的表格需打印的表格测 试 项 目 技 术 指 标 实 测 值 +5V 电源 +5V0.2V +15V 电源 +15V0.3V -15V 电源 -15V0.3V +20V 电源 +20V0.5V 由流程图 4 可看出,首项工作 是
9、由主机向打印机发送命令,利用 软件实现打印机的初始化。初始化 的内容包括纸张型号、文本长度、 上下边距、左右边距的设置等。在 本设计中初始化程序如下:打印机初始化完成后,将打印 缓冲区清零。这个打印缓冲区实际 上就是位于外部 RAM 62256 内的一 段存储区域,RAM 62256 的地址范 围是 0000H7FFFH,在本设计中将 打印缓冲区的首地址定义为 0000H。为了书写方便在以下的程 序中用 PRINT_BUF 表示这个地址值。 接着将 ROM 中以 BMP_ADDR 为首址 的内容读出并写入首址为 PRINT_BUF 的打印缓冲区内,其代 码长度即所设定 打印数据全部存 入打印缓
10、冲区后,只要主机向打印 机发开始打印命令,将打印缓冲区 内的数据按字节依次发往打印机, 一张符合要求的表格即打印出来了。 具体程序如下:打印数据全部存入打印缓冲区 后,只要主机向打印机发开始打印 命令,将打印缓冲区的数据按字节 依次发往打印机,一长符合要求的 表格即打印出来了。具体程序如下:所设计的 MCS-51 系列单片机 与喷墨打印机的硬件接口和程序在 衡阳无线电总厂的多种测试仪器中 应用,效果良好。该硬件接口和软 件编程方法具有一定的通用性,适 用于采用 HP PCL LEVEL 3 打印机命令语言并且配有 Centronics 并行接口的各种打 印机,只需在程序中根据不同机型修改个别参数值,即可实现打印输出。