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