按键与键盘输入接口
键盘使用说明完整版
键盘使用说明完整版一、键盘简介键盘是一种输入设备,用于输入文字、数字和执行命令。
它由一组按键组成,每个按键都有一个特定的功能。
二、键盘连接方法键盘可以通过有线或无线方式连接到计算机。
有线键盘使用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.学习独立式键盘的接口设计二、实验设备1.单片机最小系统模块2.仿真器3.独立式键盘实验模块4.发光二极管显示模块三、实验要求要求由8个独立式键盘和8个发光二极管组成实验电路,当按下某一个键时相应的发光二极管被点亮。
四、实验原理独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。
因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。
独立式键盘电路配置灵活,软件结构简单。
但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。
下面介绍独立式按键的接口方法。
图6-1(a)为中断方式的独立式键盘工作电路,图(b)为查询方式的独立式按键工作电路,按键直接与89C51的I/O口线相接,通过读I/O口,判定各I/O口线的电平状态,即可识别出按下的按键。
(a)中断方式(b)查询方式图6-1 独立式键盘接口电路此外,也可以用扩展I/O口连接独立式键盘接口电路。
上述独立式键盘电路中,各按键开关均采用了上拉电阻,这是为了保证在按键断开时,各I/O口线有确定的高电平。
在我们的键盘模块中,已经在键盘输出端加上了上拉电阻,因此不用再额外加上。
五、实验步骤实验参考连线如图6-2所示。
(以6键、6发光管为例)图6-2 实验连线图1、按照图6-2的电路原理,用导线正确连接独立式键盘、发光二极管实验模块和单片机最小系统模块。
2、示例程序如下(以6键、6发光管为例):BEGIN: MOV P0,#0FFH ;熄灭二极管LOOP: MOV A,P0 ;读键盘状态ANL A,#3FH ;屏蔽高二位MOV 40H,A ;把读的键盘状态暂放在40H的地址CJNE A,#3FH,HADKEYSJMP LOOPHADKEY:ACALL DL10MS ;延时10MSMOV A,P0 ;再读键盘状态ANL A,#3FH ;屏蔽高二位CJNE A,40H,LOOP ;比较两次读键盘状态,如不同则重读MOV P2,A ;使相应的二极管发亮NOPNOPLJMP LOOPDL10MS: MOV R7,#05LOOP1: MOV R6,#0F9HLOOP2: NOPNOPDJNZ R6,LOOP2DJNZ R7,LOOP1RET将程序调入仿真器进行调试。
键盘工作原理
键盘工作原理键盘是计算机输入设备中最常见的一种,它通过按下不同的按键来输入字符和命令。
键盘的工作原理是通过电路和信号传输实现的。
1. 按键结构和布局:键盘通常由一系列按键组成,每个按键上都有一个字符或命令标记。
按键通常分为主键和辅助键。
主键用于输入字符,而辅助键则用于执行特殊功能,如Shift 键、Ctrl键和Alt键等。
键盘的布局通常采用QWERTY布局,其中最常见的键位包括字母键、数字键、功能键和控制键等。
2. 电路和连接:键盘内部包含一组电路板,这些电路板上安装了按键开关和导线等组件。
当按下按键时,按键开关会闭合,使电流通过按键的导线流动。
键盘通过连接线缆与计算机主机相连,通常使用PS/2接口或USB接口进行连接。
3. 扫描码和编码:当按下按键时,键盘会将按键信息转换为扫描码。
每个按键都有一个唯一的扫描码,用于识别按下的是哪个按键。
键盘会将扫描码通过连接线缆发送给计算机主机。
4. 中断和驱动程序:计算机主机通过中断请求(IRQ)来接收键盘发送的扫描码。
中断是一种计算机硬件机制,它允许外部设备(如键盘)向计算机主机发送信号,以通知主机有新的数据可用。
计算机主机上的键盘驱动程序会接收并解析键盘发送的扫描码,然后将其转换为对应的字符或命令。
5. ASCII码和字符输入:计算机主机接收到键盘发送的扫描码后,会将其转换为对应的ASCII码。
ASCII码是一种字符编码标准,它将每个字符映射为一个唯一的数字。
计算机主机根据接收到的ASCII码确定输入的字符,并将其传递给应用程序或操作系统。
6. 多键盘和多语言支持:现代计算机支持连接多个键盘,这意味着可以同时使用多个键盘输入字符和命令。
此外,键盘也支持多种语言输入,通过按下特定的组合键或切换键,可以切换键盘布局和输入语言。
总结:键盘的工作原理是通过按下按键,使按键开关闭合,产生扫描码,然后通过连接线缆将扫描码发送给计算机主机。
计算机主机接收到扫描码后,将其转换为对应的ASCII码,并确定输入的字符或命令。
电脑键盘使用基础知识
电脑键盘使用基础知识简介电脑键盘是一种重要的输入设备,广泛应用于日常工作和娱乐中。
本文将介绍电脑键盘的基本结构、常见按键和一些使用技巧,帮助您更好地使用电脑键盘,提高工作效率。
一、电脑键盘的基本结构1.键盘布局电脑键盘通常采用QWERTY布局,其中Q、W、E、R、T、Y这几个字母开头的一排键位是它的特点。
此外,还有数字区、功能区、控制区等。
2.键帽和按键键帽是键盘上每个按键顶部的覆盖物,用于标记按键的功能。
按键由键帽和推动机构组成,按下按键时,推动机构会触发相应的信号。
3.连接方式键盘可以通过USB接口或蓝牙连接到计算机,USB 接口的键盘通常更常见。
二、常见按键1.字母键字母键用于输入字母字符,包括26个大写字母和26个小写字母。
按下Shift键加字母键可以输入对应的大写字母。
2.功能键功能键通常位于键盘顶部,用于执行特殊功能,如F1-F12键用于启动快捷功能或操作,Esc键用于取消当前操作。
3.数字键数字键位于键盘的右侧,用于输入数字字符。
在大多数情况下,数字键可以通过顶部功能键的组合使用来执行特定的功能。
4.控制键控制键用于控制光标的移动和文本的选择,包括Shift键、Ctrl键、Alt键和Windows键等。
5.Enter键和Backspace键Enter键用于确认输入的命令或操作,Backspace键用于删除光标前的字符或文本。
三、常用的键盘快捷键1.Ctrl + C / Ctrl + V这是最常用的复制和粘贴快捷键组合。
按下Ctrl键加C键可以复制选定的内容,按下Ctrl键加V键可以粘贴复制的内容。
2.Ctrl + X这是剪切快捷键,按下Ctrl键加X键可以剪切选定的内容,即复制并删除选定内容。
3.Ctrl + Z / Ctrl + Y这是撤销和重做快捷键组合。
按下Ctrl键加Z键可以撤销上一次操作,按下Ctrl键加Y键可以重做上一次被撤销的操作。
4.Ctrl + A这是全选快捷键,按下Ctrl键加A键可以选中当前文档或窗口中的所有内容。
usb键盘驱动
USB键盘驱动简介USB(Universal Serial Bus)是一种用于计算机的通用串行总线接口标准。
它可以将计算机与各种外部设备连接起来,如键盘、鼠标、打印机等。
而USB键盘驱动则是为了实现计算机与USB键盘的通信而设计的软件程序。
USB键盘驱动的主要功能包括识别键盘的插拔、处理键盘输入、实现按键和组合键的功能等。
正常工作的USB键盘驱动应能够实时响应键盘的输入,并将输入转换成可识别的字符和命令。
不同的操作系统可能使用不同的USB键盘驱动,因此,为了使USB键盘能够正常工作,需要安装相应操作系统所需的驱动程序。
USB键盘驱动的原理USB键盘驱动的工作原理可以分为以下几个步骤:1.插拔识别:当USB键盘插入计算机时,操作系统会检测到新的设备,并通过USB总线通信协议与设备进行握手通信,从而识别出键盘设备的类型和特性。
2.设备初始化:识别完键盘设备后,驱动程序会对设备进行初始化设置,包括设备的功能配置、默认按键映射等。
3.输入处理:USB键盘驱动会实时监测键盘的输入信号,并将信号转换成相应的字符和命令。
对于组合键的处理,驱动程序会判断当前按下的按键组合,并执行相应操作(如复制、粘贴等)。
4.键盘事件通知:USB键盘驱动会将键盘输入的事件通知给操作系统。
操作系统可以利用这些事件来实现各种功能,如文本输入、游戏控制等。
USB键盘驱动的安装和更新通常情况下,操作系统会自动识别和安装USB键盘驱动。
当插入新的USB键盘时,操作系统会自动搜索并安装合适的驱动程序。
如果USB键盘无法正常工作,可能是因为驱动程序未正确安装或驱动版本过旧。
这时,可以通过以下步骤更新或重新安装USB键盘驱动:1.打开设备管理器:可以通过控制面板或计算机管理中的设备管理器找到键盘设备,检查是否有驱动程序错误或问题。
2.更新驱动程序:右键点击键盘设备,选择“更新驱动程序”,然后选择自动搜索更新或手动选择驱动程序进行更新。
3.重新安装驱动程序:如果更新驱动程序无效,可以尝试卸载驱动程序并重新安装。
人机接口
西北师范大学计算机科学系http:// 版权声明本电子教案内容为西北师范大学计算机科学系微机原理与汇编语言课讲义,大家可以自己个人使用。
但由于本教案同时也部分使用了其他人所写讲义或CAI课件的内容,因此禁止使用本材料进行任何商业性或赢利性活动。
同时作者不承担由于使用本教案而引发的其他连带责任。
转载时请保留本版权声明。
-索国瑞suogr@人机接口❑基本概念❑键盘与键盘接口❑其他输入设备及接口❑显示设备及接口❑打印机接口1 基本概念人机接口的定义人机接口是指人与计算机之间建立联系、交换信息的输入/输出设备的接口。
本章重点分析常见的几种人机交互设备,如键盘、显示器、打印机等的工作原理以及它们与计算机之间的接口。
人机交互设备人机交互设备是计算机系统中最基本的设备之一,是人和计算机之间建立联系、交换信息的外部设备,常见的人机交互设备可分为输入设备和输出设备两类。
人机接口的功能人机接口是计算机同人机交互设备之间实现信息传输的控制电路。
主机和外设之间进行信息交换为什么一定要通过接口呢?这是因为主机和外设在信息形式和工作速度上具有很大的差异,接口正是为了解决这些差异而设置的。
图14-1为常见的人机接口与主机、外设的连接示意图。
2 键盘与键盘接口键盘是计算机系统不可缺少的输入设备,人们通过键盘上的按键直接向计算机输入各种数据、命令及指令,从而使计算机完成不同的运算及控制任务。
小型键盘接口在大多数键盘中,键开关被排列成M 行×N 列的矩阵结构,每个键开关位于行和列的交叉处。
非编码键盘常用的键盘扫描方法有逐行扫描法和行列扫描法。
1.逐行扫描法图14-2是采用逐行扫描识别键码的8 ×8 键盘矩阵,8 位输出端口和8 位输入端口都在键盘接口电路中,其中输出端口的8 条输出线接键盘矩阵的行线(X0~X7),输入端口的8 条输入线接键盘矩阵的列线(Y~Y7)。
……2.行列扫描法在扫描每一行时,逐个读列线,如果读到的结果为全“1”,说明没有键按下;如果某一列为低电平,说明有键按下,而且行号和列号已经确定。
单片机第七章 80C51单片机的典型外围接口技术
第7章单片机的典型外围接口技术7.1键盘接口7.2显示接口7.3DAC接口7.4ADC接口7.1键盘接口(1)独立连接式键盘优点:结构简单、使用方便。
缺点:占用的I/O口线多。
(2)矩阵式键盘⏹键盘上的键按行列构成矩阵,在行列的交点上都对应有一个键。
⏹所谓键实际上就是一个机械开关,被按下则其交点的行线和列线接通。
⏹非编码键键盘接口技术的主要内容就是如何确定被按键的行列位置,并根据此产生键码。
1.键输入过程与软件结构键扫描有无键按下查键号JMP @A+DPTR00#按键应用程序01#按键应用程序NN #按键应用程序A=00H A=01H A=NNH...N Y2.键盘输入接口与软件应解决的任务⏹(1)键开关的可靠输入⏹抖动的处理有硬件处理和软件处理两种。
⏹(2)按键编码与键号定义⏹(3)键盘检测与编制键盘程序3.矩阵式键盘电路的结构及工作原理一个4×4的行、列结构可以构成一个含有16个按键的键盘。
0123106759841114151312+5V X3X2X1X0Y3Y0Y2Y1扫描方法:先令列线Y0为低电平(0),其余3根列线Y1、Y2、Y3都为高电平,读行线状态。
如果X0、X1、X2、X3都为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态;如果Y0这一列上没有键闭合,接着使列线Y1为低电平,其余列线为高电平。
用同样的方法检查Y1这一列上有无键闭合,依次类推,最后使列线Y3为低电平,其余列线为高电平,检查Y3这一列有无键闭合。
按键开关的抖动问题组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。
P1.0由于按键是机械触点,当机械触点断开、闭合时,会有抖动,P1.0输入端的波形如图所示。
常用去抖动方法:⏹(1)硬件方法增加去抖动电路。
⏹(2)软件方法采用软件延时(10ms)躲过抖动(3)键盘的接口电路7.2显示接口⏹7.2.1 基本LED 显示原理⏹1.LED显示器的结构与原理d 1234a b c dp f e c dpd e g f b a GND GND abcdefgdp a b c d e f g dp +5v 8R ⨯8R ⨯g 共阴极共阳极2. 十六进制数字形代码表字型共阳极代码共阴极代码字型共阳极代码共阴极代码0C0H3FH990H6FH1F9H06H A88H77H2A4H5BH B83H7CH3B0H4FH C C6H39H 499H66H D A1H5EH 592H6DH E86H79H 682H7DH F84H71H7F8H07H灭FFH00H 880H7FH7.2.2 LED 显示方式在单片机应用系统中使用LED 显示块构成N 位LED 显示器。
ps2标准键盘
ps2标准键盘PS/2标准键盘。
PS/2标准键盘是一种常见的计算机输入设备,它使用PS/2接口连接到计算机主机。
PS/2键盘通常具有标准的104键布局,包括数字键盘、功能键、控制键和字母键。
它是许多人在日常工作和生活中不可或缺的工具,因此了解PS/2标准键盘的特点和使用方法对我们来说是非常重要的。
首先,PS/2标准键盘的接口是PS/2接口,这是一种早期的计算机接口标准,通常为圆形6针接口。
在连接PS/2键盘时,需要将键盘插头插入主机的PS/2接口中,并确保插入正确,以免造成损坏。
PS/2接口相对于USB接口来说已经显得有些过时,但仍然被一些老式计算机和特定设备所使用。
其次,PS/2标准键盘通常具有104键布局,包括主键盘区、数字键盘区和功能键区。
主键盘区包括字母键、数字键和控制键,用于输入文本和命令;数字键盘区包括数字键和基本运算符号,用于快速输入数字和进行简单的计算;功能键区包括F1-F12等功能键,用于执行特定的功能和快捷操作。
了解这些键位的分布和功能对我们在使用键盘时能够更加高效和便捷。
另外,PS/2标准键盘通常采用机械键盘或薄膜键盘的结构。
机械键盘采用机械开关,按键触感明显,手感舒适,使用寿命长;薄膜键盘采用薄膜开关,按键轻盈,结构简单,价格较低。
不同的键盘结构在手感和使用寿命上有所差异,用户可以根据自己的喜好和需求进行选择。
此外,PS/2标准键盘在使用过程中需要注意保持清洁和维护。
定期清洁键盘表面和按键间隙,避免灰尘和污垢积累影响使用;避免在键盘上食物和饮料,以免造成键盘损坏和影响使用寿命;在键盘出现故障或损坏时,及时进行维修或更换,以保证正常使用。
最后,PS/2标准键盘在连接和使用时需要注意一些常见问题。
比如,插头接口不良会导致键盘无法正常工作,需要检查接口和线缆是否损坏;键盘按键失灵或卡键可能是由于灰尘或杂物进入按键间隙,需要清洁或更换按键;键盘无法识别可能是由于驱动程序问题,需要重新安装或更新驱动程序。
可以让键盘做midi键盘的方法
可以让键盘做midi键盘的方法将键盘转化为MIDI键盘的方法有以下几种:1.使用MIDI接口:使用一个MIDI接口连接键盘和计算机。
这种方法最为常见,需要购买一个MIDI接口设备,然后通过USB或其他接口将其连接到计算机上。
接口设备上有MIDI输入和输出端口,将键盘连接到MIDI输入端口上即可。
2.使用MIDI转换器:有些键盘没有内置的MIDI接口,无法直接连接到计算机。
这种情况下,可以使用一个MIDI转换器来实现。
选择一个适配器转换器,将键盘连接到转换器上,再将转换器的MIDI输出与计算机连接。
3.使用音频接口:一些音频接口也能够实现转换键盘为MIDI键盘的功能。
这种方法需要使用一个支持MIDI功能的音频接口设备。
将键盘的音频输出连接到音频接口上,然后通过音频接口的MIDI输出将信号传输给计算机。
4. 使用软件:有一些软件可以将普通键盘转换为MIDI键盘的控制器。
这些软件通过扫描键盘输入并将其转换为MIDI信号,可以与DAW(数字音频工作站)或其他音乐软件一起使用。
一些常用的软件包括Bome'sMIDI Translator、MIDI-OX等。
5. 使用Arduino板:如果你是一个技术爱好者,你也可以使用Arduino板来自制一个MIDI控制器。
将键盘的按键与Arduino板上的输入引脚相连,并编写相应的代码,将按键触发的事件转换为MIDI信号,通过MIDI输出端口发送给计算机。
无论你选择哪一种方法,都需要在计算机中安装相应的MIDI驱动程序。
驱动程序可以将MIDI信号传输给音频工作站或其他音乐软件,并在计算机上生成MIDI音符。
总结起来,将键盘转换为MIDI键盘的方法有多种选择,可以根据你的需求和预算选择适合你的方法。
无论选择哪种方法,都要确保你的计算机和软件能够与键盘正常通信,以达到预期的效果。
键盘连接操作规程
键盘连接操作规程一、介绍键盘作为计算机输入设备的重要组成部分,连接操作的正确性和稳定性对于计算机使用者至关重要。
本文将详细介绍键盘连接操作规程,确保您能够正确连接键盘并实现良好的使用体验。
二、检查键盘连接线在进行键盘连接之前,首先需要检查键盘连接线的完整性和连接端口的状态。
确保键盘连接线没有明显的物理损坏,并且连接端口没有松动或脱落的情况。
如果存在问题,需要更换键盘连接线或修复连接端口。
三、连接键盘1. 找到计算机主机的键盘接口,通常位于计算机背面。
键盘接口通常采用PS/2接口或USB接口。
2. 根据键盘接口的类型选择合适的键盘连接线。
PS/2接口的键盘连接线是圆形的,一端为键盘接口,另一端为PS/2接口;USB接口的键盘连接线是扁平的,一端为键盘接口,另一端为USB接口。
3. 将键盘连接线的键盘接口插入计算机主机的键盘接口。
确保插入正确,不要用力过猛以免损坏连接线或接口。
4. 注意:如果您的计算机支持热插拔功能,可以在计算机运行的情况下连接键盘。
否则,请先关机再进行连接操作。
四、操作系统配置大多数操作系统会自动识别并安装键盘驱动程序,但有时需要手动配置或更新驱动程序。
以下是常见操作系统的键盘配置方法:1. Windows操作系统:a. 打开控制面板,并找到“设备管理器”。
b. 在“设备管理器”中找到“键盘”选项,并展开。
c. 右键点击键盘选项下的键盘驱动程序,并选择“更新驱动程序”。
d. 根据系统提示,选择自动更新或手动选择驱动程序。
2. macOS操作系统:a. 点击苹果菜单,并选择“系统偏好设置”。
b. 在“系统偏好设置”中选择“键盘”选项。
c. 在键盘设置中,进行相应的驱动程序配置和更新。
3. Linux操作系统:a. 打开终端,并输入适当的命令安装或更新键盘驱动程序。
五、键盘测试键盘连接完成后,需要进行键盘测试以确保连接的稳定性和正常工作。
在任意文本编辑器中输入一些字符并测试键盘的各个按键。
马潮老师编著--第9章 键盘输入接口与状态机编程
图 9-2 简单按键输入电路图
根据按键连接电路可知,按键状态的确认就是判别按键是否闭合,反映在输入口的电平
就是和ห้องสมุดไป่ตู้键相连的 I/O 引脚呈现出高电平或低电平。如果输入高电平表示断开的话,那么低
华东师范大学 电子系 马 潮 9-3
第 9 章 键盘输入接口与状态机编程
按键 K1 是一种经济的接法,它充分利用了 AVR 单片机 I/O 口的内部上拉特点。在 K1 的连接中,除了把 PC5 定义为输入方式时(DDRC.5=0),同时设置 PC5 口的上拉电阻有效 (PORTC.5=1),这样当 K1 处在断开状态时,PC5 引脚在内部上拉电阻的作用下为稳定的高电 平(如果上拉电阻无效,则 PC5 处在高阻输入态,PC5 的输入易受到干扰,不稳定),按下 K1 输入为低电平。与 K2 连接方式比较,K1 连接电路中省掉了一个外部上拉电阻,而在 K2 的连接方法中,由于外部使用了上拉电阻,所以只要设置 PC6 口为输入方式即可,该口内部 的上拉电阻有效与否则不必考虑了。电阻 R1 不仅起到上拉的作用,还有限流的作用,通常 在 5K-50K 之间。
9.2 按键输入接口设计
在单片机嵌入式系统中,按键和键盘是一个基本和常用的接口,它是构成人机对话通道 的一种常用的方式。按键和键盘能实现向嵌入式系统输入数据、传输命令等功能,是人工干 预、设置和控制系统运行的主要手段。
9.2.1 简单的按键输入硬件接口与分析
键盘是由一组按键组合构成的,所以我们先讨论简单的单个按键的输入。 图 9-2 是简单按键输入接口硬件连接电路图,图中单片机的三个 I/O 口 PC7、PC6、PC5 作为输入口(输入方式),分别与 K3、K2、K1 三个按键连接。其中 K2 是标准的连接方式, 当没有按下 K2 时,PC6 的输入为高电平,按下 K2 输入为低电平。PC6 引脚上的电平值反映 了按键的状态。
键盘接口实验实验报告及程序
键盘接口实验实验报告及程序一、实验目的本次实验的主要目的是深入了解计算机键盘接口的工作原理,并通过编程实现对键盘输入的读取和处理。
通过这个实验,我们将掌握如何与计算机硬件进行交互,提高对计算机系统底层运作的认识。
二、实验原理计算机键盘通常通过 PS/2 接口或 USB 接口与主机相连。
在本次实验中,我们以 PS/2 接口为例进行研究。
PS/2 接口使用双向同步串行协议进行通信,数据传输速率约为 10 167Kbps 。
键盘在向主机发送数据时,每个字节包含 11 位,分别是起始位(总是 0 )、 8 位数据位(低位在前)、校验位(奇校验)和停止位(总是 1 )。
主机通过向键盘发送命令来控制键盘的工作模式和获取相关信息。
三、实验设备及环境1、计算机一台2、开发板及相关配件3、编程软件(如 Keil 等)四、实验步骤1、硬件连接将开发板与计算机通过相应的接口连接好,确保连接稳定。
2、软件编程选择合适的编程语言和开发环境。
初始化相关的硬件接口和寄存器。
编写读取键盘输入数据的程序代码。
3、编译与下载对编写好的程序进行编译,检查是否有语法错误。
将编译成功的程序下载到开发板中。
4、实验测试按下键盘上的不同按键,观察开发板的输出结果。
检查读取到的数据是否准确,校验位是否正确。
五、程序代码实现以下是一个简单的基于 C 语言的键盘接口读取程序示例:```cinclude <reg51h>//定义 PS/2 接口相关引脚sbit PS2_CLK = P1^0;sbit PS2_DATA = P1^1;//读取一个字节的数据unsigned char ReadByte(){unsigned char data = 0;unsigned char i;while(PS2_CLK == 1);//等待时钟线拉低for(i = 0; i < 8; i++){while(PS2_CLK == 0);//等待时钟上升沿data =(data << 1) | PS2_DATA; //读取数据位}while(PS2_CLK == 1);//等待时钟线拉低return data;}void main(){unsigned char key;while(1){key = ReadByte();//读取键盘输入的数据//在此处对读取到的数据进行处理和显示}}```六、实验结果与分析在实验过程中,我们按下不同的键盘按键,开发板能够准确地读取到相应的键值。
键盘工作原理
键盘工作原理引言概述:键盘是我们日常使用最频繁的输入设备之一。
它通过按下不同的按键来输入文字和命令,从而实现与计算机的交互。
本文将详细介绍键盘的工作原理,包括按键传感器、扫描电路、编码器、接口和驱动程序等五个方面。
一、按键传感器1.1 机械键盘:机械键盘是最早浮现的键盘类型之一。
它的按键上装有弹簧,当按键被按下时,弹簧会产生反作用力,使按键恢复到原位。
同时,按键下方还有一个触点,当按键被按下时,触点会与电路板上的触点接触,从而形成电路通路,向计算机发送按键信号。
1.2 薄膜键盘:薄膜键盘是一种较为常见的键盘类型。
它的按键上覆盖有一层薄膜,当按键被按下时,薄膜会发生弯曲,使得触点与电路板上的触点接触,从而形成电路通路,向计算机发送按键信号。
薄膜键盘具有结构简单、成本低廉的优点,广泛应用于各种电子设备中。
1.3 容感键盘:容感键盘是一种新型的键盘技术。
它利用了人体的电容特性,通过检测手指的电容变化来判断按键动作。
当手指接近按键时,按键周围的电场会发生变化,容感键盘可以通过检测这种变化来识别按键动作。
容感键盘具有触感轻、无声、耐用等特点,逐渐得到了广泛应用。
二、扫描电路2.1 矩阵扫描:键盘上的每一个按键都与行和列的电路相连。
扫描电路会挨次扫描每一行和每一列的电路,当检测到有按键按下时,就可以确定是哪个按键被按下了。
这种矩阵扫描的方式可以有效地减少所需的引脚数量,提高了键盘的成本效益。
2.2 容感扫描:容感键盘采用的是一种不同于传统键盘的扫描方式。
它通过检测电容变化来判断手指的位置和动作。
扫描电路会不断地检测电容变化,并将这些变化转换成数字信号,从而实现对按键位置和动作的精确识别。
2.3 热插拔扫描:热插拔扫描是一种特殊的扫描方式,它可以实现在键盘工作时插拔按键。
这种扫描方式通过检测插拔事件和按键的位置变化来实现按键的插拔功能。
热插拔扫描可以提高键盘的可靠性和可维护性,适合于一些特殊的应用场景。
三、编码器3.1 硬件编码器:硬件编码器是键盘中的一个重要组成部份。
- 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接收到一个 中断信号,进而响应中断进行键盘扫描处理。