1、(完整版)基于单片机的微型打印机的设计沈阳大学毕业设计(论文)目 录引 言31 微型打印机的概述61。1 背景和意义61.2 微型打印机的发展和现状61。3 常见的微型打印机82 针式微型打印机的驱动原理102.1 微型打印机的组成102.2 打印原理113 电路分析133.1 硬件系统组成133。2 复位检测电路143。3 直流电机驱动153.4 驱动放大电路173。5 打印同步信号检测193.6 微型打印机通讯控制204 芯片资料及主要功能224。1 单片机的介绍及应用224.2 芯片功能介绍234.3 内部结构244.4 引脚功能说明254.5 芯片主要性能274。6 芯片工作概况275
2、 软件设计305.1 打印格式305。2 程序设计32结 论36致 谢37参考文献38附 录40附录1:原理图40附录2:主要程序41 沈阳大学毕业设计(论文) No 21本论文所完成的任务是在单片机上对微型打印机控制实现的设计方法进行研究,得到最优结果第1章微型打印机的概述,本章介绍了微型打印机的基础知识及其发展。第2章针式打印机的驱动原理,本章简要介绍了针式打印机组成及其打印的原理、打印方式。第3章硬件组成,本章主要介绍了复位检测电路,直流电机驱动,驱动放大电路,打印信号同步检测及通讯控制电路。第4章芯片资料及其功能,本章主要介绍芯片AT89C2051的功能概述,引脚功能说明及其工作概况,
3、进一步了解芯片的使用及编程。第5章软件设计,本章是全文的重点,通过前几章的介绍对单片机对微打印机的控制提出了设计方法。首先,本章介绍了打印机的详细工作原理及打印过程、打印格式。然后,根据设计思路介绍了部分软件设计方法,并总结出了主程序运行流程图。第6章结论,对全文进行总结,并对该课题的前景进行展望。1 微型打印机的概述2 针式微型打印机的驱动原理2.1 微型打印机的组成EPSON M150II微型打印机机芯主要由直流电机(Motor)、测速感应线圈(Timing Detector)、干簧管复位开关(Reset Detector)、电磁打印针(Print Solenoid)ABCD、色带、与电机
4、连接的滑槽轮以及蜗杆等部分组成6。图1 打印机终端分配微型打印机的终端分配如图1所示,对应的12个脚分别为:1。点反馈,即复位检测端;2。地;3.电机控制;4.电机电源;5。针头电源;69。针头D、C、B、A;10.行反馈,即时间检测端;11。电源检测.其中点反馈与行反馈分别控制单片机的一个I/O口,点反馈用来在打印完一个点之后反馈下一点的信息,查询下一个要打印的点;行反馈用来在打印完一行之后,控制打印机进行走纸并且将针头从右边返回到左边。M150II 打印机一行可打印96个点,若英文字符采用5乘7点阵的话,则一行可打印16个字符,打印速度为1行/秒,它采用45MM宽的普通打印纸打印,日常维护
5、和更换较方便。它的可靠使用寿命为500000行,体积很小,为73。4mm乘42.6mm乘12.8mm,重量只有60g,非常适用于安装在各种仪表内部.2.2 打印原理打印时,单片机控制隔离开关给电机供电,电机带动滑槽轮及蜗杆转动,使打印机的机头滑架左右移动,从而不断改变同一点行上的打点位置.蜗杆的转动一方面通过凸轮带动走纸机构走纸,另一方面驱动色带移动。随着电机的转动,测速感应线圈输出一个3V的正弦信号,经过整形电路后成为方波,方波再输入到单片机以检测打印同步信号。打印头每移动一点行,单片机可以检测到196个高、低电平作为打印同步信号,其中前96个高、低电平对应特定的打印点的位置,后72个高、低
6、电平对应打印头从最右端返回起始位置所用时间。打印针从方波的第1个高电平信号到第96个低电平信号按A-BC-D的次序循环打印,直至完成一点行的打印任务。当机头滑架返回到最左边时,磁铁使干簧管闭合,单片机检测到这一同步信号,开始下一点行的打印。正如前面所说的,针式打印机是依靠打印针击打所形成色点的组合来实现规定字符和汉字打印的。因此,在打印方式上,针式打印机均采用字符打印和位图像打印两种打印方式,其中字符打印方式是按照计算机主机传来的打印字符(ASCII码形式),由打印机自己从所带的点阵字符库中取出对应字符的点阵数据(打印数据),经过字型变换处理后,送往打印针驱动电路进行打印;而位图像打印方式则是
7、由计算机进行要打印数据的生成,并将生成的数据送往打印机,打印机不需要进行打印数据的处理,可以直接将其打印出来。在这种方式下,计算机生成的打印数据可以是一幅图像,也可以是汉字7.本文所研究的主要是微打印机的字符打印方式.3 电路分析3.1 硬件系统组成硬件系统主要由复位检测电路、打印同步信号检测电路、反相器及光耦电路、打印机驱动电路、单片机晶振电路、RS232通讯电路等部分组成。单片机执行程序存贮器中的程序,控制电机带动滑槽轮及蜗杆转动,使打印机的机头滑架左右移动,从而不断改变同一点行上的打点位置。蜗杆的转动一方面通过凸轮带动走纸机构实行走纸,另一方面驱动色带移动。电机转动时感应线圈产生的正弦信
8、号输入到单片机,用来控制打印针的动作。本文主要设计了EPSON打印头驱动控制电路的部分。该部分由单片机及其外围晶振复位电路,反相器及光耦电路,打印机驱动电路等部分组成,其硬件结构框图如图2所示。 AT89C2051 通讯电路反相器及光耦电路打印机驱动电路打印同步信号检测电路单片机晶振电路复位检测电路图2 系统硬件构成3。3 直流电机驱动图4 DC电机驱动电路单片机通过P1.0的输出控制电机的启动与停止,如图4所示.若P1.0输出为低,开关管G1导通,电机开始转动;若P02输出为高,开关管G1关断,电机停止转动,D2、D3在制动过程中可以起到电机反向电流保护作用。电路中用光耦P521实现了单片机
9、与感性负载与电机的隔离,大大增强了系统的抗干扰能力9。图5 电机与打印线圈的电压关系根据Epson M150II开发手册和实际调试情况可知,电机和打印线圈终端的电压应满足如图5所示关系,否则打印出的字符就会混乱,使人难以辨认(关于打印线圈驱动电路可参考附录原理图).为了使打印出的字符效果更好,我们在G1和VCC之间串入了D1,用以降低电机两端的电压,使其电压稍低于线圈的电压。实践证明:当电机两端的电压略低于线圈的电压时,打印出的字符效果更好,打印过程更稳定些。3.4 驱动放大电路此模块是整个电路中最重要、最核心的部分,其设计如图6所示。I/O驱动能力主要指它使用输出工作方式下的输出电流和灌电流
10、。负载越重,就需要更大的驱动能力。如果单片机输出口驱动能力大于外部要求的就不用驱动电路了.如用单片机启动一个继电器,如果电流足够当然可以驱动继电器.但事实上一般单片机都要用三极管作为驱动,以小电流控制大电流。如果要使一个小功率的LED发光当然不再需要用三极管来放大电流了。而这里控制打印机的工作,驱动电路则是非常重要的部分10。 为了加强驱动能力,在这里采用的是复合管的形式。其中复合管Q1、Q2用来驱动电机,Q3、Q4和Q5、Q6分别用来驱动针头电源和针头D、针头C。图6 驱动放大电路1图7 驱动放大电路2光耦合器(optical coupler,英文缩写为OC)亦称光电隔离器,简称光耦。光耦合
11、器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。目前它已成为种类最多、用途最广的光电器件之一。光耦合器一般由三部分组成:光的发射、光的接收及信号放大.输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出.这就完成了电光电的转换,从而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力.如图7所示,又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以,它在长线传输信息中作为终端隔离元件可以大
12、大提高信噪比。在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。 光耦合器的主要优点是:信号单向传输,输入端与输出端完全实现了电气隔离隔离,输出信号对输入端无影响,抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高。光耦合器是70年代发展起来产新型器件,现已广泛用于电气绝缘、电平转换、级间耦合、驱动电路、开关电路、斩波器、多谐振荡器、信号隔离、级间隔离 、脉冲放大电路、数字仪表、远距离信号传输、脉冲放大、固态继电器(SSR)、仪器仪表、通信设备及微机接口中.在单片开关电源中,利用线性光耦合器可构成光耦反馈电路,通过调节控制端电流来改变占空比,达到精密稳压目
13、的11。3.5 打印同步信号检测电机转动时,感应线圈输出幅值为3V的正弦波,经10、11两端送出到晶体管整形为方波后送入P3。7,P3.7检测此方波作为打印同步信号,以确保打印点之间距离相等。4只打针循环同步情况如图8所示.由图可知:A、C打针是在方波降低到来时冲打,B、D打针在方波上升到来时冲打12。图8 同步信号检测3。6 微型打印机通讯控制图9 MAX3232串口通讯模块RS232协议: RS-232是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。目前RS232是PC机与
14、通信工业中应用最广泛的一种串行接口。RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯.收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平。典型的RS232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5+15V,负电平在-515V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS232电平再返回TTL电平。接收器典型的工作电平在+3+12V与312V。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载
15、为37k。所以RS232适合本地设备之间的通信。MAX3232是电荷泵芯片,可以完成两路TTL/RS232电平的转换,它的9、10、11、12引脚是TTL电平端,用来连接单片机的。而51系列单片机的10、11引脚是串口,连接MAX232的TTL电平端。此模块是用得MAX232的9和10引脚13.图中C9到C12四个电容构成电压泵,功能是产生+12V和-12V两个电压,提供给RS-232串口电平的需要。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换TTL/CMOS数据后从R1O
16、UT、R2OUT输出,如图9所示。5 软件设计5.1 打印格式M150微型打印机有4个打印针(A、B、C、D),单片机控制隔离开关给电机供电,电机带动滑槽轮及蜗杆转动,使打印机的机头滑架左右移动,从而不断改变同一点行上的打点位置.蜗杆的转动一方面通过凸轮带动走纸机构走纸,另一方面驱动色带移动。打印头每移动一点行,单片机可以检测到196个高、低电平作为打印同步信号,其中前96个高、低电平对应特定的打印点的位置,后72个高、低电平对应打印头从最右端返回起始位置所用时间。打印针从方波的第1个高电平信号到第96个低电平信号按AB-C-D的次序循环打印,直至完成一点行的打印任务。当机头滑架返回到最左边时
17、,磁铁使干簧管闭合,单片机检测到这一同步信号,开始下一点行的打印,如图13所示.图13 冲打次序57点阵:M-150微型打印机为机械式点阵打印机芯,其打印头上有四个电磁铁打针,水平安装在同一滑架上.在微型直流电机驱动下,打针随滑架水平移动,四个打针一次通电、断电,并且水平右移24个点位,则单方向打印出每行96点的轨迹。打印头返回时,自动步进送纸,打印头往返10次可打印出 57点阵16个字符,并且空3行点行,如图14所示。图14 一点行(5+1)16每个打印点的直径为0。35mm,所打印出的57点阵字符宽1。8mm高2.5mm.每个字符相隔0。3mm,空3行点行的距离为1。0mm。详细打印格式如
18、图15所示。 图15 打印格式 【单位:mm】每个字符由57点阵组成,每个字符右侧空一点列,每行字符下面空一点行。为了对字符进行定义,一个字符便看成68的点阵组成,即6列每列8点,每一列由一个字节的数据表示,最高位在上。如图16所示。图16 字符定义如上所述,每个字符可以由6个十六进制数据表示。即字符“广可以定义为02H,7CH,40H,C0H,40H,00H。如此便完成了一个字符的定义,M-150 II型微打印机有全部字符集及140个自选自修改汉字.5。2 程序设计打印57点阵字符的时序图如图17所示,首先由脉冲宽度为定时信号TnTn+1的打印脉冲Pn激励打印针A工作,然后由脉冲宽度为定时信
19、号Tn+1Tn+2的打印脉冲Pn+1激励打印针B工作,同样的打印针C被打印脉冲Pn+2激励工作,打印针D被打印脉冲Pn+3激励工作,接着打印针A再次被打印脉冲Pn+4所激励。按照这样的规律,打印针A、B、C、D依次被连续的打印脉冲所激励,直到完成打印任务。定时信号打印针A打印针B打印针C打印针D针A电流图17 打印时序图系统控制软件首要包括:主程序、打印机是否在线的子程序、判断是何种机型的子程序、判断滑架到达最左端的子程序、读取数据的子程序和走纸与打印的子程序、通讯子程序等,其主程序流程框图如图18所示。关中断,设置存储器模式中断触发方式设置打开外部中断1串口初始化打印机初始化清零开启中断打印
20、数据接收完否串口置低,关闭串口开始打印判断走纸停止位置置低接收缓冲区关闭打印机电源关闭定时器T0未完完开始图18 主程序流程图主程序及注释如下18:MAIN: CLR EA MOV P1,#0FFH ;关闭输出。 CLR RS0 CLR RS1 SETB IT1 ;INT1置为下降沿触发中断 SETB IT0 SETB EX1 ;开启中断INT1检测回车信号 MOV PCON,#00H MOV SCON,#50H ;开启接收 MOV 20H,#00H SETB TOTAL_BIT MOV RD_TXD,00H MOV P3,#0FFH ACALL DELL_5SMAIN0: ACALL QIN
21、G_LINGMAIN1: SETB ES SETB EA MOV TMOD,26H MOV TH1,#0FDH ;波特率设为9600 MOV TL1,0FDH SETB TR1 ACALL DELL_5mS ACALL DELL_5mS SJMP MAIN2MAIN2: JNB RD_END,MAIN1 ;有无主命令发送到打印板? CLR RD_END MOV SCON,#50H CLR POWER_PRT ACALL DELL_5S ACALL COLLECT ;判断打印纸上走纸停止的位置LOOP_RET: MOV RD_TXD,00H SETB POWER_PRT ;打印头电源控制(低有效) CLR ET0 AJMP MAIN0附 录附录1:原理图