单片机原理实验3:矩阵键盘的识别与显示

实验3—-矩阵键盘的识别与显示

实验目的:理解矩阵键盘的组成,编程实现按键状态的识别,并掌握按键与显示联动的编程方法。

实验设备:计算机、Keil uVision4 软件、实验板

实验内容:

  1. 学习KEIL平台软件的使用、使用Keil软件,了解编译系统;
  2. 学习基本的调试工具、掌握观察变量、内存等基本工具;
  3. 根据实验板原理图,将P3.0-P3.3口作为矩阵键盘的行线,P3.4-P3.7口作为矩阵键盘的列线,S1-S16分别定义为数字0-9、A、b、C、d、E、F。识别按下的按键,并将键名显示在数码管个位(位6)上。
  4. 提高:在3的基础上,用按键依次输入5、2、0、5、2、0,数码管动态显示应显示“520520”,作为朋友的生日礼物。

步骤:1新建工程,命名jianpan3,选择at89c52

2.添加程序文件

3option output中生成HEX文件,点击运行,在子文件夹里生成文件

4STP-ISP中打开jianpan3.HEX文件,点击COM5接口,下载文件。

5.键盘显示效果0-9数字,A-F字母,按顺序从上往下,从左往右点击键盘,显示对应的字母。

程序代码:        ORG    0000H

             LJMP   MAIN

             ORG     30H

MAIN:  MOV     P3,#0F0H     ;

       MOV     R1,#00       ;

         MOV         R7,#0FFH     ;

KEY1:  DJNZ      R7,KEY1      ;

LOOP:  MOV     P3,#0F0H     ;

         MOV         A,P3         ;

       CPL         A            ;

       ANL         A,#0F0H      ;

       JZ    EKEY         ;

       LCALL     DEL20ms      ;

       MOV       A,P3         ;

       CPL         A           

       ANL         A,#0F0H      ;

       JZ    EKEY         ;

SKEY:  MOV           A,#00        ;

         MOV      R0,A          ;

       MOV     R2,A         ;

       MOV     R1,#00       ;

       MOV        R3,#0FEH     ;

SKEY2: MOV           A,R3

       MOV     P3,A         ;

       NOP

         NOP

       NOP                   ;

         MOV            A,P3         ;

         MOV            R1,A         ;

         CPL              A            ;

         ANL             A,#0F0H      ;

S123: JNZ         SKEY3        ;¸

       INC             R0           ;¸

       SETB          C            ;

         MOV            A,R3         ;

         RLC             A                  ;

         MOV            R3,A      

         MOV            A,R0

         CJNE           A,#04H,SKEY2 ;

EKEY:  NOP

         LCALL   DISPLAY

         AJMP    LOOP

                                 ;

SKEY3:  MOV     A,R1

             JNB             ACC.4,SKEY5

             JNB             ACC.5,SKEY6

             JNB             ACC.6,SKEY7

             JNB             ACC.7,SKEY8

             AJMP   EKEY

SKEY5:      MOV           A,#00H

             MOV           R2,A         ;´

             AJMP   DKEY

SKEY6:  MOV             A,#01H

             MOV           R2,A         ;´

             AJMP   DKEY

SKEY7:      MOV           A,#02H

             MOV           R2,A         ;

             AJMP   DKEY

SKEY8:      MOV           A,#03H

             MOV           R2,A         ;

             AJMP   DKEY

                            ;

DKEY:   ACALL DECODE

             AJMP   EKEY

                                          ;

DECODE: MOV          A,R0            ;

             MOV         B,#04H          ;

             MUL          AB          ;

             ADD          A,R2            ;

             MOV       R1,A        ;

             RET

DEL20ms:MOV     R4,#040

D1:              MOV           R5,#0FFH

D2:              DJNZ   R5,D2

             DJNZ   R4,D1

             RET

DISPLAY: 

      MOV           A,R1

      MOV           DPTR,#TAB       ;

      MOVC A,@A+DPTR       ;

      MOV           P0,A            ;

      SETB    P2.6            ;

      NOP

      NOP

      CLR     P2.6

      MOV           A,#01FH         ;

      MOV           P0,A           ;

      SETB    P2.7         ;

      NOP

      NOP

      CLR     P2.7

      RET

TAB:DB            3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH

      DB        6FH,77H,7CH,39H,5EH,79H,71H,40H,00H

;**************************************

      END



我的其他专栏:

单片机原理

模式识别原理

数字电子技术实验

自动控制原理

模拟电子技术

数据结构

 

关注我了解更多

作者:福来登酒店前台接待员

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机原理实验3:矩阵键盘的识别与显示

发表回复