当前位置:文档之家› 微型打印机控制电路的设计毕业设计论文

微型打印机控制电路的设计毕业设计论文

1引言

自从20世纪70年代问世以后,单片机作为微型计算机一个很重要的分支,应用广泛,发展迅速,已对很多领域产生了重大影响。尤其是美国Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性好、系统结构简单、价格低廉、易于使用等优点,在我国已经得到广泛使用,并已经在各个技术领域得到了迅猛发展。

随着普通打印机价格的下降,它们在单片机系统的应用也逐渐增多。微型打印机是一种通过单片机控制编程,可以自动完成一定打印任务作业的机械装置。微型打印机具有多功能超小体积、可电池供电和便于随身携带的特点。例如GP系列和μP系列打印机都是点阵式打印机,因为打印机内部有一个单片机系统,并固化有控打程序,智能化程度很高。打印机启动后,由内部单片机执行程序,就可以接受和分析主机送来的数据和命令,然后通过控制电路,实现对打印头机械动作的控制,进行打印。微型打印机可广泛使用在超市、便利店、餐饮服务、商场打印票据等,可满足不同使用人员的要求。

本设计可以实现打印预先设定的汉字和0~9十个数字,可以应用在食堂、超市等地,用来打印小票并可以其显示相关信息。因此微型打印机以其小型化、多功能等特点广泛应用在生产、销售等领域,为人们带来了极大的方便。

2 设计要求

(1)支持多种打印命令,命令代码均为单字节,格式简单。

(2)可输出标准的数字、在程序中所设定的汉字和英文字符。

(3)要求简单实用、有高可靠性、良好的性能价格比以及体积小,方便携带。

3 系统组成

本设计由微型打印机、单片机、键盘、液晶显示器和电源模块等五部分组成,系统框图如图3-1所示。其中单片机部分的作用是控制微型打印机、键盘和液晶显示器;键盘用来输入要打印的信息;显示器用来显示所打印的内容;电源模块则为整个电路

4 硬件部分设计

4.1 打印机部分

打印机是一种复杂而精密的机械电子装置,无论哪种打印机,其结构基本上都可分为机械装置和控制电路两部分,这两部分是密切相关的。机械装置包括打印头、字车机构、走纸机构、色带传动机构、墨水(墨粉)供给机构以及硒鼓传动机构等等,它们都是打印机系统的执行机构,由控制电路统一协调和控制;而打印机的控制电路则包括CPU 主控电路,驱动电路,输入输出接口电路及检测电路等。

下面介绍打印机一般原理:打印机是小型机电一体化系统。机械部分为执行机构,在机内CPU 及驱动电路控制下完成“数据”打印。打印机的一般构成及工作原理如下图4-1所示:

虽然打印机的外观千变万化,打印出来的图形,色彩也各不相同,但从原理上,我们可将常用的打印机分为三种类型:针式打印机、喷墨打印机和激光打印机。下面重点介绍一下针式打印机的结构和工作原理。 4.1.1 针式打印机

(1) 针式打印机的工作原理

主机送来的代码,经过打印机输入接口电路的处理后送至打印机的主控电路,在控制程序的控制下,产生字符或图形的编码,驱动打印头打印一列的点阵图形,同时字车横向运动,产生列间距或字间距,再打印下一列,逐列进行打印;一行打印完毕后,启动走纸机构进纸,产生行距,同时打印头回车换行,打印下一行;上述过程反复进行,直到打印完毕。 (2) 针式打印机的结构

针式打印机关键在于其打印头的结构。打印头的结构比较复杂,可分为打印针,驱动线圈,定位器,激励盘等。简单的说,打印头的工作过程是这样的:当打印头从驱动电路获得一个电流脉冲时,电磁铁的驱动线圈就产生磁场吸引打印针衔铁,带动打印针击打色带,在打印纸上打出一个点的图形。因其直接执行打印功能的是打印针,

所以这类打印机被称为针式打印机。

针式打印机的种类繁多,型式各异,一般分为打印机械装置和控制与驱动电路两大部分。针式打印机在正常工作时有三种运动,即打印头的横向运动、打印纸的纵向运动和打印针的击针运动。这些运动都是由软件控制驱动系统通过一些精密机械进行的。

打印机械装置主要包括字车与传动机构、打印针控制机构、色带驱动机构,走纸机构和打印机状态传感器,这些机构都为精密机械装置,以保证各种机构能实现下面的各种运动。

①字车与传动机构字车是打印头的载体,打印头通过字车传动系统实现横向左、右移动,再由打印针撞击色带而印字。字车的动力源一般都用步进电动机,通过传动装置将步进电动机的转动变为字车的横向移动。一般用钢丝绳或同步齿形带进行传动。

②打印针控制机构打印针是正确打印的关键。打印针控制机构实现打印针的出针和收针动作。通常利用电磁原理控制打印针的动作。

③色带驱动机构打印针撞击色带,色带上的印油在打印纸上印出字符或图形。在打印过程中,打印头左、右移动时,色带驱动机构驱动色带也同时循环往复转动,不断改变色带被打印针撞击的部位,保证色带均匀磨损,从而既延长了色带的使用寿命,又保证了打印出的字符或图形颜色均匀。色带驱动机构一般利用字车电动机带动同步齿形带(如LQ-1600K)或钢(尼龙)丝绳驱动色带铀转动,也可采用两个单独的电动机(如某些彩色打印机)分别带动色带正、反向走带。

④走纸机构该机构实现打印纸的纵向移动。当打印完一行后,由它走纸换行。走纸方式一般有摩擦走纸、齿轮馈送和压纸滚筒馈送等。其动力方式为通过牵引机构将步进电动机的转动转变为走纸移动。

⑤打印机状态传感器对于不同的打印机来说,传感器的设置情况不同。通常有原始位置传感器(检测字车是否停在左边原始位置上)、纸尽传感器(检测所装的打印纸是否用完,用完则报警)、计时传感器(检测字车的瞬时位置)和机盖状态传感器(检测正在打印中的异常开打印机盖操作)等等。

(3)针式打印机的特点

针式打印机由于采用的是机械击打式的打印头,因此穿透力很强,能打印多层复写纸,具备拷贝功能,另外还能打印不限长度的连续纸。使用的耗材是色带,在三种打印机中是最廉价的一种。其缺点就是体积、重量都较大,打印噪音大,精度低,速度慢,一般无打印彩色图像功能。适合有专门要求的专业应用场合,例如财务、税务、金融机构等等。常见的机型有EPSON的LQ系列,如LQ-680K;STAR的AR、CR系列,如AR-6400等。

4.1.2 喷墨打印机和激光打印机

(1)喷墨打印机

喷墨打印机的工作原理基本与针式打印机相同,这两者的本质区别就在于打印头的结构。喷墨打印机的打印头,是由成百上千个直径极其微小(约几微米)的墨水通道组成。当打印头的控制电路接收到驱动信号后,即驱动这些执行单元产生振动,将通道内的墨水挤压喷出;或产生高温,加热通道内的墨水,产生气泡,将墨水喷出喷孔;喷出的墨水到达打印纸,即产生图形。这就是压电式和气泡式喷墨打印头的基本原理。

喷墨打印机打印精度高,通常都能打印彩色图像,而且体积及重量都可以做的非常小巧,甚至能随身携带打印,打印时的噪音也很小。因此喷墨打印机的使用成本很高。同时,也不具备拷贝和打连续纸功能。适合对打印质量要求高但数量较小的场合,如家庭,小型办公室等等。常见的机型有EPSON的STYLUS PHOTO系列,如STYLUS PHOTO 900;CANON的i系列,如i6500、i355等。

(2)激光打印机

激光打印机与针式、喷墨打印机的一个本质的区别在于:激光打印机打印一次成像一整页,是逐页打印;而针式和喷墨打印机都是打印头一次来回打印一行,是逐行打印。因此,相同打印要求下,激光打印机的打印速度要比针式打印机和喷墨打印机要快,这也是激光打印机的一个优势所在。激光打印机的打印精度也很高,基本上与喷墨打印机无太大区别。能打印彩色图像,且对打印介质的要求没有喷墨打印机那么高。打印的速度是三种打印机中最快的,而且噪音也很小。但体积和重量相对喷墨打印机要大。只能逐页打印,无拷贝和打印连续纸功能。适合打印数量大,任务重的场合,如大型商务机构,设计、印刷领域等等。常见的机型有惠普HP的LaserJet系列,如LaserJet1010,Color LaserJet 8550等。

4.1.3 微型打印机

微型打印机,简称微打,是针对通用打印机而言的,具有处理票据较窄、整机体积较小、操作电压较低的特点。它是广大打印机家族中一个细小而特别的种类,在通常的IT刊物、杂志及各类市场调查报告中,微型打印机均鲜有提及,甚至被忽略不记。以致一般的人虽然在生活中经常见到,然而对其缺乏必要的认识和了解。但作为特种打印机系列一个重要的组成部分,微打的市场需求日渐扩大,应用也越来越广泛,越来越多的通用打印机厂商也开始涉及微打领域。

(1)微型打印机的分类

微型打印机具有体积小巧、价格低廉、功能多样的特点,所以在越来越多的领域得到了广泛的应用。下面按不同的方式对微型打印机进行分类:

①按打印原理分:针式(细分为字轮式、梭式点阵式、9针点阵式、24针点阵式)、热敏式(细分为列式热敏式、行式热敏式)、喷墨式、热转印、激光式(后面两种打印方式的微型机较少)。

②按应用分:由于微型打印机在各行业应用十分广泛,所以分成在金融零售业的ECR

(高效消费者响应)、POS、交通运输业上的打票机、服务行业的排队机等。

③按通信方式分:有线通信(串口、并口、USB或网口)、无线通信(运用IrDA和Bluetooth技术)。

(2)针式微型打印机与热敏微型打印机的比较

①基本工作原理

针式微型打印机至少由以下基本关键部件组成:打印机芯、打印控制器、电源和外壳,而打印机芯又由打印头和字车电机运动机构、走纸电机运动机构以及各种传感器等组成。

针式微打是通过控制打印头运动和走纸运动,并控制打印头出针击打色带和打印纸,把色带上相应点的墨汁印在打印纸上,从而在纸上打出所需的信息。直热行式热敏微打,其热敏头由一排紧密均匀排列的特殊材料的可加热电阻组成,每个单元电阻对应一个点,控制其不同点的通电即可对相应的点加热,而与其紧密接触的带热敏涂层的热敏纸受热就可以印出相应的点信息,再同时通过走纸的控制,就可以打印出各种信息。另一种热敏微打——热转印微打,其工作原理与直热式热敏机基本相同,不同之处在于:热转印微打通过加热带热敏涂层的碳带,把相应碳带加热点上的涂层材料转印到普通的打印纸上。

②性能表现

主要是热敏微打的速度是针式微打的几倍。

总之,直热式热敏微打主要在噪声、速度和分辨率上优于针式微打,而针式微打却在拷贝能力和打印后纸张的保存效果(热转印式除外)上优于直热式热敏微打,这些各自的优点奠定了这两大类的微打在不同应用领域受青睐的地位。

随着国内电子政务、电子商务的迅速发展,以及工商、税务电子监控等政策的逐渐实施,对发票和税控收据的自动打印要求将越来越广泛,商业收款和税控发票打印也就成为微型打印机应用最为广泛的领域,而热敏式、9针串行点阵式打印方式则在此领域应用最为广泛。

此外,随着微型打印机技术的发展,各种新型的微型打印机也慢慢走向市场,如便携式微型打印机,它在水、电、燃气等抄表业务中得到了很好的推广。相对于传统的手工抄表,然后录入电脑,再由电脑打印出单据送到用户手中,便携式微打表现出了极大的方便性。类似的应用还有火车上的移动式补票机等。

4.2单片机芯片部分

89S52是标准的40引脚双列直插式集成电路芯片[1],引脚排列请参见下图4-2:

图4-2 89S52芯片引脚4.2.1 信号引脚介绍

(1)输入/输出口线

P 0.0 ~ P

0.7

P

口8位双向口线

P 1.0 ~ P

1.7

P

1

口8位双向口线

P 2.0 ~ P

2.7

P

2

口8位双向口线

P 3.0 ~ P

3.7

P

3

口8位双向口线

(2)地址锁存控制信号(ALE)

在系统扩展时,ALE用于控制把P

口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是六分之一晶振频率的固定频率输出的正脉冲,因为可作为外部时钟或外部定时脉冲使用。

(3)外部程序存储器读选通信号(/PSEN)

在读外部ROM时/PSEN有效(低电平),以实现外部ROM单元的读操作。

(4)访问程序存储器控制信号(/EA)

当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当/EA信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。(5)复位信号(RST)

当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位操作。

(6)外接晶体引线端(XTAL

1和XTAL

2

当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

(7)地线(Vss)

(8) +5V电源(Vcc)

以上就是89S52单片机芯片40条引脚的定义及简单功能说明[2]。

4.2.2 信号引脚的第二功能

由于工艺及标准化等原因,芯片的引脚数目是有限制的,例如MCS-51系列单片机芯片引脚的数目是40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了供需问题。

解决这一问题唯一可行的办法是“复用”,即给一些信号引脚赋予双重功能。如果我们把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第

口线中,另外再加上几个其它信号线。

二功能。第二功能信号定义主要集中在P

3

(1) EPROM 存储器程序固化所需要的信号

P

的8条口线都定义有第二功能,详见表4-1。

3

口线的第二功能

表4-1 P

有内部EPROM的单片机芯片(例如87C51),为写入程序需提供专门的编程脉冲和编程电源,它们也是由信号引脚以第二功能的形式提供的,即:

编程脉冲: 30脚(ALE//PROG)

编程电压(25V):31脚(/EA/V

PP

(2) 备用电源引入

MCS-51单片机的备用电源也是以信号引脚第二功能的方式由9脚(RST/VPD )引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部RAM 提供电压,以保护内部RAM 中的信息不丢失。

4.3 单片机与微型打印机的接口

4.3.1微型打印机TP μP-40A 的主要性能、接口要求及时序

TP μP-40A 是一种单片机控制的微型智能打印机。每行打印40个字符[3]。 (1) TP μP-40A 主要技术性能

① 采用单片机控制,具有2KB 控达程序标准的Centronic 并行接口。 ② 具有较丰富的打印命令,命令代码均为单字节,格式简单。

③ 可产生全部标准的ASCII 代码字符,以及128个非标准字符和图符。有16个代码字符(6×7点阵)可由用户通过程序自行定义。并可通过命令用此16个代码字符去更换任何驻留代码字型,以便用于多种文字的打印。

④ 可打印出8×240点阵的图样(汉字或图案点阵)。代码字符和点阵图样可在一行中混合打印。

⑤ 字符、图符和点阵图可以在宽和高的方向放大为×2、×3、×4倍。

⑥ 每行字符的点行数(包括字符的行间距)可用命令更换。即字符行间距空点行在0~256间任选。

⑦ 带有水平和垂直制表命令,便于打印表格。

⑧ 具有重复打印同一字符命令,以减少输送代码的数量。

⑨ 带有命令格式的检错功能。当输入错误命令时打印机立即打印错误信息代码。 (2) 接口信号

TP μP-40A 微型打印机与单片机间是通过一条20芯扁平电缆及接插件相连(如图4-3所示)。打印机有一个20线扁平插座,信号引脚排列如表4-2所示:

表4-2 打印机信号引脚排列

2 4 6 8 10 12 14 16 18 20

1 3 5 7 9 11 13 15 17 19

●●●●●●●●●●

●●●●●●●●●●

扁平电缆

插头

2

20

19

1

其中:

① DB0~DB7:数据线,单向传输,由单片机输入给打印机。

② /STB(STROBE):数据选通信号。在该信号的上升沿时,数据线上的8位并行数据被打印机读入机内锁存。

③ BUSY:打印机“忙”状态信号。当该信号有效(高电平)时,表示打印机忙于处理数据。此时,单片机不得使STB信号有效,向打印机送入新的数据。

④ /ACK:打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。

⑤ /ERR:“出错”信号。送入打印机的命令格式出错时,打印机立即打印一行出错信息提示出错。在打印出错信息之前该信号线出现一个负脉冲,脉冲宽度为30μs。(3)接口信号时序[4]

图4-4接口信号时序图

接口信号时序如图4-4所示。选通信号/STB宽度需大于0.5μs。/ACK应答信号可与/STB信号作为一对应答联络信号,可使用/STB与BUSY作为一对应答联络信号[5]。

4.3.2 字符代码及打印命令

TPμP-40A全部代码共256个,其中00H无效,代码01H~0FH为打印命令;代码10H~1FH为用户自定义代码;代码20H~7FH为标准ASCII代码;代码80H~FFH 为非ASCII代码,其中包括少量汉字、希腊字母、块图图符和一些特殊的字符。

(1)字符代码

TPμP-40A中全部字符代码为10H~FFH,回车换行代码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,65H,72H,2EH,0DH。

(2)打印命令

打印命令由一个命令字和若干个参数字节组成,命令结束符为0DH,除下述表中代码06H的命令必须用它外,均可省略。TPμP-40A命令代码及功能见表4-3。

表4-3 TPμP-40A命令代码及功能

(3)命令非法时的出错显示

当主机向TPμP-40A输入非法命令时,打印机即打印出错代码。其意义为:

ERROR0: 放大系数出界,即放大倍数是1,2,3和4以外的数字。此错误出现在

01H,01H,03H命令时。

ERROR1:定义代码非法。用户自定义代码不是10H~1FH.

ERROR2:非法换码命令。换码命令只能用10H~1FH去代换驻留字符代码,否则为非法。

ERROR3:绘图命令错误。指定图形字节数为0或大于240。

ERROR4:垂直指标命令错误。指定空行数为零[6]。

4.3.3 TPμP-40A与MCS-51单片机接口设计

TPμP-40A是智能打印机,其控制电路由单片机构成,在输入电路中有锁存器,在输出电路中有三态门控制。因此可以不通过I/O口直接与单片应用系统的总线连接,即打印机的数据线可以以外部I/O口的形式与MCS-51系列单片机的P0口相连。如图4-5所示:TPμP-40A没有读、写信号线,只有一对握手线/STB、BUSY,因此,用一根地址线(使用P2.7)来控制读写信号选通/STB和读取打印机的BUSY状态[7]。

4.4 单片机与液晶显示器的接口

显示器部分是由液晶显示控制行、列驱动器和HY128*64液晶显示器组成的[8]。

4.4.1 液晶显示控制驱动器HD61202的特点

HD61202液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制器,它可直接与8位微处理器相连,它可与HD61203配合对液晶屏进行行、列驱动。HD61202是一种带有列驱动输出的液晶显示控制器,它可与行驱动器HD61203配合使用,组成液晶显示驱动控制系统。

(1)内藏64×64=4096位显示RAM,RAM每位数据对应LCD屏上一个点的亮暗状态;(2)HD61202是列驱动器,具有64路列驱动输出;

(3)HD61202读、写操作时序与68系列微处理器相符,因此它可直接与68系列微

表4-4与微处理器的接口信号引脚功能

处理器接口相连;

(4)HD61202的占空比为1/32--1/64。

4.4.2液晶显示控制驱动器HD61202的引脚功能

HD61202的与各种器件信号的引脚功能如表4-4,表4-5,表4-6所示:

表4-6与LCD接口信号引脚功能

4.4.3液晶显示控制驱动器HD61202的指令系统

HD61202的指令系统比较简单,总共只有七种。现分别介绍如下:

(1)显示开/关指令

表4-7 显示开/关指令

当DB0=1时,LCD显示RAM中的内容;DB=0时,关闭显示。

(2)显示起始行(ROW)设置指令

表4-8 显示起始行设置指令

该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律的改变显示起始行,可以使LCD实现显示滚屏的效果。

(3)页(RAGE)设置指令

显示RAM共64行,分8页,每页8行。

(4)地址(Y Address)设置指令

表4-10地址设置指令

设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,这样MCU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。

(5)读状态指令

该指令用来查询HD61202的状态,各参量含义如下:

BUSY:1-内部在工作0-正常状态

ON/OFF:1-显示关闭0-显示打开

REST:1-复位状态0-正常状态

在BUSY和REST状态时,除读状态指令外,其它指令不对HD61202产生作用。在对HD61202操作之前要查询BUSY状态,以确定是否可以对HD61202进行操作。(6)写数据指令

表4-12 写数据指令

(7) 数据指令

读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的。

4.4.4 HY-12864的电路结构特点

HY-12864是使用HD61202作为列驱动器,同时使用HD61203作为行驱动器的液 晶模块[9]。由于HD61203不与MCU 发生联系,只要提供电源就能产生行驱动信号和各种同步信号,比较简单。下面主要介绍以下HY12864这个模块的逻辑电路图。HY-12864共有两片HD61202和一片HD61203,如下图4-6所示:

Vss Vdd V o RS R/WE DB0 DB1… DB7 CS1 CS2 RES 图4-6 逻辑电路图

在HY-12864中,两片HD61202的ADC 均接高电平,RST 也接高电平,这样在使用HY-12864时就不必再考虑这两个引脚的作用。/CSA 跟HD61202(1)的/CS1相连;/CSB 跟HD61202(2)的CS1相连,因此/CSA 、/CSB 选通组合信号为/CSA ,/CSB=01选通(1),/CSA ,/CSB=10选通(2)。对于HY-12864只要供给VDD 、VSS 和V0即可,HD61202和HD61203所需电源将有模块内部电路在VDD 和V0、VSS 的作用下产生的[10]。 4.4.5 HY-12864的应用

图4-7 接口电路原理图

上面是液晶显示器HY12864 与单片机89S52的接口电路。控制电路为直接访问方式的接口电路[11]。电路原理图如上图所示:

单片机的P0端口直接与显示器的数据端口相连;电位器用来调节显示器屏幕亮度,而负电源由显示器本身提供;单片机的读写信号端口通过与非门控制显示器的读写使能端,高电平时数据被读出,下降沿时数据被锁存即写入列驱动器;P2.3口控制芯片片选端(第二个列驱动器),P2.2口控制芯片片选端(第一个列驱动器),且二者均为低电平有效;P2.1口控制读写选通信号,输入低电平时写选通,本设计不需读入,所以只要低电平即可;P2.0口控制数据指令选择信号,高电平为数据操作,低电平写指令或读状态,即先为0写入控制字再为1写入数据代码确定什么字。

4.5 键盘部分

4.5.1 单片机键盘和键盘接口概述

单片机使用的键盘可分为独立式和矩阵式两种。独立式实际上就是一组相互独立的按键,这些按键可直接与单片机的I/O接口连接,其方法是每个按键独占一条口线,接口简单[12]。矩阵式键盘也称行列式键盘,因为键的数目较多,所以键按行列组成矩

阵(如图4-8所示)。

图4-8 键盘接口电路图

按一个键到键的功能被执行主要应包括两项工作:一是键的识别,即在键盘中找出被按的是哪个键,另一项是键功能的实现。第一项工作是使用接口电路实现的,而第二项工作则是通过执行中断服务程序来完成。下面来介绍键盘接口问题[13]。

具体来说,键盘接口应完成以下操作功能:

a 键盘扫描,以判定是否有键被按下(称之为“闭合键”)。

b 键识别,以确定闭合键的行列位置。

c 产生闭合键的键码。

d 排除多键、串键(复按)及去抖动。

这些内容通常是以软硬件结合的方式来完成的,即在软件的配合下由接口电路来完成。但具体那些由硬件完成由软件完成,要看接口电路的情况。总的原则是,硬件复杂软件就简单,硬件简单软件就得复杂一些。

可以为MCS-51单片机实现键盘接口的方法和接口芯片有:

a使用单片机芯片本身的并/串行口

b 使用通用接口芯片(例如8255、8155等)/专用接口芯片8279

4.5.2 单片机键盘接口和键功能的实现

(1)键盘接口处理内容

①键扫描

键盘上的键按行列组成矩阵,在行列的交点上都对应有一个键。为判定有无键被按下(闭合键)以及被按键的位置,可使用两种方法:扫描法和翻转法,其中以扫描法使用较为普遍。因此下面以扫描法为例,说明查找闭合键的方法。现以图4-9所示的4行×4列键盘为例,对键扫描进行说明。

图4-9 键扫描法示意图

首先是判定有没有键被按下。如图4-9所示,键盘的行线一端经电阻接+5V 电源,另一端接单片机的输入口线。各列线的一端接单片机的输出口线,另一端悬空。为判定有没有键被按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。若行线状态中有低电平,则表示有键被按下。然后再判定被按键的位置。因为在键盘矩阵中有键按下时,被按键处的行线和列线被接通,使穿过闭合键的那条行线变为低电平。假定图4-9中A 键被按下,则判定键位置的扫描是这样进行的:

先使输出口输出0EH ,然后输入行线状态,测试行线状态中是否有低电平(图

4-9(a ))。如果没有低电平,再使输出口输出0DH ,再测试行线状态(图

4-9(b ))。到输出口输出0BH 时,行线中有状态为低电平者,则闭合键找到(图4-9(c )),通过此次扫描的行线值和列线值就可以知道闭合键的位置。至此行扫描似乎可以结束,但实际上扫描往往要继续进行下去,以发现可能出现的多键同时被按下。 ② 去抖动

当扫描表明有键被按下之后,紧接着应进行去抖动处理。因为常用键盘的键实 际上就是一个机械开关结构,被按下时,由于机械接触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动,如图4-10所示。抖动时间长短与键的机械特性有关,一般为5~10ms 。而键的稳定的闭合时间和操作者按键动作有关,大约为十分之几到几秒不等。

图4-10 键闭合和断开时的电压抖动

③ 键码计算

被按键确定下来之后,接下来的工作是计算闭合键的键码,因为有了键码,才能通过散转指令把程序执行转到闭合键所对应的中断服务程序上去。也可以直接使用该闭合键的行列值组合产生键码,但这样做会使各子程序的入口地址比较散乱,给JMP 指令的使用带来不便。所以通常都是以键的排列顺序安排键号,例如,图4-11所示的键号是按从左到右从上到下的顺序编排的。

这样安排,使键码既可以根据行号列号以查表求得,也可以通过计算得到。按图4-11所示的键码编排规律,各行的首号依次是00H ,04H ,08H ,0CH ,如列号按0~3顺序,则键码的计算公式为: 键码=行首号+列号

④ 等待键释放

计算键码之后,再以延时后进行扫描的方法等待键释放。等待键释放是为了保证键的一次闭合仅进行一次处理。

综上所述,键盘接口处理的核心内容是测试有无闭合键,对闭合键进行去抖动处理,求得闭合键的键码。这些操作内容通常都是有软硬件相结合的方法实现,但如果使用像8279这样的专用接口芯片,可以大大简化软件。

为了使键盘操作更稳定可靠,还可以加一些附加功能,例如屏蔽功能:在对一个闭合键已进行处理时,再按下其它键不会产生影响;对于一个键,不管按下多长时间,仅执行一次键处理子程序等。 (2) 键盘接口的控制方式

在单片机的运行过程中,何时执行键盘扫描和处理,可有以下3种情况: ① 随机方式,每当CPU 空闲时执行键盘扫描程序。

② 中断方式,每当有键闭合时才向CPU 发出中断请求,中断响应后执行键盘扫描程序。 ③ 定时方式,每隔一定时间执行一次键盘扫描程序,定时可由单片机定时器完成。

(3) 键处理子程序

在计算机中每一个键都对应一个处理子程序,得到闭合键的键码后,就可以根据键码,转相应的键处理子程序(分支是使用JMP 等散转指令实现的),进行字符、数据的输入或命令的处理。这样就可以实现该键所设定的功能[14]。

4.6电源模块设计

4.6.1单元电源电路设计

为了能够让单片机和打印机更好,更稳定地工作,采用了图4-12所示单元电源电路,由电源变压器、桥堆和滤波电容器所组成。电源变压器的初级电压输入为220V ,次级输出电压为12V [15] [16]。

由于单片机所需的是+5V 电源,经滤波电容和三端稳压集成电路MC7812后可得到+12V 电压,MC7812能将15V ~25V 的直流电压变换成12V 的稳定电压,在12V 的电压中含有少量的低频成分和接收外界的高频成分,再经后一级滤波后送三端稳压集成

图4-12 电源电路图

电路LM317,LM317能将大于7V ~15V 的直流电压变换成+5V 的稳定电压并且提供的较大电流以保证打印机正常工作。同时由于电流较大导致三端稳压集成电路MC7812和LM317过热,为了确保电路工作正常,给两个芯片分别加上散热片。 4.6.2直流稳压电源的检测

本系统对电源要求高,因为稳定性和可靠性在单片机的应用中具有格外重要的意义。为了提高稳定性,单片机的允许电压变化范围很宽。通常单片机使用5V 电压,所以采用较为复杂的稳压电源,电源电路的主要部件采用集成的三端稳压器件如LM317与MC7812,稳压电源输入电压范围宽,输出电压稳定,电流较大,抗干扰能力强,以满足主控系统和微型打印机的要求[17]。

数字万用表对稳压电源的测试结果,如表4-14所示:

表4-14 电压测试

5 软件部分

根据程序设计步骤流程图(图5-1),准备本次设计所需要的整体流程图和部分流程图。

相关主题
相关文档 最新文档