【单片机实验】矩阵键盘

本次实验旨在掌握4X4矩阵键盘的硬件原理和编程方法,以及利用数码管显示键值。通过检测行列信号判断键值,并在按键后加入延时以消除抖动。实验步骤包括编写、编译程序,下载到单片机,连接硬件并观察数码管显示效果。
摘要由CSDN通过智能技术生成

实验五 矩阵键盘

一、实验目的

1、掌握矩阵键盘的硬件电路原理和软件编程方法;
2、掌握利用数码管显示矩阵键盘键值的编程方法。
二、实验说明

本实验提供了一个4X4小键盘,开始先将4行置一,4列置零,判断是否有键按下,如果有键按下,则逐列判断。键值判断方法:行*4+列,在有键按下后,要有一定的延时,防止键盘抖动。

三、实验内容及步骤
内容:
程序功能按下矩阵键盘单元键盘,静态显示单元数码管显示对应数字。
步骤:
1、根据硬件连接电路,编写程序并编译生成*.hex文件;
2、打开实验箱电源;
3、参照STC12C5A60S2下载说明中STC_ISP软件使用说明,向单片机中下载程序;
4、通过排线,将单片机最小系统单元的P2口的0-7与矩阵键盘单元的J0701的0-7一一对应相,通过信号线将单片机最小系统单元的P1.0、P1.1、P1.2分别与静态显示单元的SER、SRCLK、RCLK相连;
5、打开静态显示单元开关;
6、观察静态显示单元的LED1106数码管显示情况,若显示结果不正确,请修改该程序,重复以上操作。

  1 DAT BIT P1.0
  2   SRCLK BIT P1.1
  3   RCLK BIT P1.2
  4   ORG 00H
  5 LJMP MAIN
  6 ORG 0080H
  7 MAIN:
  8  MOV SP,#50H
  9  MOV 30H,#10H ;键值存放在30H单元中 
 10 SLOOP:
 11  ACALL JTXS     
 12  ACALL DELAY
 13  ACALL KEYSCAN
 14  SJMP SLOOP
 15 KEYSCAN:
 16   MOV R0,#00H
 17 LOOP:
 18   MOV P2,#0F0H ;将列清零 
 19   MOV A,P2
 20   CJNE A,#0F0H,KEY1     ;判断是否有键按下 
 21   LJMP  LOOP
 22 KEY1:
 23   ACALL DELAY      ;延时去抖动 
 24   MOV P2,#0F0H
 25   NOP
 26   NOP
 27   MOV A,P2
 28   CJNE A,#0F0H,KEY2       ;判断键值 
 29   LJMP  LOOP
 30 KEY2:
 31   MOV 31H,#0FEH    ;将第一列置一 
 32   MOV A,31H
 33 HANG:
 34   MOV P2,A
 35   MOV 31H,A
 36   MOV B,R0    ;代表第几行 
 37   ACALL LIE
 38   INC R0
 39   MOV A,31H
 40   RL A
 41   CJNE R0,#04H,HANG
 42   RET
 43 LIE:  ;判断列值 
 44   MOV A,P2
 45   ANL A,#0F0H
 46   CJNE A,#0E0H,K2
 47   MOV 32H,#00  ;第一列 
 48   SJMP JIE
 49 K2:
 50   CJNE A,#0D0H,K3
 51   MOV 32H,#01     ;第二列 
 52   SJMP JIE
 53 K3:
 54   CJNE A,#0B0H,K4
 55   MOV 32H,#02      ;第三列 
 56   SJMP JIE  
 57 K4:
 58   CJNE A,#70H,LEND
 59   MOV 32H,#03
 60   SJMP JIE            ;第四列 
 61 JIE:
 62   MOV A,#04H   ;行*4+列 
 63   MUL AB
 64   MOV B,32H
 65   ADD A,B
 66   MOV 30H,A
 67 LEND:
 68   RET
 69
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值