CN116566398A - 键盘扫描方法 - Google Patents
键盘扫描方法 Download PDFInfo
- Publication number
- CN116566398A CN116566398A CN202310848964.0A CN202310848964A CN116566398A CN 116566398 A CN116566398 A CN 116566398A CN 202310848964 A CN202310848964 A CN 202310848964A CN 116566398 A CN116566398 A CN 116566398A
- Authority
- CN
- China
- Prior art keywords
- parallel
- pin
- shift register
- data
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000000630 rising effect Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M11/00—Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
- H03M11/20—Dynamic coding, i.e. by key scanning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本申请涉及电子设备的输入系统的技术领域,公开了一种使用并转串移位寄存器进行键盘扫描的方法,包括以下步骤:步骤A:将键盘的并行数据输入到至少一个并转串移位寄存器的并行数据输入端口;步骤B:用时钟信号将并行数据从所述并行数据输入端口的高位到并行数据输入端口的低位依次移位,并通过串行输出端口输出。本申请不但可以提高键盘扫描速度和准确性,而且可以提高GPIO资源利用效率,还能够增强系统的扩展性。
Description
技术领域
本申请涉及电子设备的输入系统的技术领域,尤其涉及微控制单元(MCU)与输入设备如键盘的接口技术。
背景技术
随着电子技术和信息技术的发展,人们的日常生活和工作中越来越依赖于各种各样的电子设备,如计算机、智能手机、掌上电脑、ATM机等。这些电子设备的操作和控制通常依赖于按键输入设备。在这些设备中,按键输入设备的工作原理通常是:当用户按下一个键时,对应的电路被闭合,产生一个电信号;当用户松开这个键时,电路被打开,电信号消失。
传统的按键扫描方式是直接连接到微控制单元(MCU)的GPIO端口,通过MCU直接读取每个按键的状态。然而,这种方式有几个显著的缺点。首先,需要大量的GPIO端口,这对MCU的资源造成了很大的压力。而且,扫描速度受到了很大的限制,因为MCU需要逐个读取每个按键的状态。而且,当按键数量增加时,需要的GPIO端口数量也会增加,这将导致硬件设计复杂化。进一步的,传统的按键扫描方式也面临着“鬼键”现象的问题。当多个键同时被按下时,由于键盘矩阵的电路特性,可能会产生错误的按键信号,这就是所谓的“鬼键”现象。尽管有一些硬件和软件的解决方案,但它们通常会增加系统的复杂性或降低性能。同样,由于按键和MCU之间的直接电气连接,可能会产生电磁干扰,引起系统的不稳定,这就是所谓的“耦合”问题。
因此,需要一种更好的键盘扫描方法,不但可以提高键盘扫描速度和准确性,而且可以提高GPIO资源利用效率,还能够增强系统的扩展性。
发明内容
本申请的目的在于提供一种键盘扫描方法,以解决上述背景技术中提出的问题。
本申请公开了一种使用并转串移位寄存器进行键盘扫描的方法,包括以下步骤:
步骤A:将键盘的并行数据输入到至少一个并转串移位寄存器的并行数据输入端口;
步骤B:用时钟信号将并行数据从所述并行数据输入端口的高位到并行数据输入端口的低位依次移位,并通过串行输出端口输出。
在一个优选例中,所述并转串移位寄存器是74HC165并转串移位寄存器,所述步骤A中,将键盘的并行数据D0引脚至D7引脚输入到74HC165并转串移位寄存器里面。
在一个优选例中,所述步骤B中,从所述74HC165并转串移位寄存器的D7引脚到D0引脚的数据依次移位。
在一个优选例中,所述步骤B中,通过所述74HC165并转串移位寄存器的Q7引脚输出。
在一个优选例中,所述步骤A包含以下子步骤:
当至少一个按键被按下导致并行数据输入时,74HC165并转串移位寄存器的并行加载引脚被拉低,以将并行数据锁存到74HC165并转串移位寄存器中;以及
将所述并行加载引脚置为高电平,停止并行数据输入;其中
所述并行加载引脚是PL引脚。
在一个优选例中,所述步骤B包含以下子步骤:
将74HC165并转串移位寄存器的输出使能引脚拉低,以允许时钟输入到所述74HC165并转串移位寄存器中,从而启动移位操作;以及
时钟每产生一个上升沿,74HC165并转串移位寄存器中的数据从高位的D7引脚到低位的D0引脚的数据依次移出到Q7引脚,并通过Q7引脚输出,实现按键数据的连续输出。
在一个优选例中,所述至少一个并转串移位寄存器级联。
在一个优选例中,所述至少一个并转串移位寄存器级联为13片并转串移位寄存器级联,所述方法用于实现104键的键盘扫描。
在本申请的实施方式中能够获得以下技术效果:
提高GPIO资源利用效率:利用74HC165并转串移位寄存器进行键盘扫描,可以将多个按键状态通过四个GPIO口读取,极大地节省了MCU的GPIO资源。
提高键盘扫描速度:通过串行方式读取按键状态,每产生一个时钟脉冲,就能读取出一个按键状态,从而提高了扫描速度。
解决鬼键问题:本发明的设计可以有效地防止鬼键现象,提高了按键输入的准确性。
避免耦合问题:通过硬件设计和编程控制,可以将按键与MCU之间的电气连接隔离,防止电磁干扰,提高系统的稳定性和可靠性。
扩展性强:支持级联更多的74HC165并转串移位寄存器,方便增加更多的输入设备,有利于设备的升级和扩展。
上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本申请第一实施方式的键盘扫描方法的流程示意图;
图2是根据本申请第一实施方式的键盘扫描方法中的移位锁存器芯片(74HC165)的功能示意图;
图3是根据本申请第一实施方式的键盘扫描方法中的移位锁存器芯片(74HC165)的时序图;
图4是根据本申请第一实施方式的键盘扫描方法中的基本实现原理图;
图5是根据本申请第一实施方式的键盘扫描方法中利用移位锁存器按键扫描的示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
下面概要说明本申请实施方式的部分创新点:
本申请的发明人经过多年研究,针对现有技术中的键盘扫描技术需要更高的扫描深度和准确性,更高的GPIO资源利用效率,以及更强的系统扩展性等技术问题,创造性地提出了一种键盘扫描技术,该技术节省MCU IO资源,提高IO利用率,整个驱动只需要使用4个IO就能读取多个按键,支持级联扩展,常见104键使用13片移位寄存器芯片;并且,能从原理上就解决矩阵按键扫描的鬼键问题,电路设计简单明了,因为移位寄存器芯片的一个通道就对应一个按键,所以PCB走线方便抗干扰性强;进一步的,该技术使用的是移位寄存器芯片,这种芯片clk速度高,至少都是Mhz以上,所以按键扫描速度快,加上软件滤波算法,按键扫描稳定可靠,同时理论上能支持任意按键同时按下检测。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
总的来说,本实施例包含以下步骤:
步骤A:将键盘的并行数据输入到至少一个并转串移位寄存器的并行数据输入端口;
步骤B:用时钟信号将并行数据从所述并行数据输入端口的高位到并行数据输入端口的低位依次移位,并通过串行输出端口输出。
可选的,所述并转串移位寄存器是74HC165并转串移位寄存器,所述步骤A中,将键盘的并行数据输入到74HC165并转串移位寄存器的D0引脚至D7引脚。所述步骤B中,从所述74HC165并转串移位寄存器的D7引脚到D0引脚依次移位,通过所述74HC165并转串移位寄存器的Q7引脚输出。
可选的,所述步骤A包含以下子步骤:
当至少一个按键被按下导致并行数据输入时,74HC165并转串移位寄存器的并行加载引脚被拉低,以将并行数据锁存到74HC165并转串移位寄存器中;以及,将所述并行加载引脚置为高电平,停止并行数据输入;其中,所述并行加载引脚是PL引脚。
可选的,所述步骤B包含以下子步骤:
将74HC165并转串移位寄存器的输出使能引脚拉低,以允许时钟输入到所述74HC165并转串移位寄存器中,从而启动移位操作;以及,时钟每产生一个上升沿,74HC165并转串移位寄存器中的数据从高位的D7引脚到低位的D0引脚依次移出到Q7引脚,并通过Q7引脚输出,实现按键数据的连续输出。
可选的,所述至少一个并转串移位寄存器级联。
可选的,所述至少一个并转串移位寄存器级联为13片并转串移位寄存器级联,所述方法用于实现104键的键盘扫描。
更具体地说,本申请的第一实施方式涉及一种键盘扫描方法,如图1所示,该键盘扫描方法包括以下步骤:
步骤110:建立一个硬件系统。
具体的,该硬件系统包括:微控制单元(MCU),至少一个74HC165并转串移位寄存器,以及至少一个按键输入设备,其中,每个按键都作为移位寄存器的一位,所述移位寄存器芯片级联,所述MCU每输出一个时钟脉冲就能读取出一个按键状态。
具体地说,微控制单元(MCU)是整个硬件系统的核心,它负责生成时钟信号,以及处理和解析来自移位寄存器的按键状态数据。MCU可以是任何具有GPIO和时钟输出功能的微控制器,例如Arduino,STM32等。
74HC165并转串移位寄存器是将并行的按键输入信号转换为串行信号的关键组件。每一个74HC165移位寄存器可以处理8个并行输入信号,也就是8个按键的状态。如果按键数量超过8个,可以通过级联多个74HC165并转串移位寄存器来处理。级联操作很简单,只需要将第一个芯片的串行输出(Q7)连接到下一个芯片的串行输入(DS)即可。
按键输入设备可以是任何能产生电平变化的开关设备,在本实施例中,按键输入设备是电脑键盘,但不限于此,也可以是计算器、遥控器等设备上的按键。每一个按键都连接到移位寄存器的一个输入端,按键状态变化(比如从未按下变为按下)会引起对应输入端电平的变化。这个电平变化会被移位寄存器捕捉并储存,等待MCU通过时钟脉冲进行读取。
当MCU输出一个时钟脉冲时,所有级联的移位寄存器会同时进行一次移位操作,将存储的按键状态从最高位(D7)向最低位(D0)移动一位,并将最高位的状态通过串行输出(Q7)发送给MCU。MCU在接收到每一个时钟脉冲后,都会读取并处理一个按键的状态。通过这种方式,MCU可以依次读取所有的按键状态,实现键盘的扫描。
步骤120:当至少一个按键被按下导致并行数据输入时,74HC165并转串移位寄存器的并行装载(PL)引脚被拉低,以将并行数据锁存到74HC165并转串移位寄存器中。
上述的"并行数据输入"指的是从按键模块同时读取全部按键状态的操作。主机通过移位锁存芯片的锁存功能在同一时刻将当前所有按键的状态都锁存到移位寄存器,然后通过clk循环读取将所有按键的状态转换成串行数据,每个按键对应一个bit的数据。当某个或者某些按键被按下时,这些被按下的按键将改变其对应bit的电平,这个电平变化可以被并行接入的74HC165并转串移位寄存器锁存并被主机读取到,从而实现并行数据输入。
需指出,在上述步骤之后,当片选使能信号CE被拉低后,时钟信号CP(clk)输入到74HC165并转串移位寄存器的CP引脚上,将锁存的并行数据通过串行方式输出。此时,得到的数据即为按键值。具体如下:
步骤130:将PL引脚置为高电平,停止并行数据输入。在获取并行数据输入完成后,需要将PL引脚的电平信号由低电平改为高电平,以停止并行数据的输入。
其中,“PL引脚”是指在某些数字电子设备,如并转串移位寄存器(如74HC165)或可编程逻辑设备(如FPGA、CPLD等)中的"并行加载"(Parallel Load)引脚。对于74HC165这类并转串移位寄存器,PL引脚的主要功能是控制并行输入数据的加载。当PL引脚处于低电平状态时,移位寄存器将并行输入端口的数据加载到内部。而当PL引脚被置为高电平时,移位寄存器将停止加载并行输入数据,转而可以通过串行输出端口读出数据。总的来说,PL引脚是用于控制并行数据输入的加载时机,是实现并转串功能的关键控制信号。
在使用74HC165并转串移位寄存器进行并行数据输入时,74HC165并转串移位寄存器的PL引脚负责控制并行数据输入的开始和停止。具体的,当PL引脚为低电平时,74HC165并转串移位寄存器开始接收并行数据输入并将数据锁存到移位寄存器中。在这个状态下,每个按键的状态(即按下或未按下)都会被并行地读入并存储到移位寄存器中。
在并行数据全部输入并被锁存到移位寄存器之后,为了停止继续接收并行数据,并开始将存储的并行数据转为串行数据进行输出,就需要将PL引脚的电平由低电平变为高电平。这个操作实际上是一个信号切换过程,用来告诉74HC165并转串移位寄存器并行数据输入已经完成,可以开始下一阶段的数据处理。
这种高电平信号同时还有一个作用,那就是保护已经存储到移位寄存器中的并行数据不被新的并行数据输入覆盖,确保移位寄存器中存储的是正确的并行数据。
因此,"将引脚1置为高电平,停止并行数据输入"这个操作是实现按键扫描功能的重要步骤,它确保了在并行数据输入完成后能够准确、有效地读取按键状态,提高了键盘扫描的准确性和效率。
步骤140:将74HC165并转串移位寄存器的输出使能(OE)引脚拉低,以允许时钟输入(CP)到芯片中,从而启动移位寄存器的移位操作。
74HC165并转串移位寄存器是一款并行输入、串行输出的移位寄存器芯片。在这个系统中,OE(输出使能)引脚和CP(时钟输入)引脚起着非常重要的作用。OE引脚用于控制芯片的数据输出状态,而CP引脚则用于控制移位寄存器的工作。
在使用74HC165并转串移位寄存器进行数据处理时,首先需要将OE引脚拉低,也就是将其电平设为低电平。这样做的目的是启动74HC165并转串移位寄存器的数据输出功能。当OE引脚为低电平时,芯片可以将移位寄存器中的数据串行输出;而当OE引脚为高电平时,芯片则停止数据输出。
然后,需要允许时钟输入CP到74HC165并转串移位寄存器中。时钟输入CP是移位寄存器的工作信号,每一个时钟脉冲都会使移位寄存器中的数据向右移动一位。当OE引脚为低电平,允许数据输出时,CP引脚接收到的每一个时钟脉冲都会将移位寄存器中的一位数据输出。
这就是为什么"将74HC165并转串移位寄存器的输出使能(OE)引脚拉低,以允许时钟输入(CP)到芯片中,从而启动移位寄存器的移位操作"。这个操作实现了将存储在移位寄存器中的并行数据通过串行方式输出,为后续的数据处理提供了便利。通过这种方式,可以有效地降低数据处理的复杂度,提高数据处理的效率和准确性。
步骤150:时钟CP每产生一个上升沿,74HC165并转串移位寄存器中的数据从高位(D7引脚)到低位(D0引脚)依次移出到Q7引脚,并通过Q7引脚输出,实现按键数据的连续输出。
这种方法利用74HC165并转串移位寄存器来实现键盘扫描,可以大大减少需要的GPIO口数量,提高扫描速度,实现更加高效的键盘输入。
本发明中,时钟CP的功能是驱动移位寄存器中数据的移动。具体来说,每当时钟CP产生一个上升沿,也就是电平从低到高的瞬间,移位寄存器中的数据就会按照从高位(D7引脚)到低位(D0引脚)的顺序依次向右移动一位。这就意味着原来存储在最高位(D7)的数据会被推送到下一位,原来在下一位的数据则会被推送到再下一位,以此类推,直到最低位(D0引脚)的数据被推出寄存器,并通过Q7引脚输出。这样,每一个时钟脉冲都能推动数据的移动,实现按键数据的连续输出。
由于所有的按键数据都可以并行地输入到芯片中,然后通过时钟CP的驱动,按序串行输出,所以需要的GPIO(General Purpose Input/Output)口数量会大大减少。在传统的方法中,每一个按键都需要连接到一个GPIO口,如果键盘按键数量较多,就需要使用大量的GPIO口。而使用本发明的方法,即使按键数量增加,也不会增加GPIO口的数量,因为所有的按键数据都是并行输入到同一个芯片中,再通过时钟的驱动,按序串行输出。其次,由于所有的按键数据都是并行输入,串行输出,所以键盘扫描的速度会得到提高。与传统的一键一GPIO的方法相比,这种方法可以更快地读取所有按键的状态,无需等待每个按键的独立读取。
本实施例既能节省硬件资源,又能提高扫描速度,使得键盘输入可以更高效地被处理。
本实施例通过利用移位锁存芯片和专门的扫描方法,实现了键盘的快速扫描。这种扫描方式的主要优点在于能够通过串行方式读取并处理按键状态,这样不仅极大地节省了微控制器(Microcontroller Unit, MCU)的GPIO资源,还能有效提高扫描速度和效率。
传统的键盘扫描通常需要为每一个按键分配一个GPIO口,这样在处理大量按键输入的情况下,就会占用大量的GPIO资源。而本发明的方法则能够大大减少GPIO的使用。所有的按键状态都通过并行方式输入到移位锁存芯片中,然后通过串行方式输出,只需要四个GPIO口就能读取所有的按键状态。这样,即使键盘的按键数量增加,所需要的GPIO资源也不会增加。
另外,这种串行方式的读取也能提高扫描的速度和效率。在传统的方法中,每次扫描都需要逐个读取每一个GPIO口的状态,这样在有大量按键的情况下,扫描过程会非常缓慢。而在本发明的方法中,所有的按键状态都在并行输入后,通过串行方式依次快速输出,每一个时钟脉冲都会推动一个按键状态的输出,这样就能快速地完成所有按键状态的读取。
本实施例通过创新的扫描方法,实现了键盘的快速扫描,节省了GPIO资源,提高了扫描速度和效率,使得键盘输入的处理更加高效和实用。
本实施例可以通过级联方式实现多个按键的读取,而且只需要少量的GPIO口,非常节省IO,适用于对IO口资源要求较高的电子设备。
以上就是本发明的具体实施方式,但本发明并不限于上述实施方式,任何知识普通技术人员,在不脱离本发明技术方案的范围下,当可以利用上述指示进行各种改变和修饰,这些改变和修饰都应包含在本发明的保护范围之内。
上述实施例具有以下有益效果:
资源优化:本发明的键盘扫描方法基于74HC165并转串移位寄存器,可以极大地节省微控制单元(MCU)的通用输入/输出(GPIO)资源。在一个大规模按键系统中,使用本发明的方法,只需要使用一个MCU的四个GPIO引脚就能完成所有按键的扫描工作,这对硬件设计者来说显著减少了设计的复杂性和制造成本。
效率提升:相比于传统的按键扫描方法,本发明通过串行方式读取按键状态,大大提高了扫描速度和效率,这在大规模按键系统中尤其明显。
扩展性强:由于74HC165并转串移位寄存器的Q7引脚(串行输出)可以与下一片74HC165的DS引脚(串行输入)相连接,这使得按键系统的扩展性得到大幅度提升。只需要增加74HC165并转串移位寄存器和按键,即可轻松地扩展系统的按键数量。
稳定性好:本发明的键盘扫描方法,其操作过程清晰,逻辑严密,能够有效防止误读按键状态的问题发生,从而保证了系统的稳定性和可靠性。
因此,本发明的键盘扫描方法,具有资源优化,效率提升,扩展性强和稳定性好等优点。
为了能够更好地理解本申请的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
在本例子中,利用并入串出移位寄存器的功能,每个按键都做为移位寄存器的一位,移位寄存器芯片级联,MCU每输出一个时钟脉冲就能读取出一个按键状态。
本例子的实现原理是利用74HC165并转串,PL引脚拉低将并行数据锁存,CE引脚拉低后允许CP引脚clk输入,CP引脚输入clk将锁存的并行数据通过串行读出,得到的就是按键值。
参见图1-图4,其中,图4体现多芯片扩展级联,同时GPIO利用率高,读取按键只需要四个IO。首先,在并行数据输入时,PL引脚被拉低,以将并行数据锁存到74HC165并转串移位寄存器中。然后,当使能信号CE被拉低后,时钟信号CP(clk)输入到芯片的CP引脚上,将锁存的并行数据通过串行方式输出。此时,得到的数据即为按键值。需要注意的是,引脚1(PL引脚,也称为第一引脚)需要在并行数据输入结束后被置为高电平,以停止并行数据输入。
因此,利用74HC165并转串移位寄存器的并转串功能,可以将按键输入信号转换为串行数据,并通过该方式读取按键值。这种方法的优点是快速,可以通过级联方式实现多个按键的读取,而且只需要少量的GPIO口,非常节省IO,适用于对IO口资源要求较高的电子设备。
在这里,“按键值”指的是按键输入所对应的数据值。当用户按下按键时,按键所对应的电信号被传递到74HC165并转串移位寄存器中,被锁存在芯片的并行数据寄存器中。当将锁存使能信号CE拉低并输入时钟信号CP(clk)时,锁存的并行数据通过串行方式依次输出到Q7引脚上,组成了一个8位的串行数据,其中的每一位表示一个按键的状态,通常采用二进制编码方式。通过将这个8位的串行数据转换成十进制数值,就可以得到对应的按键值。因此,“按键值”就是指代了按键输入的数据表示。
引脚1(PL引脚)为低电平,获取并行数据输入。具体的,数据移入移位寄存器(当引脚1(PL)被拉低时,74HC165并转串移位寄存器开始接收来自按键模块的并行数据输入,并将数据移入移位寄存器中进行存储。这个过程是并行的,即所有按键的状态都同时被读入并存储到移位寄存器中。移位寄存器是一个能够暂时存储数据并能够将数据按位移位的寄存器。在这种方法中,它用于暂存按键模块的状态,以便稍后进行处理。
将引脚1置为高电平,停止并行数据输入。具体的,在获取并行数据输入完成后,需要将引脚1(PL)的电平信号由低电平改为高电平,以停止并行数据的输入。因为在并行数据输入时,引脚1需要保持低电平,以将并行数据锁存到74HC165并转串移位寄存器中,而在结束并行数据输入后,需要将引脚1置为高电平,以停止并行数据输入,同时还要保证数据能够正确地移位和读出。
引脚15(OE引脚)为低电平,使能时钟输入。具体的,将74HC165并转串移位寄存器的输出使能(OE)引脚拉低,以允许时钟输入(CP)到芯片中,从而启动移位寄存器的移位操作。当输出使能引脚(OE)为高电平时,芯片的输出将被禁用,即使时钟信号输入到CP引脚上,移位寄存器中的数据也不会被输出。因此,当需要从芯片中读取数据时,必须将输出使能引脚拉低,以允许时钟信号的输入。
时钟CP每产生一个上升沿,移位寄存器中的数据从高位(D6引脚)到低位(D0引脚)依次移出到Q7引脚。具体的,移位寄存器中的数据会在时钟CP每产生一个上升沿时从高位(D7引脚)到低位(D0引脚)依次移出,移出的数据会通过Q7引脚输出。这样就能够读取到按键值了。这种方法利用移位锁存芯片来实现键盘扫描,可以大大减少需要的GPIO口数量,提高扫描速度,实现更加高效的键盘输入。
由于可以级联所以MCU只需要四个GPIO口,非常节省 IO,而且扫描速度极快。由于这种键盘扫描方法可以级联,因此只需要使用四个通用输入输出口(GPIO)即可对多个键盘进行扫描,而不需要每个键盘都使用独立的GPIO,这样可以大大节省芯片的GPIO资源。此外,这种扫描方法的速度非常快,可以快速响应用户的按键操作。
在本例子中,PL是74HC165并转串移位寄存器的引脚1,代表Parallel Load,用于将并行输入数据加载到移位寄存器中。当PL为低电平时,输入数据会被锁存到移位寄存器中,而当PL为高电平时,输入数据的加载就会停止。“CE”是74HC165并转串移位寄存器的片选使能引脚,当CE引脚为低电平时,芯片处于工作状态,可以接受并行数据输入并通过时钟CP进行移位输出;当CE引脚为高电平时,芯片处于禁用状态,无法接受并行数据输入和时钟CP信号。"CP"是指74HC165并转串移位寄存器上的时钟引脚,用于控制移位寄存器中数据的移位和锁存。当CP引脚上升沿到来时,移位寄存器中的数据会从高位(D7)到低位(D0)依次移位并输出到Q7引脚。“clk”是指时钟信号。在该键盘扫描方法中,CP引脚接收时钟信号,每当产生一个上升沿时,移位寄存器中的数据从高位(D7)到低位(D0)依次移出到Q7引脚。“OE”指的是74HC165并转串移位寄存器的输出使能端。当OE引脚为低电平时,输出有效,反之为高电平时,输出无效。在这种实现中,当OE引脚为低电平时,时钟输入被使能,数据可以从移位寄存器中移出到Q7引脚。
进一步的,在74HC165并转串移位寄存器中,D0引脚至D7引脚是数据输入引脚,也称为并行数据输入。这些引脚用于将键盘模块输入的并行数据锁存到移位寄存器中。当CP引脚每产生一个上升沿时,移位寄存器中的数据依次移出到Q7引脚。因此,D0引脚至D7引脚实际上代表了键盘模块中的八个输入端口。
在该发明中,D0引脚 到 D7引脚是移位寄存器中的8个数据位。当时钟 CP 的上升沿被触发时,这些数据位从高位(D7引脚)到低位(D0引脚)依次移出到 Q7引脚。具体而言,D0引脚是最低位(即最右边的位),D7引脚是最高位(即最左边的位)。这些数据位对应着按键扫描时输入到移位寄存器中的并行数据位。
进一步的,在74HC165移位锁存芯片中,Q7是其输出引脚,它输出的是移位寄存器中最高位(D7)的值。在这种键盘扫描方法中,Q7依次输出的值即为按键值。更具体的,在这种键盘扫描方法中,Q7是一个输出引脚,它是74HC165移位寄存器中输出的最后一位数据,也就是最低位(LSB),它的作用是将串行输出的数据从寄存器中输出到外部。具体工作原理如下:
当时钟信号CP每产生一个上升沿时,移位寄存器中的数据从高位(D7引脚)到低位(D0引脚)依次移位;移位寄存器中的数据在移位过程中,从Q7引脚中输出,最后一位数据就是最低位数据(LSB);输出到Q7引脚的数据可以通过外部连接到MCU的引脚上,用于识别按键值。因此,Q7的工作原理是将移位寄存器中的数据从最低位(LSB)输出到外部引脚,以供外部设备读取。
在上述例子中,每一个开关独立,然后作为并行输入,并行转串行之后输出串行的键值,非常节省主控IO资源电路上比较简单。
进一步的,将每个独立按键做为一个bit并行输入然后通过clk 串行的方式将所有bit读出,每个bit的0 和 1 就对应某个时刻每个按键对应的高低电平状态。
进一步的,对于诸如我们常见的104键的键盘,可以使用13片移位寄存器芯片,每个芯片对应8个通道,然后13片都串联起来就可以覆盖104个独立按键,而实际只需要4个GPIO就能控制104个按键,并且还可以扩展。
进一步的,运行的时候当并行负载(PL)输入为低电平时,74HC165是8位并行读取或串行输入移位寄存器,可在末级得到互补的串行输出(Q7和!Q7)
进一步的,当异步并行读取引脚为高时,数据将在每个时钟脉冲的上升沿从引脚串行进入寄存器并将现有数据右移一位( 以此类推),所以连续104个clk之后就能把104个按键的状态读入数组。
进一步的,一般市面上常见的移位寄存器clk速度都能十多M速度快的能到几十M,MCU可以SPI接口去读取,所以就能以非常快的速度对104个按键高低电平进行读取采样。
需要说明的是,在公开中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本申请中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
本说明书包括本文所描述的各种实施例的组合。对实施例的单独提及(例如“一个实施例”或“一些实施例”或“优选实施例”)不一定是指相同的实施例;然而,除非指示为是互斥的或者本领域技术人员很清楚是互斥的,否则这些实施例并不互斥。应当注意的是,除非上下文另外明确指示或者要求,否则在本说明书中以非排他性的意义使用“或者”一词。
在本申请提及的所有文献都被认为是整体性地包括在本申请的公开内容中,以便在必要时可以作为修改的依据。此外应理解,在阅读了本申请的内容之后,本领域技术人员可以对本申请作各种改动或修改,这些等价形式同样落于本申请所要求保护的范围。
Claims (8)
1.一种使用并转串移位寄存器进行键盘扫描的方法,包括以下步骤:
步骤A:将键盘的并行数据输入到至少一个并转串移位寄存器的并行数据输入端口;
步骤B:用时钟信号将并行数据从所述并行数据输入端口的高位到并行数据输入端口的低位依次移位,并通过串行输出端口输出。
2.如权利要求1所述的方法,其特征在于,所述并转串移位寄存器是74HC165并转串移位寄存器,所述步骤A中,将键盘的并行数据D0引脚至D7引脚输入到74HC165并转串移位寄存器里面。
3.如权利要求2所述的方法,其特征在于,所述步骤B中,从所述74HC165并转串移位寄存器的D7引脚到D0引脚依次移位。
4.如权利要求3所述的方法,其特征在于,所述步骤B中,通过所述74HC165并转串移位寄存器的Q7引脚输出。
5. 如权利要求4所述的方法,其特征在于,所述步骤A包含以下子步骤:
当至少一个按键被按下导致并行数据输入时,74HC165并转串移位寄存器的并行加载引脚被拉低,以将并行数据锁存到74HC165并转串移位寄存器中;以及
将所述并行加载引脚置为高电平,停止并行数据输入;其中
所述并行加载引脚是PL引脚。
6. 如权利要求4所述的方法,其特征在于,所述步骤B包含以下子步骤:
将74HC165并转串移位寄存器的输出使能引脚拉低,以允许时钟输入到所述74HC165并转串移位寄存器中,从而启动移位操作;以及
时钟每产生一个上升沿,74HC165并转串移位寄存器中的数据从高位的D7引脚到低位的D0引脚依次移出到Q7引脚,并通过Q7引脚输出,实现按键数据的连续输出。
7.如权利要求1所述的方法,其特征在于,所述至少一个并转串移位寄存器级联。
8.如权利要求7所述的方法,其特征在于,所述至少一个并转串移位寄存器级联为13片并转串移位寄存器级联,所述方法用于实现104键的键盘扫描。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310848964.0A CN116566398A (zh) | 2023-07-12 | 2023-07-12 | 键盘扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310848964.0A CN116566398A (zh) | 2023-07-12 | 2023-07-12 | 键盘扫描方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116566398A true CN116566398A (zh) | 2023-08-08 |
Family
ID=87493277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310848964.0A Pending CN116566398A (zh) | 2023-07-12 | 2023-07-12 | 键盘扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116566398A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134795A (ja) * | 1991-11-11 | 1993-06-01 | Fujitsu Ltd | キースキヤン回路 |
US20040083312A1 (en) * | 2002-10-25 | 2004-04-29 | Yu-Chun Peng | Apparatus for data input and key detection method thereof |
EP1498806A1 (en) * | 2003-07-17 | 2005-01-19 | High Tech Computer Corp. | Keypad device and operation method thereof |
CN102111159A (zh) * | 2010-12-27 | 2011-06-29 | 青岛文达通科技发展有限公司 | 键盘扫描电路及其扫描方法 |
CN105242781A (zh) * | 2015-09-25 | 2016-01-13 | 宋彦震 | 交互式手势扫描矩阵及其控制方法 |
CN105677055A (zh) * | 2016-01-05 | 2016-06-15 | 湖南工业大学 | 矩阵式键盘扫描电路及方法 |
CN115237262A (zh) * | 2022-08-01 | 2022-10-25 | 东莞匠玩文化创意有限公司 | 一种可替换模块化键盘电子设备 |
CN115276667A (zh) * | 2022-08-26 | 2022-11-01 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于移位寄存器的矩阵按键活动状态检测方法和系统 |
-
2023
- 2023-07-12 CN CN202310848964.0A patent/CN116566398A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134795A (ja) * | 1991-11-11 | 1993-06-01 | Fujitsu Ltd | キースキヤン回路 |
US20040083312A1 (en) * | 2002-10-25 | 2004-04-29 | Yu-Chun Peng | Apparatus for data input and key detection method thereof |
EP1498806A1 (en) * | 2003-07-17 | 2005-01-19 | High Tech Computer Corp. | Keypad device and operation method thereof |
CN102111159A (zh) * | 2010-12-27 | 2011-06-29 | 青岛文达通科技发展有限公司 | 键盘扫描电路及其扫描方法 |
CN105242781A (zh) * | 2015-09-25 | 2016-01-13 | 宋彦震 | 交互式手势扫描矩阵及其控制方法 |
CN105677055A (zh) * | 2016-01-05 | 2016-06-15 | 湖南工业大学 | 矩阵式键盘扫描电路及方法 |
CN115237262A (zh) * | 2022-08-01 | 2022-10-25 | 东莞匠玩文化创意有限公司 | 一种可替换模块化键盘电子设备 |
CN115276667A (zh) * | 2022-08-26 | 2022-11-01 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于移位寄存器的矩阵按键活动状态检测方法和系统 |
Non-Patent Citations (1)
Title |
---|
程智: "单片机串并数据转换应用指南", 《电子测试》, pages 205 - 207 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113032312B (zh) | 多片电路级联通信系统 | |
EP2791854A2 (en) | Counter operation in a state machine lattice | |
CN111224658A (zh) | 一种并行数据转串行数据的转换电路的设计方法 | |
CN109815619B (zh) | 一种将同步电路转化为异步电路的方法 | |
CN112448705B (zh) | 模式选择电路、集成电路及电子设备 | |
US8218388B2 (en) | Read circuit for semiconductor memory device and semiconductor memory device | |
EP0416513A2 (en) | Fifo memory device | |
CN116566398A (zh) | 键盘扫描方法 | |
TWI395116B (zh) | 筆記型電腦及其鍵盤控制器 | |
US6904116B2 (en) | Shift register | |
CN111130522B (zh) | 多通道红外探测器读出电路中选通开关时序产生电路 | |
Sharma et al. | Shift register design using two bit flip-flop | |
CN112910441B (zh) | 一种可异步置数的可逆双边沿jk触发器 | |
CN112865757B (zh) | 一种逻辑功能可配置的可逆单边沿触发器 | |
CN101738548A (zh) | 时脉检测电路与时脉供应装置 | |
US6735270B1 (en) | Asynchronous up-down counter and method for operating the same | |
CN112910442B (zh) | 一种逻辑功能可配置的可逆双边沿触发器 | |
CN114500274B (zh) | 物联网外设的即插即用转换电路及方法 | |
US8028107B2 (en) | Apparatus and method for serial to parallel in an I/O circuit | |
CN218299677U (zh) | 一种可任意扩展的接口简易的智能拨码开关 | |
CN112542187B (zh) | 一种高速读ID和芯片状态的电路和flash存储器 | |
CN112865756B (zh) | 一种可异步置数的可逆双边沿d触发器 | |
CN112910454B (zh) | 一种可异步置数的可逆单边沿jk触发器 | |
CN112910440B (zh) | 一种可异步置数的可逆双边沿t触发器 | |
CN113225065B (zh) | 一种可配置采样电路的实现装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20230808 |
|
WD01 | Invention patent application deemed withdrawn after publication |