1、1 引言自从 20 世纪 70 年代问世以后,单片机作为微型计算机一个很重要的分支,应用广泛,发展迅速,已对很多领域产生了重大影响。尤其是美国 Intel 公司生产的MCS-51 系列单片机,由于其具有集成度高、处理功能强、可靠性好、系统结构简单、价格低廉、易于使用等优点,在我国已经得到广泛使用,并已经在各个技术领域得到了迅猛发展。随着普通打印机价格的下降,它们在单片机系统的应用也逐渐增多。微型打印机是一种通过单片机控制编程,可以自动完成一定打印任务作业的机械装置。微型打印机具有多功能超小体积、可电池供电和便于随身携带的特点。例如 GP 系列和P 系列打印机都是点阵式打印机,因为打印机内部有一
2、个单片机系统,并固化有控打程序,智能化程度很高。打印机启动后,由内部单片机执行程序,就可以接受和分析主机送来的数据和命令,然后通过控制电路,实现对打印头机械动作的控制,进行打印。微型打印机可广泛使用在超市、便利店、餐饮服务、商场打印票据等,可满足不同使用人员的要求。本设计可以实现打印预先设定的汉字和 09 十个数字,可以应用在食堂、超市等地,用来打印小票并可以其显示相关信息。因此微型打印机以其小型化、多功能等特点广泛应用在生产、销售等领域,为人们带来了极大的方便。2 设计要求(1) 支持多种打印命令,命令代码均为单字节,格式简单。(2) 可输出标准的数字、在程序中所设定的汉字和英文字符。(3)
3、 要求简单实用、有高可靠性、良好的性能价格比以及体积小,方便携带。3 系统组成本设计由微型打印机、单片机、键盘、液晶显示器和电源模块等五部分组成,系统框图如图3-1所示。其中单片机部分的作用是控制微型打印机、键盘和液晶显示器;键盘用来输入要打印的信息;显示器用来显示所打印的内容;电源模块则为整个电路提供电源。液晶显示器 单片机 MCU键盘 微型打印机电源图 3-1 系统框图24 硬件部分设计4.1 打印机部分打印机是一种复杂而精密的机械电子装置,无论哪种打印机,其结构基本上都可分为机械装置和控制电路两部分,这两部分是密切相关的。机械装置包括打印头、字车机构、走纸机构、色带传动机构、墨水(墨粉)
4、供给机构以及硒鼓传动机构等等,它们都是打印机系统的执行机构,由控制电路统一协调和控制;而打印机的控制电路则包括CPU主控电路,驱动电路,输入输出接口电路及检测电路等。下面介绍打印机一般原理:打印机是小型机电一体化系统。机械部分为执行机构,在机内CPU及驱动电路控制下完成“数据”打印。打印机的一般构成及工作原理如下图4-1所示: 虽然打印机的外观千变万化,打印出来的图形,色彩也各不相同,但从原理上,我们可将常用的打印机分为三种类型:针式打印机、喷墨打印机和激光打印机。下面重点介绍一下针式打印机的结构和工作原理。4.1.1 针式打印机(1) 针式打印机的工作原理主机送来的代码,经过打印机输入接口电
5、路的处理后送至打印机的主控电路,在控制程序的控制下,产生字符或图形的编码,驱动打印头打印一列的点阵图形,同时字车横向运动,产生列间距或字间距,再打印下一列,逐列进行打印;一行打印完毕后,启动走纸机构进纸,产生行距,同时打印头回车换行,打印下一行;上述过程反复进行,直到打印完毕。 (2) 针式打印机的结构针式打印机关键在于其打印头的结构。打印头的结构比较复杂,可分为打印针,驱动线圈,定位器,激励盘等。简单的说,打印头的工作过程是这样的:当打印头从驱动电路获得一个电流脉冲时,电磁铁的驱动线圈就产生磁场吸引打印针衔铁,带动打印针击打色带,在打印纸上打出一个点的图形。因其直接执行打印功能的是接口电路C
6、PU 及控制电路驱动电路打印头电源打印机图 4-1 打印机一般原理图单片机或 PC 系统3打印针,所以这类打印机被称为针式打印机。针式打印机的种类繁多,型式各异,一般分为打印机械装置和控制与驱动电路两大部分。针式打印机在正常工作时有三种运动,即打印头的横向运动、打印纸的纵向运动和打印针的击针运动。这些运动都是由软件控制驱动系统通过一些精密机械进行的。 打印机械装置主要包括字车与传动机构、打印针控制机构、色带驱动机构,走纸机构和打印机状态传感器,这些机构都为精密机械装置,以保证各种机构能实现下面的各种运动。 字车与传动机构 字车是打印头的载体,打印头通过字车传动系统实现横向左、右移动,再由打印针
7、撞击色带而印字。字车的动力源一般都用步进电动机,通过传动装置将步进电动机的转动变为字车的横向移动。一般用钢丝绳或同步齿形带进行传动。 打印针控制机构 打印针是正确打印的关键。打印针控制机构实现打印针的出针和收针动作。通常利用电磁原理控制打印针的动作。 色带驱动机构 打印针撞击色带,色带上的印油在打印纸上印出字符或图形。在打印过程中,打印头左、右移动时,色带驱动机构驱动色带也同时循环往复转动,不断改变色带被打印针撞击的部位,保证色带均匀磨损,从而既延长了色带的使用寿命,又保证了打印出的字符或图形颜色均匀。 色带驱动机构一般利用字车电动机带动同步齿形带(如LQ-1600K)或钢(尼龙)丝绳驱动色带
8、铀转动,也可采用两个单独的电动机(如某些彩色打印机)分别带动色带正、反向走带。 走纸机构 该机构实现打印纸的纵向移动。当打印完一行后,由它走纸换行。走纸方式一般有摩擦走纸、齿轮馈送和压纸滚筒馈送等。其动力方式为通过牵引机构将步进电动机的转动转变为走纸移动。 打印机状态传感器 对于不同的打印机来说,传感器的设置情况不同。通常有原始位置传感器(检测字车是否停在左边原始位置上)、纸尽传感器(检测所装的打印纸是否用完,用完则报警)、计时传感器(检测字车的瞬时位置)和机盖状态传感器(检测正在打印中的异常开打印机盖操作)等等。 (3) 针式打印机的特点针式打印机由于采用的是机械击打式的打印头,因此穿透力很
9、强,能打印多层复写纸,具备拷贝功能,另外还能打印不限长度的连续纸。使用的耗材是色带,在三种打印机中是最廉价的一种。其缺点就是体积、重量都较大,打印噪音大,精度低,速度慢,一般无打印彩色图像功能。适合有专门要求的专业应用场合,例如财务、税务、金融机构等等。常见的机型有EPSON的LQ系列,如LQ680K;STAR的AR、CR系列,如AR6400等。 4.1.2 喷墨打印机和激光打印机4(1) 喷墨打印机喷墨打印机的工作原理基本与针式打印机相同,这两者的本质区别就在于打印头的结构。喷墨打印机的打印头,是由成百上千个直径极其微小(约几微米)的墨水通道组成。当打印头的控制电路接收到驱动信号后,即驱动这
10、些执行单元产生振动,将通道内的墨水挤压喷出;或产生高温,加热通道内的墨水,产生气泡,将墨水喷出喷孔;喷出的墨水到达打印纸,即产生图形。这就是压电式和气泡式喷墨打印头的基本原理。喷墨打印机打印精度高,通常都能打印彩色图像,而且体积及重量都可以做的非常小巧,甚至能随身携带打印,打印时的噪音也很小。因此喷墨打印机的使用成本很高。同时,也不具备拷贝和打连续纸功能。适合对打印质量要求高但数量较小的场合,如家庭,小型办公室等等。常见的机型有EPSON的STYLUS PHOTO系列,如STYLUS PHOTO 900;CANON的i系列,如i6500、i355等。 (2) 激光打印机激光打印机与针式、喷墨打
11、印机的一个本质的区别在于:激光打印机打印一次成像一整页,是逐页打印;而针式和喷墨打印机都是打印头一次来回打印一行,是逐行打印。因此,相同打印要求下,激光打印机的打印速度要比针式打印机和喷墨打印机要快,这也是激光打印机的一个优势所在。激光打印机的打印精度也很高,基本上与喷墨打印机无太大区别。能打印彩色图像,且对打印介质的要求没有喷墨打印机那么高。打印的速度是三种打印机中最快的,而且噪音也很小。但体积和重量相对喷墨打印机要大。只能逐页打印,无拷贝和打印连续纸功能。适合打印数量大,任务重的场合,如大型商务机构,设计、印刷领域等等。常见的机型有惠普HP的LaserJet系列,如LaserJet1010
12、,Color LaserJet 8550等。 4.1.3 微型打印机微型打印机,简称微打,是针对通用打印机而言的,具有处理票据较窄、整机体积较小、操作电压较低的特点。它是广大打印机家族中一个细小而特别的种类,在通常的 IT 刊物、杂志及各类市场调查报告中,微型打印机均鲜有提及,甚至被忽略不记。以致一般的人虽然在生活中经常见到,然而对其缺乏必要的认识和了解。但作为特种打印机系列一个重要的组成部分,微打的市场需求日渐扩大,应用也越来越广泛,越来越多的通用打印机厂商也开始涉及微打领域。 (1) 微型打印机的分类微型打印机具有体积小巧、价格低廉、功能多样的特点,所以在越来越多的领域得到了广泛的应用。下
13、面按不同的方式对微型打印机进行分类: 按打印原理分:针式(细分为字轮式、梭式点阵式、9 针点阵式、24 针点阵式) 、热敏式(细分为列式热敏式、行式热敏式) 、喷墨式、热转印、激光式(后面两种打印方式的微型机较少) 。 5 按应用分:由于微型打印机在各行业应用十分广泛,所以分成在金融零售业的ECR(高效消费者响应) 、POS、交通运输业上的打票机、服务行业的排队机等。 按通信方式分:有线通信(串口、并口、USB 或网口) 、无线通信(运用 IrDA 和Bluetooth 技术) 。 (2)针式微型打印机与热敏微型打印机的比较基本工作原理针式微型打印机至少由以下基本关键部件组成:打印机芯、打印控
14、制器、电源和外壳,而打印机芯又由打印头和字车电机运动机构、走纸电机运动机构以及各种传感器等组成。针式微打是通过控制打印头运动和走纸运动,并控制打印头出针击打色带和打印纸,把色带上相应点的墨汁印在打印纸上,从而在纸上打出所需的信息。直热行式热敏微打,其热敏头由一排紧密均匀排列的特殊材料的可加热电阻组成,每个单元电阻对应一个点,控制其不同点的通电即可对相应的点加热,而与其紧密接触的带热敏涂层的热敏纸受热就可以印出相应的点信息,再同时通过走纸的控制,就可以打印出各种信息。另一种热敏微打热转印微打,其工作原理与直热式热敏机基本相同,不同之处在于:热转印微打通过加热带热敏涂层的碳带,把相应碳带加热点上的
15、涂层材料转印到普通的打印纸上。性能表现主要是热敏微打的速度是针式微打的几倍。总之,直热式热敏微打主要在噪声、速度和分辨率上优于针式微打,而针式微打却在拷贝能力和打印后纸张的保存效果(热转印式除外)上优于直热式热敏微打,这些各自的优点奠定了这两大类的微打在不同应用领域受青睐的地位。 随着国内电子政务、电子商务的迅速发展,以及工商、税务电子监控等政策的逐渐实施,对发票和税控收据的自动打印要求将越来越广泛,商业收款和税控发票打印也就成为微型打印机应用最为广泛的领域,而热敏式、9 针串行点阵式打印方式则在此领域应用最为广泛。 此外,随着微型打印机技术的发展,各种新型的微型打印机也慢慢走向市场,如便携式
16、微型打印机,它在水、电、燃气等抄表业务中得到了很好的推广。相对于传统的手工抄表,然后录入电脑,再由电脑打印出单据送到用户手中,便携式微打表现出了极大的方便性。类似的应用还有火车上的移动式补票机等。4.2 单片机芯片部分89S52是标准的40引脚双列直插式集成电路芯片 1,引脚排列请参见下图4-2:6p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78RST/VPD9RXD/P3.010TXD/P3.111INT0/P3.212INT1/P3.313T0/P3.414T1/P3.515WR/P3.616RD/P3.717XTAL218XTAL119GND20 P2.0
17、 21P2.1 22P2.2 23P2.3 24P2.4 25P2.5 26P2.6 27P2.7 28PSEN 29ALE/PROG 30EA/VPP 31P0.7 32P0.6 33P0.5 34P0.4 35P0.3 36P0.2 37P0.1 38P0.0 39VCC 40图4-2 89S52芯片引脚4.2.1 信号引脚介绍(1) 输入/输出口线P0.0 P 0.7 P0口8位双向口线P1.0 P 1.7 P1口8位双向口线P2.0 P 2.7 P2口8位双向口线P3.0 P 3.7 P3口8位双向口线(2) 地址锁存控制信号(ALE)在系统扩展时,ALE用于控制把P 0口输出的低8位
18、地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是六分之一晶振频率的固定频率输出的正脉冲,因为可作为外部时钟或外部定时脉冲使用。(3) 外部程序存储器读选通信号(/PSEN)在读外部ROM时/PSEN有效(低电平),以实现外部ROM单元的读操作。(4) 访问程序存储器控制信号(/EA)当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当/EA信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。(5) 复位信号(RST)当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。(6) 外接晶体引线端(XTA
19、L 1和XTAL 2)当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。7(7) 地线(Vss)(8) +5V电源(Vcc)以上就是89S52单片机芯片40条引脚的定义及简单功能说明 2。4.2.2 信号引脚的第二功能由于工艺及标准化等原因,芯片的引脚数目是有限制的,例如MCS-51系列单片机芯片引脚的数目是40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了供需问题。解决这一问题唯一可行的办法是“复用”,即给一些信号引脚赋予双重功能。如果我们把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。第二
20、功能信号定义主要集中在P 3口线中,另外再加上几个其它信号线。(1) EPROM 存储器程序固化所需要的信号P3的8条口线都定义有第二功能,详见表4-1。表4-1 P 3口线的第二功能口线第二功能 信号名称P3.0RXD 串行数据接收P3.1TXD 串行数据发送P3.2/INT0 外部中断0申请P3.3/INT1 外部中断1申请P3.4T0 定时器/计数器0计数输入P3.5T1 定时器/计数器1计数输入P3.6/WR 外部RAM写选通P3.7/RD 外部RAM读选通有内部EPROM的单片机芯片(例如87C51),为写入程序需提供专门的编程脉冲和编程电源,它们也是由信号引脚以第二功能的形式提供的
21、,即:8编程脉冲: 30脚(ALE/PROG)编程电压(25V):31脚(/EA/V PP)(2) 备用电源引入MCS-51 单片机的备用电源也是以信号引脚第二功能的方式由 9 脚(RST/VPD)引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部 RAM 提供电压,以保护内部 RAM 中的信息不丢失。4.3 单片机与微型打印机的接口4.3.1 微型打印机 TPP-40A 的主要性能、接口要求及时序TPP-40A 是一种单片机控制的微型智能打印机。每行打印 40 个字符 3。(1) TPP-40A 主要技术性能 采用单片机控制,具有 2KB 控达程序标准的 Centronic 并
22、行接口。 具有较丰富的打印命令,命令代码均为单字节,格式简单。 可产生全部标准的 ASCII 代码字符,以及 128 个非标准字符和图符。有 16 个代码字符(67 点阵)可由用户通过程序自行定义。并可通过命令用此 16 个代码字符去更换任何驻留代码字型,以便用于多种文字的打印。 可打印出 8240 点阵的图样(汉字或图案点阵) 。代码字符和点阵图样可在一行中混合打印。 字符、图符和点阵图可以在宽和高的方向放大为2、3、4 倍。 每行字符的点行数(包括字符的行间距)可用命令更换。即字符行间距空点行在0256 间任选。 带有水平和垂直制表命令,便于打印表格。 具有重复打印同一字符命令,以减少输送
23、代码的数量。 带有命令格式的检错功能。当输入错误命令时打印机立即打印错误信息代码。(2) 接口信号TPP-40A 微型打印机与单片机间是通过一条 20 芯扁平电缆及接插件相连(如图 4-3 所示) 。打印机有一个 20 线扁平插座,信号引脚排列如表 4-2 所示: 表 4-2 打印机信号引脚排列2 4 6 8 10 12 14 16 18 20GNDGND GND GND GND GND GND GND /ACK /ERR/STB DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 BUSY1 3 5 7 9 11 13 15 17 19插入扁平电缆插头从打印机背面视图图 4-3
24、扁平电缆和插件接口2 201919其中: DB0DB7:数据线,单向传输,由单片机输入给打印机。 /STB(STROBE):数据选通信号。在该信号的上升沿时,数据线上的 8 位并行数据被打印机读入机内锁存。 BUSY:打印机“忙”状态信号。当该信号有效(高电平)时,表示打印机忙于处理数据。此时,单片机不得使 STB 信号有效,向打印机送入新的数据。 /ACK:打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。 /ERR:“出错”信号。送入打印机的命令格式出错时,打印机立即打印一行出错信息提示出错。在打印出错信息之前该信号线出现一个负脉冲,脉冲宽度为30s。(3) 接口信号时序 4接
25、口信号时序如图 4-4 所示。选通信号/STB 宽度需大于 0.5s。/ACK 应答信号可与/STB 信号作为一对应答联络信号,可使用/STB 与 BUSY 作为一对应答联络信号 5。20ns 50ns NEXTXT050ns6sBUSY时间不定(不同命令、数据而异)2030sDB0DB7/STB/ACK图 4-4 接口信号时序图104.3.2 字符代码及打印命令TPP-40A 全部代码共 256 个,其中 00H 无效,代码 01H0FH 为打印命令;代码 10H1FH 为用户自定义代码;代码 20H7FH 为标准 ASCII 代码;代码 80HFFH为非 ASCII 代码,其中包括少量汉字
26、、希腊字母、块图图符和一些特殊的字符。(1) 字符代码TPP-40A 中全部字符代码为 10HFFH,回车换行代码 0DH 为字符串的结束符。但当输入代码满 40 个时,打印机自动回车。几个例子如下: 打印“2356.73”输送代码串为:24,32,33,35,36,2E,37,33,0D。 打印“23.7”输送代码为:32,33,2E,37,63,6D,9D,0D。 打印“This is Micro-Printer”输送代码串为:54H,68H, 69H,73H, 20H,69H,73H,20H, 4DH,69H,63H,72H, 6FH,2DH,70H,72H,69H,6EH,74H,65
27、H,72H,2EH,0DH。(2) 打印命令打印命令由一个命令字和若干个参数字节组成,命令结束符为 0DH,除下述表中代码 06H 的命令必须用它外,均可省略。TPP-40A 命令代码及功能见表 4-3。表 4-3 TPP-40A 命令代码及功能命令代码 命令功能01H 打印字符、图等,增宽(1、2、3、4)02H 打印字符、图等,增高(1、2、3、4)03H 打印字符、图等,宽和高同时增加(1、2、3、4)04H 字符间距更换或定义05H 用户自定义字符点阵06H 驻留代码字符点阵式样更换07H 水平(制表)跳区08H 垂直(制表)跳行09H 恢复 ASCII 代码和清输入缓冲区命令0AH 一个空格后回车换行0BH0CH 无效0DH 回车换行/命令结束0EH 重复打印同一字符命令