单片机微型打印机.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机微型打印机

单片机应用系统中最常用的输出打印设备是微型打印机,例如TP系列、UP系列打印机等,对它们的控制技术也较为成熟。但是近年来随着通用打印机的广泛使用,微型打印机的缺点也日益明显:一是通用性及互换性不强;二是打印输出文档的幅面过小,不便于装订及存档。而通用打印机都配有国际标准并行接口(CENTRONICS)和串行接口(RS232/422),纸张大小可任意选择。这些特点是微型打印机所无法抗衡的。因此在越来越多的单片机应用系统中逐渐趋向于使用通用打印机作为打印输出设备。本文介绍了以MCS-51系列单片机为核心,通过CENTRONICS国际标准8位并行接口控制驱动HP-DJ 600/800系列喷墨打印机的硬件接口电路设计方法及控制程序设计方法。 1 CENTRONICS接口标准 ??? HP-DJ 600/800系列喷墨打印机采用与CENTRONICS标准兼容的并行打印机接口,接口各引脚信号的定义如表1所示。 ? 2 硬件设计 ??? 本着统一编址控制的原则,硬件原理如图1所示。 ? ??? 本设计采用MCS-51系列的89C52型单片机,其内部有8K字节的程序存储器,尽可满足本设计的程序、表格的存储要求。在外部扩展了一片数据存储器62256作为打印数据缓冲区,RAM62256的存储容量为32K字节,可以存放大量的打印数据。从原理框图可看出,RAM62256的片选端由单片机的P2.7口控制,因此RAM的地址范围为:0000H~7FFFH。 ??? 本设计采用查询方式进行打印驱动控制,单片机与打印机的接口包括如下内容: ??? (1)单片机的八位数据线通过74LS377锁存后与打印机的八位数据线相连,传送打印数据。单片机的P2.7口通过74LS04反相后与74LS377的端相连,因此单片机向打印机传送数据的口地址为8000H。 ??? (2)单片机的P1.0口提供数据选通信号,它与打印机STB端连接,进行将打印数据送打印机的选通控制。 ??? (3)单片机的P1.1口接打印机的BUSY端,以BUSY信号作为打印机“忙”或“闲”状态查询信号。 3 单片机驱动控制打印机的软件设计 3.1 打印机的控制方法 ??? 系统上电后,当需要打印的数据出现在数据线上时,只要主机向打印机的STB端发一个负脉冲,就把数据送入了打印机。本设计对打印机的控制采取查询等待方式。首先主机读打印机BUSY线,如果BUSY为高电平则表示打印机正“忙”,禁止接收数据,需等待。当打印机取走数据并处理完毕后,BUSY线被置为闲(低电平),同时输出应答脉冲ACK通知主机,可以再次输入数据。控制时序如图2所示。 ? ??? STB为数据选通信号,打印机在其上升沿时读入数据。当主机发送数据后,需要有0.5μs以上的延时才能向STB线发负脉冲,即图2中的t1值不小于0.5μs;当STB信号从高电平变为低电平后,要保证负脉冲的宽度,亦即图2中的t2值不小于0.5μs;当STB信号从低电平变为高电平后,要保证有0.5μs以上的延时,亦即图2中的t3值不小于0.5μs,以确保打印机将数据可靠读入。控制流程见图3所示。 ? ??? 无论打印机打印输出的是文字还是图形,主机向其发送的皆是一系列以字节为单位的数据,因此如何向打印机发送数据是关键所在。以下为一数据发送程序实例,其功能是将一个字节数据发送给打印机。 ??? void print_one(char ch)??//ch为待发送的数据 ????{? ?????? ??while(P1_1); ???//读打印机状态,BUSY=1?为1,等待 ?????? ??P1_0=1;????????????? ?//置STB为1 ?????????*(char xdata*)0x8000=ch;??//输出数据到打印机 ?????? ??P1_0=0;??????? //置STB为0 ???? ?? ?_nop_(); ????? ? ?_nop_()???????????????????? //延时,等待数据发送完毕 ?????????P1_0=1;??????? //置STB为1 ????} 3.2 控制程序设计 ??? HP-DJ 600/800系列喷墨打印机使用HP PCL LEVEL 3语言,而在单片机控制系统中使用十六进制代码。因此在以下程序设计中,将PCL命令全部替换为用十六进制代码表示。 ??? 在单片机实时控制系统中,打印机最常用的功能是将控制系统的测试结果打印出来。下面通过如何实现一张表格的打印来具体说明单片机控制驱动喷墨打印机的软件设计方法。 ??? 需要打印的表格如表2所示。首先在Windows界面的“附件”的“画图”中制作好如表2的表格,将其保存为文件名:REPORT.BMP,并且在向单片机的程序存储器中烧写程序

您可能关注的文档

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档