单片机键盘程序设计示例

来源:本站
导读:目前正在解读《单片机键盘程序设计示例》的相关信息,《单片机键盘程序设计示例》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机键盘程序设计示例》的详细说明。
简介:本文主要讲了单片机键盘程序设计示例 ,下面一起来学习下:

在图示电路中,用 P1 口接一个 4 X 4 键盘。设: SO-S9 为数字键,键值为 0-9 ,用于向单片机系统输入数据; S10-S15 为命令键,键值为 A-F ,用于对计算机系统送操作命令;每键只 1 个功能;行线接 P1 口的高 4 位;列线接 P1 口的低 4 位。

单片机键盘程序设计示例

(1)键盘扫描子程序

KEY: MOV A, #0F 0H

MOV P1,A

XRL A,P1

JZ KEYR ;无键按下返回

ACALL DELAY ;延时去抖动

MOV 30H,P1 ;读闭合键行位置

MOV P1,#0FH ;反转

MOV A,P1 ;读闭合键列位置

ORL 30H,A ;合成键盘位置码

LOOP: MOV A,P1 ;等待键释放

XRL A, #0FH

JNZ LOOP

ACALL DELAY ;延时去抖动

KEYR : RET

(2)键值转换

键盘矩阵中各键的位置码的特点是:对应该键行、列的位为“ 0 ” ,其他各位均为“ 1 ” 。例如: S7 键的位置码是: 11010111B = 0D7H ; S12 键的位置码是: 01111110B = 7EH 。将各键的位置码顺序排列成键值表,用查表法进行键值转换。

键值转换子程序

TRAN: MOV DPTR,#KEYTAB ; DPTR 指向键值表

MOV R2,#0 ;键值初值送 R2

MOV R3,#10H ;循环次数送 R3

LOOPT: MOV A,R2

MOVC A, @A+DPTR ;读键值表

XRL A,30H ;与位置码比较

JZ KTR ;相等返回,键值在 R2 中

INC R2 ;键值 +1

DJNZ R3,LOOPT

KTR: RET ;若返回时 R2=10H 为错

KEYTAB: DB 0EEH,0EDH,0EBH,0E7H ;键值表

DB 0DEH,0DDH,0DBH,0D7H

DB 0BEH,0BDH,0BBH,0B7H

DB 7EH,7DH,7BH,77H

提醒:《单片机键盘程序设计示例》最后刷新时间 2024-03-14 00:53:27,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机键盘程序设计示例》该内容的真实性请自行鉴别。