矩阵键盘原理图

合集下载

4 4矩阵键盘工作原理

4 4矩阵键盘工作原理

4 4矩阵键盘工作原理
4×4矩阵键盘是一种常用的电子输入设备,主要用于计算机、手机等设备的输入操作。

键盘由一系列的按键组成,每个按键都有一个特定的功能,例如字母、数字、符号等。

通过按下不同的按键,用户可以将相应的字符或命令输入到设备中。

矩阵键盘的工作原理是通过利用矩阵的排列方式来实现按键的扫描和识别。

矩阵键盘通常由一个行列交叉排列的按键矩阵组成,其中行与列之间通过导线连接。

按键以一种矩阵的形式被布局,每个按键都分别与某一行和某一列相连。

在键盘的扫描过程中,微处理器会逐行地为每一行施加电压,然后检测列电路中是否有电流流过。

如果有电流通过,就表示该行和列的按键被按下,于是微处理器便能够确定所按下的按键。

这个过程会依次对所有的行进行扫描,以确定所有按键的状态。

矩阵键盘的优点是可以节省引脚数量,减少硬件成本,并且可以支持更多的按键布局。

同时,由于采用了行列排列方式,矩阵键盘在使用过程中也能够有效地防止按键误触发的问题。

总而言之,4×4矩阵键盘通过利用行列交叉排列的方式,通过对每一行进行扫描,并检测列电路中是否有电流流过来识别按键的状态。

这样的设计能够使得键盘具有较高的可靠性和灵敏度,适用于各种电子设备。

矩阵键盘的原理及应用

矩阵键盘的原理及应用

矩阵键盘的原理及应用1. 矩阵键盘的原理矩阵键盘是一种常见的输入设备,由多个按键组成,可以同时检测多个按键的状态。

它采用了行列交叉的按键排列方式,通过按键的组合来实现多个输入选项。

其原理主要包括以下几个方面:1.1. 电路结构矩阵键盘的电路结构也称为“行列式键盘”,主要由行线(Row)和列线(Column)组成。

行线和列线通过导线互相交叉连接形成一个矩阵,每个按键都对应矩阵中的一个交叉点。

按键按下时,会导通对应的行线和列线,从而实现按键的状态检测。

1.2. 矩阵扫描矩阵键盘的工作原理是通过矩阵扫描来检测按键状态。

扫描过程由控制器完成,控制器通过逐行扫描的方式检测按键状态。

具体流程如下:1.所有行线置为高电平,所有列线设置为输入模式。

2.逐行将某一行设置为低电平,同时读取列线上的状态。

3.根据读取到的列线状态,确定按下的按键。

4.更新按键的状态,并记录下来。

5.重复以上步骤,直到扫描结束。

1.3. 按键编码矩阵键盘检测到按键状态后,需要进行按键编码,将按键状态转化为数字或字符。

常见的按键编码方式有两种:•行列编码:将矩阵键盘的行和列对应关系转化为一个唯一的值,通常使用二进制编码来表示。

•状态编码:通过按键的状态(按下或释放)来表示,通常使用两个状态位来编码。

2. 矩阵键盘的应用矩阵键盘由于其结构简单、使用方便等特点,在多个领域都得到了广泛的应用。

以下是矩阵键盘的一些常见应用场景:2.1. 电子产品矩阵键盘在电子产品中被广泛应用,比如手机、电视遥控器、计算器等。

它可以提供多个输入选项,方便用户进行操作。

矩阵键盘的结构紧凑,可与其他电路板集成,节省空间,适用于小型电子产品。

2.2. 工业控制矩阵键盘在工业控制领域也有重要应用。

比如工控终端设备、仪表仪器等,可以利用矩阵键盘实现数据输入和操作控制。

由于矩阵键盘可以同时检测多个按键的状态,因此非常适合于工业环境中需要同时输入多个信号的场合。

2.3. 家用电器矩阵键盘在家用电器中也有广泛应用,如洗衣机、微波炉、冰箱等。

71 键盘工作原理

71 键盘工作原理
(1)键盘与显示器能同时工作; (2)扫描式键盘工作方式; (3)扫描式传感器工作方式; (4)用选通方式送入输入信号; (5)带有8字符的键盘先入先出存储器(FIFO); (6)触点回弹时两键封锁或N键巡回; (7)双排8字或单个16字的数字显示器; (8)可右入或左入的16字节显示器RAM; (9)工作方式可由CPU编程; (10)可编程扫描定时、键盘送入时有中断输出。
图7-10为采用BCD或十六进制——七段锁存译码驱 动器MC14495构成的多位数码管静态显示器与8031的接 口电路。
9
P1.0 P1.1 P1.2 P1.3
8031
P1.4 P1.5 P1.6 P1.7
AB C D LE
MC14 4 9 5
abcd efg
AB C D
LE
MC14 4 9 5
abcd efg
序流程图见图7-3(b)。见书上192页
3
7.2 LED(Light Emitting Diode)数码管 显示器的工作原理
7.2.1 LED的工作原理 常用的LED器2 件:七段数码管和“米3 ”字数码管,如下图所4 示。
它们是由若干只发光二极管做在一起构成的。
D
N
G
g f ab
10 9 8 7 6
R7,LOOP
CLR P1.7
RET
2、动态显示方式 在动态显示方式中,被显示的数据直接由P1口的低4位输出, P1.4~P1.6用来选择数码管,经译码后产生输入锁存选通信 号,由P1.7来控制多位显示器数据字符的改写和锁存。当 P1.7为高电平时,允许改写各位的显示字符;当P1.7输出低 电平时,0~7=1。各位显示字符不变。下面是将显示器缓冲 区78H~7FH中的BCD码送数码管显示器的程序。

4×5矩阵键盘驱动程序

4×5矩阵键盘驱动程序

4×5矩阵键盘驱动程序一、工作原理及接口电路4×5矩阵键盘有4条列线,5条行线共20个按键。

每个按键对应不同键值,键盘扫描采用外部中断扫描方式,本系统中键盘为无源结构,键盘工作时不依靠任何外部电源。

4×5矩阵键盘结构图如图2-10 所示。

图2-10 4×5矩阵键盘结构图1)4×5矩阵键盘结构及按键抖动消除当键盘中按键数量较多时为减少I/O口的占用,通常将按键排列成矩阵形式,如图2-12所示。

在矩阵式键盘中,每条行线和列线在交叉处不直接连通,而是通过一个机械弹性开关加以连接。

这样5条列线(R0~R4)和4条行线(L0~L3)就可以构成20个按键的矩阵键盘。

键盘采用了无源结构,工作是不依靠任何外部电源。

由于机械弹性开关的机械触点的弹性作用,一个按键开关在闭合时并不会马上稳定的闭合,在断开时也不会马上断开,因而机械开关在闭合及断开瞬间均伴有一连串的抖动,如图2-11所示。

图2-11 按键时的抖动抖动的时间长短由按键开关机械特性及按键的人为因素决定,一般为5ms~20ms。

按键抖动如果处理不当会引起一次按键被误处理多次,所以消除抖动是必要的。

消除抖动的有硬件处理和软件处理两种方法。

当按键较多一般采用软件消抖方式。

软件消抖原理为当检测出按键闭合后执行一个延时程序(产生5ms~20ms的延时),待前沿抖动消失后再次检测按键的状态,如果按键仍保持闭合状态则可确认为有键按下。

当检测到按键释放并执行延时程序,待后沿抖动消失后才转入按键的处理程序。

1)矩阵键盘的工作原理从4×5矩阵键盘的4条列线和5条行线分别引出9条端线接于单片机的9个I/O 口,由于键盘采用了无源结构所以行列线的电平由单片机I/O口的电平决定。

进入按键处理程序后先使4条列线全为低电平,5条行线全为高电平,为读行线状态做准备,没有按键时这种状态不会被改变。

当键盘上的某个按键闭合时,则该键所对应的行线和列线被短路。

矩阵式键盘实验报告

矩阵式键盘实验报告

矩阵键盘实验报告佘成刚学号2010302001班级08041202时间2016.01.20一、实验目的1.学习矩列式键盘工作原理;2.学习矩列式接口的程序设计。

二、实验设备普中HC6800ESV20开发板三、实验要求要现:用4*4矩阵键盘,用按键形式输入学号,在数码管上显示对应学号。

四、实验原理工作原理:矩阵式由行线和列线组成,按键位于行、列的交叉点上。

如图所示,一个4*4 的行、列结构可以构成一个由16 个按键的键盘。

很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的I/0 口。

(1)矩阵式键盘工作原理按键设置在行、列交节点上,行、列分别连接到按键开关的两端。

行线通过下拉电阻接到GND 上。

平时无按键动作时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。

列线电平如果为低,行线电平为高,列线电平如果为高,则行线电平则为低。

这一点是识别矩阵式键盘是否被按下的关键所在。

因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。

(2)按键识别方法下面以3 号键被按下为例,来说明此键是如何被识别出来的。

前已述及,键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线电平在无键按下时处于高电平状态。

如果让所有列线处于高电平那么键按下与否不会引起行线电平的状态变化,始终是高电平,所以,让所有列线处于高电平是没法识别出按键的。

现在反过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为低电平,根据此变化,便能判定该行一定有键被按下。

但我们还不能确定是这一行的哪个键被按下。

所以,为了进一步判定到底是哪—列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平。

当第1 列为低电平,其余各列为高电平时,因为是键3 被按下,所以第1 行仍处于高电平状态;当第2 列为低电平,其余各列为高电平时,同样我们会发现第1 行仍处于高电平状态,直到让第4 列为低电平,其余各列为高电平时,因为是3 号键被按下,所以第1 行的高电平转换到第4 列所处的低电平,据此,我们确信第1 行第4 列交叉点处的按键即3 号键被按下。

矩阵键盘

矩阵键盘

FPGA学习心得——矩阵键盘1、行列式键盘概述为了减少键盘与单片机接口时所占用I/O口线的数目,在键数较多时,通常都将键盘排列成行列矩阵式,行列式键盘又叫矩阵式键盘。

用带有I/O口的线组成行列结构,按键设置在行列的交点上。

例如用2*2的行列结构可以构成4个键的键盘,4*4的行列结构可以构成有16个键的键盘。

这样,当按键数量平方增长时,I/O口线只是线性增长,这样就可以节省I/O口线。

2、行列式键盘原理教研室已有薄膜矩阵键盘,其实物图如图所示。

其电路原理图如下图所示。

由行列式键盘的原理可以知道,要正确地完成按键输入工作必须有按键扫描电路产生keydrv3~keydrv0信号。

同时还必须有按键译码电路从keydrv3~keydrv0信号和keyin3~keyin0信号中译码出按键的键值。

此外,一般还需要一个按键发生标志信号用于和其他模块接口,通知其它模块键盘上有按键动作发生,并可以从键盘模块中读取按键键值。

由于各个模块需要的时钟频率是不一样的,因此时钟产生模块就是用于产生各个模块需要的时钟信号。

因此得到键盘接口电路的结构如图2所示。

图2 键盘接口电路结构图行列式键盘电路的FPGA实现主要解决三个问题,一是如何检测是否有按键按下并防止采集到干扰信号;二是在按键闭合时如何防止抖动;三是如何判断为哪一个按键位动作,并对其进行译码。

因此,为了解决这些问题,程序中使用不同的进程分别实现键盘扫描信号的产生、键盘去抖以及键盘的译码。

3、源程序[plain]view plaincopy1.----------------------------------------------------------------------------------2.-- Company:3.-- Engineer:4.--5.-- Create Date: 08:46:57 07/31/20126.-- Design Name:7.-- Module Name: MatrixKeyboard - Behavioral8.-- Project Name:9.-- Target Devices:10.-- Tool versions:11.-- Description:12.--13.-- Dependencies:14.--15.-- Revision:16.-- Revision 0.01 - File Created17.-- Additional Comments:18.--19.----------------------------------------------------------------------------------20.library IEEE;e IEEE.STD_LOGIC_1164.ALL;e IEEE.STD_LOGIC_ARITH.ALL;e IEEE.STD_LOGIC_UNSIGNED.ALL;24.25.---- Uncomment the following library declaration if instantiating26.---- any Xilinx primitives in this code.27.--library UNISIM;28.--use UNISIM.VComponents.all;29.30.entity MatrixKeyboard is31. Port ( Clk : in STD_LOGIC;32. Reset : in STD_LOGIC;33. KeyIn : in STD_LOGIC_VECTOR (3 downto 0);34. KeyScan : out STD_LOGIC_VECTOR (3 downto 0);35. LED : out STD_LOGIC_VECTOR (3 downto 0)36. );37.end MatrixKeyboard;38.39.architecture Behavioral of MatrixKeyboard is40.41.Signal Clk_scan : STD_LOGIC := '0';42.Signal Clk_5ms : STD_LOGIC := '0';43.Signal Clk_2ms : STD_LOGIC := '0';44.Signal Key_Scan : STD_LOGIC_VECTOR(3 downto 0);45.Signal Key_Decode : STD_LOGIC_VECTOR(7 downto 0);46.47.Type State_Key is(st_key1,st_key2,st_key3,st_key4);48.Signal Current_Key : State_Key := st_key1;49.50.Type State_Scan is(st_scan1,st_scan2,st_scan3,st_scan4);51.Signal Current_Scan : State_Scan := st_scan1;52.53.begin54.55. Proc_Clk_5ms : process(Clk)56. variable cnt_clk : integer range 0 to 250000 := 0;57. begin58. if(rising_edge(Clk)) then59. if(cnt_clk < 125000) then60. cnt_clk := cnt_clk + 1;61. Clk_scan <= '0';62. elsif(cnt_clk < 249999) then63. cnt_clk := cnt_clk + 1;64. Clk_scan <= '1';65. else66. cnt_clk := 0;67. end if;68. Clk_5ms <= Clk_scan;69. end if;70. end process Proc_Clk_5ms;71.72. Proc_Clk_2ms : process(Clk)73. variable cnt_clk : integer range 0 to 100000 := 0;74. begin75. if(rising_edge(Clk)) then76. if(cnt_clk < 50000) then77. cnt_clk := cnt_clk + 1;78. Clk_2ms <= '0';79. elsif(cnt_clk < 99999) then80. cnt_clk := cnt_clk + 1;81. Clk_2ms <= '1';82. else83. cnt_clk := 0;84. end if;85. end if;86. end process Proc_Clk_2ms;87.88.89. Proc_Scan:process(Clk_5ms)90. begin91. if(rising_edge(Clk_5ms)) then92. case Current_Scan is93. when st_scan1 =>94. Key_Scan <= "1110";95. Current_Scan <= st_scan2;96. when st_scan2 =>97. Key_Scan <= "1101";98. Current_Scan <= st_scan3;99. when st_scan3 =>100. Key_Scan <= "1011";101. Current_Scan <= st_scan4;102. when st_scan4 =>103. Key_Scan <= "0111";104. Current_Scan <= st_scan1;105. end case;106. end if;107.108. end process Proc_Scan;109.110. KeyScan <= Key_Scan;111. Key_Decode <= Key_Scan & Keyin;112.113. Proc_Keyboard:process(Clk_2ms,Reset)114. variable cnt_btn : integer range 0 to 50000 := 0;115. begin116. if(Reset = '1') then117. LED <= x"1";118. Current_Key <= st_key1;119. elsif(falling_edge(Clk_2ms)) then120. case Current_Key is121. when st_key1 => --Check whether any keys are p ressed122. if((Keyin and "1111") = "1111") then123. Current_Key <= st_key1;124. else125. Current_Key <= st_key2;126. end if;127. when st_key2 => --keys debouncing128. if((Keyin and "1111") = "1111") then129. Current_Key <= st_key1;130. else131. case Key_Decode is132. when "11101110" => LED <= "0001";133. when "11101101" => LED <= "0010";134. when "11101011" => LED <= "0011";135. when "11100111" => LED <= "1010";136. when "11011110" => LED <= "0100";137. when "11011101" => LED <= "0101";138. when "11011011" => LED <= "0110";139. when "11010111" => LED <= "1011";140. when "10111110" => LED <= "0111";141. when "10111101" => LED <= "1000";142. when "10111011" => LED <= "1001";143. when "10110111" => LED <= "1100";144. when "01111110" => LED <= "1110";145. when "01111101" => LED <= "0000";146. when "01111011" => LED <= "1111";147. when "01110111" => LED <= "1101";when others => null;148. end case;149. end if;150. Current_Key <= st_key3;151. when st_key3 => --Check whether the pressed keys a re released152. if((Keyin and "1111") /= "1111") then153. Current_Key <= st_key3;154. else155. Current_Key <= st_key4;156. end if;157. when st_key4 => --keys debouncing158. if((Keyin and "1111") /= "1111") then159. Current_Key <= st_key3;160. else161. LED <= x"0";162. Current_Key <= st_key1;163. end if;164. end case;165. end if;166. end process Proc_Keyboard;167.168.end Behavioral;169.薄膜键盘矩阵键盘4x4 ,单片机开发配件,机械手按键。

矩阵键盘电路

矩阵键盘电路
矩阵键盘电路
知识点目录
1
矩阵键盘电路结构与工作原理
矩阵键盘的编码
矩阵式键盘按键识别
键盘的工作方式
1.矩阵键盘电路结构与工作原理
2
矩阵式键盘又称为行列式键盘。用I/O接口线组成行和列结构,键位设置在行和 列的交叉点上。如图1所示,8个I/O口实现了16个按键。
图1 矩阵键盘电路结构
1.矩阵键盘电路结构与工作原理
3
工作原理:以第一组键盘为例。设置KeyOut1输出一个低电平,相当于KeyOut1接 地,电路相当于4个独立按键电路,此时KeyIn1-KeyIn4四个输入端为高电平;当 键盘K1按下时,由于电路导通,此时KeyIn1变为低电平。同理,哪个按键按下, 相对应的输入端为低电平,单片机通过读输入端的状态,判断是否有按键按下。 对应图1四组按键,当KeyOut1输出为低电平时,KeyOut2-KeyOut4输出必须为高 电平,才能避免相互间的干扰。
2.矩阵键盘的编码
பைடு நூலகம்
4
对于矩阵式键盘,按键的位置由行号 和列号唯一确定,因此可分别对行号 和列号进行二进制编码,然后将两值 合成一个字节,高4位是行号,低4位 是列号。
3.矩阵式键盘按键识别
5
扫描法:
1) 判断有无键按下。
2) 如果有键按下,识别是哪一个键按下,键盘扫描取得闭合键的行、列值。
3) 用计算法或查表法得到键值。
4) 判断闭合键是否释放,如没释放则继续等待。
5) 将闭合键键号保存,同时转去执行该闭合键的功能。
4.键盘的工作方式
6
(1)编程扫描方式
利用CPU在完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入 的要求。
(2)定时扫描工作方式

图解键盘的内部结构与原理

图解键盘的内部结构与原理

键盘构造及工作原理PS/2设备履行一种双向同步串行协议。

换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。

设备可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自设备的通信,只需把时钟线电平拉低即可。

键盘的内部结构主要包括控制电路板、按键、底板和面板等。

电路板是整个键盘的控制核心,位于键盘的内部,主要担任按键扫描识别、编码和传输接口工作;它将各个键所表示的数字或字母转换成计算机可以识别的信号,是用户和计算机之间主要的沟通者之一。

键盘主要由键开关矩阵、单片机和译码器三大部分组成。

键开关矩阵即键盘按键由一组排列成矩阵方式的按键开关组成,所输入的信号由按键所在的位置决定。

单片机即键盘内部采用的Intel8048单片机微处理器,这是一个40引脚的芯片,内部集成了8位CPU、1024×8位的ROM、64×8位的RAM以及8位的定时器/计数器等。

译码器即信号编码转译装置,把键盘的字符信号通过编码翻译转换成相应的二进制码。

由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由键盘内部的单片机通过译码器来实现的。

根据键盘向主机送入的二进制代码类型,可把键盘分为编码键盘和非编码键盘两种。

IBM PC机的键盘属于非编码键盘,其特点是不直接提供所按键的编码信息,而是用较为简单的硬件和一套专用程序来识别所按键的位置,并提供与所按键相对应的中间代码,然后再把中间代码转换成要对应的编码。

这样,非编码键盘就为系统软件在定义键盘的某些操作功能上提供了更大的灵活性。

计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。

所谓行列扫描法是指,把键盘按键排列成n行×m列的n*m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,点阵上的键一旦被按动,该键所在的行列点阵信号就被认为已接通。

按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其行、列分别进行扫描,以查询和确认是否有键按动。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档