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

 时间:2026-04-22 23:27:49

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、本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。

  • 英语四级听力多少分
  • 为什么海洋探索如此重要
  • 全国大学生英语竞赛参赛证书有什么用
  • 在分部积分法使用中,如何选取u和v?
  • 考四级流程是什么?
  • 热门搜索
    怎么看股票k线图 鹦鹉鱼怎么养 怎么贴对联 大思英语怎么样 枸杞怎么吃效果好 怎么查询微信注册时间 含羞草怎么养 恰玛古怎么吃 图片格式怎么转换 狗的年龄怎么算