1、第四讲第四讲 键盘检测原理及应用键盘检测原理及应用实现实现v4.1 4.1 键盘的分类键盘的分类v4.2 4.2 独立键盘检测独立键盘检测v4.3 4.3 矩阵键盘检测矩阵键盘检测1v键盘分键盘分编码编码键盘和键盘和非编码非编码键盘。键盘。v键盘上闭合键的识别由键盘上闭合键的识别由专用的硬件编码专用的硬件编码器器实现,并实现,并产生键编码号或键值产生键编码号或键值的称为的称为编码键盘,如计算机键盘编码键盘,如计算机键盘.v而靠而靠软件编程来识别软件编程来识别的称为非编码键盘;的称为非编码键盘;v 在单片机组成的各种系统中,用的在单片机组成的各种系统中,用的最多最多的是非编码键盘的是非编码键盘。
2、4.1 4.1 键盘的分类键盘的分类24.2 4.2 独立键盘检测独立键盘检测v单片机系统常见按键,按下接通,单片机系统常见按键,按下接通,弹起断开弹起断开弹性弹性小按键小按键自锁式自锁式小按键小按键3按键在闭合和断开时,触点会存在抖按键在闭合和断开时,触点会存在抖动现象:动现象:按键抖动电压变化按键抖动电压变化抖动时间抖动时间10ms10ms开关动作时间开关动作时间50ms50ms“1 1”“0 0”10ms10ms4消除按键抖动的方法(一)消除按键抖动的方法(一)v软件消抖:判断到软件消抖:判断到有键按下后有键按下后,延延时一段时间再读取键盘时一段时间再读取键盘来消除抖动来消除抖动的编程方
3、法的编程方法v优点:优点:不需要额外的不需要额外的硬件电路硬件电路v缺点:缺点:必须编程实现必须编程实现,且需要,且需要选取选取合适的延时时间合适的延时时间5软软件件消消抖抖程程序序流流程程延时等待延时等待10ms10ms仍有按键信号?仍有按键信号?Y Y 有按键信号?有按键信号?N NY YN N键盘处理键盘处理 按键释放?按键释放?N NY Y6消除按键抖动的方法(二)消除按键抖动的方法(二)v硬件消抖:方法较多,可采用硬件消抖:方法较多,可采用RSRS触触发器发器实现消抖实现消抖I/OI/O接接口口+5v+5v+5v+5v消除抖动电路消除抖动电路开关开关单单片片机机S SR RQ QQ
4、Q不变不变不变不变1 11 10 01 10 01 11 10 01 10 01 11 10 00 0Q QQ QR RS S 真值表真值表7独立键盘与单片机连接图独立键盘与单片机连接图8独立键盘编程举例独立键盘编程举例v例例1 1 用数码管的用数码管的前两位前两位显示一个十进显示一个十进制数,范围从制数,范围从00590059,开始开始时显示时显示0000。每。每按下按下S1S1键一次,数值键一次,数值加加1 1;每按下;每按下S2S2键一键一次,数值次,数值减减1 1;每按下;每按下S3S3键一次,数值键一次,数值归归0 0;按下;按下S4S4键第一次键第一次,利用定时器使数值,利用定时器
5、使数值开始开始自动每秒加自动每秒加1 1,再次按下再次按下S4S4,数值,数值停停止自动加止自动加1 1,保持原值保持原值不变。不变。94.3 4.3 矩阵键盘检测矩阵键盘检测v若若按键较多按键较多,则,则独立式键盘独立式键盘会会占用占用过多的单片机过多的单片机I/OI/O口资源口资源,为充分利,为充分利用其有限的用其有限的I/OI/O口资源,引入口资源,引入矩阵键矩阵键盘盘(行列式键盘行列式键盘)v下面以下面以4*44*4键盘为例说明矩阵键盘的键盘为例说明矩阵键盘的功能功能10单片机与单片机与4*4矩阵键盘电路矩阵键盘电路11矩阵键盘检测按键原理矩阵键盘检测按键原理v扫描法扫描法:先:先输出
6、输出送一行送一行为为低电平低电平,其余行其余行均为均为高电平高电平,然后,然后输入输入检测检测一次各列是否一次各列是否为为低电平低电平,若,若检测到检测到某一列为低电平,则可确认某一列为低电平,则可确认当前哪当前哪一行哪一列有键按下一行哪一列有键按下,没有键按下没有键按下则继续则继续,同样方法,同样方法轮流送各行轮流送各行一次一次低电平,则可低电平,则可检测完所有按键检测完所有按键。12矩阵键盘应用举例矩阵键盘应用举例v例例2 2 开始数码管不显示开始数码管不显示,顺序顺序按下按下矩阵键盘后,在数码管上矩阵键盘后,在数码管上依依次显示次显示0F0F,6 6个数码管个数码管同时显示同时显示13s
7、witch-caseswitch-case语句语句v多重分支编程常用该语句,常用多重分支编程常用该语句,常用于于判断条件便于用常量表示判断条件便于用常量表示的场的场合,此时合,此时switch-caseswitch-case语句比语句比if-if-else ifelse if语句使用起来要简洁。语句使用起来要简洁。14switch-caseswitch-case语句格式语句格式vswitch(switch(表达式表达式)v vcase case 常量表达式常量表达式1 1 :/此处是此处是冒号冒号v语句语句1;1;vbreakbreak;/;/若若没有没有breakbreak,则,则会顺序往下
8、执行会顺序往下执行vcase case 常量表达式常量表达式2:2:v语句语句2;2;vbreakbreak;vvdefaultdefault:v语句语句n+1;n+1;vbreakbreak;v 15例例3 3 键盘显示综合应用(秒表)键盘显示综合应用(秒表)v数码管数码管前三位显示一个秒表前三位显示一个秒表,从,从0.000.00到到9.999.99之间以之间以1%1%秒速度运行,用秒速度运行,用矩阵键盘矩阵键盘第二行作为按键第二行作为按键。当。当按下按下第一个键时第一个键时秒秒表停止表停止,松开松开手后秒表手后秒表继续运行继续运行。(用用定定时器时器设计表设计表)。v用同一行另外三个键实
9、现按下用同一行另外三个键实现按下第二个第二个时时计时停止计时停止,按下,按下第三个第三个时时计时开始计时开始,按,按下下第四个第四个时时计数值清零从头开始计数值清零从头开始。16总总 结结v键盘是单片机键盘是单片机最重要的输入设备最重要的输入设备,对控制系统的编程往往对控制系统的编程往往最复杂最复杂的就的就是对是对按键功能按键功能的设定的设定v键盘一般除了键盘一般除了字符键字符键以外,还有各以外,还有各不相同的不相同的功能键功能键(切换切换、加加、减减等)等)17练练 习习v按下按下1616个矩阵键盘依次在数码管个矩阵键盘依次在数码管上上显示显示1-161-16的平方的平方。如按下。如按下第一第一个个显示显示1 1,第二个第二个显示显示2 2.18