键盘识别过程 飞的接口与应用 (1)测试是否有键按下 单片机O口向所有列线(DD3输出低电平,即向列口写入00H;然后 输入各行线状态(D4D7,即读入输入口的字;比较:若行线状态全为高 电平,则表明无键按下,若行线状态中有低电平,则表明有键按下。 (2)消抖动 (3)扫描键盘以确定被按键的物理位置 输出口 输出口 输出囗 输入口 入 输入口 +5V +5V +5V 图94键盘扫描过程
第5章 MCS–51单片机的接口与应用 键盘识别过程: (1)测试是否有键按下 单片机I/O口向所有列线(D0~D3)输出低电平,即向列口写入00H;然后 输入各行线状态(D4~D7),即读入输入口的字;比较:若行线状态全为高 电平,则表明无键按下,若行线状态中有低电平,则表明有键按下。 (2)消抖动 (3)扫描键盘以确定被按键的物理位置
键盘识别过程 飞的接口与应用 (4)计算键码 根据被按下键的行线号和列线号,按照一定的算法,可以求出被按下键 的键码。键码实际上是键在矩阵中按从左到右、从上到下的序号。按这 种编排规律,本键盘32个键的键码为00H~1FH。各行的首键号是00H 08H、10H、18H,如列线按07编号,则键码的计算公式为 键码=首键号+列号 表9-1键盘编码表 00H OlH H 03H 04H 05H 07H 08H 09H OAH OBH OC ODH OEH OFH 10 11H 12H 13H 14H 15H 05H 17H 18H 19H IAH IBH 1CH IDH IEH IFH
第5章 MCS–51单片机的接口与应用 键盘识别过程: (4)计算键码 根据被按下键的行线号和列线号,按照一定的算法,可以求出被按下键 的键码。键码实际上是键在矩阵中按从左到右、从上到下的序号。按这 种编排规律,本键盘32个键的键码为00H~1FH。各行的首键号是00H、 08H、10H、18H,如列线按0~7编号,则键码的计算公式为: 键码=首键号+列号
第5m255单片机的接口总应用 D7 D7KH ELEL DLc B A 9 8 D6 484442141 OD5人 28242221 I/O D5 接D4 121 接D4 口D3 口D3 D2 DI DO DO 图行列式键盘的编码与键值 (a)二进制组合编码;(b)顺序排列编码
第5章 MCS–51单片机的接口与应用 图 行列式键盘的编码与键值 (a) 二进制组合编码;(b) 顺序排列编码
键盘识别过程 飞的接口与应用 (5等待键释放 计算完键码后,再以延时和扫描的方法等待和判定键释放。键释放之后 就可以根据得到的键码,转到相应的键处理子程序,进行数据的输入或 命令的处理
第5章 MCS–51单片机的接口与应用 键盘识别过程: (5)等待键释放 计算完键码后,再以延时和扫描的方法等待和判定键释放。键释放之后 就可以根据得到的键码,转到相应的键处理子程序,进行数据的输入或 命令的处理
键盘扫描流程: 飞的接口与应用 键扫描 有无键按下 Y 查键号 MP@A+ DPTR A=00H A=01H 00#按键 01#按键 NN#按键 应用程序 应用程序 应用程序 图9-5键扫描程序流程图
第5章 MCS–51单片机的接口与应用 键盘扫描流程: