按键与键盘输入接口
键盘使用说明完整版

键盘使用说明完整版一、键盘简介键盘是一种输入设备,用于输入文字、数字和执行命令。
它由一组按键组成,每个按键都有一个特定的功能。
二、键盘连接方法键盘可以通过有线或无线方式连接到计算机。
有线键盘使用USB接口或PS/2接口进行连接,只需将键盘插头插入计算机相应的接口即可;无线键盘则需要进行配对操作,通常会有一个小型接收器与计算机连接。
三、键盘布局与按键功能1.基本键盘布局键盘主要由字母键区、数字键区、功能键区、控制键区和其他特殊键组成。
字母键区位于键盘的最上方,用于输入字母和符号。
数字键区位于字母键区的右侧,用于输入数字。
功能键区位于键盘的顶部,包含一组特殊功能键,例如F1至F12、控制键区位于键盘的底部,包含Ctrl、Alt 和Shift等键。
2.特殊键(1)Ctrl键:通常用于配合其他键使用,例如Ctrl+C复制,Ctrl+V粘贴。
(2)Alt键:用于切换窗口或执行特殊命令。
(3)Shift键:用于输入大写字母和符号的上档字母。
(4)Caps Lock键:打开大写锁定功能,使得所有字母都输入大写字母。
(5)Tab键:用于在输入框或表格中快速切换。
(6)Enter键:输入命令确认,或在输入框中换行。
(7)Backspace键:删除光标前的一个字符。
(8)Delete键:删除光标后的一个字符。
(9)箭头键:用于在文档中移动光标。
(10)Page Up键和Page Down键:用于在文档中快速翻页。
(11)Home键和End键:用于快速移动光标到行首和行尾。
(12)Esc键:取消当前操作。
(13)Print Screen键:截取整个屏幕。
(14)Scroll Lock键:使得滚动条可用。
(15)Pause/Break键:暂停当前运行的程序。
四、键盘使用技巧1. 大小写切换:使用Shift键切换大小写,或使用Caps Lock键锁定大写。
2. 快速复制粘贴:使用Ctrl+C复制,Ctrl+V粘贴。
3. 撤销操作:使用Ctrl+Z撤销上一步操作。
键盘电路

键盘电路在单片机应用系统中,除了复位按键外,可能还需要其他按键,如键盘按键,以便控制系统的运行状态或向系统输入运行参数。
键盘电路一般由键盘接口电路、按键(由控制系统运行状态的功能键和向系统输入数据的数字键组合)以及键盘扫描程序等部分组成。
1、按键结构及其电压波形在单片机控制系统中广泛使用的机械键盘的工作原理是:按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,按键两个引脚连通,接触电阻大小与按键触点面积及材料有关,一般在数十欧姆以下;松手后,复位弹簧将动片弹开,使动片触点与静片触点脱离接触,两引脚返回断开状态。
可见,机械键盘或按扭的基本工作原理就是利用动片触点和静片触点的接触和断开来实现键盘或按钮两引脚的通、断。
在如图所示的键盘电路中,按键没有被按下时,P1口内部上拉电阻将P1.3-P1.0引脚置为高电平,而当S3-S0之一被按下时,相应按键两引脚连通,P1口对应引脚接地。
在理想状态下,按键引脚电压变化如图6-29(a)所示。
但实际上,在按键被按下或释放的瞬间,由于机械触点弹跳现象,实际按键电压波形如图6-29(b)所示,即机械按键在按下和释放瞬间存在抖动现象。
抖动时间的长短与按键的机械特性有关,一般在5~10ms之间,而按键稳定闭合期的长短与按键时间有关,从数百毫秒到数秒不等。
为了保证按键由按下到松开之间仅视为一次或数次输入(对于具有重复输入功能的按键),必须在按键或软件上采取去抖动措施,避免一次按键输入一串数码。
硬件上,可利用单稳态电路或RS触发器消除按键抖动现象,但在单片机应用系统中最常采用的方法是利用软件延迟方式消除按键抖动问题,这样可以不增加硬件成本。
因此,在单片机系统中按键识别过程是:通过随机扫描、定时中断扫描或中断监控方式发现按键被按下后,延时10~20ms(因为机械按键由按下到稳定闭合的时间为5~10ms)再去判断按键是否处于按下状态,并确定是哪个按键被按下。
对于每按一次仅视为一次输入的按键设定来说,在按键稳定闭合后对按键进行扫描,读出按键的编码(或称为键号),执行相应操作;对于具有重复输入功能的按键设定来说,在按键稳定闭合期内,每个特定时间,如250ms或500ms 对按键进行检测,当发现按键仍处于按下状态时,就输入该键,直到按键被释放。
单片机的输入输出设备接口详述

Dispaly(key); } }
} void delay10ms(unsigned char time)
{ unsigned char i; while(time--)
{ for(i=0;i<120;i++) ; } } void Dispaly(unsigned char k) { P0=table[k];
void main() { LABA=0; while(1) { KeyScan(); } } void KeyScan() { P0=0xFF; P0_0=0; temp=P0; temp&=0xF0; if(temp !=0xF0) { buzzer(); delay10ms(20);
temp=P0; key=13;break;
图12-8码拨盘开关
12.1.7 旋转拨码开关 旋转拨码开关常用于示波器手持电台等电子仪器设备
的输入,既具有数字输入的特点,又有电位器模拟操作方 便的优点。通过旋转拨码调节输入,旋转拨码开关是由 装在同一轴上的两个机械开关组成,转动转轴开关通断 可以完成输入,顺逆转动时两个开关的通断顺序不同, 可区分出增加还是减小输入量。旋转拨码开关的原理及 应用见图12-9。
BCD码盘拨盘后面有5个接点,其中A为输入控制线,另外4 根是BCD码输出信号。拨盘拨到不同位置时,输入控制线A分别 与4根BCD码输出线中的某根或几根接通,且拨盘的BCD码输出 线的状态正好是拨盘指示的十进制数码的8421码。
拨码开关可以直接接到口线上,由口线直接读入,但这样 需要较多的输入口线,可以采用动态的输入方法,实现拨码开 关与口线的连接,此方法与动态数码管相似。
temp&=0xF0; if(temp !=0xF0) {
4.3 单片机键盘接口电路设计

//函数功能:键盘扫描 //检测到有键按下 //延时10ms再去检测 //按键k1被按下 //按键k2被按下 //按键k3被按下 //按键k4被按下
▲▲▲
独立式键盘接口设计案例
void forward(void) { P3=0xfe; led_delay(); P3=0xfd; led_delay(); P3=0xfb; led_delay(); P3=0xf7; led_delay(); P3=0xef; led_delay(); P3=0xdf; led_delay(); P3=0xbf; led_delay(); P3=0x7f; led_delay(); }
break;
}
}
}
▲▲▲
独立式键盘接口设计案例
void key_scan(void) { P1=0xff; if((P1&0x0f )!=0x0f ) { delay10ms(); if(S1==0) keyval=1; if(S2==0) keyval=2; if(S3==0) keyval=3; if(S4==0) keyval=4; }
//处理按下的k1键,“……”为处理程序 //跳出switch语句 //处理按下的k2键 //跳出switch语句 //处理按下的k3键 //跳出switch语句 //处理按下的k4键 //跳出switch语句 //处理按下的k5键 //跳出switch语句
独立式键盘接口设计案例
1.独立式键盘的查询工作方式
{
case 1:forward(); //键值为1,调用正向流水点亮函数
break;
case 2:backward(); //键值为2,调用反向流水点亮函数
break;
case 3:Alter(); //键值为3,调用高、低4位交替点亮函数
80C51键盘与显示接口

§10.1 80C51键盘接口及应用
一、80C51键盘接口概述 1 常用键盘的分类 1、常用键盘的分类
键盘常分为编码键盘和非编码键盘。 编码键盘: 编码键盘 键盘上闭合键的识别由专用硬件实现。 键盘上闭合键的识别由专用硬件实现 编码键盘是键盘电路在某个键被按下后,能提供 该键所代表的信息代 (编 ) 并以并行或串行信号 该键所代表的信息代码(编码),并以并行或串行信号 传输给CPU。 非编码键盘:只提供按键高、低电平的输入, 键 盘上闭合键的识别由软件实现。
例10 1电原理图 例10.1电原理图
0 1 2 3
4 5 6 7
8 9 10 11
开始
程序框图如 右图所示:
调用键盘检测子程序 序 N 有键闭合否? Y 调用子程序延时10ms 调用键盘检测子程序 有键闭合否? Y 调用键盘扫描子程序 得到按键编号 按键释放否? Y 返回按键代表的符号 返 键代表的符号 结束 N N
INT0
&
中断方式检测按键
4、非编码键盘种类
(1)独立式按键结构 独立式按键接口电路配置灵活,软件接口简单,但 每个按键占用一根I/O口线,在按键较多时,I/O口 线浪费较大。在按键数量不多时才采用这种按键电 路。
4、非编码键盘种类
(2)行列式按键结构 行列式键盘又叫矩阵式键盘。键位设置在行与列的 行列式键盘又叫矩阵式键盘 键位设置在行与列的 交点上。 行列式键盘的连接方法有多种,可直接连接于单片 机的I/O口线(用I/O口线组成行、列结构);可利用 扩 扩展的并行I/O口连接;也可利用可编程的键盘、显 并行 接 编程 示接口芯片(如8279)进行连接等等。
9 接口技术II键盘接口

P.168
b. 线反转法
采用线反转法的键盘行线、 列线端口各自应当可以在输 入与输出方式间切换! 如图:高四位与低四位均可 独立改变其输入或输出方式
实验板4×4键盘 实验板 × 键盘 连接82C55的端口线 连接 的端口线 PC3 PC2 PC1 PC0 PC4 PC5 PC6 PC7
图10-10线反转法原理图 10-10线反转法原理图 第1步:列线输出为全‘0’ ,随后输入行线电平如有‘0’,则 线输出为全‘ 随后输入行线电平如有‘ , 所在的行就是闭合的按键所在行; 则无键闭合。 ‘0’所在的行就是闭合的按键所在行;无‘0’则无键闭合。 所在的行就是闭合的按键所在行 则无键闭合 随后输入列线电平如有‘ , 第2步:行线输出为全‘0’ ,随后输入列线电平如有‘0’,则 线输出为全‘ 则无键闭合。 所在的列就是闭合的按键所在列; 则无键闭合 ‘0’所在的列就是闭合的按键所在列;无‘0’则无键闭合。 所在的列就是闭合的按键所在列 结合上述两步,可确定按键所在行和列。 结合上述两步,可确定按键所在行和列。
键盘扫描子程序---3 TEST2011.ASM 键盘扫描子程序--3 KN:MOV MOV MUL MOV JMP A,61H B,#05H AB DPTR,#K0 DPTR,#K0 @A+DPTR ;根据查表获得的键号00H~0FH之一转向相应处理程序 根据查表获得的键号00H~0FH之一转向相应处理程序 00H ;转移表中每个键号处理程序占 转移表中每个键号处理程序占5 ;转移表中每个键号处理程序占5个地址单元
键盘扫描子程序---1 TEST2011.ASM 键盘扫描子程序--1 KEY:MOV 键盘扫描子程序(反转法) KEY:MOV A,#81H ;键盘扫描子程序(反转法) MOV DPTR,#0FEFFH ;C口先初始化为高 位输出驱行线、 口先初始化为高4 MOVX @DPTR,A ;C口先初始化为高4位输出驱行线、低4位输入列线 MOV DPTR,#0FEFEH 键盘行线 行线( 输出驱动全 驱动全'0' MOV A,#00H ;键盘行线(高4位)输出驱动全'0' MOVX @DPTR,A A,@DPTR 输入键盘列线电平 列线电平( 60H单元 MOVX A,@DPTR ;输入键盘列线电平(低4位)存60H单元 MOV 60H,A ;C口改初始化为高 位输入行线、 口改初始化为高4 MOV A,#88H ;C口改初始化为高4位输入行线、低4位输出驱列线 MOV DPTR,#0FEFFH MOVX @DPTR,A MOV DPTR,#0FEFEH 键盘列线 列线( 输出驱动全 驱动全'0' MOV A,#00H ;键盘列线(低4位)输出驱动全'0' MOVX @DPTR,A 行线电平( 输入键盘行线电平 MOVX A,@DPTR ;输入键盘行线电平(高4位)在A中 ANL 60H,#0FH ;列线电平值保留所在的低4位 列线电平值保留所在的低4 行线电平值保留所在的高4 ANL A,#0F0H ;行线电平值保留所在的高4位 ;两次输入的列线电平值 行线电平值组合成 两次输入的列线电平值、 合成8 ORL 60H,A ;两次输入的列线电平值、行线电平值组合成8位行列码
圆口键盘线的定义和作用

圆口键盘线的定义和作用
圆口键盘线是指计算机键盘连接设备(如计算机主机、笔记本电脑、智能手机等)时所使用的接口线,其连接口的形状为圆形。
这种连接线通常是USB(Universal Serial Bus)接口线或PS/2(Personal System/2)接口线的一种。
一、作用:
1.传输数据:圆口键盘线是用来传输键盘和计算机或其他设备之间的数据信号的。
当用户按下键盘上的按键时,信号通过圆口键盘线传递给计算机或其他设备,从而实现输入操作。
2.电力供应:圆口键盘线还可以提供电力供应功能,以满足键盘或其他设备的电力需求。
USB接口线通常能够为连接设备提供电力供应,减少使用额外电源适配器的需求。
3.兼容性:圆口键盘线的使用可以提供更广泛的设备兼容性。
USB接口线已成为计算机和其他电子设备中最常见的接口之一,使键盘能够与很多设备连接并正常工作。
4.稳定连接:圆口键盘线插头与设备接口之间的圆形设计可以提供更稳定的连接,减少插拔时的松动或断开的可能性,从而确保键盘数据的正常传输。
总的来说,圆口键盘线是连接计算机键盘和其他设备的一种接口线,通过传输数据和提供电力供应,实现键盘和设备之间的稳定连接和正常工作。
第十五讲 按键与键盘接口设计

Differential : Block
-- Differential
Signal D1,D0 : STD_LOGIC;
BEGIN
Process (CP)
Begin
IF CP'EVENT AND CP='1' THEN
D1 <= D0; D0 <= DLY;
-- Two State Delay
END IF;
ARCHITECTURE a OF Debunce IS
SIGNAL S_clk , DLY, NDLY, DIFF : STD_LOGIC;
-- Binary
BEGIN
Free产生扫描信号 Signal Q : STD_LOGIC_VECTOR(14 DOWNTO 0);
PROCESS (Clk) Begin
IF CLK'Event AND CLK='1' then Q <= Q+1;
--CNT <= Q(18 DOWNTO 17) ;-- about 15Hz 61/4=15 CNT <= Q(4 DOWNTO 3) ; -- ***为方便仿真
END IF; END PROCESS;
END Block Free_Counter;
Debunce : Block
-- Debounce
SIGNAL D0, D1, S, R : STD_LOGIC;
Begin
Process (CP)
Begin
IF CP'EVENT AND CP='1' THEN
IF S_clk = '1' THEN
D1 <= D0; D0 <= KEY;-- Two Stage Delay
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
独立按键输入接口
设置I/O口为输入方式,使能内部上拉电阻。当按键 处于断开状态时,I/O口引脚为高电平。当有按键按 下时,相应引脚由于接地,变成低电平。检测引脚 的电平可以判断按键是否按下。
实际的按键并不是理论上的简单,要考虑按键消抖的问题。由于按键开关为 机械式触点开关,利用机械触点接触和分离实现电路的通断。由于机械触点 弹性作用,加上按键时力度方向等不同,按键开关从按下到接触稳定需要经 过数毫秒的弹跳抖动,即在按下的几十毫秒时间理会连续产生多个脉冲;而 释放按键时,电路也不会一下断开,同样会产生抖动,按键的稳定闭合时间 为0.3~0.5秒。为了确保MCU对于按键动作准确确认,需要进行消抖处理。消 抖方式分为硬件(R-S触发器)和软件方式(第一次检测到按键后,延时 10ms,再次检测按键是否按下,只有两侧都检测到时,才确认按键按下)。
矩阵键盘输入接口
独立式按键就是按键相互独立,每个按键占用一个I/O口,彼此没有影 响。其电路简单配置灵活,适用于系统需要较少的按键场合。在需要 较多按键的情况下,往往采用矩阵式键盘接口。
一个4×4的矩阵键盘结构,可以构成16个按键,只需要占用8个I/O口, 节省很多引脚,但连接上比独立式按键复杂,而且按键识别方法也比 独立式复杂。
状态机分析
对于电子技术的读者,最先接触和使用到状态机是在数字逻辑电 路中,状态机的思想和分析方法被应用于时序逻辑电路设计。有限状 态机(FSM)是实时系统设计中的一种数学模型,是一种重要的、易 于建立的、应用比较广泛的、以描述控制特性为主的建模方法,它可 以应用于从系统分析到设计(硬件、软件)的所有阶段。采用状态机 对一个系统进行分析是一项非常细致的工作,它实际上是建立在对真 实系统有了全面、深入地了解和认识基础之上,进行综合和抽象化的 模型建立的过程。通常两种方法来建立有限状态机,一种状态转移图, 另一种状态转移表。总的说来,有限状态机的优点在于简单、易用、 状态间的关系能够直观看到;当应用在实时系统中时,便于对复杂系 统进行分析。 把单个按键看成是一个状态机,首先需要对一次按键操作和确认 的实际过程进行分析,然后根据实际情况和系统需要确定按键在整个 过程的状态和每个状态的输入信号和输出信号,以及状态之间的转换 关系,最后还要考虑时间序列的间隔。
基于状态机分析的按键设计2
(消抖) 有按键状态 无按键状态
(干扰)
计时 状态
计时 状态
#define key_input PIND.7//按键输入口 #define key_state_0 0 #define key_state_1 1 #define key_state_2 2 #define key_state_3 3 unsigned char read_key(void) { static unsigned char key_state=0,key_time=0; unsigned char key_press,key_return=0; key_press=key_input;//读取按键I/O电平 switch(key_state) { case key_state_0://按键初始状态 if(!key_press) key_state=key_state_1;//按键被按下,状态装换 到按键确认状态 break; case key_state_1://按键确认状态 if(!key_press) { key_state=key_state_2;//按键仍按下,状态转换 到计时1 key_time=0;//清零按键时间计数器 } else key_state=key_state_0;//按键在抖动,转换到按 键初始状态 break;
“ Impossible is nothing ”
按键与键盘输入接口
张晓冬
通用I/O数字பைடு நூலகம்入接口设计
假如把一个单片机嵌入式系统比作一个人的话,那么单片 机就相当于人的大脑,而输入接口就好似人的感官系统, 用于获取外部世界的变化、状态等各种信息,并把这些信 息输送进入人的大脑。嵌入式系统的人机交互通道、前向 通道、数据交换和通信通道的各种功能都是由单片机的输 入接口及相应的外围接口电路实现的。 对于一个电子系统来讲,外部现实世界各种类型和形态的 变化与状态都需要一个变换器将其转换成电信号,而且这 个电信号有时还需要经过处理,使其成为能被MCU容易 识别和处理的数学逻辑信号,这是因为单片机常用的输入 接口都是数字接口(A/D接口和模拟比较器除外)。上述 所谓的“变换器”和“转换处理”,从专业角度讲就是 “传感器技术”和“信号调理电路”。
I/O数字输入信号分类
模拟信号和数字信号 传感器将某个外部参数(温度、速度)的变化转换为电信号(电压、电流)。 如果传感器输出电信号的幅度变化特征代表了外部参数的变化,例如电压的升 高表示温度的升高,那么这个传感器就是模拟传感器,它产生模拟信号。由于 MCU是数字化的,因此信号需要通过A/D转换才能被接受,A/D转换是嵌入式 系统最重要的外围接口电路之一,用途广泛。 电压信号和电流信号 单片机IO接口的逻辑电平是数字逻辑电平,即以电压的高和低作为逻辑“1”和 “0”,因此进入单片机的信号要求是电压信号。一些传感器输出的是电流信号, 那么进入单片机之前需要将电流信号放大,并转换成电压信号调理电路。 单次信号和连续信号 间隔时间较长单次产生的脉冲信号和较长时间保持电平不变的信号称为单次信 号。常见的单次信号一般是由按键、开关等认为动作或机械器件产生的信号。 而连续信号一般指连续的脉冲信号,如计数脉冲信号、数据通信传输信号等。 单次信号要注意信号的纯净和抗干扰,如消除按键的抖动和外部的干扰等。连 续信号往往在数据交换和通信信道中使用,其特点是对时间定位、捕捉、时序 的要求较高,通常要对信号的边沿进行检测或触发。AVR单片机提供了丰富的 接口,如外部中断,定时计时器USART等,可以方便的对连续脉冲信号进行 检测、计数以及支持多种协议的数据交换和通信。
设置PD0~PD3为输出方式,输出低电平; PD4~PD7为输入方式且上拉电阻有效为高电平。将四根 行线PD0~PD3置为低电平输出,然后读取PD4~PD7四根列线中有无低电平出现。如果有低电平出现, 则说明这一行线中有按键按下,并记录列线中PD4~PD7四个I/O口数据;如果读取都是高电平,则表 示无按键按下。 设置PD4~PD7为输出方式,输出低电平; PD0~PD3为输入方式且上拉电阻有效为高电平。将四根 列线PD4~PD7置为低电平输出,然后读取PD0~PD3四根行线中有无低电平出现。如果有低电平出现, 则说明这一行线中有按键按下,并记录列线中PD0~PD3四个I/O口数据。 考虑按键消抖的问题,将两次I/O口数据对应累加,形成一个完整的8位数据,根据行列线中低电平的 交叉点就是确定的按键点。
case key_state_2://按键释放状态 if(key_press) { key_state=key_state_0;//按键已释放,转换到按 键初始状态 key_return=1;//输出为“1” } elseif(++key_time>=100)//按键时间计数 { key_state=key_state_3;//按下时间>1S,状态转换 到计时2 key_time=0;//清零计时器 key_return=2;//输出“2” } break; case key_state_3: if(key_press) key_state=key_state_0;//按键已释放,转换到按 键初始状态 else { if(++key_time>=50)//按键时间计数 { key_time=0;//按键时间>0.5S,清零计数器 key_return=2;//输出“2” } } break; } return key_return;//返回按键状态返回值 }
基于状态机分析的按键设计1
(消抖)
有按键状态
无按键状态
(干扰)
(确认)
等释放状态
#define key_input PIND.7//按键输入口 #define key_state_0 0 #define key_state_1 1 #define key_state_2 2 unsigned char read_key(void) { static unsigned char key_state=0; unsigned char key_press,key_return=0; key_press=key_input;//读取按键I/O电平 switch(key_state) { case key_state_0://按键初始状态 if(!key_press) key_state=key_state_1;//按键被按下,状态装换到按键确认状态 break; case key_state_1://按键确认状态 if(!key_press) { key_return=1;//按键经过延时后仍按下,按键确认输出为“1” key_state=key_state_2;//状态转换到按键释放状态 } else key_state=key_state_0;//按键在抖动,转换到按键初始状态 break; case key_state_2://按键释放状态 if(key_press) key_state=key_state_0;//按键已释放,转换到按键初始状态 break; } return key_return;//返回按键状态返回值 }
键盘模块
开始
初始化端口、芯片、键值编码表、显示数据编码表
设置按键程序,根据键值选择相应的显示数码数据, 驱动数码管显示
矩阵按键的识别仅仅是确认和定位了行和列的交叉点的按 键,接下来还要考虑键盘的编码,即对各个按键进行编号。 编程中常用查表的方法对按键进行具体的编号。 完成键盘扫描和处理的程序是系统程序中一个子程序, MCU通常通过三种方式调用子程序: 程序控制扫描方式。在主程序中适当的位置放置键盘扫描 程序,对键盘进行频繁扫描处理。 定时扫描方式。使用MCU的一个定时器,使其产生10ms 的定时中断,每到中断时,MCU响应中断进行键盘扫描 处理。 中断方式。使用外部中断方式,键盘增加一个键作为产生 中断的信号输入线,当有按键按下时,MCU接收到一个 中断信号,进而响应中断进行键盘扫描处理。