微型打印机接口 并行口

  • 格式:doc
  • 大小:374.00 KB
  • 文档页数:13

设计要求:设计完成单片机与微型打印机接口电路和驱动程序,应具有以下功能:⑴具有进纸、换行、换页等控制功能。

⑵具有字符设置及打印格式设置功能。

⑶具有图形、字符(汉字、数字、字母)打印功能。

⑷具有曲线及条码打印功能。

3、摘要课程设计是一项综合性实践教学环节,是对理论课程和实验课程的综合和补充。

它主要使学生加深对理论的理解,训练学生如何综合运用学过的理论和技能去分析解决实际问题的能力,从而增强学生的实践能力和创新能力。

单片机系统课程设计是在《微型计算机原理与接口技术》、《单片机原理与应用》等课程基础上,由学生独立完成一个较为完整的实践性微机应用系统设计。

通过设计,使学生掌握微机系统以及常用接口电路的设计及调试方法,掌握常用工具软件的使用方法,熟悉如何用汇编语言和或C语言管理硬件设备等。

通过课程设计,训练学生如何综合运用所学知识去分析和解决实际问题,掌握微机系统硬件和软件设计及调试的基本过程,并学习如何撰写总结报告,以培养学生严谨的工作作风和科学态度以及探索创新精神。

指导教师负责课程设计的任务布置、设计指导和成绩评定。

课程设计任务包括题目名称、设计要求、技术手段、参考文献等。

学生在接受任务以后,进行系统的方案选择、系统设计、电路板设计、监控软件设计以及系统的安装调试等工作,最后写出设计报告。

本课程设计可两人一组,选择同一个题目。

目录一、设计任务和性能指标 (2)二、设计方案 (2)三、硬件设计 (3)四、软件设计 (5)五、调试及性能分析 (7)六、心得体会 (8)七、参考文献 (9)一、设计任务和性能指标设计完成单片机与微型打印机接口电路和驱动程序,应具有以下功能:⑴具有进纸、换行、换页等控制功能。

⑵具有字符设置及打印格式设置功能。

⑶具有图形、字符(汉字、数字、字母)打印功能。

⑷具有曲线及条码打印功能。

二、设计方案微型打印机在单片机应用系统中应用相当广泛,在智能仪器仪表、医疗仪器、消防报警、电力系统、电子衡器、电子收款机、税控机、计价器等系统中几乎成为标准配置。

微型打印机的种类很多,有针式和热敏、台式和面板式、非汉字和汉字之分。

如按接口类型划分,则有并口和串口两大类,其中串口类又可分为RS232C、RS485、USB及无线接口、红外线接口等。

微型打印机具有响应快、功耗低、价格低和体积小携带方便等优点 ,能够在打印数据量不大的情况下满足打印需求。

微型打印机按数据传输方式 ,可分为无线微型打印机和有线微型打印机,前者利用红外或蓝牙进行数据通信 ,不仅需要特殊的硬件支持 ,而且价格昂贵;后者通过串行或并行方式进行数据通信 ,由于串口打印机存在速度慢 ,不能反映当前打印机状态等缺点 ,因此笔者采用具有多线控制精确、数据传输快和高性价比等优点的并口微型打印机。

同时为满足高速数据传输要求 ,采用总线方式扩展并口。

由于总线数据传输速率较大 ,而并口打印机属于低速外设 ,这必然会带来速率匹配的问题。

因此 ,合理的并行口设计和高效率的驱动方法就显得很重要。

三、硬件设计MCS-51系列单片机与微型打印机接口电路可以采用并行接口和串行接口两种方式。

在并行接口中,其接口信号如下表1所示:表1 并行连接方式信号示意图其中:DB0-DB7为数据线,BUSY为忙信号,高电平表示打印机当前不能接收数据;ACK为应答信号;STB为打印机选通信号。

ERR 为出错信号,SEL和PE是自检信号。

图1 并行连接系统示意图计算机并行接口起初只为打印机使用,但随着技术的进步和大量外设的增加并行接口不仅要求连接打印机和其他外设,而且要求能够双向传送数据,对高速外设还要求高速数据传送。

从兼容性考虑, IEEE在1994年制定了IEEE1284标准,根据该标准并行接口有5种工作模式[ 3 - 4 ] 。

本设计中并行接口只连接打印机,因此工作在标准模式( SPP)下。

并口微型打印机采用北京炜煌公司的WH -A6型热敏微型打印机。

该打印机时序严格,能打印全部ASC II码、国家一二级标准汉字、曲线和条形码等。

由于该微型打印机接收5 V TTL 电平,而S3C2442输出电压只有1. 8 V ,因此为了匹配电平需要连接两级BUFFER。

笔者采用PH IL IPS公司的74ALVC164245电平转换芯片。

在实际数据传输过程中,由于总线速度过高,数据在总线上保存时间太短(以50 M的PCLK为例,数据保存时间小于20 ns) ,通过I/O 控制打印机读取总线数据时往往读不到正确数据,因此,在设计中采用74HC573作为锁存器用以解决打印机信号与总线速度不匹配的问题。

同时,锁存器的加入除延长数据在总线上的保留时间外,也给驱动的调试带来很大方便。

由于总线上的数据是杂乱的,加入锁存器并通过片选选通打印机后,在锁存器的输出端则是送往打印机的数据。

可以通过断点方式,测试锁存器是否工作正常,时序是否符合,从而快速判断程序的问题所在。

总线方式的扩展并口打印机结构图如图2所示。

图2扩展并口打印机结构图四、软件设计下面主要分析写并口函数代码(其中STB 与GPJ9相连,打印机检测到STB 上升沿时读取总线上的数据) 。

图3 发送数据的程序结构流程图其中,WR ITE_PORT_UCHAR函数向指定端口写入一字节数据; Read_Status_Gp io函数通过读取与打印机状态脚相连的各GP IO 口得到打印机状态信息,并将状态信息存储在一个字节变量中方便检测与输出(低4位保留) 。

向并口发送数据while (pPortObj - > pPortData. QOutCount && CheckPrinterStatus (pPortObj) ){OutByte2 ( uDataPort, 3 pSourceBytes + + ) ;pPortObj - > pPortData. QOutCount - - ;} / /直到所有数据都已被发送写并口函数OutByte2代码如下:void OutByte2 ( ULONG dataport, BYTEdatabyte){volatile int delaytime;v_p IOPregs - > GPJDAT & = ~( 1 << 9 ) ;/ / clear GPj9 ( STB P IN ) LWR ITE_PORT_UCHAR ( ( PUCHAR ) dataport,databyte) ;/ /W rite Data to BUSDelay10NS (5) ;/ / delay at least 0. 5μsv_p IOPregs - > GPJDAT | = ( 1 << 9 ) ;/ / set GPF9 ( STB P IN ) Hwhile ( v_p IOPregs - > GPGDAT & 0x1 << 0) ;/ /wait for p rint endwhile ( ( v_p IOPregs - > GPCDAT & 0x1 <<8) ) ; / /wait for ack }检测状态函数如下:/ / return True indicate p rinter′s status is rightBOOL CheckStatus2 ( ){BOOL bRet;BYTE bStatus = 0xff;do {bStatus = Read_Status_Gp io ( ) ;} while ( bStatus ! = Read _ Status _ Gp io( ) ) ; / / readbStatus & = LPT_STATUS_B ITS;if ( bStatus) return FALSE;else return TRUE;}五、调试及性能分析调试分为硬件调试和软件调试。

1、硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。

具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,测试结果所有连接线都已连接好;(2)检查各芯片的功能是否正常,检测按键的导通情况。

测试结果正常。

软件调试主要是程序调试,将整个日历时钟显示程序按照实现功能分为各子模块进行调试,首先都要在实验台上进行调试。

2、软件调试主要是程序调试,将整个打印机接口程序按照实现功能分为各子模块进行调试,首先都要在实验台上进行调试。

六、心得体会这次课程设计历时一个星期,通过这一个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,理论知识还不够扎实。

本次课程设计虽然时间很短,但收获却很大。

首先我们对单片机最小系统的设计有了整体的把握,对程序编写的合理与规范性有了深刻的理解,建立起程序设计的一般思路,以及Protel 99 SE的使用方法,其强大的功能给我们提供了很大的帮助,通过原理图的设计过程,使我们认识到了这个软件的重要性,我们会以此为契机,在日后的学习中会继续使用它,使其发挥更大的功能。

经过一个星期的课程设计,我们得到了充分的锻炼,不仅对单片机的学习有了深刻的理解,同时也增强了我们的毅力和处理突发问题的能力。

学习是要付出一定的艰辛与努力的,做事情一定要有不怕困难的吃苦精神,唯有坚持不懈,发扬团队协作才能够克服困难,取得最后的胜利。

相信本次课程设计对我们以后的学习将会有很大的影响,我们一定会积极地总结经验与教训,改进不足,争取在日后做得更好。

当然要感谢老师和同学们的帮助,在我们束手无策,陷入困境的时候给予热情的帮助,使我们顺利渡过难关。

课程设计是一次很好的实践动手机会,通过实践,我们的知识得到了应用,真正实现了知识的学以致用,理论联系实际,我们会更加注重实践能力的锻炼,注重动手能力的培养。

七、参考文献[1] 徐维祥、刘旭敏. 单片微型机原理及应用. 大连:大连理工大学出版社,1996[2] 李群芳,黄建. 单片机微型计算机与接口技术. 北京:电子工业出版社,2001[3] 楼然苗、李光飞. 51系列单片机设计实例. 北京:北京航空航天大学出版社,2003[4]张念淮、江浩编著. USB 总线接口开发指南,国防工业出版社2001[5]史波,田凯. 通用串行总线 USB 技术概述[J]. 信息技术,2001[6]董晓红著. 单片机原理与接口技术,西安电子科技大学出版社2004[7]李华 .MSC-51系列单片机实用接口技术北京航空航天大学出版社 , 2002自我评价通过一星期的课程设计是我学到了很多东西,发现了在平时的理论知识的学习中有很多明盲点。

让我认识到学习来不得一点马虎,知道了学习的重要性,以及如何更好的利用自己所学到的知识。