情境五实际应用矩阵键盘
个无效号
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
单片机与键盘接口
分类:一、独立式按键
独立式按键电路配置灵活,软件结构简单,但每个按键必须占 用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采 用。
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
单片机与键盘接口
二、矩阵式按键
通常,矩阵式键盘的列线由单片机输出口控制, 行线连接单片机的输入口。
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
单片机与键盘接口
按键的去抖
机械式按键在按下或释放时,由于机械弹性作用的影响, 通常伴随有一定时间的触点机械抖动,然后其触点才稳 定下来,抖动时间一般为510ms,在触点抖动期间检测 按键的通与断状态,可能导致判断出错。
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
单片机与键盘接口
按键的去抖
(a)检测按键 按键去抖流程图
情境五实际应用矩阵键盘
(b)释放按键
主讲:刘丹
湖南科技工业职业技术学院
单片机与键盘接口
矩阵式按键
键盘编程扫描法识别按键一般应包括以下内容: (1)判别有无键按下。 (2)键盘扫描取得闭合键的行、列位置。 (3)用计算法或查表法得到键值。 (4)判断闭合键是否释放,如没释放则继续等待。 (5)将闭合键的键值保存,同时转去执行该闭合键的 功能。
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
开发板按键矩阵由4行4列组成 4行:R1、R2、R3、R4,接P3.0、P3.1、 P3.2、P3.3。 4列:C1、C2、C3、C4,接P3.4、P3.5、P3.6、P3.7。
情境五业技术学院
• 按键的识别:
• 识别按键的方法很多,最常见的方法是扫描法。由列线 送入全“0”扫描字、行线读入行线状态来判断的。其方 法是:给列线的所有I/O线均置成低电平,然后将行线 电平状态读入累加器A中。如果有键按下,总会有一根 行线电平被拉至低电平,从而使行输入不全为1。
键按下
前沿抖动
后沿抖动
闭合 情境五实际应稳 用定 矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
键盘输入中要解决的问题: 一、按键的确认: 即判断按键是否闭合。通过检测电平的高低状态,就能确认 是否有键按下。 二、按键抖动的消除 按键较多时,常采用软件方法消除抖动。即在第一次检测到 有按键被按下时,执行一段延时12-15ms的子程序后,再确认 该键电平是否仍保持闭合状态电平,如保持为闭合状态电平 就可确认真正有键按下,从而消除抖动的影响。
判断是否有键按下程序
职
业
技
术
学 键院处理程序
设置列扫描次数
列线输出0,行线写1
首列号送R6
DPTR指向列扫描码表
输入行线数据
查表求列扫描码
行线数据数据不全为“1” NO
输出列扫描码
YES 延时去抖
列线输出0,行线写1
输入行线数据 NO 行线数据数据不全为“1”
YES
输入行线状态
0行有键按下 NO
1行有键按下 NO
湖南科技工业职业技术学院
单片机学习领域情景6 应用矩阵键盘
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
• 请分组单步执行数码控制程序
• 从每组中请一个同学回答数码 控制程序中所用指令的作用
• 通过程序执行过程进一步讲解 子程序调用和堆栈的概念
• 重点堆栈的操作过程
情境五实际应用矩阵键盘
mov wdtcn,#0adh mov prt3cf,#0f0h;列线推挽输出方式 mov xbr2,#40h;交叉开关允许 Key: lcall pressyn;判断是否有键按下 lcall which;判断键号
ljmp key Pressyn: mov P3,#0FH;使列线输出0,行线写1
mov A,P3;输入行线上的数据 cjne A,#0fh,press;不相等,有键按下
2行有键按下 NO
3行有键按下
NO 列号加1
YES 计算0行键值 YES 计算1行键值 YES 计算2行键值 YES 计算3行键值
键值存于A
转键处理程序
NO 情境五实际应用矩4列阵扫键描盘 结束否
YES
结束
主讲:刘丹
湖南科技工业职业技术学院
参考程序
Org 0000h Main: mov wdtcn,#0deh;关看门狗
• 键盘中哪一个键按下是由列线逐列置低电平后,检查行 输入状态。其方法是:依次给列线送低电平,然后查所 有行线状态,如果全为1,则所按下之键不在此列。如 果不全为1,则所按下的键必在此列。而且是在与电平 为“0”的行线相交点上的那个键。
• 程序设计流程图如下:
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业
主讲:刘丹
湖南科技工业职业技术学院
单片机与键盘接口
情境五实际应用矩阵键盘
主讲:刘丹
湖南科技工业职业技术学院
单片机与键盘接口
按键按照结构原理可分为两类,一类是触点式开关按 键,如机械式开关、导电橡胶式开关等;另一类是无触 点开关按键,如电气式按键,磁感应按键等。前者造价 低,后者寿命长。按键按照接口原理可分为编码键盘与 非编码键盘两类。 这两类键盘的主要区别是识别键符及给出相应键码的 方法。编码键盘主要是用硬件来实现对按键的识别,硬 件结构复杂;非编码键盘主要是由软件来实现按键的定 义与识别,硬件结构简单,软件编程量大。这里将要介 绍的独立式按键和矩阵式键盘都是非编码键盘。
mov P3,A;输出列扫描码第一列输出0 mov A,P3;输入行线状态 jnb 0E0,L0;0行有按下,转L0 jnb 0E1,L1;1行有按下,转L1 jnb 0E2,L2;2行有按下,转L2 jnb 0E3,L0;3行有按下,转L3 inc R6;本列无按下,列号加1 djnz r7,getscode;未扫描完所有列,继续 mov A,#0FFH;所有列扫描完,没有按下返 回一