当前位置:首页 > 单片机 > 单片机
[导读]引言电脑弹簧机是用来生产弹簧的专用设备。按键板,作为一个人机交互的操作界面,起着输入操作命令,编辑弹簧加工程序及修改数据的功能,对电脑弹簧机的操作控制起着重要作用。在实际应用中,为方便操作,需要将按键

引言

电脑弹簧机是用来生产弹簧的专用设备。按键板,作为一个人机交互的操作界面,起着输入操作命令,编辑弹簧加工程序及修改数据的功能,对电脑弹簧机的操作控制起着重要作用。在实际应用中,为方便操作,需要将按键板的按键汉字化和直接化,这使得使用标准的PC键盘不太可能,所以开发一块便宜且通用的按键板就很有现实意义。在PC机中,键盘和主机的通信采用的是PS/2协议。由于电脑弹簧机的控制器是一个标准的工控PC机控制器,具有标准的键盘接口,为了使设计简单和通用,在这里使用这个标准的键盘接口,并采用PS/2协议来进行按键板和弹簧机的通信,设计时选用单片机AT89S51作为按键板的处理芯片进行按键的识别和数据的接收和发送。本文介绍的是设计并实现这个按键板的详细方法。

一. 按键设计

按键板采用薄膜面板开关形式,薄膜面板开关设计简单,操作方便,安放容易,直接贴在一表面就可使用,加上其防水防尘的性能,很适合工业控制的应用场合。对一个弹簧机的按键板来说,其按键包括三类:数字键,功能键和编辑键。数字键实现的是数字的输入;功能键对应的是弹簧机的操作命令;编辑键用于对弹簧加工程序的编辑,如清除、保存等。一个设计合理的按键布局,与操作的方便性与可靠性直接关联,对于具体各个键的布置,应综合考虑操作的方便和布局的美观,该设计完成后的7行×8列的按键布局图见下:


图1 按键布局图

薄膜面板下面的行列阵电路采用单面柔性电路板(FPC)制作,电路起凸的形式保证了按键时的手感。它输出的是键盘行列阵的行线和列线。

二.按键板的软硬件设计

无论是按键板的硬件设计还是软件设计,都必定会涉及到按键板和主机的通信协议。所以在进入到软硬件设计之前,先对PS/2协议做一简单介绍。

1. PS/2协议

PS/2协议是外设与主机之间通信的一种同步双串行协议。在协议中主机端拥有较高的优先级,在一定条件下它可中止外设正在进行的发送过程。该协议采用的短帧格式传送数据的数据帧格式为:1位起始位(0),8位数据位,一位奇校验位,一位停止位(1)。数据发送时低位在前,高位在后。外设每收到主机发来的一帧数据,都要紧随该帧的停止位发送一个握手位ACK(0)应答主机,然后外设还要发1帧应答数据(0xF0),表明已完整地接收到了主机的命令;而主机在接收外设数据后不用发握手信号ACK,也不需要另外发送应答帧。无论是主机发还是外设发数据,同步时钟都是由外设产生的。

按照接收方和发送方的不同,该协议可分为两部分,其一为外设发送主机接收的通信,这一过程发生在工作人员操作外设或外设应答主机端发来的命令时,数据线和时钟线处于空闲状态下维持高电平状态;其二为主机发送外设接收的通信,该过程发生在主机上电自检时,主机发送测试信号检测外设是否存在并判断是何种类型的外设时。这个上电检测对外设来说很重要,其中一个检测项目为基本保证测试(Basic Assure Test),当主机发送该命令到外设时,外设必须回送相应的应答帧,否则主机就认为该外设的开机自检没能通过,在DOS以上的系统中,外设将无法使用。主机上电自检时,发送给外设的数据是一个命令集,针对每个命令,外设都要作出相应的响应,这些响应字也都是协议所规定好的,具体可参见文献[1]。

2. 硬件设计

在这里采用AT89S51作为按键板的主处理芯片。AT89S51是一个低功耗、高性能的8位CMOS单片机,有32个I/O口可供使用,能满足行列扫描口较多时的要求,并具有软件看门狗。

与前面的按键布局相对应,采用7×8的矩阵行列结构。行线用89S51的P2口,列线用P0口,由于P0口无内部上拉电阻,因而列线须外接上拉电阻。AT89S51的电源都由主机的PS/2接口提供,采用频率为12MHz外部晶振。用P3.6和P3.7作为数据线和时钟线和主机进行通信,完成后的硬件原理示意图如图二所示。


图2 硬件原理示意图

按键板的行列阵示意图如图三所示,按键板的行列阵只需将其行线和列线分别引出接到图二所示的行列线接口中即可。按键板和主机通过PS/2接口连接器相连,现在比较常用的PS/2接口连接器如图四所示。

3. 软件设计

软件的设计是按键板实现的关键,采用单片机C语言编程。它通过主程序和一系列的子程序来实现。主程序用于系统的初始化,子程序的调用。子程序包括接收主机命令子程序,发送数据子程序,接收数据子程序,行列扫描子程序以及发送键码子程序。

接收主机命令子程序用于面板接收主机的命令,并作出相应的响应,这在DOS以上的系统中很重要,否则主机不承认按键板的存在。发送数据子程序用于发送数据帧到主机,每一位数据的发送都是按PS/2协议的时序要求所编写的。接收数据子程序用于接收主机发来的数据帧,每一位数据的接收也是由时序规定的。行列扫描子程序作用是对按键板上键的识别,并将该键对应的码发送到按键缓冲区暂存起来。PS/2协议中,当一个键被按下或按住时就发送该键的通码 (MAKE),被释放时就发送断码(BREAK),每个按键都被分配了唯一的通码和断码(协议中统称为扫描码),这样主机通过扫描码就可识别按键的类别。在弹簧机的按键板中,因为面板中的键不全是标准的,对于那些自定义的键,可将该键与一标准键的扫描码对应起来,例如可将面板中的“启动”与标准键“A”对应,这样当“启动”被按下时,发送给主机的就是字母“A”的扫描码,通过重定义主机系统中的相关控制部分,就可实现启动弹簧机的功能。发送键码子程序用于发送按键缓冲区中的数据。而对于面板中的“锁键”,实现的是面板的锁死,在工控系统中,这个对于操作系统的可靠性是很有必要的,当该键按下时,则不发送缓冲区中的数据,同时清空缓冲区,多按一下则可解锁。为了防止死机现象的发生,在主程序的循环中加入软件看门狗。软件实现的流程图见下图:


图5 软件流程图

三.结论

本文介绍的电脑弹簧机按键板具有结构简单,设计灵活,安全可靠的特点,可在DOS及WINDOWS的系统中使用。作为一弹簧机的按键板,其已在实际中得到成功的应用。本设计也可广泛运用于以PC机为主机的控制系统中,可以根据实际需要,改变按键的阵列以及按键的功能,因而应用本设计可以实现丰富多彩的控制设备中所需的非标准的PC机键盘。

参考文献:
[1]  Adam Chapweske. PS/2技术参考. Roy Show 译. 2002
[2]  何立民. MCS-51系列单片机应用系统设计系统配置与接口技术[M]. 北京: 北京航空航天大学出版社. 1999.6
[3]  何立民.  单片机高级教程-应用与设计[M]. 北京:北京航空航天大学出版社. 2000.8
[4]  赵亮,候国锐. 单片机C语言编程与实例[M]. 北京:人民邮电出版社. 2003.9
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭