已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用系统中最常用的输出打印设备是微型打印机,例如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的地址范围为:0000H7FFFH。 本设计采用查询方式进行打印驱动控制,单片机与打印机的接口包括如下内容: (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.5s以上的延时才能向STB线发负脉冲,即图2中的t1值不小于0.5s;当STB信号从高电平变为低电平后,要保证负脉冲的宽度,亦即图2中的t2值不小于0.5s;当STB信号从低电平变为高电平后,要保证有0.5s以上的延时,亦即图2中的t3值不小于0.5s,以确保打印机将数据可靠读入。控制流程见图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,并且在向单片机的程序存储器中烧写程序代码时将此BMP文档代码一并写入,存放在以BMP_ADDR为起始地址的程序区内。BMP_ADDR的值由所制作的表格大小决定,表格的宽度和长度分别用paper_width和paper_length表示。 由流程图4可看出,首项工作是由主机向打印机发送命令,利用软件实现打印机的初始化。初始化的内容包括纸张型号、文本长度、上下边距、左右边距的设置等。在本设计中初始化程序如下: void init_print( ) uchar i; char code command57= 0x1b,0x45, /打印机复位 0x1b,0x2a,0x62,0x32,0x42, 0x1b,0x26,0x6c,0x30,0x6f, /图形方式 0x32,0x36,0x61, /图幅为A4 0x30,0x6d, /普通纸 0x31,0x6c, /允许设计上下边距 0x38,0x64, /垂直行距:8行/英寸 0x39,0x33,0x70,/页长为11.67inch8=93cpi0x36,0x65, /上边距为0.75inch8=6cpi 0x37,0x37,0x46, /正文长(11.67-0.75-1.25)8=77cpi 0x1b,0x28,0x73,0x30,0x70, /字间距固定 0x31,0x32,0x48, /12cpi 0x1b,0x26,0x61,0x39,0x6c, /左边距=0.75inch 0x39,0x30,0x4d, 0x1b,0x2a,0x72,0x31,0x75, /单色 0x31,0x41, 0x1b,0x2a,0x62,0x30,0x4d ; for(i=0;i57;i+) print_one(commandi); 打印机初始化完成后,将打印缓冲区清零。这个打印缓冲区实际上就是位于外部RAM 62256内的一段存储区域,RAM 62256的地址范围是0000H7FFFH,在本设计中将打印缓冲区的首地址定义为0000H。为了书写方便在以下的程序中用PRINT_BUF表示这个地址值。接着将ROM中以BMP_ADDR为首址的内容读出并写入首址为PRINT_BUF的打印缓冲区内,其代码长度即所设定表格的宽度和长度的积。具体程序如下: void read_bmp( ) uint i; uchar xdata *p; uchar code *q; p=PRINT_BUF; q=BMP_ADDR; for(i=0;i 打印数据全部存入打印缓冲区后,只要主机向打印机发开始打印命令,将打印缓冲区内的数据按字节依次发往打印机,一张符合要求的表格即打印出来了。具体程序如下: void print_report( ) char i;uint j; uchar xdata *p; char code command1=0x1b,0x2a,0x62,0x36,0x34,0x57; /开始打印控制命令 char code command2=0x1b,0x2a,0x72,0x43,0x1b,0x45; /结束打印控制命令 init_print( );/初始化打印机 clear_print_buf( ); /清打印缓冲区 read_bmp( ); /读入打印缓冲区 p=PRINT_BUF; for(j=0;jPAPER_LENGTH;J+)for(i=0;i6;i+) print_one(command1i); for(i=0;iPAPER_WIDTH;I+)PRINT_ONE(*P);P+; for(i=0;i6;i+) print_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新教材高中政治 第二单元 经济发展与社会进步 3.2 建设现代化经济体系教学设计(1)部编版必修2
- 识字4. 猜字谜(第2课时)(教案)统编版语文一年级下册
- 三年级语文下册 第八单元 语文园地八第2课时教学设计 新人教版
- 正常产褥期妇女的护理教学设计中职专业课-妇产科护理-医学类-医药卫生大类
- 创新生态牢固自稳制定产业创新发展行动方案
- 基于深度学习的图像超分辨结题报告
- 七年级体育 第12周 第二十四课教案
- 五年级数学下册 3 长方体和正方体 3长方体和正方体的体积第6课时 容积和容积单位(1)配套教学设计 新人教版
- 期末教学设计中职基础课-职业模块 工科类-高教版-(语文)-50
- 七年级地理下册 8.2《欧洲西部》教学设计 (新版)新人教版
- 2026年烟花爆竹经营从业人员考核试题库(附答案)
- 2026秋新教材人教PEP版五年级上册英语Unit 1Different friends单元整体教学设计
- 第42个教师节校长讲话:一份初心、二分担当、三分温情
- 堆高车维护保养规程
- 2026年部编版六年级数学上册全册教案
- 2026年中秋国庆节前安全生产专题培训
- 低效林改造抚育作业服务方案投标文件
- 三基三严考试题库及参考答案2026年
- 2026年安全员C3类测试题(含答案)
- 2026中国医疗混合现实技术临床培训应用价值评估报告
- 基层医疗卫生机构慢性病健康管理中心建设与服务指南(2026年)
评论
0/150
提交评论