微型打印机控制电路的设计(1)

简介: 微型打印机控制电路的设计(1)

科技背景_副本 公众号_副本.png

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) 针式打印机的特点

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

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

(1) 喷墨打印机

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

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

(2) 光打印机

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

(1) 输入/输出口线

P0.0 ~ P0.7        P0口8位双向口线

P1.0 ~ P1.7    P1口8位双向口线

P2.0 ~ P2.7    P2口8位双向口线

P3.0 ~ P3.7    P3口8位双向口线

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

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

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

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

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

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

(5) 复位信号(RST)

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

(6) 外接晶体引线端(XTAL1和XTAL2

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

(7) 地线(Vss)

(8) +5V电源(Vcc)

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

4.2.2 信号引脚的第二功能

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

   解决这一问题唯一可行的办法是“复用”,即给一些信号引脚赋予双重功能。如果我们把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。第二功能信号定义主要集中在P3口线中,另外再加上几个其它信号线。

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

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

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

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

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

(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所示:

中:

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

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

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

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

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

(3) 接口信号时序[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。

640.png

(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]

正面.png

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系列微正面.png

处理器接口相连;

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

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

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

640.png

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

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

(1) 显示开/关指令

正面.png

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

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

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

640.png

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

(3) 页(RAGE)设置指令

正面.png

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

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

640.png

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

(5) 读状态指令

正面.png

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

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

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

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

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

(6) 写数据指令

正面.png

(7) 数据指令

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

4-13 数据指令

640.png

4.4.4 HY-12864的电路结构特点

HY-12864是使用HD61202作为列驱动器,同时使用HD61203作为行驱动器的液

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

正面.png

在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的应用

正面.png

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所示)。

正面.png

4-8 键盘接口电路图

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

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

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

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

c 产生闭合键的键码。

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

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

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

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

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

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

(1) 键盘接口处理内容

① 键扫描

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

正面.png

4-9 键扫描法示意图

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

先使输出口输出0EH,然后输入行线状态,测试行线状态中是否有低电平(图4-9(a))。如果没有低电平,再使输出口输出0DH,再测试行线状态(图4-9(b))。到输出口输出0BH时,行线中有状态为低电平者,则闭合键找到(图4-9(c)),通过此次扫描的行线值和列线值就可以知道闭合键的位置。至此行扫描似乎可以结束,但实际上扫描往往要继续进行下去,以发现可能出现的多键同时被按下。

② 去抖动

当扫描表明有键被按下之后,紧接着应进行去抖动处理。因为常用键盘的键实

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

正面.png

③ 键码计算

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

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

正面.png

④ 等待键释放

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

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

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

(2) 键盘接口的控制方式

在单片机的运行过程中,何时执行键盘扫描和处理,可有以下3种情况:

① 随机方式,每当CPU空闲时执行键盘扫描程序。

② 中断方式,每当有键闭合时才向CPU发出中断请求,中断响应后执行键盘扫描程序。

③ 定时方式,每隔一定时间执行一次键盘扫描程序,定时可由单片机定时器完成。

(3) 键处理子程序

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

相关文章
|
4月前
|
编解码 数据挖掘 测试技术
对于大屏幕显示系统工程,这通常涉及到硬件(如显示器、投影仪、控制器等)和软件(如内容管理系统、控制软件等)的集成。
对于大屏幕显示系统工程,这通常涉及到硬件(如显示器、投影仪、控制器等)和软件(如内容管理系统、控制软件等)的集成。
|
4月前
|
Python
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
|
4月前
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
存储 数据建模 Serverless
微型计算机系统
4.2 Excel的基本操作 4.2.1工作簿的新建和打开 1、工作簿与工作表 工作簿是指在excel中用来存储并处理数据的文件,其扩展名是.xlsx。 各工作簿是由工作表组成的,每个工作簿都可以包含一个或多个工作表,用户可以用其中的工作表来组织种相关数据。工作表不能单独存盘,只有工作簿才能以文件的形式存盘;因此执行保存命令式对工作簿执行的,会将其中所有工作表一起保存。 1)工作簿(Sheet)是一个由行和列交叉排列的二维表格,也称作电子表格,用于组织和分析数据。 2)Excel的一个工作簿默认有3个工作表,用户可以根据需要添加工作表,一个工作簿最多可以包括无数个工作表 3)但新建时
|
6月前
|
存储
A-B 罗克韦尔 6155R-14SXPH 标准型号的非显示器计算机
A-B 罗克韦尔 6155R-14SXPH 标准型号的非显示器计算机
|
芯片
微型打印机控制电路的设计(2)
微型打印机控制电路的设计(2)
124 0
微型打印机控制电路的设计(2)
|
传感器 编解码 监控
基于单片机的微型打印机控制电路设计
基于单片机的微型打印机控制电路设计
448 0
基于单片机的微型打印机控制电路设计
|
存储 Ubuntu Shell
3D打印树莓派4B外壳—内置UPS和统计显示信息
3D打印树莓派4B外壳—内置UPS和统计显示信息
591 0
3D打印树莓派4B外壳—内置UPS和统计显示信息
|
C# 开发工具 C++
惠普打印机、扫描仪二次开发、支持状态获取
惠普打印机、扫描仪二次开发、支持状态获取
803 0
惠普打印机、扫描仪二次开发、支持状态获取
|
存储 计算机视觉 Windows
项目二 认识计算机硬件设备
项目描述 小王要组装一台台式电脑,他应该具体选购哪些硬件设备? 小李要选购一台笔记本电脑,哪些硬件设备决定和影响了这台电脑的整体性能? 让我们从实践的角度来认识和了解一下计算机中的硬件设备。 项目目标 1、识别微机各个硬件。 2、指出某个硬件属于冯·诺依曼机五大部件的哪一类。 3、总结购买台式机或笔记本电脑需要关注的参数。