4X4键盘扫描c语言程序详解

2026-01-08 18:24:39

1、4X4键盘扫描,按下按键每个按键,在数码管上显示0~F

4X4键盘扫描c语言程序详解

2、#include "reg51.h"//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

4X4键盘扫描c语言程序详解

3、#define uint unsigned int

#define uchar unsigned char

4X4键盘扫描c语言程序详解

4、uint key;

uchar smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f

          ,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F

uchar shuzu[4][4]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};/*数组(00)(01)(02)(03)

                                                                (10)(11)(12)(13) 

                                                                (20)(21)(22)(23)

                                                                (30)(31)(32)(33)*/

4X4键盘扫描c语言程序详解

5、/******************************************************************/

/*                    延时函数声明                                */

/******************************************************************/

/*void mdelay(uint t)

{

  uchar n;

for(;t>0;t--)

 for(n=0;n<125;n++)

  {;}

}*/

/*大约一毫秒的延时函数*/

void mdelay(uint t)

{

  uchar n;

while(t--)

{

for(n=0;n<123;n++)

  {;}

  }  

}

4X4键盘扫描c语言程序详解

6、/******************************************************************/

/*                   主函数 1                                      */

/******************************************************************/

void main()

{

uchar hang,lie;

P2=0x00;

while(1)

{

    P3=0x0f;  //行扫描

key=P3;

if(key!=0x0f)//检测是否有按键按下

{

      mdelay(100);//去抖动

key=P3;

4X4键盘扫描c语言程序详解

7、 if(key!=0x0f)

{

        switch(key)//行按键选择

{

           case 0x0e: hang=0; break;

           case 0x0d: hang=1; break;

           case 0x0b: hang=2; break;

           case 0x07: hang=3; break;

        }

      }

    }

    P3=0xf0;  //列扫描

key=P3;

4X4键盘扫描c语言程序详解

8、 if(key!=0xf0)//检测是否有按键按下

{

      mdelay(100);//去抖动

key=P3;

if(key!=0xf0)

{

        switch(key)//列按键选择

{

           case 0x70: lie=0; break;

           case 0xb0: lie=1; break;

           case 0xd0: lie=2; break;

           case 0xe0: lie=3; break;

        }

      }

    }

P0=smg[shuzu[hang][lie]];

  }

}

4X4键盘扫描c语言程序详解

9、本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢