您当前的位置:五五电子网电子知识单片机-工控设备源码-程序采用AT89S51的并行口P1接4×4矩阵键盘程序 正文
采用AT89S51的并行口P1接4×4矩阵键盘程序

采用AT89S51的并行口P1接4×4矩阵键盘程序

点击数:7947 次   录入时间:03-04 12:04:03   整理:http://www.55dianzi.com   源码-程序

                MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JZ NOKEY3

                LCALL DELY10MS

                MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JZ NOKEY3

                MOV A,P3

                ANL A,#0FH

                CJNE A,#0EH,NK9

                MOV KEYBUF,#8

                LJMP DK3

    NK9:        CJNE A,#0DH,NK10

                MOV KEYBUF,#9

               LJMP DK3

    NK10:      CJNE A,#0BH,NK11

                MOV KEYBUF,#10

                LJMP DK3

    NK11:      CJNE A,#07H,NK12

                MOV KEYBUF,#11

                LJMP DK3

    NK12:      NOP

    DK3:

                MOV A,KEYBUF

                MOV DPTR,#TABLE

                MOVC A,@A+DPTR

                MOV P0,A

     

    DK3A:      MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JNZ DK3A

    NOKEY3:

                MOV P3,#0FFH

                CLR P3.7

                MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JZ NOKEY4

                LCALL DELY10MS

                MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JZ NOKEY4

                MOV A,P3

                ANL A,#0FH

                CJNE A,#0EH,NK13

                MOV KEYBUF,#12

                LJMP DK4

    NK13:       CJNE A,#0DH,NK14

                MOV KEYBUF,#13

                LJMP DK4

    NK14:      CJNE A,#0BH,NK15

                MOV KEYBUF,#14

                LJMP DK4

    NK15:      CJNE A,#07H,NK16

                MOV KEYBUF,#15

                LJMP DK4

    NK16:      NOP

    DK4:   

               MOV A,KEYBUF

                MOV DPTR,#TABLE

                MOVC A,@A+DPTR

                MOV P0,A

     

    DK4A:      MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JNZ DK4A

    NOKEY4:

                LJMP WAIT

    DELY10MS:

                MOV R6,#10

    D1:        MOV R7,#248

                DJNZ R7,$

                DJNZ R6,D1

                RET

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

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

                END

   



www.55dianzi.com

    7. C语言源程序

    #include <AT89X51.H>

    unsigned char code table[]={0x3f,0x06,0x5b,0x4f,

                                0x66,0x6d,0x7d,0x07,

                                0x7f,0x6f,0x77,0x7c,

                                0x39,0x5e,0x79,0x71};

    unsigned char temp;

    unsigned char key;

    unsigned char i,j;

     

     

    void main(void)

    {

      while(1)

        {

          P3=0xff;

          P3_4=0;

          temp=P3;

          temp=temp & 0x0f;

          if (temp!=0x0f)

            {

              for(i=50;i>0;i--)

              for(j=200;j>0;j--);

              temp=P3;

              temp=temp & 0x0f;

              if (temp!=0x0f)

                {

                  temp=P3;

                  temp=temp & 0x0f;             

                  switch(temp)

                    {

                      case 0x0e:

                        key=7;

                        break;

                     case 0x0d:

上一页  [1] [2] [3] [4]  下一页


本文关键字:暂无联系方式源码-程序单片机-工控设备 - 源码-程序